Developer Veselin Dimitrov has published Contextual Commits, an open specification (v0.1.0, MIT license) that extends the widely-used Conventional Commits standard to embed structured decision context directly into git commit bodies. The specification introduces typed action lines — intent(), decision(), rejected(), constraint(), and learned() — each scoped to a domain, that capture the reasoning behind code changes alongside the changes themselves. Every coding session produces code, decisions, and understanding, but only the code traditionally survives in version control. The commit body, long underutilized, becomes an append-only decision trace that preserves the "why" without requiring any external infrastructure.
Dimitrov calls the problem "context decay." When a new AI coding session begins, agents like Claude Code have no memory of prior reasoning and may re-propose rejected approaches, violate previously discovered constraints, or misread intentional patterns as arbitrary choices. Contextual Commits targets this by using the one artifact every AI tool already accesses: the git log. A reference implementation ships as two Claude Code skills — contextual-commit, which auto-generates structured commit bodies at commit time, and recall, which searches and summarizes contextual history including a "branch brief" feature — installable via npx from the berserkdisruptors/contextual-commits repository on GitHub.
The Hacker News discussion drew pushback on several fronts. Skeptics argued that well-written prose in commit bodies already serves this purpose and that structured tagging adds cognitive overhead without meaningfully improving on clear natural-language explanations. The adoption problem inherent to any commit convention was also raised: without a validating parser and enforcement tooling, teams diverge quickly, and poorly-implemented validators erode goodwill faster than the convention builds it. One constructive suggestion was to add a refs() action type for linking to external resources — articles, issue trackers, library comparisons — that informed a decision, which Dimitrov acknowledged as a natural extension to the spec.
Dimitrov's bet is that this is a specification problem, not a tooling problem. Native adoption by AI coding harnesses like Claude Code or Cursor would deliver far more consistent behavior than user-installed skills — and without that, the spec risks staying a niche practice among developers who already write careful commit messages. The unresolved design tension he's prodding at is real: machine-parseable structured context and human-readable commit history pull in different directions, and no one in the AI-assisted development space has found a durable answer yet. A refs() action type in v0.2.0 would be a concrete test of whether the community is willing to iterate on the format.