@adia-ai/adia-ui-forge 0.1.3 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/.claude-plugin/plugin.json +4 -7
  2. package/CHANGELOG.md +35 -34
  3. package/README.md +35 -40
  4. package/agents/a2ui-engineer.md +22 -53
  5. package/agents/component-author.md +29 -0
  6. package/agents/framework-verifier.md +26 -0
  7. package/agents/release-engineer.md +21 -81
  8. package/agents/routing-corpus.json +293 -64
  9. package/bin/demo-postwrite-pattern-gate +94 -0
  10. package/bin/forge-lint +17 -2
  11. package/bin/sidecar-prewrite-guard +104 -0
  12. package/commands/deploy.md +9 -0
  13. package/commands/dogfood.md +10 -0
  14. package/commands/gen-review.md +9 -0
  15. package/commands/release.md +10 -0
  16. package/hooks/hooks.json +15 -0
  17. package/package.json +3 -6
  18. package/references/contracts/a2ui-mcp-surface.md +35 -0
  19. package/references/contracts/migration-guide-format.md +34 -0
  20. package/references/shared/content-trust.md +19 -74
  21. package/skills/adia-a2ui/SKILL.md +99 -0
  22. package/skills/{adia-ui-a2ui → adia-a2ui}/evals/routing-corpus.json +10 -10
  23. package/skills/adia-a2ui/references/anti-patterns.md +27 -0
  24. package/skills/adia-a2ui/references/chunk-authoring.md +71 -0
  25. package/skills/adia-a2ui/references/corpus-discipline.md +68 -0
  26. package/skills/adia-a2ui/references/eval-diagnostics.md +86 -0
  27. package/skills/adia-a2ui/references/format-extension-decisions.md +66 -0
  28. package/skills/adia-a2ui/references/leverage-rules.md +52 -0
  29. package/skills/adia-a2ui/references/mcp-pipeline-ops.md +83 -0
  30. package/skills/adia-a2ui/references/mcp-tool-reference.md +59 -0
  31. package/skills/adia-a2ui/references/pipeline-overview.md +115 -0
  32. package/skills/adia-a2ui/references/semantic-fail-lifting.md +74 -0
  33. package/skills/adia-a2ui/references/strategy-engines.md +109 -0
  34. package/skills/adia-a2ui/references/zettel-calibration.md +104 -0
  35. package/skills/adia-author/SKILL.md +112 -0
  36. package/skills/adia-author/evals/routing-corpus.json +222 -0
  37. package/skills/{adia-ui-authoring → adia-author}/references/anti-patterns.md +33 -4
  38. package/skills/{adia-ui-authoring → adia-author}/references/authoring-cycle.md +9 -11
  39. package/skills/adia-author/references/canonical-pattern-index.md +243 -0
  40. package/skills/{adia-ui-authoring → adia-author}/references/code-style.md +19 -21
  41. package/skills/adia-author/references/common-gotchas.md +129 -0
  42. package/skills/adia-author/references/composite-demo-protocol.md +271 -0
  43. package/skills/{adia-ui-authoring → adia-author}/references/css-patterns.md +19 -6
  44. package/skills/{adia-ui-authoring → adia-author}/references/lifecycle-patterns.md +1 -0
  45. package/skills/{adia-ui-authoring → adia-author}/references/llm-bridge.md +3 -5
  46. package/skills/{adia-ui-authoring → adia-author}/references/module-promotion.md +20 -38
  47. package/skills/{adia-ui-authoring → adia-author}/references/primitive-audit.md +2 -4
  48. package/skills/{adia-ui-authoring → adia-author}/references/shell-patterns.md +12 -18
  49. package/skills/{adia-ui-authoring → adia-author}/references/token-contract.md +5 -7
  50. package/skills/{adia-ui-authoring → adia-author}/references/worked-example.md +3 -3
  51. package/skills/{adia-ui-authoring → adia-author}/references/yaml-contract.md +3 -3
  52. package/skills/{adia-ui-authoring → adia-author}/scripts/build-canonical-pattern-index.mjs +3 -3
  53. package/skills/adia-deploy/SKILL.md +128 -0
  54. package/skills/{adia-ui-ops → adia-deploy}/references/deploy-playbooks.md +47 -30
  55. package/skills/adia-dogfood/SKILL.md +124 -0
  56. package/skills/adia-dogfood/references/admin-shell-anatomy.md +77 -0
  57. package/skills/adia-dogfood/references/app-shell-pitfalls.md +66 -0
  58. package/skills/adia-dogfood/references/card-anatomy-sweep.md +66 -0
  59. package/skills/adia-dogfood/references/html-attr-sweep.md +63 -0
  60. package/skills/adia-dogfood/references/native-leak-annotations.md +73 -0
  61. package/skills/adia-dogfood/references/visual-probe-triage.md +80 -0
  62. package/skills/{adia-ui-dogfood → adia-dogfood}/scripts/analyze.mjs +30 -14
  63. package/skills/adia-gen-review/SKILL.md +127 -0
  64. package/skills/adia-gen-review/references/corpus-html-patterns.md +279 -0
  65. package/skills/adia-gen-review/references/loop-protocol.md +216 -0
  66. package/skills/adia-gen-review/references/rubric-cosmetic.md +100 -0
  67. package/skills/adia-gen-review/references/rubric-decompose.md +101 -0
  68. package/skills/adia-gen-review/references/rubric-score.md +214 -0
  69. package/skills/{adia-ui-gen-review → adia-gen-review}/references/scores.schema.json +2 -2
  70. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-coverage-audit.mjs +4 -4
  71. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-decompose.mjs +10 -6
  72. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-status.mjs +5 -5
  73. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/validate-cycle-scores.mjs +5 -5
  74. package/skills/adia-llm-internals/SKILL.md +77 -0
  75. package/skills/{adia-ui-llm → adia-llm-internals}/references/adapter-contract.md +4 -2
  76. package/skills/{adia-ui-llm → adia-llm-internals}/references/add-a-provider.md +4 -5
  77. package/skills/{adia-ui-llm → adia-llm-internals}/references/bridge-facade.md +10 -3
  78. package/skills/{adia-ui-llm → adia-llm-internals}/references/browser-proxy-boundary.md +1 -1
  79. package/skills/{adia-ui-llm → adia-llm-internals}/references/model-registry.md +5 -3
  80. package/skills/{adia-ui-llm → adia-llm-internals}/references/streaming-sse.md +2 -2
  81. package/skills/adia-release/SKILL.md +72 -0
  82. package/skills/adia-release/references/changelog-discipline.md +119 -0
  83. package/skills/adia-release/references/cut-procedure.md +247 -0
  84. package/skills/adia-release/references/gates-catalog.md +222 -0
  85. package/skills/adia-release/references/independent-package-release.md +52 -0
  86. package/skills/adia-release/references/migration-guide-authoring.md +86 -0
  87. package/skills/adia-release/references/notes-authoring.md +90 -0
  88. package/skills/adia-release/references/recovery-paths.md +106 -0
  89. package/skills/{adia-ui-release → adia-release}/scripts/bump.mjs +28 -3
  90. package/skills/{adia-ui-release → adia-release}/scripts/dispatch-publish.mjs +10 -7
  91. package/skills/{adia-ui-release → adia-release}/scripts/insert-stub.mjs +1 -1
  92. package/skills/{adia-ui-release → adia-release}/scripts/package-paths.mjs +6 -0
  93. package/skills/{adia-ui-release → adia-release}/scripts/promote-unreleased.mjs +1 -1
  94. package/skills/{adia-ui-release → adia-release}/scripts/release-pack.mjs +38 -31
  95. package/skills/{adia-ui-release → adia-release}/scripts/tag-lockstep.mjs +7 -3
  96. package/skills/adia-site-docs/SKILL.md +68 -0
  97. package/skills/adia-site-docs/evals/audit-report.md +30 -0
  98. package/skills/adia-site-docs/evals/routing-corpus.json +176 -0
  99. package/skills/adia-site-docs/intent.md +72 -0
  100. package/agents/README.md +0 -209
  101. package/agents/author.md +0 -56
  102. package/agents/repo-steward.md +0 -56
  103. package/agents/spec-architect.md +0 -53
  104. package/agents/tech-lead.md +0 -57
  105. package/agents/verifier.md +0 -55
  106. package/bin/lib/audit-axes.mjs +0 -555
  107. package/bin/lib/dry-run-irreversible.mjs +0 -236
  108. package/bin/lib/run-skill-evals.mjs +0 -487
  109. package/bin/lib/teach-router.mjs +0 -250
  110. package/commands/adia-forge-a2ui.md +0 -10
  111. package/commands/adia-forge-author.md +0 -10
  112. package/commands/adia-forge-dogfood.md +0 -8
  113. package/commands/adia-forge-llm.md +0 -8
  114. package/commands/adia-forge-orient.md +0 -10
  115. package/commands/adia-forge-release.md +0 -8
  116. package/commands/adia-forge-review.md +0 -10
  117. package/references/shared/pev-rationale.md +0 -64
  118. package/references/shared/skill-conventions.md +0 -133
  119. package/skills/adia-ui-a2ui/CHANGELOG.md +0 -32
  120. package/skills/adia-ui-a2ui/SKILL.md +0 -243
  121. package/skills/adia-ui-a2ui/evals/adversarial-corpus.json +0 -75
  122. package/skills/adia-ui-a2ui/evals/teach-routing-cases.json +0 -100
  123. package/skills/adia-ui-a2ui/references/anti-patterns.md +0 -24
  124. package/skills/adia-ui-a2ui/references/chunk-authoring.md +0 -88
  125. package/skills/adia-ui-a2ui/references/corpus-discipline.md +0 -56
  126. package/skills/adia-ui-a2ui/references/eval-diagnostics.md +0 -127
  127. package/skills/adia-ui-a2ui/references/fragment-graph.md +0 -91
  128. package/skills/adia-ui-a2ui/references/mcp-pipeline-ops.md +0 -106
  129. package/skills/adia-ui-a2ui/references/mcp-tool-reference.md +0 -398
  130. package/skills/adia-ui-a2ui/references/pipeline-overview.md +0 -175
  131. package/skills/adia-ui-a2ui/references/semantic-fail-lifting.md +0 -120
  132. package/skills/adia-ui-a2ui/references/strategy-engines.md +0 -111
  133. package/skills/adia-ui-a2ui/references/teach-protocol.md +0 -220
  134. package/skills/adia-ui-a2ui/references/zettel-calibration.md +0 -93
  135. package/skills/adia-ui-a2ui/scripts/audit-a2ui-roster.mjs +0 -96
  136. package/skills/adia-ui-a2ui/scripts/teach-route.mjs +0 -157
  137. package/skills/adia-ui-a2ui/skill.json +0 -38
  138. package/skills/adia-ui-authoring/CHANGELOG.md +0 -32
  139. package/skills/adia-ui-authoring/SKILL.md +0 -256
  140. package/skills/adia-ui-authoring/assets/case-studies/admin-shell-decomposition.md +0 -101
  141. package/skills/adia-ui-authoring/assets/case-studies/maxtokens-32768-discovery.md +0 -109
  142. package/skills/adia-ui-authoring/assets/case-studies/theme-panel-promotion.md +0 -113
  143. package/skills/adia-ui-authoring/evals/adversarial-design-plan-gates.json +0 -138
  144. package/skills/adia-ui-authoring/evals/routing-corpus.json +0 -245
  145. package/skills/adia-ui-authoring/references/canonical-pattern-index.md +0 -179
  146. package/skills/adia-ui-authoring/references/common-gotchas.md +0 -93
  147. package/skills/adia-ui-authoring/references/composite-demo-protocol.md +0 -1084
  148. package/skills/adia-ui-authoring/references/teach-protocol.md +0 -428
  149. package/skills/adia-ui-authoring/scripts/audit-authoring-roster.mjs +0 -148
  150. package/skills/adia-ui-authoring/skill.json +0 -45
  151. package/skills/adia-ui-dogfood/CHANGELOG.md +0 -17
  152. package/skills/adia-ui-dogfood/README.md +0 -62
  153. package/skills/adia-ui-dogfood/SKILL.md +0 -866
  154. package/skills/adia-ui-dogfood/skill.json +0 -40
  155. package/skills/adia-ui-forge/SKILL.md +0 -88
  156. package/skills/adia-ui-forge/evals/routing-corpus.json +0 -30
  157. package/skills/adia-ui-gen-review/CHANGELOG.md +0 -108
  158. package/skills/adia-ui-gen-review/SKILL.md +0 -266
  159. package/skills/adia-ui-gen-review/references/loop-protocol.md +0 -712
  160. package/skills/adia-ui-gen-review/references/rubric-cosmetic.md +0 -144
  161. package/skills/adia-ui-gen-review/references/rubric-decompose.md +0 -117
  162. package/skills/adia-ui-gen-review/references/rubric-score.md +0 -249
  163. package/skills/adia-ui-gen-review/references/teach-protocol.md +0 -214
  164. package/skills/adia-ui-gen-review/skill.json +0 -23
  165. package/skills/adia-ui-llm/CHANGELOG.md +0 -25
  166. package/skills/adia-ui-llm/SKILL.md +0 -165
  167. package/skills/adia-ui-llm/evals/adversarial-corpus.json +0 -75
  168. package/skills/adia-ui-llm/evals/routing-corpus.json +0 -30
  169. package/skills/adia-ui-llm/evals/teach-routing-cases.json +0 -73
  170. package/skills/adia-ui-llm/references/teach-protocol.md +0 -78
  171. package/skills/adia-ui-llm/scripts/audit-llm-roster.mjs +0 -93
  172. package/skills/adia-ui-llm/scripts/teach-route.mjs +0 -119
  173. package/skills/adia-ui-llm/skill.json +0 -33
  174. package/skills/adia-ui-ops/CHANGELOG.md +0 -291
  175. package/skills/adia-ui-ops/SKILL.md +0 -401
  176. package/skills/adia-ui-ops/references/INDEX.md +0 -158
  177. package/skills/adia-ui-ops/references/audit-cadence.md +0 -263
  178. package/skills/adia-ui-ops/references/audit-patterns/archive-link-sweep.md +0 -96
  179. package/skills/adia-ui-ops/references/audit-patterns/audit-history-ledger.md +0 -162
  180. package/skills/adia-ui-ops/references/audit-patterns/browser-bundle-node-imports.md +0 -154
  181. package/skills/adia-ui-ops/references/audit-patterns/changelog-unreleased-bloat.md +0 -75
  182. package/skills/adia-ui-ops/references/audit-patterns/coverage-gaps.md +0 -187
  183. package/skills/adia-ui-ops/references/audit-patterns/entry-file-coverage.md +0 -122
  184. package/skills/adia-ui-ops/references/audit-patterns/format-hygiene.md +0 -217
  185. package/skills/adia-ui-ops/references/audit-patterns/lockstep-versioning.md +0 -113
  186. package/skills/adia-ui-ops/references/audit-patterns/memory-fragmentation.md +0 -180
  187. package/skills/adia-ui-ops/references/audit-patterns/orphan-detection.md +0 -202
  188. package/skills/adia-ui-ops/references/audit-patterns/pointer-validation.md +0 -180
  189. package/skills/adia-ui-ops/references/audit-patterns/redundancy-detection.md +0 -210
  190. package/skills/adia-ui-ops/references/audit-patterns/spec-dating-sweep.md +0 -91
  191. package/skills/adia-ui-ops/references/audit-patterns/stale-content.md +0 -182
  192. package/skills/adia-ui-ops/references/audit-patterns/staleness-tooling.md +0 -156
  193. package/skills/adia-ui-ops/references/audit-patterns/token-waste-detection.md +0 -196
  194. package/skills/adia-ui-ops/references/doc-types/adr-pattern.md +0 -210
  195. package/skills/adia-ui-ops/references/doc-types/architecture-md.md +0 -190
  196. package/skills/adia-ui-ops/references/doc-types/changelog.md +0 -183
  197. package/skills/adia-ui-ops/references/doc-types/decisions-log.md +0 -146
  198. package/skills/adia-ui-ops/references/doc-types/plan-roadmap.md +0 -182
  199. package/skills/adia-ui-ops/references/doc-types/postmortem-pattern.md +0 -206
  200. package/skills/adia-ui-ops/references/genres/prose-and-writing.md +0 -149
  201. package/skills/adia-ui-ops/references/guidance/context-budget.md +0 -137
  202. package/skills/adia-ui-ops/references/guidance/llm-doc-writing.md +0 -116
  203. package/skills/adia-ui-ops/references/guidance/reliability-dial.md +0 -186
  204. package/skills/adia-ui-ops/references/recipes/adr-introduction.md +0 -211
  205. package/skills/adia-ui-ops/references/recipes/audit-existing-repo.md +0 -234
  206. package/skills/adia-ui-ops/references/recipes/cold-start-harvest.md +0 -263
  207. package/skills/adia-ui-ops/references/recipes/concurrent-learnings-merge.md +0 -158
  208. package/skills/adia-ui-ops/references/recipes/continuous-learning-loop.md +0 -169
  209. package/skills/adia-ui-ops/references/recipes/external-reference-verification.md +0 -158
  210. package/skills/adia-ui-ops/references/recipes/findings-index-readout.md +0 -126
  211. package/skills/adia-ui-ops/references/recipes/greenfield-setup.md +0 -252
  212. package/skills/adia-ui-ops/references/recipes/harvest-repo-brain.md +0 -169
  213. package/skills/adia-ui-ops/references/recipes/import-repo-brain-harvest.md +0 -153
  214. package/skills/adia-ui-ops/references/recipes/memory-organization.md +0 -182
  215. package/skills/adia-ui-ops/references/recipes/recommend-then-validate.md +0 -199
  216. package/skills/adia-ui-ops/references/recipes/self-healing-hooks.md +0 -366
  217. package/skills/adia-ui-ops/references/recipes/skill-stewardship-loop.md +0 -113
  218. package/skills/adia-ui-ops/references/standards/agents-md-spec.md +0 -138
  219. package/skills/adia-ui-ops/references/standards/claude-md-convention.md +0 -123
  220. package/skills/adia-ui-ops/references/standards/cross-tool-matrix.md +0 -85
  221. package/skills/adia-ui-ops/references/standards/readme-conventions.md +0 -232
  222. package/skills/adia-ui-ops/references/teach-protocol.md +0 -215
  223. package/skills/adia-ui-ops/scripts/audit-ops-roster.mjs +0 -104
  224. package/skills/adia-ui-ops/skill.json +0 -65
  225. package/skills/adia-ui-release/CHANGELOG.md +0 -66
  226. package/skills/adia-ui-release/SKILL.md +0 -323
  227. package/skills/adia-ui-release/assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md +0 -144
  228. package/skills/adia-ui-release/assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md +0 -155
  229. package/skills/adia-ui-release/assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md +0 -114
  230. package/skills/adia-ui-release/assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md +0 -139
  231. package/skills/adia-ui-release/assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md +0 -124
  232. package/skills/adia-ui-release/assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md +0 -125
  233. package/skills/adia-ui-release/assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md +0 -142
  234. package/skills/adia-ui-release/assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md +0 -97
  235. package/skills/adia-ui-release/assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md +0 -147
  236. package/skills/adia-ui-release/assets/templates/stub-changelog.template.md +0 -22
  237. package/skills/adia-ui-release/evals/evals.json +0 -164
  238. package/skills/adia-ui-release/references/changelog-discipline.md +0 -250
  239. package/skills/adia-ui-release/references/cycle-happy-path.md +0 -520
  240. package/skills/adia-ui-release/references/exe-deploy.md +0 -149
  241. package/skills/adia-ui-release/references/gates-catalog.md +0 -778
  242. package/skills/adia-ui-release/references/independent-package-release.md +0 -129
  243. package/skills/adia-ui-release/references/ledger-discipline.md +0 -232
  244. package/skills/adia-ui-release/references/migration-guide-authoring.md +0 -174
  245. package/skills/adia-ui-release/references/multi-agent-baseline.md +0 -207
  246. package/skills/adia-ui-release/references/notes-authoring.md +0 -212
  247. package/skills/adia-ui-release/references/recovery-paths.md +0 -262
  248. package/skills/adia-ui-release/references/rollup-notes.md +0 -208
  249. package/skills/adia-ui-release/references/teach-protocol.md +0 -468
  250. package/skills/adia-ui-release/scripts/audit-gate-roster.mjs +0 -196
  251. package/skills/adia-ui-release/scripts/make-ledger.mjs +0 -200
  252. package/skills/adia-ui-release/skill.json +0 -77
  253. package/skills/dogfood-sweep/CHANGELOG.md +0 -37
  254. package/skills/dogfood-sweep/README.md +0 -105
  255. package/skills/dogfood-sweep/SKILL.md +0 -1000
  256. package/skills/dogfood-sweep/analyze.mjs +0 -600
  257. package/skills/dogfood-sweep/skill.json +0 -31
  258. /package/skills/{adia-ui-authoring → adia-author}/references/api-contract.md +0 -0
  259. /package/skills/{adia-ui-release → adia-release}/scripts/assert-monorepo-root.mjs +0 -0
