spool-commit
DevelopmentCreate atomic git commits aligned to Spool changes. Use when you want to commit work after applying a change, optionally with auto-mode.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/majiayu000/claude-skill-registry/blob/HEAD/skills/workflow/spool-commit/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/spool-commit, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
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 --short -
Stage 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)