gsdd-cli 0.18.5 → 0.19.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 (101) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +610 -608
  3. package/agents/DISTILLATION.md +421 -421
  4. package/agents/README.md +62 -62
  5. package/agents/approach-explorer.md +370 -361
  6. package/agents/debugger.md +82 -82
  7. package/agents/executor.md +473 -394
  8. package/agents/integration-checker.md +318 -318
  9. package/agents/mapper.md +103 -103
  10. package/agents/planner.md +342 -313
  11. package/agents/researcher.md +84 -84
  12. package/agents/roadmapper.md +296 -296
  13. package/agents/synthesizer.md +236 -236
  14. package/agents/verifier.md +337 -337
  15. package/bin/adapters/agents.mjs +34 -34
  16. package/bin/adapters/claude.mjs +193 -191
  17. package/bin/adapters/codex.mjs +85 -85
  18. package/bin/adapters/index.mjs +20 -20
  19. package/bin/adapters/opencode.mjs +280 -278
  20. package/bin/gsdd.mjs +123 -116
  21. package/bin/lib/cli-utils.mjs +28 -28
  22. package/bin/lib/evidence-contract.mjs +325 -112
  23. package/bin/lib/file-ops.mjs +186 -144
  24. package/bin/lib/health-truth.mjs +196 -178
  25. package/bin/lib/health.mjs +246 -226
  26. package/bin/lib/init-flow.mjs +247 -231
  27. package/bin/lib/init-prompts.mjs +248 -247
  28. package/bin/lib/init-runtime.mjs +193 -190
  29. package/bin/lib/init.mjs +17 -17
  30. package/bin/lib/lifecycle-preflight.mjs +760 -326
  31. package/bin/lib/lifecycle-state.mjs +356 -267
  32. package/bin/lib/manifest.mjs +116 -114
  33. package/bin/lib/models.mjs +411 -411
  34. package/bin/lib/phase.mjs +365 -358
  35. package/bin/lib/plan-constants.mjs +35 -30
  36. package/bin/lib/provenance.mjs +109 -106
  37. package/bin/lib/rendering.mjs +119 -83
  38. package/bin/lib/runtime-freshness.mjs +214 -214
  39. package/bin/lib/session-fingerprint.mjs +91 -14
  40. package/bin/lib/templates.mjs +225 -224
  41. package/bin/lib/workspace-root.mjs +2 -1
  42. package/distilled/DESIGN.md +2461 -2323
  43. package/distilled/EVIDENCE-INDEX.md +418 -392
  44. package/distilled/README.md +196 -193
  45. package/distilled/SKILL.md +86 -85
  46. package/distilled/templates/agents.block.md +21 -21
  47. package/distilled/templates/agents.md +6 -6
  48. package/distilled/templates/approach.md +272 -232
  49. package/distilled/templates/auth-matrix.md +78 -78
  50. package/distilled/templates/brownfield-change/CHANGE.md +99 -0
  51. package/distilled/templates/brownfield-change/HANDOFF.md +38 -0
  52. package/distilled/templates/brownfield-change/VERIFICATION.md +56 -0
  53. package/distilled/templates/codebase/architecture.md +110 -110
  54. package/distilled/templates/codebase/concerns.md +95 -95
  55. package/distilled/templates/codebase/conventions.md +193 -193
  56. package/distilled/templates/codebase/stack.md +96 -96
  57. package/distilled/templates/delegates/approach-explorer.md +28 -25
  58. package/distilled/templates/delegates/mapper-arch.md +26 -26
  59. package/distilled/templates/delegates/mapper-concerns.md +27 -27
  60. package/distilled/templates/delegates/mapper-quality.md +28 -28
  61. package/distilled/templates/delegates/mapper-tech.md +25 -25
  62. package/distilled/templates/delegates/plan-checker.md +78 -68
  63. package/distilled/templates/delegates/researcher-architecture.md +30 -30
  64. package/distilled/templates/delegates/researcher-features.md +30 -30
  65. package/distilled/templates/delegates/researcher-pitfalls.md +30 -30
  66. package/distilled/templates/delegates/researcher-stack.md +30 -30
  67. package/distilled/templates/delegates/researcher-synthesizer.md +31 -31
  68. package/distilled/templates/research/architecture.md +57 -57
  69. package/distilled/templates/research/features.md +23 -23
  70. package/distilled/templates/research/pitfalls.md +46 -46
  71. package/distilled/templates/research/stack.md +45 -45
  72. package/distilled/templates/research/summary.md +67 -67
  73. package/distilled/templates/roadmap.md +74 -62
  74. package/distilled/templates/spec.md +110 -110
  75. package/distilled/workflows/audit-milestone.md +303 -271
  76. package/distilled/workflows/complete-milestone.md +349 -332
  77. package/distilled/workflows/execute.md +457 -450
  78. package/distilled/workflows/map-codebase.md +253 -253
  79. package/distilled/workflows/new-milestone.md +242 -238
  80. package/distilled/workflows/new-project.md +398 -398
  81. package/distilled/workflows/pause.md +160 -156
  82. package/distilled/workflows/plan-milestone-gaps.md +183 -183
  83. package/distilled/workflows/plan.md +454 -448
  84. package/distilled/workflows/progress.md +227 -223
  85. package/distilled/workflows/quick.md +351 -347
  86. package/distilled/workflows/resume.md +220 -212
  87. package/distilled/workflows/verify-work.md +260 -260
  88. package/distilled/workflows/verify.md +431 -429
  89. package/docs/BROWNFIELD-PROOF.md +95 -95
  90. package/docs/RUNTIME-SUPPORT.md +80 -69
  91. package/docs/USER-GUIDE.md +394 -386
  92. package/docs/VERIFICATION-DISCIPLINE.md +59 -59
  93. package/docs/claude/context-monitor.md +98 -98
  94. package/docs/proof/consumer-node-cli/README.md +37 -37
  95. package/docs/proof/consumer-node-cli/ROADMAP.md +14 -14
  96. package/docs/proof/consumer-node-cli/SPEC.md +17 -17
  97. package/docs/proof/consumer-node-cli/brief.md +9 -9
  98. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-PLAN.md +34 -34
  99. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-SUMMARY.md +10 -10
  100. package/docs/proof/consumer-node-cli/phases/01-foundation/01-VERIFICATION.md +30 -30
  101. package/package.json +62 -61
