Every project I work on has the same problem: my lint/test/build rules exist in my CI workflow, my pre-commit hook, my .cursorrules, my AGENTS.md, my GEMINI.md, and 7 more files. When I change a rule in one place, the others drift.
I built crag to fix this.
What it does
You write one ~20-line governance.md. crag compiles it to 12 downstream files atomically:
-
.github/workflows/gates.yml(GitHub Actions) .husky/pre-commit.pre-commit-config.yaml-
AGENTS.md(Codex, Aider, Factory) .cursor/rules/governance.mdcGEMINI.md.github/copilot-instructions.md-
.clinerules,.continuerules,.windsurfrules .zed/rules.md.sourcegraph/cody-instructions.md
Change one line, regenerate everything.
Try it in 3 seconds
npx @whitehatd/crag demo
No install. No config. No network. No LLM. ~500ms to a verified
12-target pipeline with a determinism SHA printed inline.
What backs it up
- 512 tests passing across Ubuntu + macOS + Windows × Node 18/20/22
- Stress-tested on 101 OSS repos (4,400 invocations, 0 crashes)
- Reference benchmark: 40/40 Grade A on ship-ready governance
- Deterministic: same input → byte-identical output, SHA-verified on every CI push across 9 runners
- Zero runtime dependencies
GitHub: https://github.com/WhitehatD/crag
npm: https://www.npmjs.com/package/@whitehatd/crag
MIT licensed. If you use more than one AI coding tool alongside CI,
this is for you.
Tags: devtools, opensource, javascript, ai

Top comments (0)