Create atomic git commits aligned to Spool changes.
Concept: In Spool-driven workflows, you typically make progress by creating/applying a change. After applying and verifying a change, you should usually create a git commit that corresponds to that change.
Key behavior
- Prefer 1 commit per applied Spool change (or a small number of commits if the change is large).
- Include the Spool change id in the commit message when practical (e.g.
001-02_add-tasks). - Use Spool inspection commands to anchor the commit to what was actually applied.
Parameters
When invoking this skill, check for these parameters in context:
auto_mode: boolean flag
true: create commits immediately without asking for confirmationfalseor missing: ask for confirmation of each commit message- CRITICAL: this only applies to the current invocation and is reset afterwards
change_id: optional, a Spool change id (recommended)
- If missing, prompt the user to pick from
spool list --json
- If missing, prompt the user to pick from
stacked_mode: optional boolean
- If
true, create stacked branches per commit (only if tooling exists) - If
falseor missing, commit on current branch
- If
ticket_id: optional identifier to include in commit messages
Prerequisites
Verify repo has changes:
git status --short- If no changes, stop with: "No changes found to commit"
Identify Spool change context:
- If
change_idnot provided, runspool list --jsonand ask user to select - Then inspect the change:
spool status --change "<change-id>"
- If
Confirm the change is in a good commit state:
- Ensure artifacts/tasks are complete enough that a commit makes sense
- If the change is unfinished, ask user whether to commit "WIP" or wait
Commit Message Format
Use conventional commit format:
- Format:
type(scope): description - Prefer scope = Spool module name or ticket id
- Description should mention the change goal
- Include Spool change id at end, in parentheses, when practical
Examples:
feat(todo): add task model and parsing (001-02_add-task-core)fix(storage): persist tasks atomically (002-01_storage-save)
Procedure
Read diffs:
git diffandgit status --shortStage files for the selected change (prefer staging only files touched by that change)
Decide commit messages:
- If
auto_modeis true: commit immediately - Otherwise: present recommended message + alternatives, ask user to confirm
- If
Verify after each commit:
git status --short
Output
After committing, show:
- Change committed:
- Commit SHA + message (
git log -1 --oneline) - Remaining uncommitted changes (if any)