---
name: adr-index
description: Generate and validate the ADR index for this repo (docs/adr/*.md -> docs/adr/index.json). Use when updating ADRs, checking ADR metadata format, or keeping agent context small; enforce header/metadata rules and never append done-logs to AGENTS.md.
---
# ADR Index
## Workflow
1) Run the generator/validator:
```bash
python .codex/skills/adr-index/scripts/build_adr_index.py
```
2) Review the short summary output (ADR count + whether index.json changed).
## ADR Rules (enforced by script)
- First line must be `# ADR-YYYYMMDD-####-XXX:
` (date, 4 digits, 3 random chars, non-empty title).
- Optional metadata lines within the first ~40 lines:
- `Tags: a, b, c`
- `Status: Proposed | Accepted | Deprecated`
- `Date: YYYY-MM-DD`
- `TL;DR: one short sentence`
## Output
- Writes `docs/adr/index.json` with fields: id, title, tags[], status, date, tldr, path.
- Sorts by date desc, then id desc.
- Prints only a short summary line.
## Guardrails
- Never append done-logs to `AGENTS.md`; decisions belong in ADRs.
- Ensure `AGENTS.md` includes the Documentation Workflow policy block below; add it if missing.
## AGENTS.md Policy Block
```
## Documentation Workflow
The following terms are to be interpreted as described in RFC 2119:
“MUST”, “MUST NOT”, “SHOULD”, and “MAY”.
1. ADRs MUST be written in `docs/adr/*.md`.
2. When an ADR is added or modified, `docs/adr/index.json` MUST be updated accordingly.
3. The ADR index MUST be generated using the `adr-index` skill.
4. AGENTS.md MUST NOT accumulate completed work logs.
Architectural decisions MUST be recorded in ADRs.
AGENTS.md MAY contain only links to ADRs or brief summaries.
### ADR Detection Rule
If you make or rely on a decision that:
- introduces architectural constraints,
- involves trade-offs,
- or is not obvious from code alone,
you MUST pause and explicitly state:
"An ADR is required for this decision."
```