@@ -1,387 +1,390 @@
1
- # GSDD Evidence Index
2
-
3
- > One-line-per-source mapping of every design decision to its primary evidence.
4
- > Extracted from inline **Evidence** sections in `distilled/DESIGN.md`.
5
- > Updated when a decision is added or revised.
6
- > Guarded by G31 in `tests/gsdd.guards.test.cjs`.
7
-
8
- ---
9
-
10
- ## D1 — 4-File Codebase Standard
11
- - `agents/_archive/gsd-codebase-mapper.md` lines 72-79 (GSD 7-file model)
12
- - `agents/mapper.md` (GSDD 4-file standard)
13
- - `.planning/SPEC.md` "Lean Context Decision" section
14
- - Liu et al. "Lost in the Middle: How Language Models Use Long Contexts" (NeurIPS 2023) — position-dependent recall supports minimal stable context footprint
15
- - Levy et al. "Same Task, More Tokens: Impact of Input Length on the Reasoning Performance of LLMs" (EMNLP 2024) — longer inputs degrade reasoning performance
16
- - Aider tree-sitter dynamic repo maps (aider.chat) — on-demand structural mapping as an alternative to static context files
17
-
18
- ## D2 — Agent Consolidation: 11 to 10
19
- - `agents/_archive/` (11 original GSD files, git history via `git mv`)
20
- - `agents/` + `agents/README.md` (10 canonicals, lifecycle table)
21
- - `agents/README.md` lifecycle table (canonical-to-GSD source mapping)
22
- - CrewAI role-based team patterns, Microsoft AutoGen hierarchical agents, LangGraph multi-agent subgraphs (validate role specialization; specific count of 10 is engineering judgment)
23
-
24
- ## D3 — Two-Layer Architecture: Roles and Delegates
25
- - `agents/README.md` (Two-Layer Architecture and Runtime Distribution sections)
26
- - `bin/gsdd.mjs` lines 84-102 (role copy step with existsSync guard)
27
- - `tests/gsdd.init.test.cjs` (role file existence and delegate-role reference validation)
28
- - All 10 delegate files in `distilled/templates/delegates/`
29
- - Jensen & Meckling "Theory of the Firm" (Journal of Financial Economics 1976) — principal-agent delegation contracts
30
- - Gamma et al. GoF Strategy Pattern ("Design Patterns" 1994) — separating algorithm definition from usage context
31
- - LangGraph multi-agent subgraphs + Microsoft AutoGen hierarchical agents (production validation of two-layer separation)
32
-
33
- ## D4 — Zero-Hop Security Propagation
34
- - `agents/mapper.md` lines 66-90 (Forbidden Files section + Hard stop)
35
- - `agents/_archive/gsd-codebase-mapper.md` lines 66-97 (original narrower rules)
36
- - PR 2 intermediate state (one-hop via SKILL.md cross-reference)
37
- - PR 4 final state (zero-hop, role contains all rules)
38
- - OWASP Top 10 for LLM Applications v2.0 (2025) — LLM01 (Prompt Injection) + LLM07 (System Prompt Leakage) support embedding security rules at the role-contract level
39
- - Greshake et al. "Not What You've Signed Up For" (IEEE S&P 2023) — indirect prompt injection validates defense-in-depth at the agent-contract layer
40
- - Saltzer & Schroeder "Protection of Information in Computer Systems" (1975) — complete mediation principle
41
-
42
- ## D5 — Conditional Synthesizer
43
- - `get-shit-done/workflows/new-project.md` lines 708-729 (GSD always-spawn synthesizer)
44
- - `distilled/templates/delegates/researcher-synthesizer.md`
45
- - `agents/synthesizer.md` (cross-reference algorithm)
46
- - `.planning/config.json` `researchDepth` field contract
47
- - LangGraph conditional edges — adaptive agent invocation based on workflow state
48
- - Asai et al. "Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection" (ICLR 2024) — conditional retrieval/synthesis based on need
49
- - Anthropic "Building effective agents" (Dec 2024) — routing workflows match task complexity to agent selection
50
-
51
- ## D6 — Mapper Staleness: Standalone Workflow
52
- - `get-shit-done/workflows/map-codebase.md` lines 35-62 (GSD staleness check with 3 options)
53
- - `get-shit-done/workflows/new-project.md` lines 61-80 (brownfield offer delegates to map-codebase)
54
- - `distilled/workflows/map-codebase.md` (standalone, re-runnable)
55
- - `distilled/workflows/new-project.md` (auto-invoke for brownfield via skill reference)
56
- - Aider (aider.chat) — dynamic tree-sitter-based repo maps generated on-demand (validates freshness-over-cache approach)
57
- - Cursor — continuous background indexing (cached approach; shows both are production-valid tradeoffs)
58
-
59
- ## D7 — Milestone Hierarchy and Phase Continuation
60
- - `get-shit-done/workflows/new-milestone.md` lines 101-173 (milestone-aware researchers)
61
- - `get-shit-done/workflows/new-milestone.md` line 269 (phase numbering continuation)
62
- - `distilled/README.md` lifecycle diagram
63
- - `.planning/SPEC.md` "Long-Term Lifecycle" section
64
- - Erol, Hendler & Nau / Nau et al. Hierarchical Task Networks (JAIR 2003) — foundational milestone→phase→task decomposition in AI planning
65
- - PMI PMBOK Work Breakdown Structure (WBS) standard — industry-standard phase/task hierarchy
66
- - Khot et al. "Decomposed Prompting" (ICLR 2023) — task decomposition improves LLM performance on multi-step work
67
-
68
- ## D8 — Advisory Git Protocol
69
- - `agents/_archive/gsd-executor.md` (mandatory commit in algorithm, TDD flow)
70
- - `agents/executor.md` lines 57-64 (Git Guidance — repo-native, advisory)
71
- - Industry consensus: Aider, GitHub Copilot, Cursor, Codex CLI, OpenCode — all treat git as advisory/user-configured; no major AI coding tool enforces a specific commit or branch convention
72
-
73
- ## D9 — Adapter Generation Over Conversion
74
- - `get-shit-done/install.js` (GSD converter with per-runtime conversion logic)
75
- - `get-shit-done/workflows/new-project.md` (851 lines, 10+ AskUserQuestion calls, 7 Task() calls)
76
- - `bin/gsdd.mjs` (thin CLI entrypoint and adapter dispatcher)
77
- - `bin/adapters/` (vendor-specific adapter generation)
78
- - `distilled/templates/delegates/plan-checker.md` (single payload source for native checker generation)
79
- - `.planning/SPEC.md` "Agent Integration Strategy" section
80
- - AGENTS.md Linux Foundation standard: agents.md
81
-
82
- ## D10 — Context Isolation: Summaries Up, Documents to Disk
83
- - `get-shit-done/workflows/new-project.md` lines 544-706 (4 researchers write to files, return summaries)
84
- - All 9 delegate files (return format instructions)
85
- - `agents/synthesizer.md` (reads full research files from disk)
86
- - Anthropic Agent Teams (Feb 2026): "Shared State, Not Shared Context"
87
- - AI21 Modular Intelligence (Feb 2026): orchestrator-based designs prevent context drift
88
-
89
- ## D11 — Quick-Work Lane
90
- - `get-shit-done/workflows/quick.md` (454 lines, two modes, STATE.md tracking)
91
- - `distilled/workflows/quick.md` (~120 lines, single mode, LOG.md tracking)
92
- - Crystal Clear (Cockburn 2004) — ceremony scales with team size and criticality; lightweight methods prescribed for small/low-criticality work
93
- - Kanban class-of-service (Anderson 2010) — routing tasks by size/urgency to appropriate workflow lanes
94
- - Anthropic "Building effective agents" (Dec 2024) — match workflow complexity to task complexity
95
-
96
- ## D12 — Session Persistence Without State File
97
- - `get-shit-done/workflows/pause-work.md` (123 lines, phase-scoped checkpoint)
98
- - `get-shit-done/workflows/resume-project.md` (307 lines, STATE.md-dependent)
99
- - `get-shit-done/workflows/progress.md` (382 lines, gsd-tools.cjs-dependent)
100
- - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
101
- - `.internal-research/gsd-distilled-audit-13th-march-2026.md` — Highest-ROI recommendation #3
102
-
103
- ## D13 — Mechanical Invariant Enforcement
104
- - `tests/gsdd.invariants.test.cjs` lines 1015+ (6 suites, ~106 assertions)
105
- - OpenAI Harness Engineering blog (Feb 2026): "error messages as enforcement mechanism"
106
- - External audit (2026-03-13): recommendation #4 "Mechanize the framework's invariants"
107
- - PRs #20-23: orphan `</output>` tags survived 4 manual review cycles before G4 caught them
108
-
109
- ## D14 — Headless Mode
110
- - `get-shit-done/workflows/new-project.md` lines 9-40 (GSD headless predecessor)
111
- - Claude Code: `-p` flag for headless execution (docs.anthropic.com)
112
- - Codex CLI: `--quiet` and `--auto-edit` flags (developers.openai.com/codex/cli/reference)
113
- - Cline CLI 2.0: explicit headless CI/CD mode (devops.com, 2025)
114
-
115
- ## D15 — Model Profile Propagation
116
- - `get-shit-done/references/model-profiles.md` + `model-profile-resolution.md` (GSD reference)
117
- - OpenSpec: portable spec core is tool-agnostic (openspec.dev)
118
- - Claude Code: `model:` field with aliases (docs.anthropic.com/en/docs/claude-code/sub-agents)
119
- - OpenCode: `model:` in agent frontmatter (opencode.ai/docs/agents)
120
- - Agent Skills standard: no `model:` field in spec (agentskills.io/specification)
121
-
122
- ## D16 — Template Versioning via Generation Manifest
123
- - `get-shit-done/install.js` lines 1227-1327 (SHA-256 manifest + backup directory)
124
- - OpenSpec: managed blocks with bounded upsert (openspec.dev)
125
- - Angular/Turborepo/Next.js: ordered migrations with dry-run preview
126
- - Langfuse: generation/prompt versioning with hash-based change detection (langfuse.com/docs/prompts)
127
-
128
- ## D17 — CLI Composition Root Boundary
129
- - `get-shit-done/install.js` (GSD monolithic install/conversion surface)
130
- - `bin/gsdd.mjs`, `bin/lib/init.mjs`, `bin/lib/templates.mjs`, `bin/lib/models.mjs`
131
- - `tests/gsdd.init.test.cjs`, `tests/gsdd.models.test.cjs`, `tests/gsdd.manifest.test.cjs`
132
- - Seemann "Dependency Injection in .NET" (Manning 2011) — named "Composition Root" pattern
133
- - Martin "Clean Architecture" (2017) — main component as the outermost wiring layer
134
- - Standard pattern in oclif, Commander.js, yargs, Cobra CLIs
135
-
136
- ## D18 — Codex CLI Native Adapter
137
- - OpenAI Codex CLI docs: developers.openai.com/codex/subagents
138
- - Codex CLI v0.115.0 release notes: github.com/openai/codex/releases/tag/rust-v0.115.0
139
- - Agent Skills standard: developers.openai.com/codex/skills
140
- - `bin/adapters/codex.mjs` (implementation)
141
- - Live validation fixtures (2026-03-17): 3 Codex test runs confirming happy path, revision, max-3 escalation
142
-
143
- ## D19 — Scenario-Based Eval Coverage
144
- - OpenAI: "Testing Agent Skills Systematically with Evals" (developers.openai.com/blog/eval-skills)
145
- - Anthropic: "Demystifying Evals for AI Agents" (anthropic.com/engineering/demystifying-evals-for-ai-agents)
146
- - Block: "Testing Pyramid for AI Agents" (engineering.block.xyz/blog/testing-pyramid-for-ai-agents)
147
- - `tests/gsdd.scenarios.test.cjs` (S1–S5, ~37 assertions)
148
-
149
- ## D20 — Workspace Health Diagnostics
150
- - `get-shit-done/workflows/health.md` (157 lines, GSD predecessor)
151
- - OpenAI Harness Engineering (Feb 2026): error messages as enforcement mechanism
152
- - External audit (2026-03-13): recommendation #3 "Add just enough: status/resume/progress/health"
153
- - `bin/lib/health.mjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.guards.test.cjs` (G14)
154
-
155
- ## D21 — OWASP Authorization Matrix
156
- - OWASP Authorization Testing Automation Cheat Sheet: pivot-format matrix standard
157
- - OWASP Top 10 for Agentic Applications 2026: A1 Agent Overreach, A4 Insufficient Authorization
158
- - External audits (2026-03-13, 2026-03-17): independently flagged auth verification gap
159
- - `distilled/templates/auth-matrix.md`, `agents/integration-checker.md` (Step 4a)
160
-
161
- ## D22 — Delegate Layer Architecture
162
- - Anthropic multi-agent guidance: orchestration patterns with isolated sub-agents
163
- - OpenAI Harness Engineering (2026): delegate pattern for reusable sub-agent behavior
164
- - OpenDev "Terminal Agents" (arXiv 2603.05344): multi-agent coordination with explicit role contracts
165
- - `distilled/templates/delegates/` (11 delegate files)
166
- - `distilled/workflows/*.md` (`<delegate>` blocks)
167
-
168
- ## D23 — Mapper Output Quantification
169
- - `ideas.md` (internal, Feb 2026): direct per-tool comparison "84% declining > uses constructor injection"
170
- - ArXiv 2602.20478 (Codified Context): structured quantifiable facts enable JIT context loading
171
- - GetDX measurement framework (2026): adoption % as primary signal for convention strength
172
- - Anthropic 2026 Agentic Coding Trends: context quality as primary competitive advantage
173
- - `distilled/templates/codebase/conventions.md`, `distilled/templates/delegates/mapper-quality.md`
174
-
175
- ## D24 — Consumer Governance Completeness
176
- - Anthropic "Effective harnesses for long-running agents" (2026): incomplete maps cause agent failure
177
- - Agent Skills specification (agentskills.io): progressive disclosure requires complete top-level map
178
- - HumanLayer "Skill Issue" (2026): AGENTS.md should be a complete capability map
179
- - External audits (2026-03-13, 2026-03-17): documentation accuracy as top adoption blocker
180
- - `distilled/templates/agents.block.md`, `tests/gsdd.guards.test.cjs` (G18)
181
-
182
- ## D25 — Consumer First-Run Experience
183
- - Anthropic harness engineering (2025-2026): "honest constraints over vague prompting"
184
- - OpenAI Codex skills documentation: clear per-platform invocation patterns
185
- - Both GSDD external audits (2026-03-13, 2026-03-17): "architecture solid, presentation lags"
186
- - `README.md`, `distilled/templates/agents.block.md`, `bin/lib/init.mjs`, `tests/gsdd.guards.test.cjs` (G19)
187
-
188
- ## D26 — Session Continuity Contract Hardening
189
- - Anthropic "Effective harnesses for long-running agents" (2026): artifact-based session handoff
190
- - GitHub "How to build reliable AI workflows with agentic primitives" (2026): session splitting
191
- - OpenAI harness engineering (2026): incremental progress tracking is the key multi-session mechanism
192
- - OpenDev terminal agents (arXiv 2603.05344): runtime state must be derivable from artifacts
193
- - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
194
- - `tests/gsdd.guards.test.cjs` (G20)
195
-
196
- ## D27 — Consumer-Ready Surface Completion
197
- - External audit (2026-03-13): "architecture solid, presentation lags implementation"
198
- - External audit (2026-03-17): "consumer surface identified as #1 bottleneck"
199
- - External audit (2026-03-18): "docs should close the consumer journey"
200
- - `README.md` (6 new subsections), `tests/gsdd.guards.test.cjs` (G21)
201
-
202
- ## D28 — Workflow Completion Routing
203
- - Consumer audit (2026-03-21): "agent never proactively suggested the next GSDD command"
204
- - `get-shit-done/workflows/progress.md` (GSD "Next Up" block pattern)
205
- - Anthropic "Building effective agents" (2025): explicit handoff points with clear next actions
206
- - `distilled/workflows/*.md` (9 `<completion>` sections), `tests/gsdd.guards.test.cjs` (G22)
207
-
208
- ## D29 — Approach Exploration
209
- - Anthropic "Building effective agents" (2025): sub-agents return condensed summaries
210
- - LangChain "Context Engineering for Agents" (2025): Write/Select/Compress/Isolate patterns
211
- - `get-shit-done/workflows/discuss-phase.md` (gray area identification, GSD source)
212
- - `get-shit-done/workflows/list-phase-assumptions.md` (5-dimension assumption surfacing)
213
- - `get-shit-done/workflows/discovery-phase.md` (3-level research workflow)
214
- - `agents/approach-explorer.md`, `distilled/templates/delegates/approach-explorer.md`
215
-
216
- ## D30 Hardening Propagation
217
- - D28 consumer audit (2026-03-21): persistence failures at every workflow boundary
218
- - Huang et al. "LLMs Cannot Self-Correct Reasoning Yet" (ICLR 2024): LLMs need external feedback
219
- - Kamoi et al. "When Can LLMs Actually Correct Their Own Mistakes?" (TACL 2024): self-correction requires reliable external feedback
220
- - Anthropic long-context research (2024): instructions at decision points followed more reliably
221
- - `distilled/workflows/quick.md`, `distilled/workflows/map-codebase.md`, `tests/gsdd.guards.test.cjs` (G24)
222
-
223
- ## D31 Outcome Dimension for Plan-Checker
224
- - Yu et al. "Outcome-Refining Process Supervision for Code Generation" (ICML 2025): +26.9% correctness with hybrid process+outcome supervision
225
- - Rajan "Multi-Agent Code Verification via Information Theory" (2025): diminishing returns plateau at 4-7 dimensions
226
- - Lightman et al. "Let's Verify Step by Step" (ICLR 2024): process supervision significantly outperforms outcome-only
227
- - `distilled/templates/delegates/plan-checker.md` (`goal_achievement` dimension)
228
-
229
- ## D32 Quick Workflow Alignment Hardening
230
- - Risk-adaptive autonomy pattern (AWS, Azure, Anthropic 2025-2026): confirmation gates scale with consequence
231
- - Anthropic agent autonomy research (2026): human-on-the-loop > human-in-the-loop
232
- - Madaan et al. "Self-Refine" (NeurIPS 2023): 1 revision cycle captures most improvement
233
- - `distilled/workflows/quick.md` (Steps 3.5-3.7), `tests/gsdd.guards.test.cjs` (G24)
234
-
235
- ## D33 Quick Approach Clarification
236
- - Anthropic "Measuring AI agent autonomy in practice" (2025): Claude asks 2x+ on complex tasks
237
- - Knight First Amendment Institute "Levels of Autonomy for AI Agents" (2025): 5-level autonomy spectrum
238
- - Anthropic "Framework for safe and trustworthy agents" (2025): recommendation-first framing
239
- - Martin Fowler "Humans and Agents in SE Loops" (2025): HOTL > HITL
240
- - `distilled/workflows/quick.md` (Step 2.5), `tests/gsdd.guards.test.cjs` (G24)
241
-
242
- ## D34 Context Engineering Applied to Quick Workflow
243
- - Anthropic Claude Prompting Best Practices: XML tags for semantic structure and attention
244
- - Selective Prompt Anchoring (arXiv 2408.09121, 2024): up to 12.9% Pass@1 improvement from strategic anchoring
245
- - `agentskit-architect SKILL.md` (prompty): identical hybrid XML-outer/markdown-inner structure
246
- - `distilled/DESIGN.md` (DISTILLATION.md authority language resolution)
247
- - `distilled/workflows/quick.md` (`<anti_patterns>` section, STOP normalization)
248
-
249
- ## D35 Skills-Native Runtimes vs Governance Adapters
250
- - Live consumer testing (2026-03-20): Cursor and Copilot auto-discover `.agents/skills/`
251
- - User-performed live validation (2026-03-25): Gemini confirms same behavior
252
- - `bin/lib/init.mjs` (adapter registry and root-governance generator)
253
- - `README.md`, `distilled/templates/agents.block.md`, `tests/gsdd.guards.test.cjs`
254
-
255
- ## D36 Interactive Init Wizard
256
- - `bin/lib/init.mjs` existing adapter-selection seam
257
- - Local research on adjacent `prompty` repo: portable skills as primary install surface
258
- - Repo lesson LL-INSTALL-DX-BEFORE-ALIAS-CLEANUP (lessons-learned.md)
259
- - `bin/lib/init.mjs`, `bin/gsdd.mjs`, `tests/gsdd.init.test.cjs`
260
- - npm init, Vite `create-vite`, Next.js `create-next-app`, Angular CLI `ng new`, Astro `create astro` — all use TTY-interactive wizard with headless flags (industry standard for project scaffolding)
261
-
262
- ## D37Mutability-Driven Workflow Classification
263
- - `distilled/workflows/verify.md`, `new-project.md`, `audit-milestone.md`, `pause.md`, `resume.md` (all require artifact writes)
264
- - `distilled/workflows/progress.md` (only read-only workflow)
265
- - Consumer audit: verification reports lost when persistence skipped
266
- - `bin/gsdd.mjs`, `bin/lib/rendering.mjs`, `tests/gsdd.guards.test.cjs` (G27)
267
- - Meyer's Command-Query Separation (CQS, "Object-Oriented Software Construction" 1988) — classify operations by mutation behavior, not semantic category
268
- - Greg Young's CQRS (2010) — CQS applied at the architectural level
269
- - Unix rwx model + AWS IAM / Kubernetes RBAC — classify by mutation semantics as industry norm
270
-
271
- ## D38Retroactive Artifact Enforcement
272
- - `.internal-research/gaps.md` I27 entry (two occurrences, root-cause analysis, close conditions)
273
- - `distilled/workflows/execute.md` (D28 SUMMARY.md persistence gate)
274
- - `distilled/workflows/verify.md` (D28 VERIFICATION.md persistence gate + D28/G30 ROADMAP closure)
275
- - `distilled/workflows/audit-milestone.md` (retroactive artifact completeness check)
276
- - `.internal-research/strategy.md` (kernel simplicity vs policy depth trade-off)
277
- - `tests/gsdd.guards.test.cjs` (G30 guard for ROADMAP closure on pass)
278
- - NIST SP 800-53 Rev. 5 (2020) detective vs preventive controls as equally valid risk-management strategies
279
- - ISO 27001 risk treatment choice of detective vs preventive depends on cost/complexity tradeoff
280
- - Reason's Swiss Cheese model (1990) — layered defense where retroactive audit catches what preventive layers miss
281
-
282
- ## D39Brownfield Entry Wiring
283
- - User brownfield audit finding (2026-03-20): map-codebase was useful but not presented as the start of a lightweight feature-work lane
284
- - Existing quick-workflow hardening decisions D32-D34: quick already had alignment and scope controls, so the open gap was routing/context, not quick quality
285
- - `distilled/workflows/quick.md` (Step 2 codebase-context read, planner delegate context)
286
- - `distilled/workflows/map-codebase.md` (completion offers `/gsdd-quick` as the brownfield lane)
287
- - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
288
-
289
- ## D40 — Three-Layer Continuity Boundary
290
- - Phase 7 continuity review across all 14 workflow files: durable artifacts and live-state artifacts were present, but compressed judgment was not explicitly modeled
291
- - D12 and D26: artifact/state continuity existed already, but without a named three-layer boundary
292
- - `.planning/SPEC.md` (Continuity Layers constraint, Key Decisions row)
293
- - `distilled/workflows/resume.md` (first workflow adopting the boundary directly)
294
-
295
- ## D41 Compressed Judgment Persistence Surface
296
- - Phase 8 review of `plan.md`, `execute.md`, `verify.md`, and `resume.md` as the four judgment-recovery entry points
297
- - `distilled/workflows/pause.md` (checkpoint `<judgment>` write)
298
- - `distilled/workflows/execute.md` (`SUMMARY.md` `<judgment>` write and prior-summary read)
299
- - `distilled/workflows/plan.md`, `distilled/workflows/verify.md`, `distilled/workflows/resume.md` (judgment reads)
300
- - `.planning/SPEC.md` (Key Decisions row)
301
-
302
- ## D42 Session-Boundary Safety
303
- - `distilled/workflows/resume.md` (`.continue-here.bak` retained across dispatch)
304
- - `distilled/workflows/plan.md`, `distilled/workflows/execute.md`, `distilled/workflows/verify.md`, `distilled/workflows/quick.md` (fallback `.bak` judgment reads)
305
- - `distilled/workflows/pause.md` (stale `.bak` crash-cleanup path)
306
- - `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`
307
-
308
- ## D43 — Resume Provenance Truth Split
309
- - `.internal-research/gaps.md` (`I29`, `I30`)
310
- - `.internal-research/TODO.md` (stale checkpoint/worktree drift notes)
311
- - `.internal-research/consumer-audits/worktree-provenance-and-checkpoint-drift-2026-04-12.md`
312
- - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`
313
- - `bin/lib/provenance.mjs`
314
- - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`
315
-
316
- ## D44 — Warning-First Transition Safety And Fail-Closed Terminal Writes
317
- - `.planning/SPEC.md` (`LAUNCH-12`, `LAUNCH-13`)
318
- - `.planning/ROADMAP.md` (Phase 20 and Phase 22 scope notes)
319
- - `distilled/workflows/plan.md`, `execute.md`, `quick.md`, `new-milestone.md`, `complete-milestone.md`
320
- - `distilled/workflows/verify.md`, `distilled/workflows/audit-milestone.md`
321
- - `bin/lib/provenance.mjs`
322
- - `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`, `tests/gsdd.scenarios.test.cjs`
323
-
324
- ## D45 — Fork-Honest Launch Posture Before Identity Migration
325
- - `.planning/SPEC.md` (v1.2.0 active requirements and posture)
326
- - `.planning/ROADMAP.md` (Phase 23-27 ownership)
327
- - `.internal-research/TODO.md`, `.internal-research/gaps.md` (`I39`), `.internal-research/lessons-learned.md`
328
- - `.internal-research/release-jury-verdict-2026-04-15.md`
329
- - `.internal-research/release-jury-public-truth-drift-2026-04-15.md`
330
- - `.internal-research/public-release-two-layer-brief-2026-04-15.md`
331
- - `get-shit-done/workflows/progress.md`
332
-
333
- ## D46 — Archived Milestone Routing With Retained ROADMAP
334
- - `.internal-research/gaps.md` (`I39`)
335
- - `.planning/MILESTONES.md`
336
- - `.planning/v1.1-MILESTONE-AUDIT.md`
337
- - `distilled/workflows/progress.md`
338
- - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`, `tests/gsdd.health.test.cjs`
339
- - `get-shit-done/workflows/progress.md`
340
-
341
- ## D47 — Brownfield Quick-Win Repair
342
- - `.planning/SPEC.md` (`DX-03`, `BROWNFIELD-01`)
343
- - `distilled/workflows/quick.md`, `distilled/workflows/progress.md`
344
- - `distilled/workflows/new-project.md`, `distilled/workflows/map-codebase.md`
345
- - `README.md`, `docs/USER-GUIDE.md`, `distilled/README.md`
346
- - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`, `tests/gsdd.invariants.test.cjs`
347
-
348
- ## D48 Shared Lifecycle Evaluator And Dual-Canonical Runtime Boundary
349
- - `.planning/SPEC.md` (`ENGINE-01`, `ENGINE-02`, `ENGINE-05`)
350
- - `.planning/ROADMAP.md` (Phases 29 and 32)
351
- - `.internal-research/TODO.md`, `.internal-research/gaps.md` (`I42`)
352
- - `bin/lib/lifecycle-state.mjs`, `bin/lib/health.mjs`, `bin/lib/health-truth.mjs`
353
- - `tests/phase.test.cjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.guards.test.cjs`
354
- - `get-shit-done/workflows/progress.md`
355
-
356
- ## D49 — Deterministic Lifecycle Preflight Gates
357
- - `.planning/SPEC.md` (`ENGINE-01`, `ENGINE-02`, `ENGINE-03`)
358
- - `.planning/ROADMAP.md` (Phase 30)
359
- - `bin/lib/lifecycle-preflight.mjs`, `bin/lib/lifecycle-state.mjs`
360
- - `bin/gsdd.mjs`, `bin/lib/init.mjs`
361
- - `distilled/workflows/execute.md`, `distilled/workflows/verify.md`
362
- - `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`
363
- - `distilled/workflows/new-milestone.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
364
- - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
365
- - `get-shit-done/workflows/progress.md`
366
-
367
- ## D50 — Evidence-Gated Closure Matrix
368
- - `.planning/SPEC.md` (`ENGINE-04`, `VERIFY-01`)
369
- - `.planning/ROADMAP.md` (Phase 31)
370
- - `bin/lib/evidence-contract.mjs`, `bin/lib/lifecycle-preflight.mjs`
371
- - `distilled/workflows/verify.md`, `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`
372
- - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
373
- - `agents/_archive/gsd-verifier.md`, `agents/_archive/gsd-integration-checker.md`
374
-
375
- ## D51 — Deterministic Runtime Surface Freshness
376
- - `.planning/SPEC.md` (`ENGINE-05`)
377
- - `.planning/ROADMAP.md` (Phase 32)
378
- - `.internal-research/gaps.md` (`I42`)
379
- - `bin/lib/runtime-freshness.mjs`, `bin/lib/health.mjs`, `bin/lib/health-truth.mjs`, `bin/lib/rendering.mjs`
380
- - `bin/adapters/claude.mjs`, `bin/adapters/opencode.mjs`, `bin/adapters/codex.mjs`
381
- - `README.md`, `docs/RUNTIME-SUPPORT.md`, `distilled/README.md`
382
- - `tests/phase.test.cjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.plan.adapters.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
383
- - `get-shit-done/workflows/progress.md`
384
-
1
+ # GSDD Evidence Index
2
+
3
+ > One-line-per-source mapping of every design decision to its primary evidence.
4
+ > Extracted from inline **Evidence** sections in `distilled/DESIGN.md`.
5
+ > Updated when a decision is added or revised.
6
+ > Guarded by G31 in `tests/gsdd.guards.test.cjs`.
7
+
8
+ ---
9
+
10
+ ## D1 — 4-File Codebase Standard
11
+ - `agents/_archive/gsd-codebase-mapper.md` lines 72-79 (GSD 7-file model)
12
+ - `agents/mapper.md` (GSDD 4-file standard)
13
+ - `.planning/SPEC.md` "Lean Context Decision" section
14
+ - Liu et al. "Lost in the Middle: How Language Models Use Long Contexts" (NeurIPS 2023) — position-dependent recall supports minimal stable context footprint
15
+ - Levy et al. "Same Task, More Tokens: Impact of Input Length on the Reasoning Performance of LLMs" (EMNLP 2024) — longer inputs degrade reasoning performance
16
+ - Aider tree-sitter dynamic repo maps (aider.chat) — on-demand structural mapping as an alternative to static context files
17
+
18
+ ## D2 — Agent Consolidation: 11 to 10
19
+ - `agents/_archive/` (11 original GSD files, git history via `git mv`)
20
+ - `agents/` + `agents/README.md` (10 canonicals, lifecycle table)
21
+ - `agents/README.md` lifecycle table (canonical-to-GSD source mapping)
22
+ - CrewAI role-based team patterns, Microsoft AutoGen hierarchical agents, LangGraph multi-agent subgraphs (validate role specialization; specific count of 10 is engineering judgment)
23
+
24
+ ## D3 — Two-Layer Architecture: Roles and Delegates
25
+ - `agents/README.md` (Two-Layer Architecture and Runtime Distribution sections)
26
+ - `bin/gsdd.mjs` lines 84-102 (role copy step with existsSync guard)
27
+ - `tests/gsdd.init.test.cjs` (role file existence and delegate-role reference validation)
28
+ - Delegate files in `distilled/templates/delegates/`
29
+ - Jensen & Meckling "Theory of the Firm" (Journal of Financial Economics 1976) — principal-agent delegation contracts
30
+ - Gamma et al. GoF Strategy Pattern ("Design Patterns" 1994) — separating algorithm definition from usage context
31
+ - LangGraph multi-agent subgraphs + Microsoft AutoGen hierarchical agents (production validation of two-layer separation)
32
+
33
+ ## D4 — Zero-Hop Security Propagation
34
+ - `agents/mapper.md` lines 66-90 (Forbidden Files section + Hard stop)
35
+ - `agents/_archive/gsd-codebase-mapper.md` lines 66-97 (original narrower rules)
36
+ - PR 2 intermediate state (one-hop via SKILL.md cross-reference)
37
+ - PR 4 final state (zero-hop, role contains all rules)
38
+ - OWASP Top 10 for LLM Applications v2.0 (2025) — LLM01 (Prompt Injection) + LLM07 (System Prompt Leakage) support embedding security rules at the role-contract level
39
+ - Greshake et al. "Not What You've Signed Up For" (IEEE S&P 2023) — indirect prompt injection validates defense-in-depth at the agent-contract layer
40
+ - Saltzer & Schroeder "Protection of Information in Computer Systems" (1975) — complete mediation principle
41
+
42
+ ## D5 — Conditional Synthesizer
43
+ - `get-shit-done/workflows/new-project.md` lines 708-729 (GSD always-spawn synthesizer)
44
+ - `distilled/templates/delegates/researcher-synthesizer.md`
45
+ - `agents/synthesizer.md` (cross-reference algorithm)
46
+ - `.planning/config.json` `researchDepth` field contract
47
+ - LangGraph conditional edges — adaptive agent invocation based on workflow state
48
+ - Asai et al. "Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection" (ICLR 2024) — conditional retrieval/synthesis based on need
49
+ - Anthropic "Building effective agents" (Dec 2024) — routing workflows match task complexity to agent selection
50
+
51
+ ## D6 — Mapper Staleness: Standalone Workflow
52
+ - `get-shit-done/workflows/map-codebase.md` lines 35-62 (GSD staleness check with 3 options)
53
+ - `get-shit-done/workflows/new-project.md` lines 61-80 (brownfield offer delegates to map-codebase)
54
+ - `distilled/workflows/map-codebase.md` (standalone, re-runnable)
55
+ - `distilled/workflows/new-project.md` (auto-invoke for brownfield via skill reference)
56
+ - Aider (aider.chat) — dynamic tree-sitter-based repo maps generated on-demand (validates freshness-over-cache approach)
57
+ - Cursor — continuous background indexing (cached approach; shows both are production-valid tradeoffs)
58
+
59
+ ## D7 — Milestone Hierarchy and Phase Continuation
60
+ - `get-shit-done/workflows/new-milestone.md` lines 101-173 (milestone-aware researchers)
61
+ - `get-shit-done/workflows/new-milestone.md` line 269 (phase numbering continuation)
62
+ - `distilled/README.md` lifecycle diagram
63
+ - `.planning/SPEC.md` "Long-Term Lifecycle" section
64
+ - Erol, Hendler & Nau / Nau et al. Hierarchical Task Networks (JAIR 2003) — foundational milestone→phase→task decomposition in AI planning
65
+ - PMI PMBOK Work Breakdown Structure (WBS) standard — industry-standard phase/task hierarchy
66
+ - Khot et al. "Decomposed Prompting" (ICLR 2023) — task decomposition improves LLM performance on multi-step work
67
+
68
+ ## D8 — Advisory Git Protocol
69
+ - `agents/_archive/gsd-executor.md` (mandatory commit in algorithm, TDD flow)
70
+ - `agents/executor.md` lines 57-64 (Git Guidance — repo-native, advisory)
71
+ - Industry consensus: Aider, GitHub Copilot, Cursor, Codex CLI, OpenCode — all treat git as advisory/user-configured; no major AI coding tool enforces a specific commit or branch convention
72
+
73
+ ## D9 — Adapter Generation Over Conversion
74
+ - `get-shit-done/install.js` (GSD converter with per-runtime conversion logic)
75
+ - `get-shit-done/workflows/new-project.md` (851 lines, 10+ AskUserQuestion calls, 7 Task() calls)
76
+ - `bin/gsdd.mjs` (thin CLI entrypoint and adapter dispatcher)
77
+ - `bin/adapters/` (vendor-specific adapter generation)
78
+ - `distilled/templates/delegates/plan-checker.md` (single payload source for native checker generation)
79
+ - `.planning/SPEC.md` "Agent Integration Strategy" section
80
+ - AGENTS.md Linux Foundation standard: agents.md
81
+
82
+ ## D10 — Context Isolation: Summaries Up, Documents to Disk
83
+ - `get-shit-done/workflows/new-project.md` lines 544-706 (4 researchers write to files, return summaries)
84
+ - Delegate files in `distilled/templates/delegates/` (return format instructions)
85
+ - `agents/synthesizer.md` (reads full research files from disk)
86
+ - Anthropic Agent Teams (Feb 2026): "Shared State, Not Shared Context"
87
+ - AI21 Modular Intelligence (Feb 2026): orchestrator-based designs prevent context drift
88
+
89
+ ## D11 — Quick-Work Lane
90
+ - `get-shit-done/workflows/quick.md` (454 lines, two modes, STATE.md tracking)
91
+ - `distilled/workflows/quick.md` (~120 lines, single mode, LOG.md tracking)
92
+ - Crystal Clear (Cockburn 2004) — ceremony scales with team size and criticality; lightweight methods prescribed for small/low-criticality work
93
+ - Kanban class-of-service (Anderson 2010) — routing tasks by size/urgency to appropriate workflow lanes
94
+ - Anthropic "Building effective agents" (Dec 2024) — match workflow complexity to task complexity
95
+
96
+ ## D12 — Session Persistence Without State File
97
+ - `get-shit-done/workflows/pause-work.md` (123 lines, phase-scoped checkpoint)
98
+ - `get-shit-done/workflows/resume-project.md` (307 lines, STATE.md-dependent)
99
+ - `get-shit-done/workflows/progress.md` (382 lines, gsd-tools.cjs-dependent)
100
+ - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
101
+ - `.internal-research/gsd-distilled-audit-13th-march-2026.md` — Highest-ROI recommendation #3
102
+
103
+ ## D13 — Mechanical Invariant Enforcement
104
+ - `tests/gsdd.invariants.test.cjs` and `tests/gsdd.guards.test.cjs` enforce structural drift checks with actionable `FIX:` messages
105
+ - OpenAI Harness Engineering blog (Feb 2026): "error messages as enforcement mechanism"
106
+ - External audit (2026-03-13): recommendation #4 "Mechanize the framework's invariants"
107
+ - PRs #20-23: orphan `</output>` tags survived 4 manual review cycles before G4 caught them
108
+
109
+ ## D14 — Headless Mode
110
+ - `get-shit-done/workflows/new-project.md` lines 9-40 (GSD headless predecessor)
111
+ - Claude Code: `-p` flag for headless execution (docs.anthropic.com)
112
+ - Codex CLI: `--quiet` and `--auto-edit` flags (developers.openai.com/codex/cli/reference)
113
+ - Cline CLI 2.0: explicit headless CI/CD mode (devops.com, 2025)
114
+
115
+ ## D15 — Model Profile Propagation
116
+ - `get-shit-done/references/model-profiles.md` + `model-profile-resolution.md` (GSD reference)
117
+ - OpenSpec: portable spec core is tool-agnostic (openspec.dev)
118
+ - Claude Code: `model:` field with aliases (docs.anthropic.com/en/docs/claude-code/sub-agents)
119
+ - OpenCode: `model:` in agent frontmatter (opencode.ai/docs/agents)
120
+ - Agent Skills standard: no `model:` field in spec (agentskills.io/specification)
121
+
122
+ ## D16 — Template Versioning via Generation Manifest
123
+ - `get-shit-done/install.js` lines 1227-1327 (SHA-256 manifest + backup directory)
124
+ - OpenSpec: managed blocks with bounded upsert (openspec.dev)
125
+ - Angular/Turborepo/Next.js: ordered migrations with dry-run preview
126
+ - Langfuse: generation/prompt versioning with hash-based change detection (langfuse.com/docs/prompts)
127
+
128
+ ## D17 — CLI Composition Root Boundary
129
+ - `get-shit-done/install.js` (GSD monolithic install/conversion surface)
130
+ - `bin/gsdd.mjs`, `bin/lib/init.mjs`, `bin/lib/templates.mjs`, `bin/lib/models.mjs`
131
+ - `tests/gsdd.init.test.cjs`, `tests/gsdd.models.test.cjs`, `tests/gsdd.manifest.test.cjs`
132
+ - Seemann "Dependency Injection in .NET" (Manning 2011) — named "Composition Root" pattern
133
+ - Martin "Clean Architecture" (2017) — main component as the outermost wiring layer
134
+ - Standard pattern in oclif, Commander.js, yargs, Cobra CLIs
135
+
136
+ ## D18 — Codex CLI Native Adapter
137
+ - OpenAI Codex CLI docs: developers.openai.com/codex/subagents
138
+ - Codex CLI v0.115.0 release notes: github.com/openai/codex/releases/tag/rust-v0.115.0
139
+ - Agent Skills standard: developers.openai.com/codex/skills
140
+ - `README.md` and `docs/RUNTIME-SUPPORT.md` distinguish Codex CLI from Codex VS Code/app fallback behavior
141
+ - `bin/adapters/codex.mjs` (implementation)
142
+ - Live validation fixtures (2026-03-17): 3 Codex test runs confirming happy path, revision, max-3 escalation
143
+
144
+ ## D19 Scenario-Based Eval Coverage
145
+ - OpenAI: "Testing Agent Skills Systematically with Evals" (developers.openai.com/blog/eval-skills)
146
+ - Anthropic: "Demystifying Evals for AI Agents" (anthropic.com/engineering/demystifying-evals-for-ai-agents)
147
+ - Block: "Testing Pyramid for AI Agents" (engineering.block.xyz/blog/testing-pyramid-for-ai-agents)
148
+ - `tests/gsdd.scenarios.test.cjs` (S1–S5, ~37 assertions)
149
+
150
+ ## D20 Workspace Health Diagnostics
151
+ - `get-shit-done/workflows/health.md` (157 lines, GSD predecessor)
152
+ - OpenAI Harness Engineering (Feb 2026): error messages as enforcement mechanism
153
+ - External audit (2026-03-13): recommendation #3 "Add just enough: status/resume/progress/health"
154
+ - `bin/lib/health.mjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.guards.test.cjs` (G14)
155
+
156
+ ## D21 — OWASP Authorization Matrix
157
+ - OWASP Authorization Testing Automation Cheat Sheet: pivot-format matrix standard
158
+ - OWASP Top 10 for Agentic Applications 2026: A1 Agent Overreach, A4 Insufficient Authorization
159
+ - External audits (2026-03-13, 2026-03-17): independently flagged auth verification gap
160
+ - `distilled/templates/auth-matrix.md`, `agents/integration-checker.md` (Step 4a)
161
+
162
+ ## D22 Delegate Layer Architecture
163
+ - Anthropic multi-agent guidance: orchestration patterns with isolated sub-agents
164
+ - OpenAI Harness Engineering (2026): delegate pattern for reusable sub-agent behavior
165
+ - OpenDev "Terminal Agents" (arXiv 2603.05344): multi-agent coordination with explicit role contracts
166
+ - `distilled/templates/delegates/` (delegate files)
167
+ - `distilled/workflows/*.md` (`<delegate>` blocks)
168
+
169
+ ## D23Mapper Output Quantification
170
+ - `ideas.md` (internal, Feb 2026): direct per-tool comparison "84% declining > uses constructor injection"
171
+ - ArXiv 2602.20478 (Codified Context): structured quantifiable facts enable JIT context loading
172
+ - GetDX measurement framework (2026): adoption % as primary signal for convention strength
173
+ - Anthropic 2026 Agentic Coding Trends: context quality as primary competitive advantage
174
+ - `distilled/templates/codebase/conventions.md`, `distilled/templates/delegates/mapper-quality.md`
175
+
176
+ ## D24 Consumer Governance Completeness
177
+ - Anthropic "Effective harnesses for long-running agents" (2026): incomplete maps cause agent failure
178
+ - Agent Skills specification (agentskills.io): progressive disclosure requires complete top-level map
179
+ - HumanLayer "Skill Issue" (2026): AGENTS.md should be a complete capability map
180
+ - External audits (2026-03-13, 2026-03-17): documentation accuracy as top adoption blocker
181
+ - `distilled/templates/agents.block.md`, `tests/gsdd.guards.test.cjs` (G18)
182
+
183
+ ## D25 Consumer First-Run Experience
184
+ - Anthropic harness engineering (2025-2026): "honest constraints over vague prompting"
185
+ - OpenAI Codex skills documentation: clear per-platform invocation patterns
186
+ - Both GSDD external audits (2026-03-13, 2026-03-17): "architecture solid, presentation lags"
187
+ - `README.md`, `distilled/templates/agents.block.md`, `bin/lib/init.mjs`, `tests/gsdd.guards.test.cjs` (G19)
188
+
189
+ ## D26 Session Continuity Contract Hardening
190
+ - Anthropic "Effective harnesses for long-running agents" (2026): artifact-based session handoff
191
+ - GitHub "How to build reliable AI workflows with agentic primitives" (2026): session splitting
192
+ - OpenAI harness engineering (2026): incremental progress tracking is the key multi-session mechanism
193
+ - OpenDev terminal agents (arXiv 2603.05344): runtime state must be derivable from artifacts
194
+ - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
195
+ - `tests/gsdd.guards.test.cjs` (G20)
196
+
197
+ ## D27 Consumer-Ready Surface Completion
198
+ - External audit (2026-03-13): "architecture solid, presentation lags implementation"
199
+ - External audit (2026-03-17): "consumer surface identified as #1 bottleneck"
200
+ - External audit (2026-03-18): "docs should close the consumer journey"
201
+ - `README.md` (6 new subsections), `tests/gsdd.guards.test.cjs` (G21)
202
+
203
+ ## D28 Workflow Completion Routing
204
+ - Consumer audit (2026-03-21): "agent never proactively suggested the next GSDD command"
205
+ - `get-shit-done/workflows/progress.md` (GSD "Next Up" block pattern)
206
+ - Anthropic "Building effective agents" (2025): explicit handoff points with clear next actions
207
+ - `distilled/workflows/*.md` (9 `<completion>` sections), `tests/gsdd.guards.test.cjs` (G22)
208
+
209
+ ## D29 Approach Exploration
210
+ - Anthropic "Building effective agents" (2025): sub-agents return condensed summaries
211
+ - LangChain "Context Engineering for Agents" (2025): Write/Select/Compress/Isolate patterns
212
+ - `get-shit-done/workflows/discuss-phase.md` (gray area identification, GSD source)
213
+ - `get-shit-done/workflows/list-phase-assumptions.md` (5-dimension assumption surfacing)
214
+ - `get-shit-done/workflows/discovery-phase.md` (3-level research workflow)
215
+ - `agents/approach-explorer.md`, `distilled/templates/approach.md`, `distilled/templates/delegates/approach-explorer.md`, `distilled/templates/delegates/plan-checker.md`
216
+ - `distilled/workflows/plan.md`, `bin/adapters/opencode.mjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.plan.adapters.test.cjs`, `tests/gsdd.scenarios.test.cjs`
217
+
218
+ ## D30 Hardening Propagation
219
+ - D28 consumer audit (2026-03-21): persistence failures at every workflow boundary
220
+ - Huang et al. "LLMs Cannot Self-Correct Reasoning Yet" (ICLR 2024): LLMs need external feedback
221
+ - Kamoi et al. "When Can LLMs Actually Correct Their Own Mistakes?" (TACL 2024): self-correction requires reliable external feedback
222
+ - Anthropic long-context research (2024): instructions at decision points followed more reliably
223
+ - `distilled/workflows/quick.md`, `distilled/workflows/map-codebase.md`, `tests/gsdd.guards.test.cjs` (G24)
224
+
225
+ ## D31 Outcome Dimension for Plan-Checker
226
+ - Yu et al. "Outcome-Refining Process Supervision for Code Generation" (ICML 2025): +26.9% correctness with hybrid process+outcome supervision
227
+ - Rajan "Multi-Agent Code Verification via Information Theory" (2025): diminishing returns plateau at 4-7 dimensions
228
+ - Lightman et al. "Let's Verify Step by Step" (ICLR 2024): process supervision significantly outperforms outcome-only
229
+ - `distilled/templates/delegates/plan-checker.md` (`goal_achievement` dimension)
230
+
231
+ ## D32 Quick Workflow Alignment Hardening
232
+ - Risk-adaptive autonomy pattern (AWS, Azure, Anthropic 2025-2026): confirmation gates scale with consequence
233
+ - Anthropic agent autonomy research (2026): human-on-the-loop > human-in-the-loop
234
+ - Madaan et al. "Self-Refine" (NeurIPS 2023): 1 revision cycle captures most improvement
235
+ - `distilled/workflows/quick.md` (Steps 3.5-3.7), `tests/gsdd.guards.test.cjs` (G24)
236
+
237
+ ## D33 Quick Approach Clarification
238
+ - Anthropic "Measuring AI agent autonomy in practice" (2025): Claude asks 2x+ on complex tasks
239
+ - Knight First Amendment Institute "Levels of Autonomy for AI Agents" (2025): 5-level autonomy spectrum
240
+ - Anthropic "Framework for safe and trustworthy agents" (2025): recommendation-first framing
241
+ - Martin Fowler "Humans and Agents in SE Loops" (2025): HOTL > HITL
242
+ - `distilled/workflows/quick.md` (Step 2.5), `tests/gsdd.guards.test.cjs` (G24)
243
+
244
+ ## D34 Context Engineering Applied to Quick Workflow
245
+ - Anthropic Claude Prompting Best Practices: XML tags for semantic structure and attention
246
+ - Selective Prompt Anchoring (arXiv 2408.09121, 2024): up to 12.9% Pass@1 improvement from strategic anchoring
247
+ - `agentskit-architect SKILL.md` (prompty): identical hybrid XML-outer/markdown-inner structure
248
+ - `distilled/DESIGN.md` (DISTILLATION.md authority language resolution)
249
+ - `distilled/workflows/quick.md` (`<anti_patterns>` section, STOP normalization)
250
+
251
+ ## D35 Skills-Native Runtimes vs Governance Adapters
252
+ - Live consumer testing (2026-03-20): Cursor and Copilot auto-discover `.agents/skills/`
253
+ - User-performed live validation (2026-03-25): Gemini confirms same behavior
254
+ - `bin/lib/init.mjs` (adapter registry and root-governance generator)
255
+ - `README.md`, `docs/RUNTIME-SUPPORT.md`, `docs/USER-GUIDE.md`, `distilled/templates/agents.block.md`, `tests/gsdd.guards.test.cjs`
256
+
257
+ ## D36 Interactive Init Wizard
258
+ - `bin/lib/init.mjs` existing adapter-selection seam
259
+ - Local research on adjacent `prompty` repo: portable skills as primary install surface
260
+ - Repo lesson LL-INSTALL-DX-BEFORE-ALIAS-CLEANUP (lessons-learned.md)
261
+ - `bin/lib/init.mjs`, `bin/gsdd.mjs`, `tests/gsdd.init.test.cjs`
262
+ - npm init, Vite `create-vite`, Next.js `create-next-app`, Angular CLI `ng new`, Astro `create astro` all use TTY-interactive wizard with headless flags (industry standard for project scaffolding)
263
+
264
+ ## D37 Mutability-Driven Workflow Classification
265
+ - `distilled/workflows/verify.md`, `new-project.md`, `audit-milestone.md`, `pause.md`, `resume.md` (all require artifact writes)
266
+ - `distilled/workflows/progress.md` (only read-only workflow)
267
+ - Consumer audit: verification reports lost when persistence skipped
268
+ - `bin/gsdd.mjs`, `bin/lib/rendering.mjs`, `tests/gsdd.guards.test.cjs` (G27)
269
+ - Meyer's Command-Query Separation (CQS, "Object-Oriented Software Construction" 1988) — classify operations by mutation behavior, not semantic category
270
+ - Greg Young's CQRS (2010) — CQS applied at the architectural level
271
+ - Unix rwx model + AWS IAM / Kubernetes RBAC classify by mutation semantics as industry norm
272
+
273
+ ## D38 Retroactive Artifact Enforcement
274
+ - `.internal-research/gaps.md` I27 entry (two occurrences, root-cause analysis, close conditions)
275
+ - `distilled/workflows/execute.md` (D28 SUMMARY.md persistence gate)
276
+ - `distilled/workflows/verify.md` (D28 VERIFICATION.md persistence gate + D28/G30 ROADMAP closure)
277
+ - `distilled/workflows/audit-milestone.md` (retroactive artifact completeness check)
278
+ - `.internal-research/strategy.md` (kernel simplicity vs policy depth trade-off)
279
+ - `tests/gsdd.guards.test.cjs` (G30 guard for ROADMAP closure on pass)
280
+ - NIST SP 800-53 Rev. 5 (2020) — detective vs preventive controls as equally valid risk-management strategies
281
+ - ISO 27001 risk treatment — choice of detective vs preventive depends on cost/complexity tradeoff
282
+ - Reason's Swiss Cheese model (1990) layered defense where retroactive audit catches what preventive layers miss
283
+
284
+ ## D39 Brownfield Entry Wiring
285
+ - User brownfield audit finding (2026-03-20): map-codebase was useful but not presented as the start of a lightweight feature-work lane
286
+ - Existing quick-workflow hardening decisions D32-D34: quick already had alignment and scope controls, so the open gap was routing/context, not quick quality
287
+ - `distilled/workflows/quick.md` (Step 2 codebase-context read, planner delegate context)
288
+ - `distilled/workflows/map-codebase.md` (completion offers `/gsdd-quick` as the brownfield lane)
289
+ - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
290
+
291
+ ## D40 Three-Layer Continuity Boundary
292
+ - Phase 7 continuity review across all 14 workflow files: durable artifacts and live-state artifacts were present, but compressed judgment was not explicitly modeled
293
+ - D12 and D26: artifact/state continuity existed already, but without a named three-layer boundary
294
+ - `.planning/SPEC.md` (Continuity Layers constraint, Key Decisions row)
295
+ - `distilled/workflows/resume.md` (first workflow adopting the boundary directly)
296
+
297
+ ## D41 Compressed Judgment Persistence Surface
298
+ - Phase 8 review of `plan.md`, `execute.md`, `verify.md`, and `resume.md` as the four judgment-recovery entry points
299
+ - `distilled/workflows/pause.md` (checkpoint `<judgment>` write)
300
+ - `distilled/workflows/execute.md` (`SUMMARY.md` `<judgment>` write and prior-summary read)
301
+ - `distilled/workflows/plan.md`, `distilled/workflows/verify.md`, `distilled/workflows/resume.md` (judgment reads)
302
+ - `.planning/SPEC.md` (Key Decisions row)
303
+
304
+ ## D42 Session-Boundary Safety
305
+ - `distilled/workflows/resume.md` (`.continue-here.bak` retained across dispatch)
306
+ - `distilled/workflows/plan.md`, `distilled/workflows/execute.md`, `distilled/workflows/verify.md`, `distilled/workflows/quick.md` (fallback `.bak` judgment reads)
307
+ - `distilled/workflows/pause.md` (stale `.bak` crash-cleanup path)
308
+ - `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`
309
+
310
+ ## D43 Resume Provenance Truth Split
311
+ - `.internal-research/gaps.md` (`I29`, `I30`)
312
+ - `.internal-research/TODO.md` (stale checkpoint/worktree drift notes)
313
+ - `.internal-research/consumer-audits/worktree-provenance-and-checkpoint-drift-2026-04-12.md`
314
+ - `distilled/workflows/pause.md`, `distilled/workflows/resume.md`
315
+ - `bin/lib/provenance.mjs`
316
+ - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`
317
+
318
+ ## D44 Warning-First Transition Safety And Fail-Closed Terminal Writes
319
+ - `.planning/SPEC.md` (`LAUNCH-12`, `LAUNCH-13`)
320
+ - `.planning/ROADMAP.md` (Phase 20 and Phase 22 scope notes)
321
+ - `distilled/workflows/plan.md`, `execute.md`, `quick.md`, `new-milestone.md`, `complete-milestone.md`
322
+ - `distilled/workflows/verify.md`, `distilled/workflows/audit-milestone.md`
323
+ - `bin/lib/provenance.mjs`
324
+ - `tests/gsdd.guards.test.cjs`, `tests/gsdd.invariants.test.cjs`, `tests/gsdd.scenarios.test.cjs`
325
+
326
+ ## D45 Fork-Honest Launch Posture Before Identity Migration
327
+ - `.planning/SPEC.md` (v1.2.0 active requirements and posture)
328
+ - `.planning/ROADMAP.md` (Phase 23-27 ownership)
329
+ - `.internal-research/TODO.md`, `.internal-research/gaps.md` (`I39`), `.internal-research/lessons-learned.md`
330
+ - `.internal-research/release-jury-verdict-2026-04-15.md`
331
+ - `.internal-research/release-jury-public-truth-drift-2026-04-15.md`
332
+ - `.internal-research/public-release-two-layer-brief-2026-04-15.md`
333
+ - `get-shit-done/workflows/progress.md`
334
+
335
+ ## D46 — Archived Milestone Routing With Retained ROADMAP
336
+ - `.internal-research/gaps.md` (`I39`)
337
+ - `.planning/MILESTONES.md`
338
+ - `.planning/v1.1-MILESTONE-AUDIT.md`
339
+ - `distilled/workflows/progress.md`
340
+ - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`, `tests/gsdd.health.test.cjs`
341
+ - `get-shit-done/workflows/progress.md`
342
+
343
+ ## D47 — Brownfield Quick-Win Repair
344
+ - `.planning/SPEC.md` (`DX-03`, `BROWNFIELD-01`)
345
+ - `distilled/workflows/quick.md`, `distilled/workflows/progress.md`
346
+ - `distilled/workflows/new-project.md`, `distilled/workflows/map-codebase.md`
347
+ - `README.md`, `docs/USER-GUIDE.md`, `distilled/README.md`
348
+ - `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`, `tests/gsdd.invariants.test.cjs`
349
+
350
+ ## D48 Shared Lifecycle Evaluator And Dual-Canonical Runtime Boundary
351
+ - `.planning/SPEC.md` (`ENGINE-01`, `ENGINE-02`, `ENGINE-05`)
352
+ - `.planning/ROADMAP.md` (Phases 29 and 32)
353
+ - `.internal-research/TODO.md`, `.internal-research/gaps.md` (`I42`)
354
+ - `bin/lib/lifecycle-state.mjs`, `bin/lib/health.mjs`, `bin/lib/health-truth.mjs`
355
+ - `tests/phase.test.cjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.guards.test.cjs`
356
+ - `get-shit-done/workflows/progress.md`
357
+
358
+ ## D49 Deterministic Lifecycle Preflight Gates
359
+ - `.planning/SPEC.md` (`ENGINE-01`, `ENGINE-02`, `ENGINE-03`)
360
+ - `.planning/ROADMAP.md` (Phase 30)
361
+ - `bin/lib/lifecycle-preflight.mjs`, `bin/lib/lifecycle-state.mjs`, `bin/lib/session-fingerprint.mjs`
362
+ - `bin/gsdd.mjs`, `bin/lib/init.mjs`
363
+ - `distilled/workflows/plan.md`, `distilled/workflows/execute.md`, `distilled/workflows/verify.md`
364
+ - `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`
365
+ - `distilled/workflows/new-milestone.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
366
+ - `tests/phase.test.cjs`, `tests/session-fingerprint.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
367
+ - `get-shit-done/workflows/progress.md`
368
+
369
+ ## D50 — Evidence-Gated Closure Matrix
370
+ - `.planning/SPEC.md` (`ENGINE-04`, `VERIFY-01`)
371
+ - `.planning/ROADMAP.md` (Phase 31)
372
+ - `bin/lib/evidence-contract.mjs`, `bin/lib/lifecycle-preflight.mjs`
373
+ - `distilled/workflows/verify.md`, `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`
374
+ - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
375
+ - `agents/_archive/gsd-verifier.md`, `agents/_archive/gsd-integration-checker.md`
376
+
377
+ ## D51 Deterministic Runtime Surface Freshness
378
+ - `.planning/SPEC.md` (`ENGINE-05`)
379
+ - `.planning/ROADMAP.md` runtime-freshness milestone entry
380
+ - `.internal-research/gaps.md` (`I42`)
381
+ - `bin/lib/runtime-freshness.mjs`, `bin/lib/health.mjs`, `bin/lib/health-truth.mjs`, `bin/lib/rendering.mjs`
382
+ - `bin/adapters/claude.mjs`, `bin/adapters/opencode.mjs`, `bin/adapters/codex.mjs`
383
+ - `README.md`, `docs/USER-GUIDE.md`, `docs/RUNTIME-SUPPORT.md`, `distilled/README.md`, `distilled/DESIGN.md`
384
+ - Workflow docs use `node .planning/bin/gsdd.mjs ...` for internal helper commands and human docs prefer `npx -y gsdd-cli init/update/health`
385
+ - `tests/phase.test.cjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.plan.adapters.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
386
+ - `get-shit-done/workflows/progress.md`
387
+
385
388
  ## D52 — Generic Checkpoint Routing Ownership
386
389
  - `.planning/SPEC.md` (`ENGINE-01`, `ENGINE-03`)
387
390
  - `.internal-research/gaps.md` (`I45`)
@@ -452,12 +455,35 @@
452
455
  - `distilled/workflows/execute.md`, `distilled/workflows/verify.md`, `distilled/workflows/resume.md`, `distilled/workflows/progress.md`
453
456
  - `tests/gsdd.init.test.cjs`, `tests/gsdd.health.test.cjs`, `tests/gsdd.manifest.test.cjs`, `tests/phase.test.cjs`, `tests/gsdd.scenarios.test.cjs`
454
457
 
458
+ ## D59 — Continuity Authority And Planning-State Drift
459
+ - `.planning/phases/44-continuity-authority-and-persistence/44-APPROACH.md`
460
+ - `.planning/phases/44-continuity-authority-and-persistence/44-PLAN.md`
461
+ - `.planning/SPEC.md` (`REL-01`)
462
+ - `.planning/ROADMAP.md` (Phase 44)
463
+ - `.internal-research/gaps.md` (`I46`, `S6`)
464
+ - `bin/lib/session-fingerprint.mjs`, `bin/lib/lifecycle-preflight.mjs`, `bin/lib/runtime-freshness.mjs`
465
+ - `distilled/workflows/progress.md`, `distilled/workflows/resume.md`, `distilled/workflows/plan.md`, `distilled/workflows/execute.md`, `distilled/workflows/verify.md`, `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`, `distilled/workflows/new-milestone.md`
466
+ - `distilled/templates/brownfield-change/CHANGE.md`, `distilled/templates/brownfield-change/HANDOFF.md`, `distilled/templates/brownfield-change/VERIFICATION.md`
467
+ - `tests/session-fingerprint.test.cjs`, `tests/phase.test.cjs`
468
+
469
+ ## D60 — Release Closeout Contract
470
+ - `.planning/phases/45-release-closeout-contract/45-APPROACH.md`
471
+ - `.planning/phases/45-release-closeout-contract/45-PLAN.md`
472
+ - `.planning/phases/48-generated-helper-and-closeout-contract-parity/48-PLAN.md`
473
+ - `.planning/research/45-RESEARCH.md`
474
+ - `.planning/SPEC.md` (`REL-02`, deferred `LSC-05`)
475
+ - `.planning/ROADMAP.md` (Phase 45)
476
+ - `bin/lib/evidence-contract.mjs`, `bin/lib/lifecycle-preflight.mjs`
477
+ - `distilled/workflows/audit-milestone.md`, `distilled/workflows/complete-milestone.md`
478
+ - `distilled/DESIGN.md` D50 and D59
479
+ - `tests/phase.test.cjs`, `tests/gsdd.guards.test.cjs`, `tests/gsdd.scenarios.test.cjs`
480
+
455
481
  ---
456
-
457
- ## Maintenance
458
-
459
- Update this file when:
460
- - A new design decision is added to `distilled/DESIGN.md` (add entry here before or alongside the DESIGN.md commit)
461
- - An existing decision's evidence changes (update the relevant entry)
462
-
463
- Guard: G31 in `tests/gsdd.guards.test.cjs` asserts every decision in DESIGN.md ToC has an entry here with at least one source.
482
+
483
+ ## Maintenance
484
+
485
+ Update this file when:
486
+ - A new design decision is added to `distilled/DESIGN.md` (add entry here before or alongside the DESIGN.md commit)
487
+ - An existing decision's evidence changes (update the relevant entry)
488
+
489
+ Guard: G31 in `tests/gsdd.guards.test.cjs` asserts every decision in DESIGN.md ToC has an entry here with at least one source.