What commitclerk shipped.
Every entry in docs/CHANGELOG.md, read at 276ad36 and dated by the commit that wrote it.
- T66 · f36ef9fA file named only in the diff's prose is described as a file this commit changed
A note read after the diff names the files the commit changes and those its prose only mentions; on the observed commit, claims of an unstaged file fell from 3 in 100 to 0.
- T65 · 71fb437A line the diff deletes is described as work that was done
A documentation file whose whole change is deletions is named after the diff, and the rules state that a removed line contributes its removal and never its content.
- T71 · a0c3dd9The page ends without a pointer to any other tool the same author publishes
The page carries one house ad slot above the footer, drawn by japode-ads with storage off, a fixed dark theme and commitclerk kept off its own slot.
- T61 · baa80bfOne switch hides two very different data flows
--no-examplesrefuses past commit message text on its own, so a team can keep the counts-and-shapes fingerprint while--no-house-stylestill refuses both. - T25 · 39fef7cA team convention is retyped as flags on every commit
a
.clerk.jsonat the repository root and a~/.config/clerk/config.jsonare read through one precedence ladder, CLI > env > project > user > default, written in a single function. - T24 · bc09fd5
SECURITY.mddoes not say what leaves the machineThe diff and the replayed commit messages are fenced in sentinels named after their own sha256, and SECURITY.md states the threat, the boundary and what fencing does not do.
- T23 · 5a99346History cannot say which commits were AI-assisted
An opt-in
assisted_bywritesAssisted-by: commitclerk <version> (<model>)after the model has answered, and says(offline, no model)on the path that called none. - T21 · c8f047eA hook that calls an API hard-blocks the commit when the network is down
--offlinewrites the whole message locally with no key, no network and no provider resolved, taking the type from the file classes and never guessing feat: or fix:. - T20 · 227626dA repository with three sensitive files cannot allow the tool at all
.clerkignorewithholds a matched file's body from every request, leaving its path and line counts, and runs before the secret scan so exclusion is also the way out of a false positive. - T19 · c314fb8A staged secret leaves the machine before anything has looked at it
The staged diff is scanned for credential shapes and high-entropy tokens before the first request, refusing with exit 3 and naming the file and line but never the match.
- T17 · 7e8f060A commit larger than any budget is only trimmed, so its tail is never described
summarizing each oversized file separately and writing the message from the summaries is the one path that scales past a context window.
- T12 · f7a6490Intent lives in the author's head and the tool has nowhere to read it
a one-off
--context "<note>"and a standing.clerk/context.mdboth reach the prompt ahead of the diff, strictly additive and framed as the WHY rather than as work this commit performed. - T9 · a1819fbThe issue key is in the branch name and never reaches the message
a config-gated regex over the branch name appends a
Refs: PROJ-123trailer to the finished message, after the model rather than through it, so the key cannot be paraphrased or invented.