commit-discipline
Use when committing work in Athena, when staged changes span more than one concern, or when writing a commit message — before running git commit.
Install
mkdir -p .claude/skills/commit-discipline-harrymcdonagh && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16875" && unzip -o skill.zip -d .claude/skills/commit-discipline-harrymcdonagh && rm skill.zipInstalls to .claude/skills/commit-discipline-harrymcdonagh
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use when committing work in Athena, when staged changes span more than one concern, or when writing a commit message — before running git commit.About this skill
Commit Discipline
Overview
House rule: one concern per commit. Do not entangle unrelated changes. Every commit in the log is one reviewable decision — an ADR acceptance, a feature increment, a fix — and later ADRs cite commits by hash as evidence (e.g. "commit 3687d8d" in ADR-0012). An entangled commit breaks that audit trail.
Message style (match the existing log)
Conventional commits, lowercase, imperative, with a scope in parentheses when one module owns the change; a one-line summary that states the decision, not the diff. Real examples:
feat(research): COMPARE mode, mocked build — cited side-by-side, no ranking (ADR-0012)
docs(adr): accept ADR-0012 — COMPARE mode, cited side-by-side over a named set
perf(find): widen FIND recall knobs for the 84-company corpus
fix(edgar): robust section bounds — pipe headings, page headers, prose citations
chore: silence alembic path_separator deprecation warning
- Prefixes:
featfixchoredocsrefactortestperf - Common scopes:
research,edgar,ingest,qa,adr,db,api,domain,retrieval,reference,repair - Cite the governing ADR (and section) in the summary or body when the commit implements one.
- ADR acceptance is its own
docs(adr): accept …commit, separate from the implementation commit.
Splitting entangled work
git statusandgit difffirst — know what's actually in the tree; leave other sessions' in-progress files (e.g. apps/web) alone.- Stage by path for file-level splits:
git add <files-for-concern-A>. - Stage by hunk when one file mixes concerns:
git add -p <file>(interactive-iis unavailable in Claude Code;-pworks). - Commit concern A; repeat for concern B. Verify each commit stands alone
(
git show --stat). - Drive-by fixes discovered mid-task get their own commit, not a ride-along.
Red flags
- "and" doing heavy lifting in the summary line ("add X and fix Y").
git add ./git add -Awhen the tree contains unrelated changes.- A
featcommit that also reformats untouched files or tweaks docs. - Committing a migration in the same commit that accepts its ADR.