A stack-agnostic, self-improving AI development framework as a Claude Code plugin.
A starter cadence.yaml for a typical TypeScript project (Node app,
React/Next app, or library).
commands:
format: ["prettier --check ."]
lint: ["eslint ."]
test: ["npm test", "vitest run"]
boundaries:
- where: "src/features/**"
forbidden:
- "src/data/sources/**"
- "src/data/repositories/**"
reason: "Features must read via narrow providers in src/app/providers"
- where: "src/data/sources/**"
forbidden:
- "src/features/**"
- "src/app/**"
reason: "Data sources are leaf-level; no upward dependencies"
- where: "**/*"
forbidden:
- "src/data/models/**"
reason: "Models live in src/domain/models; data/models is forbidden"
npm test with yarn test, pnpm test, or your test runnertsconfig.json paths, the boundary
checker matches on the resolved path components (e.g., @/features/X
matching src/features/X); adjust glob accordingly/cadence-init inside each package directory
with its own cadence.yamlFor a typical TypeScript project, the first three ADRs likely cover:
Use /cadence-adr to draft them in Nygard format.