feat(hooks): track writing contracts + linters in repo

comms-lint.py and comment-lint.py lived only in ~/.claude, which is not
a git repo. Contract prose lived in ~/.claude/CLAUDE.md. Neither survived
a machine rebuild.

Prose moves to claude-md/ fragments, imported via @name.md. Linters move
to hooks/. link.sh and home.nix distribute both. settings.json wiring
stays manual — it holds machine-local MCP/statusline config this repo
must not own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VaGR6ERGCfzWTtuv2rebGe
This commit is contained in:
naps62
2026-07-27 14:34:29 +00:00
parent 715420d0a9
commit 08195c1cd4
8 changed files with 481 additions and 3 deletions
+9
View File
@@ -13,5 +13,14 @@
".claude/skills" = { source = "${agent-skills}/skills"; recursive = true; };
".agents/skills" = { source = "${agent-skills}/skills"; recursive = true; };
".claude/commands" = { source = "${agent-skills}/commands"; recursive = true; };
".claude/hooks" = { source = "${agent-skills}/hooks"; recursive = true; };
# CLAUDE.md fragments land in ~/.claude root, pulled in by `@name.md` imports.
# Listed one by one: recursive on ~/.claude would fight every other tool
# writing there (settings.json, projects/, file-history/).
".claude/public-comms.md".source = "${agent-skills}/claude-md/public-comms.md";
".claude/code-comments.md".source = "${agent-skills}/claude-md/code-comments.md";
};
}
# Hook wiring lives in ~/.claude/settings.json, which this module does not own.
# See hooks/README.md for the snippet.