@@ -1,138 +0,0 @@
1
- ---
2
- date: 2026-04-27
3
- coverage: canonical
4
- peers:
5
- - claude-md-convention.md
6
- - cross-tool-matrix.md
7
- primary_sources:
8
- - https://agents.md — canonical home of the spec
9
- - https://openai.com/index/agentic-ai-foundation/ — Agentic AI Foundation announcement (Dec 2025)
10
- - https://techcrunch.com/2025/12/09/openai-anthropic-and-block-join-new-linux-foundation-effort-to-standardize-the-ai-agent-era/
11
- - https://developers.openai.com/codex/guides/agents-md
12
- - https://docs.devin.ai/onboard-devin/agents-md
13
- - https://github.blog/changelog/2025-08-28-copilot-coding-agent-now-supports-agents-md-custom-instructions/
14
- - https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/
15
- status: research-verified
16
- ---
17
-
18
- # AGENTS.md — the canonical entry-file standard
19
-
20
- ## What AGENTS.md is
21
-
22
- `AGENTS.md` is a Markdown file at the repo root that instructs an LLM coding agent on how to work in the repo. The format **emerged August 2025** out of a working group of OpenAI Codex, Amp (Sourcegraph), Jules (Google), Cursor, and Factory. As of **December 2025 it is stewarded by the Agentic AI Foundation (AAIF) under the Linux Foundation**, alongside Anthropic, OpenAI, Block, Google, Microsoft, AWS, Bloomberg, and Cloudflare. Adoption (as of April 2026) is **60,000+ open-source projects**.
23
-
24
- Canonical home: [agents.md](https://agents.md).
25
-
26
- ## What the spec actually requires
27
-
28
- **Almost nothing.** The spec is deliberately format-light — *"just standard Markdown, no required fields."* Authority is governance (AAIF/Linux Foundation steward), not schema. Any sectioning convention (e.g., "Where to find things") is **opinionated overlay**, not spec compliance.
29
-
30
- This skill recommends the structure below — but it is *our* recommendation, layered on top of a deliberately permissive spec.
31
-
32
- ## Recommended structure (this skill's overlay)
33
-
34
- ```markdown
35
- # AGENTS.md
36
-
37
- This file gives instructions to LLM coding agents (Codex, Devin, Cursor,
38
- Windsurf, Copilot, Aider, Continue, Jules, Junie — and Claude Code via
39
- symlink/pointer) working in this repo.
40
-
41
- _Last reviewed: 2026-04-27_
42
-
43
- ## Project overview
44
-
45
- One paragraph: what this repo does, who uses it.
46
-
47
- ## Build / test / run
48
-
49
- ```bash
50
- pnpm install
51
- pnpm test
52
- pnpm build
53
- ```
54
-
55
- ## Conventions
56
-
57
- - TypeScript strict mode; ESM only
58
- - Vitest for tests; Playwright for E2E
59
- - Conventional Commits
60
-
61
- ## Trust boundaries
62
-
63
- - DO NOT modify: `db/migrations/`, `legal/`, `LICENSE`
64
- - DO modify: `src/`, `tests/`, `.brain/` (with care for ADRs)
65
-
66
- ## Where to find things
67
-
68
- - **Architecture:** `ARCHITECTURE.md`
69
- - **Active plan:** `.brain/PLAN.md`
70
- - **Roadmap:** `.brain/ROADMAP.md`
71
- - **Architecture Decision Records:** `.brain/adrs/` (see also `.brain/adrs/README.md` for the index)
72
- - **Post-mortems:** `.brain/postmortems/`
73
- - **Runbooks:** `.brain/runbooks/`
74
- - **Released changes:** `CHANGELOG.md`
75
- - **Contributor guide:** `CONTRIBUTING.md`
76
-
77
- ## Memory primitives
78
-
79
- - **Before making architectural decisions**, read `.brain/adrs/` newest-first.
80
- - **When debugging a production issue**, search `.brain/postmortems/`.
81
- ```
82
-
83
- The "Where to find things" section is **load-bearing for navigation** even if not strictly required by the spec. Without it, the agent sees only `AGENTS.md` and has to guess where everything else lives.
84
-
85
- ## Adoption matrix (April 2026)
86
-
87
- | Tool | Reads AGENTS.md natively? | Notes |
88
- |---|---|---|
89
- | **OpenAI Codex** | **Yes** — primary | Plus `~/.codex/AGENTS.md`, `AGENTS.override.md` |
90
- | **Cognition Devin** | **Yes** — primary | docs.devin.ai/onboard-devin/agents-md |
91
- | **Cursor** | **Yes** | Plus `.cursor/rules/*.mdc` (newer) and `.cursorrules` (deprecated, still works) |
92
- | **Windsurf** (Cognition-owned since Dec 2025) | **Yes** | Plus `.windsurfrules`, `.windsurf/rules/` |
93
- | **GitHub Copilot** (coding agent + CLI) | **Yes** (added 2025-08-28) | Also reads `CLAUDE.md`, `GEMINI.md`, `.github/copilot-instructions.md` |
94
- | **VS Code agent mode** | **Yes** | |
95
- | **Google Jules / Gemini CLI** | **Yes** | |
96
- | **JetBrains Junie** | **Yes** | |
97
- | **Sourcegraph Amp** | **Yes** | Founding member of the agents.md working group |
98
- | **goose, Factory, Kilo, Antigravity, OpenClaw** | **Yes** | All listed on agents.md adopters page |
99
- | **Aider** | Configurable via `--read CONVENTIONS.md` | Default is `CONVENTIONS.md`, AGENTS.md only via config |
100
- | **Continue.dev** | **Not yet** | Issue #6716 open |
101
- | **Claude Code** (Anthropic) | **NOT natively as of April 2026** | Issue [#31005](https://github.com/anthropics/claude-code/issues/31005) — workaround: symlink `ln -s AGENTS.md CLAUDE.md` or thin pointer file |
102
-
103
- ## Why AGENTS.md vs CLAUDE.md / .cursorrules / .windsurfrules
104
-
105
- | Approach | Problem |
106
- |---|---|
107
- | `CLAUDE.md` only | Codex / Devin / Cursor / Windsurf / Copilot don't read it natively. Drift between tools. |
108
- | `.cursorrules` only | Other tools don't read it. Same problem inverted. |
109
- | One file per tool | N copies of the same content, guaranteed to drift over time. |
110
- | **`AGENTS.md` + thin pointers/symlinks** | One source of truth; tool-specific files are 3-line redirects (or symlinks). |
111
-
112
- ## Audit checks for AGENTS.md
113
-
114
- When auditing a repo:
115
-
116
- 1. **Existence** — does `AGENTS.md` exist at the repo root?
117
- 2. **Recommended sections present** — project overview, build/test/run, conventions, trust boundaries, where-to-find-things, memory primitives. (None are spec-mandated; all are recommended for navigability.)
118
- 3. **Pointer integrity** — does each `.brain/...` reference point to a real path?
119
- 4. **Freshness** — `_Last reviewed:_` line or YAML frontmatter `date:` present?
120
- 5. **Other entry files are thin pointers or symlinks** — if `CLAUDE.md` / `.cursorrules` / `.windsurfrules` exist, they should redirect to (or symlink to) `AGENTS.md`, not duplicate content. See `claude-md-convention.md`.
121
- 6. **Length** — under ~200 lines is the ergonomic target (per Anthropic's own CLAUDE.md guidance, which ports cleanly to AGENTS.md). Long instructions degrade adherence; push detail into `.brain/` subfolders.
122
-
123
- ## Common anti-patterns
124
-
125
- - **Naked AGENTS.md** — just a project overview, no `Where to find things` section. Agent has nothing to navigate to.
126
- - **Duplicate content** — AGENTS.md and CLAUDE.md both contain full instructions, drifted apart. Pick one canonical, make the others pointers/symlinks.
127
- - **Stale build commands** — `npm install` listed but project moved to pnpm a year ago. Audit catches this by comparing to `package.json` / lockfiles.
128
- - **No trust boundaries** — agent edits files it shouldn't (migrations, legal, generated code). Trust-boundary section prevents this.
129
- - **No memory primitives section** — agent doesn't know to read ADRs before architectural decisions.
130
- - **Bloated AGENTS.md** — 800-line instruction dump that nobody (human or agent) reads. Compress, link out.
131
-
132
- ## Cross-references
133
-
134
- - CLAUDE.md as thin pointer / symlink: `claude-md-convention.md`
135
- - Cross-tool compatibility matrix (full): `cross-tool-matrix.md`
136
- - Audit checks: `../audit-patterns/entry-file-coverage.md`
137
- - Greenfield setup recipe: `../recipes/greenfield-setup.md`
138
- - LLM-doc-writing guidance: `../guidance/llm-doc-writing.md`
@@ -1,123 +0,0 @@
1
- ---
2
- date: 2026-04-27
3
- coverage: canonical
4
- peers:
5
- - agents-md-spec.md
6
- - cross-tool-matrix.md
7
- primary_sources:
8
- - https://code.claude.com/docs/en/best-practices — Anthropic Claude Code best practices
9
- - https://github.com/anthropics/claude-code/issues/31005 — request to support AGENTS.md (Apr 2026: still open, no Anthropic response)
10
- - https://github.com/anthropics/claude-code/issues/6235 — parent issue (3,020 upvotes, 224 comments, 7 months open)
11
- - https://www.humanlayer.dev/blog/writing-a-good-claude-md
12
- status: research-verified
13
- ---
14
-
15
- # CLAUDE.md — thin pointer or symlink to AGENTS.md
16
-
17
- > **The canonical pattern.** When `AGENTS.md` is present, `CLAUDE.md` should be either (a) a 3-5 line redirect, or (b) a symlink: `ln -s AGENTS.md CLAUDE.md`. The same pattern applies to `.cursor/rules/*.mdc`, `.windsurfrules`, `.github/copilot-instructions.md`.
18
-
19
- ## How Claude Code actually reads CLAUDE.md
20
-
21
- Claude Code loads CLAUDE.md with this **precedence** (highest → lowest):
22
-
23
- 1. **Managed enterprise policy** (org-level)
24
- 2. **`~/.claude/CLAUDE.md`** (user global)
25
- 3. **`./CLAUDE.md`** (project root)
26
- 4. **`./CLAUDE.local.md`** (personal overrides, gitignored)
27
-
28
- It also walks parent directories, supports `@import` syntax, and reads `.claude/rules/` for path-scoped rules.
29
-
30
- ## The load-bearing caveat — Claude Code does NOT read AGENTS.md natively
31
-
32
- As of April 2026, **Claude Code does not natively read `AGENTS.md`**. The community has been requesting this since at least September 2025; [issue #31005](https://github.com/anthropics/claude-code/issues/31005) and the parent issue #6235 (3,020 upvotes, 224 comments, 7 months open) both have **zero Anthropic response**.
33
-
34
- Two clean workarounds:
35
-
36
- **Workaround A — Symlink** (minimal repo footprint):
37
-
38
- ```bash
39
- ln -s AGENTS.md CLAUDE.md
40
- git add CLAUDE.md
41
- ```
42
-
43
- **Caveat:** symlinks across `.claude/skills/` ↔ `.agents/skills/` and similar directory pairs have known compatibility quirks; verify on the platforms you target. Windows + WSL contributors may also have issues with symlinks committed to git.
44
-
45
- **Workaround B — Thin pointer file** (the safe default):
46
-
47
- ```markdown
48
- # CLAUDE.md
49
-
50
- This repo's instructions for LLM coding agents live in [`AGENTS.md`](./AGENTS.md).
51
- Please read that file. The contents apply identically to Claude Code.
52
-
53
- _Last reviewed: 2026-04-27_
54
- ```
55
-
56
- Three to five lines. Same shape works for:
57
-
58
- ```
59
- # .cursor/rules/instructions.mdc
60
- This repo's instructions live in AGENTS.md at the root. Please read it.
61
- ```
62
-
63
- ```
64
- # .windsurfrules
65
- This repo's instructions live in AGENTS.md at the root. Please read it.
66
- ```
67
-
68
- ```
69
- # .github/copilot-instructions.md
70
- This repo's instructions live in AGENTS.md at the root. Please read it.
71
- ```
72
-
73
- (Note: GitHub Copilot already reads AGENTS.md natively, but a thin pointer here is harmless and helps consistency.)
74
-
75
- ## Anthropic's own guidance for CLAUDE.md
76
-
77
- Per [Anthropic's Claude Code best practices](https://code.claude.com/docs/en/best-practices) and the widely-cited [HumanLayer post](https://www.humanlayer.dev/blog/writing-a-good-claude-md):
78
-
79
- - **Keep CLAUDE.md under ~200 lines.** Instruction quality decreases as count increases.
80
- - **Only universally-applicable instructions.** Path-specific rules belong in `.claude/rules/<path>/CLAUDE.md`.
81
- - **Prefer hooks over advisory text** for deterministic behavior — hooks always execute; CLAUDE.md text is advisory.
82
- - **Iterate by telling Claude to add corrections to CLAUDE.md itself.** Treat it as live, not frozen.
83
-
84
- These guidelines port cleanly to AGENTS.md — same ergonomics regardless of filename.
85
-
86
- ## Anti-pattern: divergent CLAUDE.md and AGENTS.md
87
-
88
- The most common stale-docs failure: CLAUDE.md was written first, then AGENTS.md added later, and now they have drifted. Different build commands. Different conventions. Different trust boundaries.
89
-
90
- Audit signal:
91
- - Both files exist
92
- - Both are non-trivial in size (>15 lines each)
93
- - A diff shows substantive content differences
94
-
95
- Fix: pick one canonical (AGENTS.md), demote the other to a pointer or symlink.
96
-
97
- ## Migration recipe — turning a fat CLAUDE.md into a thin pointer
98
-
99
- If you have a fat `CLAUDE.md` and no `AGENTS.md`:
100
-
101
- 1. **Copy** `CLAUDE.md` → `AGENTS.md` (`cp CLAUDE.md AGENTS.md`).
102
- 2. **Generalize the wording.** Replace "Claude Code" / "Claude" with "LLM coding agents (Claude Code, Codex, Devin, Cursor, Windsurf, etc.)".
103
- 3. **Add a `Where to find things` section** if missing.
104
- 4. **Trim AGENTS.md to under ~200 lines.** Push detail into `.brain/`.
105
- 5. **Replace `CLAUDE.md`** with either a symlink (`rm CLAUDE.md && ln -s AGENTS.md CLAUDE.md`) or a thin pointer file.
106
- 6. **Add `.cursor/rules/instructions.mdc`, `.windsurfrules`, `.github/copilot-instructions.md`** as thin pointers if those tools are used.
107
- 7. **Commit clearly:** `docs: split CLAUDE.md → AGENTS.md (canonical) + CLAUDE.md (pointer)`.
108
-
109
- ## Audit checks for CLAUDE.md
110
-
111
- 1. **If `AGENTS.md` exists**, `CLAUDE.md` should be either a symlink to it OR a thin pointer (≤15 lines). Anything else is drift.
112
- 2. **If `AGENTS.md` does not exist**, recommend creating one and demoting `CLAUDE.md` to a pointer.
113
- 3. **If both exist as fat files**, flag as drift risk — diff them and recommend consolidation.
114
- 4. **If `CLAUDE.md` references files that don't exist**, flag broken pointers.
115
- 5. **CLAUDE.md > 200 lines** — flag as a length smell. Anthropic's own guidance recommends shorter.
116
-
117
- ## Cross-references
118
-
119
- - AGENTS.md spec: `agents-md-spec.md`
120
- - Full cross-tool compatibility matrix: `cross-tool-matrix.md`
121
- - LLM-doc-writing guidance (length, content quality): `../guidance/llm-doc-writing.md`
122
- - Audit checks: `../audit-patterns/entry-file-coverage.md`
123
- - Migration recipe in detail: `../recipes/audit-existing-repo.md`
@@ -1,85 +0,0 @@
1
- ---
2
- date: 2026-04-27
3
- coverage: canonical
4
- peers:
5
- - agents-md-spec.md
6
- - claude-md-convention.md
7
- primary_sources:
8
- - https://agents.md — canonical adopters list
9
- - https://github.com/anthropics/claude-code/issues/31005 — Claude Code AGENTS.md request
10
- - https://docs.devin.ai/onboard-devin/agents-md
11
- - https://github.blog/changelog/2025-08-28-copilot-coding-agent-now-supports-agents-md-custom-instructions/
12
- - https://cursor.com/docs/rules
13
- - https://aider.chat/docs/usage/conventions.html
14
- - https://docs.continue.dev/customize/deep-dives/rules
15
- - https://docs.github.com/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot
16
- - https://cognition.ai/blog/windsurf — Windsurf acquisition
17
- status: research-verified
18
- ---
19
-
20
- # Cross-tool compatibility matrix
21
-
22
- > **The single load-bearing fact:** AGENTS.md is read natively by almost every major LLM coding agent **except Claude Code**. The skill's recommendation — AGENTS.md canonical, all others as thin pointers/symlinks — minimizes drift across this surface.
23
-
24
- ## The matrix (April 2026)
25
-
26
- | Tool | Native instruction file(s) | Reads AGENTS.md natively? | Notes |
27
- |---|---|---|---|
28
- | **Claude Code** (Anthropic) | `CLAUDE.md` (+ `~/.claude/CLAUDE.md`, `CLAUDE.local.md`, `.claude/rules/`, `@import`) | **No** | Issue [#31005](https://github.com/anthropics/claude-code/issues/31005) open with no Anthropic response. Workaround: `ln -s AGENTS.md CLAUDE.md`. |
29
- | **OpenAI Codex** | `AGENTS.md` (+ `~/.codex/AGENTS.md`, `AGENTS.override.md`) | **Yes** — primary | Founding member of the agents.md working group. |
30
- | **Cognition Devin** | `AGENTS.md` | **Yes** — primary | [docs.devin.ai/onboard-devin/agents-md](https://docs.devin.ai/onboard-devin/agents-md). |
31
- | **Cognition Windsurf** | `.windsurfrules`, `.windsurf/rules/` | **Yes** | Cognition acquired Windsurf Dec 2025 (~$250M). |
32
- | **Cursor** | `.cursor/rules/*.mdc` (newer); `.cursorrules` (deprecated, still works) | **Yes** | Founding member of the agents.md working group. |
33
- | **GitHub Copilot** (coding agent + CLI) | `.github/copilot-instructions.md`, `.github/instructions/**/*.instructions.md` | **Yes** (added 2025-08-28) | Also reads `CLAUDE.md` and `GEMINI.md`. |
34
- | **VS Code agent mode** | `AGENTS.md` (+ Copilot's instructions) | **Yes** | |
35
- | **Google Jules / Gemini CLI** | `AGENTS.md` | **Yes** | Founding member of the working group. |
36
- | **JetBrains Junie** | `AGENTS.md` | **Yes** | |
37
- | **Sourcegraph Amp** | `AGENTS.md` | **Yes** | Founding member. (Sourcegraph Cody, distinct, has no documented file convention; relies on indexed context.) |
38
- | **Aider** | `CONVENTIONS.md` (loaded via `--read`), `.aider.conf.yml` | **Configurable** — not auto by default | Set `read: ["AGENTS.md"]` in config to opt-in. |
39
- | **Continue.dev** | `config.yaml` rules; Markdown rule files in `.continue/rules/` | **Not yet native** | Issue #6716 open. |
40
- | **goose, Factory, Kilo, Antigravity, OpenClaw** | `AGENTS.md` | **Yes** | All listed on agents.md adopters page. |
41
-
42
- ## What this means for the audit
43
-
44
- When auditing a repo:
45
-
46
- 1. **AGENTS.md** is the canonical entry — it should exist and be the fat one.
47
- 2. **For each *other* file the listed tools read natively**, check whether it exists. If it does, it should be a thin pointer or symlink to AGENTS.md, not a fat duplicate.
48
- 3. **Claude Code is the special case.** Either symlink (`ln -s AGENTS.md CLAUDE.md`) or maintain a thin pointer CLAUDE.md.
49
- 4. **Continue.dev is the other holdout.** If the project uses Continue, maintain `.continue/rules/main.md` as a pointer. Watch the issue tracker for native AGENTS.md support.
50
- 5. **Copilot triple-reads** — it reads its own instructions file PLUS CLAUDE.md PLUS AGENTS.md. Drift between any of those will be visible to Copilot users; the audit should flag any inconsistency.
51
-
52
- ## "Gas Town" — what it is, why it's not on this matrix
53
-
54
- Gas Town ([gastownhall.ai](https://gastownhall.ai)) is **Steve Yegge's open-source multi-agent orchestrator** (released Jan 1, 2026), described as "Kubernetes for AI coding agents." It coordinates Claude Code, Codex, Gemini, etc., persisting work state in git-backed hooks.
55
-
56
- It does **not** define a repo-doc format of its own — it dispatches to the underlying agents, each reading whatever file convention they support. Any AGENTS.md / CLAUDE.md set up correctly per this matrix will already work under Gas Town orchestration.
57
-
58
- ## "Hermes" — what it is, why it's not on this matrix
59
-
60
- [NousResearch's Hermes Agent](https://hermes-agent.nousresearch.com) is a self-improving agent that uses **Skills stored in `~/.hermes/skills/`** with a `SKILL.md` + YAML frontmatter pattern (essentially the same shape as Anthropic's Agent Skills). It does **not** define a project-instruction file convention. There is no `HERMES.md`.
61
-
62
- Note: "Hermes" is not Cognition Labs' product. Cognition's coding agent is **Devin** — see the row above. Confusion is common.
63
-
64
- ## Recipe: the minimal pointer set for full compatibility
65
-
66
- If you want to support every major agent without drift, the minimum file set is:
67
-
68
- ```
69
- /repo
70
- ├── AGENTS.md # ← the fat one (canonical)
71
- ├── CLAUDE.md # ← symlink → AGENTS.md OR 3-line pointer
72
- ├── .cursor/rules/main.mdc # ← 3-line pointer (optional; AGENTS.md works native)
73
- ├── .windsurfrules # ← 3-line pointer (optional; AGENTS.md works native)
74
- ├── .github/copilot-instructions.md # ← 3-line pointer (optional; AGENTS.md works native)
75
- ├── .continue/rules/main.md # ← 3-line pointer (Continue doesn't read AGENTS.md natively)
76
- └── CONVENTIONS.md # ← only if Aider is in use
77
- ```
78
-
79
- If you do not use Cursor/Windsurf/Copilot/Continue, drop those files. The two that always matter: AGENTS.md (everyone) and CLAUDE.md (Claude Code).
80
-
81
- ## Cross-references
82
-
83
- - AGENTS.md spec: `agents-md-spec.md`
84
- - CLAUDE.md thin-pointer/symlink: `claude-md-convention.md`
85
- - Audit checks: `../audit-patterns/entry-file-coverage.md`
@@ -1,232 +0,0 @@
1
- ---
2
- date: 2026-04-27
3
- coverage: canonical
4
- peers:
5
- - agents-md-spec.md
6
- - claude-md-convention.md
7
- - cross-tool-matrix.md
8
- - ../audit-patterns/redundancy-detection.md
9
- primary_sources:
10
- - https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/about-community-health-files
11
- - https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository
12
- - https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors
13
- - https://opensource.guide/code-of-conduct/
14
- - https://www.contributor-covenant.org/
15
- - https://keepachangelog.com/
16
- status: research-verified
17
- ---
18
-
19
- # README, CONTRIBUTING, SECURITY — the human-and-LLM landing files
20
-
21
- > **The premise.** AGENTS.md is for agents only. README.md is the *front door* — where humans land first, where GitHub auto-renders, where the LLM lands when the user pastes a repo URL into a chat. The two files have different jobs and shouldn't duplicate each other.
22
-
23
- ## The role split
24
-
25
- | File | Audience | Role | Loaded by agent? |
26
- |---|---|---|---|
27
- | `README.md` | Humans + LLMs in cold-start | What this project is, install + run, how to find more | Often (when user references the repo at large) |
28
- | `AGENTS.md` | Coding agents in a session | How to *work in* this repo: commands, conventions, trust boundaries, memory homes | Always (every session) |
29
- | `CONTRIBUTING.md` | Humans contributing | How to participate: PR process, code review norms, contributor onboarding | Sometimes |
30
- | `SECURITY.md` | Humans + automated scanners | How to report vulnerabilities; supported versions; disclosure policy | Rarely |
31
- | `CODE_OF_CONDUCT.md` | Contributors + maintainers | Behavior expectations | Almost never |
32
-
33
- README.md and AGENTS.md are **complementary, not redundant**. The redundancy-detection pattern (`../audit-patterns/redundancy-detection.md`) catches when build commands or facts appear in both — that's where drift starts.
34
-
35
- ## README.md — the human + LLM front door
36
-
37
- | Section | Required? | Notes |
38
- |---|---|---|
39
- | Project name + tagline | Yes | One sentence |
40
- | What it does | Yes | One paragraph |
41
- | Why use it (over alternatives) | Recommended | If applicable |
42
- | Quickstart / install | Yes | Minimal commands; link to AGENTS.md for full setup |
43
- | Usage example | Recommended | Smallest meaningful example |
44
- | Documentation pointer | Yes | Link to `docs/`, AGENTS.md, or external docs site |
45
- | License | Yes | Or link to `LICENSE` |
46
- | Contributing pointer | Recommended | One line linking to `CONTRIBUTING.md` |
47
- | Security pointer | Recommended | One line linking to `SECURITY.md` |
48
- | Status badges | Optional | Don't bloat — pick load-bearing 2-3 |
49
-
50
- ### What does NOT go in
51
-
52
- - **Full build/test/run commands** — that's AGENTS.md's job. README has a *quickstart*; AGENTS.md has the canonical commands. Both = drift waiting to happen.
53
- - **Conventions / coding standards** — AGENTS.md or CONTRIBUTING.md.
54
- - **Architecture details** — `ARCHITECTURE.md`.
55
- - **Trust boundaries / agent-specific instructions** — AGENTS.md.
56
- - **Long FAQ** — `docs/faq.md`.
57
-
58
- ### Length target
59
-
60
- 200-300 lines for open-source. Internal/private repos: 50-150. A 1000-line README is almost always content that belongs in `docs/`.
61
-
62
- ### Pointer-discipline pattern
63
-
64
- The README's job is to *route* — not *contain*.
65
-
66
- ```markdown
67
- # Acme Service
68
-
69
- A high-throughput message router for federated agent systems.
70
-
71
- ## Quickstart
72
-
73
- ```bash
74
- pnpm install
75
- pnpm dev
76
- ```
77
-
78
- For canonical build / test / run commands and contributor conventions,
79
- see [AGENTS.md](./AGENTS.md). For full architecture, see
80
- [`ARCHITECTURE.md`](ARCHITECTURE.md).
81
-
82
- ## Documentation
83
-
84
- - **For agents (Claude, Codex, Cursor, ...):** [`AGENTS.md`](./AGENTS.md)
85
- - **Contributing:** [`CONTRIBUTING.md`](./CONTRIBUTING.md)
86
- - **Security policy:** [`SECURITY.md`](./SECURITY.md)
87
- - **Architecture:** [`ARCHITECTURE.md`](ARCHITECTURE.md)
88
- - **Decisions (ADRs):** [`.brain/adrs/`](.brain/adrs/)
89
-
90
- ## License
91
-
92
- [Apache 2.0](LICENSE).
93
-
94
- _Last reviewed: 2026-04-27_
95
- ```
96
-
97
- The `pnpm dev` command in the quickstart is duplicated minimally on purpose — humans skim README and want "can I run this in 30 seconds?". The agent reaches for AGENTS.md anyway.
98
-
99
- ## CONTRIBUTING.md — how humans participate
100
-
101
- GitHub auto-renders `CONTRIBUTING.md` and surfaces it in the contributor flow (per [GitHub's community-health docs](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions)).
102
-
103
- | Section | Required? | Notes |
104
- |---|---|---|
105
- | Local setup | Yes | Or link to AGENTS.md / `docs/setup.md` |
106
- | Running tests | Yes | Or link to AGENTS.md |
107
- | Branching / commit conventions | Yes | E.g., Conventional Commits |
108
- | PR process | Yes | Where to open PRs, who reviews, expected turnaround |
109
- | Code-review norms | Recommended | E.g., "approve on intent, not nitpicks" |
110
- | Issue templates / labels | Recommended | If you use them |
111
- | Code of conduct + Security pointers | Recommended | One-line links |
112
-
113
- ### CONTRIBUTING vs AGENTS — the key split
114
-
115
- CONTRIBUTING is for **humans contributing** (norms, review process, branching). AGENTS is for **agents working in the repo** (commands, conventions, trust boundaries). They overlap on `Build / test / run`, and that's where drift happens. Cleanest pattern:
116
-
117
- ```markdown
118
- ## Local setup
119
- For build / test / run commands, see [`AGENTS.md`](./AGENTS.md). For
120
- contribution conventions specific to humans (branching, PR flow,
121
- code-review norms), continue below.
122
- ```
123
-
124
- Same redundancy-elimination pattern as `../audit-patterns/redundancy-detection.md`.
125
-
126
- ## SECURITY.md — disclosure policy
127
-
128
- GitHub auto-renders `SECURITY.md` at `<repo>/security/policy` and links to it from the **Report a vulnerability** flow (per [GitHub's adding-a-security-policy docs](https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository)).
129
-
130
- ```markdown
131
- # Security Policy
132
-
133
- ## Supported versions
134
-
135
- | Version | Supported |
136
- |---------|--------------------|
137
- | 2.x | :white_check_mark: |
138
- | 1.x | :x: |
139
-
140
- ## Reporting a vulnerability
141
-
142
- Please report vulnerabilities to security@acme.example. We respond
143
- within 48 hours. Do **not** file public issues for security reports.
144
-
145
- We follow [coordinated vulnerability disclosure](https://www.cisa.gov/coordinated-vulnerability-disclosure-process):
146
- acknowledge within 48h, investigate within 7d, public disclosure
147
- within 90 days of report (or upon fix release, whichever sooner).
148
-
149
- _Last reviewed: 2026-04-27_
150
- ```
151
-
152
- ### `SECURITY.md` placement
153
-
154
- Three locations are equally valid (per GitHub docs):
155
-
156
- | Location | When |
157
- |---|---|
158
- | `SECURITY.md` (repo root) | Most repos |
159
- | `.github/SECURITY.md` | If you keep policy files in `.github/` |
160
- | `docs/SECURITY.md` | If you want it docs-aligned (renders in GitHub UI either way) |
161
-
162
- GitHub auto-renders all three. **Pick one — having two is confusing.**
163
-
164
- What does NOT go in: implementation details of past vulnerabilities (those go in `.brain/postmortems/` with sensitive details redacted), threat-model docs (`docs/threat-model.md`), compliance attestations (`docs/compliance/`).
165
-
166
- ## CODE_OF_CONDUCT.md — behavior expectations
167
-
168
- Most projects use the [Contributor Covenant](https://www.contributor-covenant.org/) verbatim — the de facto industry default. Placement: repo root or `.github/`. Same auto-render rules as SECURITY.md. The audit flags absence on public/community repos as **recommended-low**; for internal-only repos, not required.
169
-
170
- ## How AGENTS.md should reference these files
171
-
172
- In `Where to find things`:
173
-
174
- ```markdown
175
- - **README:** `README.md` — the human-and-LLM front door
176
- - **Contributor guide:** `CONTRIBUTING.md`
177
- - **Security policy:** `SECURITY.md`
178
- - **Code of conduct:** `CODE_OF_CONDUCT.md`
179
- ```
180
-
181
- These are *navigation* references. The agent already loads AGENTS.md every session; it pulls in README/CONTRIBUTING/SECURITY only when the user's question implies it.
182
-
183
- ## Avoiding redundancy with AGENTS.md
184
-
185
- | Topic | AGENTS.md | README.md | CONTRIBUTING.md | SECURITY.md |
186
- |---|---|---|---|---|
187
- | What this project is | brief tagline (header) | full one-paragraph | (no) | (no) |
188
- | Build / test / run | **canonical** | quickstart only, link to AGENTS | "see AGENTS.md" | (no) |
189
- | Conventions | **canonical** | (no) | branching/commits only | (no) |
190
- | Trust boundaries | **canonical** | (no) | (no) | (no) |
191
- | Where to find things | **canonical** | brief pointer to AGENTS | (no) | (no) |
192
- | Memory primitives | **canonical** | (no) | (no) | (no) |
193
- | PR process | (no) | (no) | **canonical** | (no) |
194
- | Vulnerability reporting | (no) | (no) | (no) | **canonical** |
195
- | Architecture | "see ARCHITECTURE.md" | "see ARCHITECTURE.md" | (no) | (no) |
196
-
197
- Every cell with **canonical** is the *only* place that information lives. Other cells link to it. Detected/enforced by `../audit-patterns/redundancy-detection.md`.
198
-
199
- ## GitHub UI behaviors
200
-
201
- - README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT all get **auto-rendered** at well-known URLs.
202
- - The **community profile** view (`<repo>/community`) shows which recommended files are present.
203
- - The "first-time contributor" prompt surfaces CONTRIBUTING and CODE_OF_CONDUCT.
204
- - The **Report a vulnerability** flow surfaces SECURITY.md.
205
- - GitHub does **not** auto-render AGENTS.md as anything special — it's just Markdown. The `agents.md` standard exists to be agent-readable, not GitHub-UI-special.
206
-
207
- ## Audit checks
208
-
209
- 1. `README.md` exists, ≤300 lines (warn at 200; error at 500).
210
- 2. `CONTRIBUTING.md` exists for public/community repos.
211
- 3. `SECURITY.md` exists for public/community repos with users.
212
- 4. `CODE_OF_CONDUCT.md` exists for public/community repos with contributors.
213
- 5. None duplicate AGENTS.md's canonical content (build commands, conventions, trust boundaries) — flag as drift risk per `../audit-patterns/redundancy-detection.md`.
214
- 6. README references AGENTS.md (so agents and humans converge on the same canonical instructions).
215
- 7. SECURITY.md is in *one* location (root, `.github/`, or `docs/`) — flag if multiple.
216
-
217
- ## Common anti-patterns
218
-
219
- - **README.md duplicates the entire AGENTS.md.** Drift waiting to happen. Compress to a routing layer.
220
- - **CONTRIBUTING.md re-lists build commands.** Same drift problem. Link to AGENTS.md.
221
- - **SECURITY.md says "report vulnerabilities" without saying *how*.** Useless. Include contact + SLA.
222
- - **CODE_OF_CONDUCT.md modified beyond the Contributor Covenant baseline.** Usually unproductive scope creep.
223
- - **Status badges everywhere, no real content.** Fails the "what does this do?" test in 5 seconds.
224
- - **README.md without `_Last reviewed:_` or frontmatter date.** Fails the staleness gate.
225
-
226
- ## Cross-references
227
-
228
- - AGENTS.md spec: `agents-md-spec.md`
229
- - CLAUDE.md as thin pointer: `claude-md-convention.md`
230
- - Cross-tool compatibility matrix: `cross-tool-matrix.md`
231
- - Redundancy detection: `../audit-patterns/redundancy-detection.md`
232
- - Greenfield setup: `../recipes/greenfield-setup.md`