@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.
- package/.claude-plugin/plugin.json +4 -7
- package/CHANGELOG.md +35 -34
- package/README.md +35 -40
- package/agents/a2ui-engineer.md +22 -53
- package/agents/component-author.md +29 -0
- package/agents/framework-verifier.md +26 -0
- package/agents/release-engineer.md +21 -81
- package/agents/routing-corpus.json +293 -64
- package/bin/demo-postwrite-pattern-gate +94 -0
- package/bin/forge-lint +17 -2
- package/bin/sidecar-prewrite-guard +104 -0
- package/commands/deploy.md +9 -0
- package/commands/dogfood.md +10 -0
- package/commands/gen-review.md +9 -0
- package/commands/release.md +10 -0
- package/hooks/hooks.json +15 -0
- package/package.json +3 -6
- package/references/contracts/a2ui-mcp-surface.md +35 -0
- package/references/contracts/migration-guide-format.md +34 -0
- package/references/shared/content-trust.md +19 -74
- package/skills/adia-a2ui/SKILL.md +99 -0
- package/skills/{adia-ui-a2ui → adia-a2ui}/evals/routing-corpus.json +10 -10
- package/skills/adia-a2ui/references/anti-patterns.md +27 -0
- package/skills/adia-a2ui/references/chunk-authoring.md +71 -0
- package/skills/adia-a2ui/references/corpus-discipline.md +68 -0
- package/skills/adia-a2ui/references/eval-diagnostics.md +86 -0
- package/skills/adia-a2ui/references/format-extension-decisions.md +66 -0
- package/skills/adia-a2ui/references/leverage-rules.md +52 -0
- package/skills/adia-a2ui/references/mcp-pipeline-ops.md +83 -0
- package/skills/adia-a2ui/references/mcp-tool-reference.md +59 -0
- package/skills/adia-a2ui/references/pipeline-overview.md +115 -0
- package/skills/adia-a2ui/references/semantic-fail-lifting.md +74 -0
- package/skills/adia-a2ui/references/strategy-engines.md +109 -0
- package/skills/adia-a2ui/references/zettel-calibration.md +104 -0
- package/skills/adia-author/SKILL.md +112 -0
- package/skills/adia-author/evals/routing-corpus.json +222 -0
- package/skills/{adia-ui-authoring → adia-author}/references/anti-patterns.md +33 -4
- package/skills/{adia-ui-authoring → adia-author}/references/authoring-cycle.md +9 -11
- package/skills/adia-author/references/canonical-pattern-index.md +243 -0
- package/skills/{adia-ui-authoring → adia-author}/references/code-style.md +19 -21
- package/skills/adia-author/references/common-gotchas.md +129 -0
- package/skills/adia-author/references/composite-demo-protocol.md +271 -0
- package/skills/{adia-ui-authoring → adia-author}/references/css-patterns.md +19 -6
- package/skills/{adia-ui-authoring → adia-author}/references/lifecycle-patterns.md +1 -0
- package/skills/{adia-ui-authoring → adia-author}/references/llm-bridge.md +3 -5
- package/skills/{adia-ui-authoring → adia-author}/references/module-promotion.md +20 -38
- package/skills/{adia-ui-authoring → adia-author}/references/primitive-audit.md +2 -4
- package/skills/{adia-ui-authoring → adia-author}/references/shell-patterns.md +12 -18
- package/skills/{adia-ui-authoring → adia-author}/references/token-contract.md +5 -7
- package/skills/{adia-ui-authoring → adia-author}/references/worked-example.md +3 -3
- package/skills/{adia-ui-authoring → adia-author}/references/yaml-contract.md +3 -3
- package/skills/{adia-ui-authoring → adia-author}/scripts/build-canonical-pattern-index.mjs +3 -3
- package/skills/adia-deploy/SKILL.md +128 -0
- package/skills/{adia-ui-ops → adia-deploy}/references/deploy-playbooks.md +47 -30
- package/skills/adia-dogfood/SKILL.md +124 -0
- package/skills/adia-dogfood/references/admin-shell-anatomy.md +77 -0
- package/skills/adia-dogfood/references/app-shell-pitfalls.md +66 -0
- package/skills/adia-dogfood/references/card-anatomy-sweep.md +66 -0
- package/skills/adia-dogfood/references/html-attr-sweep.md +63 -0
- package/skills/adia-dogfood/references/native-leak-annotations.md +73 -0
- package/skills/adia-dogfood/references/visual-probe-triage.md +80 -0
- package/skills/{adia-ui-dogfood → adia-dogfood}/scripts/analyze.mjs +30 -14
- package/skills/adia-gen-review/SKILL.md +127 -0
- package/skills/adia-gen-review/references/corpus-html-patterns.md +279 -0
- package/skills/adia-gen-review/references/loop-protocol.md +216 -0
- package/skills/adia-gen-review/references/rubric-cosmetic.md +100 -0
- package/skills/adia-gen-review/references/rubric-decompose.md +101 -0
- package/skills/adia-gen-review/references/rubric-score.md +214 -0
- package/skills/{adia-ui-gen-review → adia-gen-review}/references/scores.schema.json +2 -2
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-coverage-audit.mjs +4 -4
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-decompose.mjs +10 -6
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-status.mjs +5 -5
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/validate-cycle-scores.mjs +5 -5
- package/skills/adia-llm-internals/SKILL.md +77 -0
- package/skills/{adia-ui-llm → adia-llm-internals}/references/adapter-contract.md +4 -2
- package/skills/{adia-ui-llm → adia-llm-internals}/references/add-a-provider.md +4 -5
- package/skills/{adia-ui-llm → adia-llm-internals}/references/bridge-facade.md +10 -3
- package/skills/{adia-ui-llm → adia-llm-internals}/references/browser-proxy-boundary.md +1 -1
- package/skills/{adia-ui-llm → adia-llm-internals}/references/model-registry.md +5 -3
- package/skills/{adia-ui-llm → adia-llm-internals}/references/streaming-sse.md +2 -2
- package/skills/adia-release/SKILL.md +72 -0
- package/skills/adia-release/references/changelog-discipline.md +119 -0
- package/skills/adia-release/references/cut-procedure.md +247 -0
- package/skills/adia-release/references/gates-catalog.md +222 -0
- package/skills/adia-release/references/independent-package-release.md +52 -0
- package/skills/adia-release/references/migration-guide-authoring.md +86 -0
- package/skills/adia-release/references/notes-authoring.md +90 -0
- package/skills/adia-release/references/recovery-paths.md +106 -0
- package/skills/{adia-ui-release → adia-release}/scripts/bump.mjs +28 -3
- package/skills/{adia-ui-release → adia-release}/scripts/dispatch-publish.mjs +10 -7
- package/skills/{adia-ui-release → adia-release}/scripts/insert-stub.mjs +1 -1
- package/skills/{adia-ui-release → adia-release}/scripts/package-paths.mjs +6 -0
- package/skills/{adia-ui-release → adia-release}/scripts/promote-unreleased.mjs +1 -1
- package/skills/{adia-ui-release → adia-release}/scripts/release-pack.mjs +38 -31
- package/skills/{adia-ui-release → adia-release}/scripts/tag-lockstep.mjs +7 -3
- package/skills/adia-site-docs/SKILL.md +68 -0
- package/skills/adia-site-docs/evals/audit-report.md +30 -0
- package/skills/adia-site-docs/evals/routing-corpus.json +176 -0
- package/skills/adia-site-docs/intent.md +72 -0
- package/agents/README.md +0 -209
- package/agents/author.md +0 -56
- package/agents/repo-steward.md +0 -56
- package/agents/spec-architect.md +0 -53
- package/agents/tech-lead.md +0 -57
- package/agents/verifier.md +0 -55
- package/bin/lib/audit-axes.mjs +0 -555
- package/bin/lib/dry-run-irreversible.mjs +0 -236
- package/bin/lib/run-skill-evals.mjs +0 -487
- package/bin/lib/teach-router.mjs +0 -250
- package/commands/adia-forge-a2ui.md +0 -10
- package/commands/adia-forge-author.md +0 -10
- package/commands/adia-forge-dogfood.md +0 -8
- package/commands/adia-forge-llm.md +0 -8
- package/commands/adia-forge-orient.md +0 -10
- package/commands/adia-forge-release.md +0 -8
- package/commands/adia-forge-review.md +0 -10
- package/references/shared/pev-rationale.md +0 -64
- package/references/shared/skill-conventions.md +0 -133
- package/skills/adia-ui-a2ui/CHANGELOG.md +0 -32
- package/skills/adia-ui-a2ui/SKILL.md +0 -243
- package/skills/adia-ui-a2ui/evals/adversarial-corpus.json +0 -75
- package/skills/adia-ui-a2ui/evals/teach-routing-cases.json +0 -100
- package/skills/adia-ui-a2ui/references/anti-patterns.md +0 -24
- package/skills/adia-ui-a2ui/references/chunk-authoring.md +0 -88
- package/skills/adia-ui-a2ui/references/corpus-discipline.md +0 -56
- package/skills/adia-ui-a2ui/references/eval-diagnostics.md +0 -127
- package/skills/adia-ui-a2ui/references/fragment-graph.md +0 -91
- package/skills/adia-ui-a2ui/references/mcp-pipeline-ops.md +0 -106
- package/skills/adia-ui-a2ui/references/mcp-tool-reference.md +0 -398
- package/skills/adia-ui-a2ui/references/pipeline-overview.md +0 -175
- package/skills/adia-ui-a2ui/references/semantic-fail-lifting.md +0 -120
- package/skills/adia-ui-a2ui/references/strategy-engines.md +0 -111
- package/skills/adia-ui-a2ui/references/teach-protocol.md +0 -220
- package/skills/adia-ui-a2ui/references/zettel-calibration.md +0 -93
- package/skills/adia-ui-a2ui/scripts/audit-a2ui-roster.mjs +0 -96
- package/skills/adia-ui-a2ui/scripts/teach-route.mjs +0 -157
- package/skills/adia-ui-a2ui/skill.json +0 -38
- package/skills/adia-ui-authoring/CHANGELOG.md +0 -32
- package/skills/adia-ui-authoring/SKILL.md +0 -256
- package/skills/adia-ui-authoring/assets/case-studies/admin-shell-decomposition.md +0 -101
- package/skills/adia-ui-authoring/assets/case-studies/maxtokens-32768-discovery.md +0 -109
- package/skills/adia-ui-authoring/assets/case-studies/theme-panel-promotion.md +0 -113
- package/skills/adia-ui-authoring/evals/adversarial-design-plan-gates.json +0 -138
- package/skills/adia-ui-authoring/evals/routing-corpus.json +0 -245
- package/skills/adia-ui-authoring/references/canonical-pattern-index.md +0 -179
- package/skills/adia-ui-authoring/references/common-gotchas.md +0 -93
- package/skills/adia-ui-authoring/references/composite-demo-protocol.md +0 -1084
- package/skills/adia-ui-authoring/references/teach-protocol.md +0 -428
- package/skills/adia-ui-authoring/scripts/audit-authoring-roster.mjs +0 -148
- package/skills/adia-ui-authoring/skill.json +0 -45
- package/skills/adia-ui-dogfood/CHANGELOG.md +0 -17
- package/skills/adia-ui-dogfood/README.md +0 -62
- package/skills/adia-ui-dogfood/SKILL.md +0 -866
- package/skills/adia-ui-dogfood/skill.json +0 -40
- package/skills/adia-ui-forge/SKILL.md +0 -88
- package/skills/adia-ui-forge/evals/routing-corpus.json +0 -30
- package/skills/adia-ui-gen-review/CHANGELOG.md +0 -108
- package/skills/adia-ui-gen-review/SKILL.md +0 -266
- package/skills/adia-ui-gen-review/references/loop-protocol.md +0 -712
- package/skills/adia-ui-gen-review/references/rubric-cosmetic.md +0 -144
- package/skills/adia-ui-gen-review/references/rubric-decompose.md +0 -117
- package/skills/adia-ui-gen-review/references/rubric-score.md +0 -249
- package/skills/adia-ui-gen-review/references/teach-protocol.md +0 -214
- package/skills/adia-ui-gen-review/skill.json +0 -23
- package/skills/adia-ui-llm/CHANGELOG.md +0 -25
- package/skills/adia-ui-llm/SKILL.md +0 -165
- package/skills/adia-ui-llm/evals/adversarial-corpus.json +0 -75
- package/skills/adia-ui-llm/evals/routing-corpus.json +0 -30
- package/skills/adia-ui-llm/evals/teach-routing-cases.json +0 -73
- package/skills/adia-ui-llm/references/teach-protocol.md +0 -78
- package/skills/adia-ui-llm/scripts/audit-llm-roster.mjs +0 -93
- package/skills/adia-ui-llm/scripts/teach-route.mjs +0 -119
- package/skills/adia-ui-llm/skill.json +0 -33
- package/skills/adia-ui-ops/CHANGELOG.md +0 -291
- package/skills/adia-ui-ops/SKILL.md +0 -401
- package/skills/adia-ui-ops/references/INDEX.md +0 -158
- package/skills/adia-ui-ops/references/audit-cadence.md +0 -263
- package/skills/adia-ui-ops/references/audit-patterns/archive-link-sweep.md +0 -96
- package/skills/adia-ui-ops/references/audit-patterns/audit-history-ledger.md +0 -162
- package/skills/adia-ui-ops/references/audit-patterns/browser-bundle-node-imports.md +0 -154
- package/skills/adia-ui-ops/references/audit-patterns/changelog-unreleased-bloat.md +0 -75
- package/skills/adia-ui-ops/references/audit-patterns/coverage-gaps.md +0 -187
- package/skills/adia-ui-ops/references/audit-patterns/entry-file-coverage.md +0 -122
- package/skills/adia-ui-ops/references/audit-patterns/format-hygiene.md +0 -217
- package/skills/adia-ui-ops/references/audit-patterns/lockstep-versioning.md +0 -113
- package/skills/adia-ui-ops/references/audit-patterns/memory-fragmentation.md +0 -180
- package/skills/adia-ui-ops/references/audit-patterns/orphan-detection.md +0 -202
- package/skills/adia-ui-ops/references/audit-patterns/pointer-validation.md +0 -180
- package/skills/adia-ui-ops/references/audit-patterns/redundancy-detection.md +0 -210
- package/skills/adia-ui-ops/references/audit-patterns/spec-dating-sweep.md +0 -91
- package/skills/adia-ui-ops/references/audit-patterns/stale-content.md +0 -182
- package/skills/adia-ui-ops/references/audit-patterns/staleness-tooling.md +0 -156
- package/skills/adia-ui-ops/references/audit-patterns/token-waste-detection.md +0 -196
- package/skills/adia-ui-ops/references/doc-types/adr-pattern.md +0 -210
- package/skills/adia-ui-ops/references/doc-types/architecture-md.md +0 -190
- package/skills/adia-ui-ops/references/doc-types/changelog.md +0 -183
- package/skills/adia-ui-ops/references/doc-types/decisions-log.md +0 -146
- package/skills/adia-ui-ops/references/doc-types/plan-roadmap.md +0 -182
- package/skills/adia-ui-ops/references/doc-types/postmortem-pattern.md +0 -206
- package/skills/adia-ui-ops/references/genres/prose-and-writing.md +0 -149
- package/skills/adia-ui-ops/references/guidance/context-budget.md +0 -137
- package/skills/adia-ui-ops/references/guidance/llm-doc-writing.md +0 -116
- package/skills/adia-ui-ops/references/guidance/reliability-dial.md +0 -186
- package/skills/adia-ui-ops/references/recipes/adr-introduction.md +0 -211
- package/skills/adia-ui-ops/references/recipes/audit-existing-repo.md +0 -234
- package/skills/adia-ui-ops/references/recipes/cold-start-harvest.md +0 -263
- package/skills/adia-ui-ops/references/recipes/concurrent-learnings-merge.md +0 -158
- package/skills/adia-ui-ops/references/recipes/continuous-learning-loop.md +0 -169
- package/skills/adia-ui-ops/references/recipes/external-reference-verification.md +0 -158
- package/skills/adia-ui-ops/references/recipes/findings-index-readout.md +0 -126
- package/skills/adia-ui-ops/references/recipes/greenfield-setup.md +0 -252
- package/skills/adia-ui-ops/references/recipes/harvest-repo-brain.md +0 -169
- package/skills/adia-ui-ops/references/recipes/import-repo-brain-harvest.md +0 -153
- package/skills/adia-ui-ops/references/recipes/memory-organization.md +0 -182
- package/skills/adia-ui-ops/references/recipes/recommend-then-validate.md +0 -199
- package/skills/adia-ui-ops/references/recipes/self-healing-hooks.md +0 -366
- package/skills/adia-ui-ops/references/recipes/skill-stewardship-loop.md +0 -113
- package/skills/adia-ui-ops/references/standards/agents-md-spec.md +0 -138
- package/skills/adia-ui-ops/references/standards/claude-md-convention.md +0 -123
- package/skills/adia-ui-ops/references/standards/cross-tool-matrix.md +0 -85
- package/skills/adia-ui-ops/references/standards/readme-conventions.md +0 -232
- package/skills/adia-ui-ops/references/teach-protocol.md +0 -215
- package/skills/adia-ui-ops/scripts/audit-ops-roster.mjs +0 -104
- package/skills/adia-ui-ops/skill.json +0 -65
- package/skills/adia-ui-release/CHANGELOG.md +0 -66
- package/skills/adia-ui-release/SKILL.md +0 -323
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md +0 -144
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md +0 -155
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md +0 -114
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md +0 -139
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md +0 -124
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md +0 -125
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md +0 -142
- package/skills/adia-ui-release/assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md +0 -97
- package/skills/adia-ui-release/assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md +0 -147
- package/skills/adia-ui-release/assets/templates/stub-changelog.template.md +0 -22
- package/skills/adia-ui-release/evals/evals.json +0 -164
- package/skills/adia-ui-release/references/changelog-discipline.md +0 -250
- package/skills/adia-ui-release/references/cycle-happy-path.md +0 -520
- package/skills/adia-ui-release/references/exe-deploy.md +0 -149
- package/skills/adia-ui-release/references/gates-catalog.md +0 -778
- package/skills/adia-ui-release/references/independent-package-release.md +0 -129
- package/skills/adia-ui-release/references/ledger-discipline.md +0 -232
- package/skills/adia-ui-release/references/migration-guide-authoring.md +0 -174
- package/skills/adia-ui-release/references/multi-agent-baseline.md +0 -207
- package/skills/adia-ui-release/references/notes-authoring.md +0 -212
- package/skills/adia-ui-release/references/recovery-paths.md +0 -262
- package/skills/adia-ui-release/references/rollup-notes.md +0 -208
- package/skills/adia-ui-release/references/teach-protocol.md +0 -468
- package/skills/adia-ui-release/scripts/audit-gate-roster.mjs +0 -196
- package/skills/adia-ui-release/scripts/make-ledger.mjs +0 -200
- package/skills/adia-ui-release/skill.json +0 -77
- package/skills/dogfood-sweep/CHANGELOG.md +0 -37
- package/skills/dogfood-sweep/README.md +0 -105
- package/skills/dogfood-sweep/SKILL.md +0 -1000
- package/skills/dogfood-sweep/analyze.mjs +0 -600
- package/skills/dogfood-sweep/skill.json +0 -31
- /package/skills/{adia-ui-authoring → adia-author}/references/api-contract.md +0 -0
- /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`
|