agentsclimarketplace

Commit message honesty precheck

Skill Ed3Design/ed3design-skill-bundles/code-quality/skills/commit-message-honesty-precheck

Claude Code skill bundles for software engineering: 56 skills + 5 Python tools + 6 hooks + 4 sub-agents across 6 thematic plugins (token-savers, code-quality, planning-disciplines, async-forensik, schema-discipline, skill-system-meta). Empirically TDD-validated patterns, MIT licensed.

Install
npx -y skills add Ed3Design/ed3design-skill-bundles --skill commit-message-honesty-precheck

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use before writing or finalizing a git commit message, especially when the subject line uses words like "NO-OP fix", "no behavior change", "refactor only", "trivial", "cleanup", "minor", "simple bump", "doc-only" — these phrases are often LIES in disguise that hide real semantic changes. Trigger on phrases like "small fix", "just a refactor", "NO-OP", "behavior unchanged", "trivial change", "harmless cleanup", "just bumping the default", or before any commit that touches a default value, signature, env-var fallback, or filter parameter. Do NOT load for genuinely cosmetic changes (typos, comments-only, whitespace), for first-line spelling, or for non-git contexts (slack messages, jira tickets).

SKILL.md

4.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

commit-message-honesty-precheck

PROMOTED: RED subagent identified "NO-OP" as false and suggested a better message — good basis. GREEN subagent applied all 3 steps + smell-table in a structured way, quantified the effect (40 trades blocked, +0.43pp WR), and emitted "PRECHECK: FAILED — message is a lie."

The pattern

Before finalizing a commit message, especially the subject line:

Step 1 — List every "no-effect" claim in the message

Phrases like "NO-OP", "no behavior change", "refactor only", "doc-only", "cosmetic", "trivial", "default adjustment".

Step 2 — For each claim, compute a behavior-diff proof

SmellLikely lieWhat to verify
"NO-OP"Change actively blocks/triggers something nowCount rows/trades/calls affected by diff
"no behavior change"Default value or branch condition was touchedgrep for old default in tests + production code
"refactor only"Tests were added/removed/renamedgit show --stat for new test files
"trivial"Diff touches >1 file or >10 lineswc -l the diff
"cosmetic"Source files (not /docs) were touchedgit diff --stat by directory
"default bump"A consumer is affected with no opt-ingrep usage of the old default

Fallback when no repo access: argue from the diff description itself. Count lines, identify which code path the new default touches, estimate affected calls. "I have no git access" is no free pass for the NO-OP claim.

Step 3 — Replace lies with measured facts

Rewrite the subject line to match the actual diff:

  • "feat(backtest): Z.1-C5 default cap 5→3 (forensically-proven NO-OP fix)"
  • "feat(backtest): Z.1-C5 cap default 5→3 — blocks cc=4/5 days (~40 trades / +0.43pp WR)"

Correct default-change message (positive example):

  • "chore: bump MAX_SIGNALS_PER_DAY 5→3 (harmless default)"
  • "fix(z.1): scoring cap 5→3 — empirically: >3 signals/day tie up too much capital (~40 trades/day affected)"

The trigger case

A forensic SQL analysis showed Cap=5 as "mathematically NO-OP" (max confluence_count in training-VTs = 5, so Cap=5 never fired). Then the default was changed to 3 — which blocks cc=4 and cc=5 trades (40 trades, ~7% of sample, +0.43pp WR shift).

Commit message: "forensically-proven NO-OP fix" — the phrasing was semantically inverse to the actual diff. Reviewer Finding I1 (confidence 88): "commit message deceives."

The trap: "the old default was a NO-OP" ≠ "this change is a NO-OP". These are logically different claims. When you change a previously-NO-OP default to an active one, the CHANGE is NOT a NO-OP.

Recovery: when an already-pushed commit has a misleading message

Per the maxim "NEW commits rather than amending":

  • Do not rebase or amend
  • Forward-document in the next commit's message + daily note
  • Example: "Clarification regarding 3247e28: original message 'NO-OP' was misleading — the change actually blocks cc=4/5 days"

Background: TDD progression (Bulletproofing log)

Cycle 1 — PASS

  • RED subagent (without skill): identified "NO-OP" as false ("a NO-OP change by definition has no effect"). Suggested a better message. Missing: structured smell-table, 3-step flow, quantification of the effect (how many trades affected?).
  • GREEN subagent (with skill): applied smell-table ("NO-OP" + "default bump" both hit). Formulated: "PRECHECK: FAILED — message is a lie." Delivered two variants of the correct message (with and without quantification). Identified the core trap: "intent was NO-OP" ≠ "diff is NO-OP".
  • Refactor: positive example for correct default-change message added (was missing in original). Fallback protocol for "precheck without live-code access" added.

Cycle-2-Backlog (non-blocking)

  1. Git hook that scans commit message draft and warns on smell-words (CI-lint rule)
  2. Multi-claim handling: when "NO-OP" AND "minor" appear combined — check both, additive smells
  3. Cross-repo examples from 2+ other projects

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.