executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
docs-adrCreate and maintain lightweight Architecture Decision Records as agent-readable decision memory: what was decided, why, and what was rejected. Use when "record this decision", "set up ADRs", or "the agent keeps suggesting Y again".
Independent GitHub snapshot · Automated classification · Original documentation governs
Degree of freedom: MIXED — T1 is the priority. What to record
[HIGH freedom]; format, supersede-not-edit, and present-backfill-first
[LOW freedom — run exactly].
Install and maintain the repo's decision memory. Code shows what was decided; nothing shows why, or what was rejected — so every new agent session is free to "improve" its way back to an alternative you already ruled out. Re-litigated decisions are the slowest form of drift. An ADR makes the decision durable and its reversal deliberate.
| Skill | Owns |
|---|---|
| docs-adr (this) | Why we chose X; rejected alternatives; INDEX.md |
plan-docs-sync | Docs vs what the code is — not why |
handoff | Session state for the next chat — not permanent decisions |
docs-writer | Tutorials / README prose |
enhance-arch-boundaries | Mechanical layering; this records the model |
workflow-housekeep | Periodic index / status sweep |
housekeep-backlog | Parked-work register (BACKLOG.md), not decisions |
Observe: agent PR re-proposes Zustand; repo uses React context for session by choice; no ADR. Interpret: the rejection is oral memory — the next session will retry. Classify: ADR — stack choice with a rejected alternative. Write: "We use React context for session. Rejected Zustand: duplicate store vs server session." Present the backfill list before writing files.
docs/adr/NNNN-short-title.md, numbered sequentially, plus
docs/adr/INDEX.md — one line per ADR
(NNNN | title | status | one-line decision). The index is the
agent-facing surface: small enough to load every session.docs/adr/INDEX.md; do not contradict an Accepted ADR without flagging
it explicitly to the user."# NNNN. <Decision as a verb phrase>
Status: Accepted Date: YYYY-MM-DD
## Context
2–5 sentences: the forces. What problem, what constraints.
## Decision
1–3 sentences, imperative: "We use X for Y."
## Rejected alternatives
The load-bearing section for agents. Each alternative: one line — what
it was, WHY it lost. This is what stops re-proposal.
## Consequences
2–4 sentences: what this commits us to, what it makes harder, when to
revisit.
No restating documentation, no tutorials, no aspirational essays. If it
exceeds a page it is two decisions or it is documentation (route to
docs-writer). "We tried it and it failed because…" is the highest-value
content — failure memory is exactly what a fresh session lacks.
Write one for any decision an agent could plausibly reverse while "helping":
enhance-arch-boundaries model is ADR #1
material).Not ADRs: routine implementation choices, anything the linter / gate already enforces mechanically, TODOs, meeting notes. Over-recording kills the system as surely as under-recording.
Mine implicit decisions before they are lost:
Cap the backfill at decisions that still bind (typically 5–15). This is memory, not archaeology for its own sake.
/handoff / completion: any decision that meets the Phase-2 bar gets
filed before closure (enhance-agent-guardrails can install the
reminder).workflow-housekeep): statuses current, index
matches files, superseded chains intact.docs/adr/ + INDEX.md exist; numbering and statuses in placedocs-writer)Present the backfill list for confirmation before writing the ADRs — the decisions are theirs; the recording is yours.