cs-snapshotlisted
Install: claude install-skill brennacodes/brenna-plugs
<purpose>
Capture the current state of a tracked target directory as a git snapshot. Detects changes since the last snapshot, commits them on the tracking branch, and updates the snapshot log. Skips if nothing changed (unless `--force`). If the target's changelog was modified, re-parses it.
</purpose>
<steps>
<step id="load-config" number="1">
<description>Load Configuration</description>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.<exit /></if>
<read path="<home>/.things/claude-scout/preferences.json" output="preferences" />
<if condition="preferences-missing">Tell the user: "Run `/setup-cs` first." Then stop.<exit /></if>
<read path="<home>/.things/claude-scout/targets.json" output="targets" />
</load-config>
</step>
<step id="resolve-target" number="2">
<description>Resolve Target</description>
<action>Parse `$ARGUMENTS` for:</action>
- **target-id**: First positional arg, or fall back to `preferences.default_target`
- **--message**: Snapshot message (default: current date/time)
- **--tag**: Tag to attach to this snapshot entry
- **--force**: Take snapshot even if no changes dete