#2 feat(2-git-memory): git memory — write side, read side, bootstrap distribution - #34
Merged
Merged
Conversation
added 6 commits
July 14, 2026 09:20
…and decision trailers The write side of the git memory: commit bodies carry the Decision Shadow so a future agent recovers the why from git log alone. The vocabulary is fixed at four decision trailers; the body is required by content, not by commit type, so mechanical commits stay one-liners. The old blanket trailer ban narrows to identity trailers only. Rejected: nine-trailer Lore Protocol vocabulary — self-assessment keys degrade into ritual noise Related: #2 Related: .yoke/adr/0012-commit-messages-as-git-memory.md
The read side of the git memory: which git command answers which question, and how to act on Constraint/Directive/Rejected findings. Lives next to commit-convention.md because both sides of the memory share one owner, mirroring the issues/github-issues.md precedent. Directive: git log --trailer= does not exist — the real filters are --grep with a line-anchored key and the %(trailers:key=...) format Related: #2
Every skill that touches or judges code now reads the affected files' commit history before working, so constraints and rejected approaches recorded in the memory actually steer new work. Executors (do, draft) gate modification on it; review must cite the commit a finding argues with; the exploration skills (grill, grill-docs, prd, issues) treat history findings as interview and artifact material. Related: #2
…k in bootstrap Distribution of the git memory to target projects rides the two things bootstrap already generates: a mandatory CLAUDE.md section (always-on for any agent, with or without yoke skills) and a commit-msg hook. The hook checks shape and presence only — a hook cannot judge whether a commit carries a decision, so a bodyless feat/fix/refactor warns instead of blocking. Rejected: a separate .claude/rules/ file per the original issue #2 plan — one more artifact where an existing CLAUDE.md section suffices Related: #2
The hook's ticket pattern [A-Z]+-[0-9]+ rejected R2-50-style ids where the project code itself contains a digit; real YouTrack projects use them. Caught by running the hook against the convention's own examples. Constraint: hook regex must accept every ticket form the commit-convention Ticket ID tables list Related: #2
Dogfooding: the repo that ships the convention runs the hook itself, so the read side gets real history to work against. The hook is tracked in .husky/ and activates for everyone via the existing husky prepare script; commits in this very branch already follow the format. Related: #2
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the git memory (#2, ADR-0012): commit messages become the project's long-term decision history, written for coding agents as the primary readers. The existing subject convention stays; commits that carry a decision get a prose body explaining why plus optional decision trailers from a fixed vocabulary of four (
Constraint:,Rejected:,Directive:,Related:). Every code skill now reads the affected files' history before working, and bootstrap distributes the convention to target projects as a mandatory CLAUDE.md section plus acommit-msghook.Design decisions
Confidence:,Scope-risk:, …) were dropped as ritual noise; see.yoke/adr/0012-commit-messages-as-git-memory.mdfor the full trade-off.skills/gca/reference/— the owning-skill precedent (issues/reference/github-issues.md); the seven consuming skills cross-reference them.Co-Authored-By,Signed-off-by) stay banned; decision trailers are the point.Test plan
pnpm run format:check— cleangit logof this branch — the bodies and trailers should read as useful memory, not ritualChanges
skills/gca/reference/commit-convention.mdskills/gca/reference/history-reading.mdConstraint:/Directive:/Rejected:skills/{do,draft,review,grill,grill-docs,prd,issues}/SKILL.mdskills/bootstrap/agents/claude-md-generator.mdskills/bootstrap/reference/hooks-patterns.mdskills/bootstrap/reference/bootstrap-pipeline.md.husky/commit-msg,CLAUDE.mdCommits
0739619Git memory: commit messages as the long-term memory layer for agents #2 feat(2-git-memory): extend commit convention with git memory body and decision trailers770ea40Git memory: commit messages as the long-term memory layer for agents #2 feat(2-git-memory): add history reading guide2ef07b2Git memory: commit messages as the long-term memory layer for agents #2 feat(2-git-memory): add git memory read step to all code skillsc045055Git memory: commit messages as the long-term memory layer for agents #2 feat(2-git-memory): scaffold git memory section and commit-msg hook in bootstrap68519b0Git memory: commit messages as the long-term memory layer for agents #2 fix(2-git-memory): accept digits in ticket project codes9d37ddaGit memory: commit messages as the long-term memory layer for agents #2 chore(2-git-memory): adopt the git memory convention in the yoke repoValidation
pnpm run format:check— all files use Prettier code stylepython3JSON parse ofplugin.json+marketplace.json— OK