Claude Code First, specification version 0.1.0. The plain-language guide
Version 0.1.0. Grade R2/S2.
F204 A commit message generated from the staged diff by another model misdescribes the change, most visibly on documentation commits
| Field | Value |
|---|---|
| Status | active |
| Topic | Commits and concurrent sessions |
| Grade | R2/S2 |
| Cases | Shio |
| Contrary | none |
| Harness facts | none |
Claim
The owner's commit tool has a model from another vendor write the message from the staged diff, and in Shio that message described work the diff did not contain: documentation-only commits titled and described as implementations, and bodies contradicting the text the same commit added; the remedies, a title always passed by the agent and hand-authored messages where the diff cannot carry the point, are one prescription copied across the projects.
Mechanism
The message writer sees only the staged diff. A diff of documentation about a feature reads like the feature, so a commit that files, specifies or records work is described as having built it. A diff that corrects a claim can be read as the claim. The agent that made the change knows what it was, but under the tool it does not write the message unless it passes a title, and even then the body is generated.
Observations
- Shio. The tool "generates a Conventional-Commits message from the staged diff via the OpenAI API" [shio@821f18d74:agents.md#L241-L242],
and the agents that make the changes are Claude sessions.
- Two commits whose diffs touch only Markdown files (the roadmap, the rationale and a spec,
and in one also the ledger and agents.md) carry implementation subjects and bodies: "feat: implement typed TypeScript DSL for post-types authoring" [shio@24da11f44], whose body says "Implemented a CLI compile step to convert DSL definitions into the required JSON format before pushing to the server." [shio@24da11f44], and "feat: implement multi-tenancy with tenant catalog and provisioning" [shio@94d4236f2], whose body says "Developed a console UI for tenant management" [shio@94d4236f2]. git show --format= --name-only 24da11f44 94d4236f2 lists only .md files. Both are dated 2026-06-06 and 2026-06-07.
- The 2026-07-29 split's body says "New skill files are created for each agent" [shio@f4ffdb0d9],
while the skills it adds are named for areas of the code [shio@821f18d74:agents.md#L65-L84].
- The SH788 body says the defect was "leading to misleading results in CI workflows" [shio@c1b9e8947],
while the text the same commit adds says "CI is already honest about this" [shio@821f18d74:agents.md#L161] and "the trap is local" [shio@821f18d74:agents.md#L162].
- The remedies at the pin: always pass a title, or a docs commit's prose about shipped work
is "misread as" [shio@821f18d74:agents.md#L252] a feature; and five commits marked hand-authored (git log 821f18d74 --grep='^Hand-authored' --format=%h gives 5), each saying why the diff could not carry the message: "the message is a survey of what already exists, which the diff does not contain" [shio@7820e57a7], "the message is a measurement the diff" [shio@84ed39aad] does not contain, "the message is an argument about ordering" [shio@0f4a906f3].
- roadkeep, freewilly, winwright. Each carries the same remedy as prose. roadkeep: "the title is yours and only the body is generated" [roadkeep@91754240:.claude/skills/roadkeep-dev/SKILL.md#L67];
freewilly: "Without it the tool infers the message from the diff" [freewilly@c1c2eaf:.claude/skills/freewilly-roadmap-docs/SKILL.md#L17-L19]; winwright prescribes run-commit.cmd -m [winwright@861b82e:.claude/skills/roadmap-docs/SKILL.md#L47]. None of the three records a misdescribed commit at the pin; the search made here was only for subjects of the form feat: implement, which found one in roadkeep, an implementation commit that is correctly labelled [roadkeep@6f7385ce].
Independence
One origin. The misdescriptions are behaviour of the shared commit tool (rule 3), observed in Shio. The title-always remedy appears in four projects (winwright without the reason, the other three with the same reason, a docs commit misread as a feature), so it is one remedy copied, counted once. Shio's hand-authored exceptions are its own practice and are the only remedy with a local variation.
Counter-evidence
None found at the pins. The four cases are found cases, not a rate: no source compares generated bodies with their diffs systematically, so how often the tool misdescribes is not known. The pins do not show whether the two June commits were made without a title; their subjects have the tool's generic form, which is consistent with it but does not prove it.
Grade
R2: one origin, the tool, seen in Shio on separate occasions (2026-06-06 and 2026-06-07, 2026-07-29, 2026-08-17). S2: each case is the commit itself, whose message and diff can be compared at the pin. Not S3: no one, project or study, counted the misdescriptions; the one count here, five hand-authored commits, counts the remedy and not the effect.