Create atomic git commits aligned to Ito changes.
Concept: In Ito-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 Ito change (or a small number of commits if the change is large).
- •Include the Ito change id in the commit message when practical (e.g.
001-02_add-tasks). - •Use Ito 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 confirmation - •
falseor missing: ask for confirmation of each commit message - •CRITICAL: this only applies to the current invocation and is reset afterwards
- •
- •
change_id: optional, a Ito change id (recommended)
- •If missing, prompt the user to pick from
ito 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 Ito change context:
- •If
change_idnot provided, runito list --jsonand ask user to select - •Then inspect the change:
ito 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 = Ito module name or ticket id
- •Description should mention the change goal
- •Include Ito 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: <change-id>
- •Commit SHA + message (
git log -1 --oneline) - •Remaining uncommitted changes (if any)