commit
Verify, record and commit the current session's work — checks green first, PROGRESS updated, message via -F. Use when the user asks to commit; if they say "commit and push", chain into /push afterward
SKILL.md.claude/skills/commit/SKILL.md
GitHub/commit — Verify, record, commit
Commit the session's work the way this repo requires: proven green, recorded in the live PROGRESS log, message written to a file. This app places real orders with real money — a commit that overstates what it contains is the exact failure the rules exist to prevent.
Steps
1. See what actually changed
git status --short
git diff HEAD --stat
Read the list. If it contains changes you didn't make this session, stop and
tell the user what you found — never sweep in someone else's work silently.
If a frozen close-path file (close_trade.py, partial_close.py) or
anything under services/trading|risk|broker changed, confirm /safe-change
was followed and say so in the message.
2. Prove it green — scaled to what changed
- Any code, test, or tools change →
python -m tools.checks allmust pass (suite + all gates, ~6–8 min). Never edit tracked files while it runs. Paste the tail into the active pack'sPROGRESS.mdverification log. - Docs/skills only →
python -m tools.checks gates(~25s, includes the doc-links check) is sufficient. Say in the commit message that the change is docs-only.
A failing check stops the commit. Never --no-verify, never lower a
baseline to get green, never commit "just this once" on red.
3. Update the live records
- The active pack's
PROGRESS.md: flip task rows, add the verification-log entry (real output, not a claim). - If the change taught something non-obvious → the relevant
docs/system/domains/<domain>/file, same commit. - If the change invalidated a number/claim a skill quotes → fix that skill, same commit.
4. Commit — message via file, always
PowerShell 5.1 mangles multiline -m. Write the message to a scratch file
and use -F:
git add -A # or stage selectively if the tree mixes concerns
git commit -F <path-to-message-file>
git status --short # must be clean (or intentionally holding back files)
docs/todo/, docs/simon-handover/ and docs/reviews/ (so PROGRESS.md
too) belong to the private notes repo, which plain git ignores. Commit them
separately with git private add -A todo simon-handover reviews,
git private commit -F <msgfile> and git private push. See CLAUDE.md,
"Private notes".
Message shape: one imperative subject line; a body saying what shipped, what was deliberately NOT done, and the checks result. Never mention which AI model made the change. Separate restructuring commits from behaviour commits — if both happened, commit them separately.
5. Offer or chain the push
If the user asked to "commit and push", invoke /push now. Otherwise end by
telling the user the commit hash and that /push publishes it.
Never
- commit on a red check, or skip step 2 because "it's small"
- bundle unrelated concerns into one commit to save time
- claim a task Done in PROGRESS without the demo/sign-off it requires
- commit secrets,
config.yaml,*.db, licence keys (.gitignorecovers these — but look atgit statusanyway)