Skip to main content

Skip docs navigation
manual page/ ADRs

Architecture Decision Records

sourceSource: suspec/docs/adrs/README.mdModified: 2026-07-19

Most users do not need to read these. ADRs document why Suspec is shaped the way it is — the decision history, including supersessions, lives here and only here.

Each ADR is a dated, immutable record of one load-bearing decision — its context, the decision, and its consequences — so a fork can judge whether the choice still fits. The full truth of any decision is the chain of ADRs that touch it, not the latest one alone.

This ledger is the index. It carries a row for every ADR — kept, amended, already-superseded, and new — with its current disposition. (The §N markers throughout this ledger and the topic tables below reference the historical kernel spec — a monolithic document since folded into docs/; they are retained as decision-provenance, not live links.)

Governance (Nygard immutability)

An accepted ADR MUST NOT be edited in place. "Amending" a decision means publishing a new, superseding ADR; the original remains byte-identical and only its ledger row gains the new disposition. Rewriting an ADR destroys the historical record that makes the chain auditable.

Two consequences of that rule govern this ledger:

  • Numbers 0011 and 0012 are intentionally vacant — vacated in an earlier consolidation and left unfilled so references to higher numbers do not shift.
  • The pre-kernel ADRs (00010026) are immutable history. Their bodies still name the pre-kernel vocabulary and paths (scaffold/, personas/, the consolidated SKILL.md, the earlier flow-graph) as they were decided. Those bodies are not subject to the kernel's active-construct rules (the §34 / A19–A28 retirements) — those rules govern canonical/active prose, not the historical record. The current truth of any amended decision is its superseding 0027+ ADR; read the chain, not the earlier body in isolation.

Ledger notes (2026-07-02, integrity pass):

  • Mechanical rename repair. A product-wide find-and-replace altered common nouns and one directory reference inside immutable ADR bodies. The affected sentences were restored to their original wording — a meaning-restoring repair of mechanical corruption, not a decision edit.
  • Kernel-era links + relocated evidence. Pre-0057 ADRs link into retired docs trees (model/, passes/, library/, artifacts/, language/) that the 0057 restructure removed, and several (0043, 0055, 0057) cite ephemeral evidence locations that no longer resolve. Those links are historical; the bodies stand unedited.

The ledger

ADRTitleDisposition
0001Four core document typesKept — recast onto the unified artifact set by 0030
0002Personas pair 1:1 with task typesSuperseded by 0020; the persona model it sits in was later recast by the profile × pass model (0036, §27.4); persona shipping partially superseded by 0064
0003Distillation flows downhill onlyKept
0004Task files are gitignoredSuperseded by 0060 — tasks are committed workspace flow artifacts — re-adopted in spirit by 0104 (the working set is gitignored again)
0005Template placeholder syntax {{name}}Kept
0006Skeptic mindset on fix tasksAmended → Superseded by 0036 (Skeptic is a profile on fix/review passes)
0007Bug report is diagnosis-onlyKept — the epistemic-stance invariant of the bug-report.md source artifact (§29)
0008Empirical proof is framework-levelKept
0009Personas are mindsets, not org rolesAmended → Superseded by 0036 (personas become heuristic profiles); partially superseded by 0064 (personas fold into focused guides)
0010Writes single-thread through orchestratorKept — preserved by the write-surface model (0039)
0011(intentionally vacant)
0012(intentionally vacant)
0013Iron law + red-flags persona formatAmended → Superseded by 0036 (iron law → a profile's ## Refuses table, §27.2)
0014Delegation vs internal recursionKept
0015Framework versioning for consumersKept, extended by 0041 — scoped to the package axis; the language axis is added alongside (§25); spec-file versioning clauses superseded by 0058 (specs carry no language version) ; workspace-premised clauses retired by 0137
0016Skill bodies are self-containedKept — governs pass-guide bodies (§26); narrowed by 0149 (standalone skills may not depend even optionally on sibling skills)
0017No always-loaded skillsKept — pass guides and profiles are lazily loaded (§26.4, §31)
0018Commands resolve through the AGENTS.md contractAmended → Superseded by 0038 (VERIFY BY adapters resolve through AGENTS.md > Commands)
0019Personas ship as individual skillsAmended → Superseded by 0036 (a standalone file is one carrier option, §27.1); partially superseded by 0064 (persona shipping model)
0020Activation by self-assessmentAmended → Superseded by 0037 (doctrine is "load what the task names"; description-match is the fallback)
0021Verification contractKept — a verification layer of the single SOL VERIFY BY model (§15)
0022Acceptance criteria are executable checksKept — a verification layer of the SOL VERIFY BY model (§15)
0023Harness-enforcement contractKept — a verification layer of the SOL VERIFY BY model (§15)
0024Self-reviewed vs independently-reviewed confidence tiersAmended → Superseded by 0035 (tiers map onto the 7-value verdict taxonomy)
0025Orchestration coordination artifactAmended → Superseded by 0039 (owned/forbidden paths → the lowered write-surface)
0026Machine-readable conformance contract + fixturesKept — a verification layer of the SOL VERIFY BY model (§15); realized by the golden fixture set (0033); refined by 0063; validity clauses partially superseded by 0066
0027SOL is the obligation languageNew (kernel) — §5, §6; partially superseded by 0058 (SOL becomes the optional stricter surface, a notation)
0028APS is the prose standardNew (kernel) — §7; partially superseded by 0058 (APS becomes advisory writing rules)
0029The 9-pass compiler modelNew (kernel) — §9; refined by 0057 (nine steps become the advanced lifecycle); per-kind routing clauses partially superseded by 0068
0030The unified artifact setNew (kernel) — §20, §29; narrowed by 0151 (the Suspec-owned artifact set was closed); narrowed again by 0157 (inspection retires, leaving spec, task, review, inventory, change-plan, audit, and research)
0031The source-authority two-axis modelNew (kernel) — §22
0032The memory modelSuperseded by 0142 (was accepted) — the two-tier, provenance-anchored promotion architecture retires entirely; the claim+evidence discipline survives as skill prose — previously: New (kernel) — §23; refined by 0067 (core demoted to findings/ + one close-step rule, the tiering model kept as an advanced reference page); carried by 0137 Decision 3 (durability by promotion)
0033The golden fixture setNew (kernel) — §33; refined by 0065; suspec framing superseded by 0066
0034The unified SOL-<LAYER><NNN> lint namespaceNew (kernel) — §8
0035The 7-value verdict modelNew (kernel) — §14; supersedes 0024
0036Personas become heuristic profilesNew (kernel) — §27; supersedes 0006, 0009, 0013, 0019
0037Loading doctrine: load what the task namesNew (kernel) — §26.4; supersedes 0020
0038VERIFY BY adapters resolve through AGENTS.md CommandsNew (kernel) — §15, §31.3; supersedes 0018
0039The write-surface modelNew (kernel) — §18, §19; supersedes 0025
0040The kernel payload ships under starter-kit/New (kernel) — §20.5, §34.0 (rename from scaffold/, pulled forward from the v0.2 deferral)
0041Two-axis versioning (language axis + package axis)New (kernel) — §25; extends 0015; spec-file clauses superseded by 0058 (no per-file language version) ; workspace-premised clauses retired by 0137
0042Skills carry as SKILL.md; conditioning ships as many standalone surgically-activated skillsNew (kernel) — §26, §27; refines 0016, 0017, 0019, 0029, 0036, 0037; refined by 0064; per-kind routing clauses partially superseded by 0068
0043Checkable documents — what is lintable, and with whatProposed / parked — direction only; no document-lint rule built yet (SOL-P is still spec-prose-only). Its backlog plan was retired (see git history)
0044The kernel is a derived, self-contained payload — docs/ is canonical for the language/passes twinsNew (kernel) — §20.5/§34; refines 0040; twin mechanism retired by 0051 (docs/ is now the sole canonical home)
0045Overlays are project-owned and live outside the replaceable kernel payloadSuperseded by 0049 — no overlays dir; conventions live in AGENTS.md
0046A task implementing a spec gets a worktree+branch; ad-hoc work stays in-placeNew (kernel) — §18; refines 0039; operationalizes 0010 ; workspace-premised clauses retired by 0137
0047Skills are self-contained; citations are provenance, not a required readNew (kernel, from suspec-cli adoption)refines 0016, 0042
0048The installed payload is the runtime surface, not the whole kernelSuperseded by 0049what to ship survives (skills + reference/ cards + templates), but it installs in place, not into a .suspec/kernel/ mount
0049Minimal install — .agents/, no mount, a small flow-based folder setSuperseded (in-repo workspace half) by 0137 (was accepted; the install-next-to-your-skills principle survives at the global tier) — previously: New (from suspec-cli adoption skeptic review)supersedes 0045, 0048; refines 0040, 0044; depends on 0047; flow folders shipped pre-built per 0069
0050Suspec is a spec-repo discipline; the code repo stays pristineSuperseded by 0137 (was accepted) — previously: New (spec-repo topology)refines 0049, 0041; depends on 0047; §6 narrowly reversed by 0081 (the kit provenance stamp is re-adopted)
0051Complete the spec-repo pivot — one authoring kit, specs top-level, code skills as referenceSuperseded by 0137 (was accepted) — previously: New (complete the pivot)refines 0050, 0048, 0042; retires the twin mechanism of 0044; refined by 0057; validity bar partially superseded by 0066
0052One artifact-home model — per-feature spec folders, one decisions/, memory for recallSuperseded by 0137 (was accepted) — previously: New (cohesive scaffold, grounded)refines 0051, 0050; aligns with 0032, 0043; partially superseded by 0060 (hybrid workspace layout)
0053Suspec is a structured specification & review system (review-as-exceptions)New (grounded positioning)refines 0050, 0051, 0052; grounded by HARNESSBENCH/AHE/HAL/TERMBENCH/ORCHID/METR/DORA2025; refined by 0057; intake-directory deferral partially superseded by 0061 ; workspace-premised clauses retired by 0137
0054Drop the residual compiler vocabulary (complete the de-cosplay)New (honesty sweep)enforces 0053 §4 + Invariant 1 (NO RUNTIME) in the contract layer; grounded by the skeptic audit; tree-level register completed by 0070
0055Close the gate's soft-control gaps (empty-set coverage, adequacy gating for high-RISK, uncovered-bug amendment)New (close the soft-control gaps)refines 0053, 0043; grounded by the 10-aspect simulation audit + SWEBENCH-ADQ/UTBOOST
0056Adversarial self-review is a mandatory completion disciplineNew (dogfooding)refines the implement step + persona-skeptic + the working rules; reaffirms 0053's independence; grounded by REFLEXION
0057Practical-first repositioning and the six-step loopNew (repositioning)refines 0053, 0054, 0029; supersedes the naming clauses of 0049 §2
0058Two-tier spec format, one data modelNew (repositioning) — supersedes the spec-file clauses of 0041/0015; partially supersedes 0027, 0028
0059Frontmatter type: is the sole artifact discriminatorNew (repositioning) — supersedes the infix-partition model; refines 0030, 0054; narrowed by 0152 (type: is mandatory, recognized values are closed, and unknown values fail)
0060The Suspec Workspace: hybrid layout, committed flow artifacts, the review packetSuperseded by 0137 (was accepted) — previously: New (repositioning)supersedes 0004; partially supersedes 0052; refines 0049, 0050, 0032; layout shipped pre-built per 0069 ; Decision 2 (commit the flow artifacts) reversed by 0104
0061The intake artifact and the Pull stepNew (repositioning) — refines 0030; partially supersedes 0053's intake deferral ; workspace-premised clauses retired by 0137; narrowed by 0151 (intake is not a Suspec-owned artifact type)
0062Code-repo adapter: pristine today, gitignored CLI state when a CLI existsNew (repositioning) — reaffirms 0049, 0050 ; narrowed by 0137 (workspace-premised mechanics retired)
0063The honesty framework and the tooling boundaryNew (repositioning) — refines 0023, 0026, 0034, 0043, 0055
0064Minimal starter kit: core copy surface, advanced tier, focused guidesNew (repositioning) — partially supersedes 0019, 0002, 0009; refines 0042, 0036, 0047, 0056; adoption framing superseded by 0069 (kit copied whole) ; advanced/examples tier dropped from the kit by 0105; skill tiering refined by 0111/0112 ; workspace-premised clauses retired by 0137
0065Three flagship examples; the large-PR review is the demoNew (repositioning) — refines 0033; refined by 0071 (step bars score the examples); happy-path example genericized feature-from-jirafeature-from-ticket (de-Jira) ; workspace-premised clauses retired by 0137
0066Checks: the adopter validity bar and the producer-internal reference valuesNew (repositioning) — partially supersedes 0026, 0051 validity clauses, 0033 framing; refines 0063; fixtures home renamed by 0070; scoring moved to step bars by 0071 ; workspace-premised clauses retired by 0137; narrowed by 0152 (the deterministic catalog contains only checks the reference implementation computes)
0067Memory: findings first, the heavier machinery as an advanced modelSuperseded by 0137 (was accepted) — previously: New (repositioning) — refines 0032
0068Inventory and Change Plan: the transformation tierNew (repositioning) — partially supersedes the per-kind routing clauses of 0029, 0042; refines 0030, 0046 ; workspace-premised clauses retired by 0137
0069The starter kit is a workspace, copied wholeSuperseded by 0137 (was accepted) — previously: New (scaffolding) — refines 0064 (copy-checklist framing superseded by copy-the-folder), 0060, 0049 ; the kit's shipping form is the template repo per 0075
0070checks/ is the home of the checks contractNew (scaffolding) — completes 0054's register sweep at tree level; refines 0066
0071Step bars: the per-step quality bars are product referenceNew (scaffolding) — supersedes the standalone evals surface; refines 0065, 0066
0072The run summary digest and the DX format amendmentsNew (DX remediation) — partially supersedes 0060 (run-record addendum clause); refines 0064, 0066, 0070, 0063 ; workspace-premised clauses retired by 0137
0073The multi-repo workspace, named and finishedSuperseded by 0137 (was accepted) — previously: New (multi-repo) — refines 0050, 0060, 0062, 0072
0074The repo family realized: producer workspace and skills catalogSuperseded by 0137 (was accepted) — previously: New (family) — refines 0064, 0069, 0073
0075The starter kit ships as its own template repo; essential guides ship installedSuperseded (copy-a-whole-workspace face) by 0137 (was accepted; the kit repo survives as a thin repo-seed) — previously: New (family) — refines 0064, 0069, 0073, 0074 ; adversarial-review leaves the essential-guides list per 0111 ; the thin-repo-seed remainder retired by 0138 (the kit repo retires entirely)
0076Worker provenance surface and the adoption-experience conventionsNew (adoption) — extends 0072; honors 0057, 0063; cross-links 0060, 0062 ; workspace-premised clauses retired by 0137
0077suspec-cli is a reconcile-only harness of composable partsNew (suspec-cli) — reframes [future-cli] as suggestive; refines 0054; builds on 0072, 0076; honors 0057, 0063 ; narrowed by 0137 (workspace-premised mechanics retired) ; narrowed by 0143 (the multi-verb surface retires; reconcile-only and facts-not-verdicts stand — the check verb is the harness)
0078C002 (duplicate-id) exempts draft specs from cross-spec requirement-id reuseNew (checks) — clarifies 0066; honors 0063; requirement-id carve-out subsumed by 0080 (the cross-spec requirement-id clause is dropped; ids are spec-scoped); the frontmatter-id: clause and the draft-is-not-final principle survive
0079C012 (coverage): mint the deterministic review-coverage checkNew (checks) — enables SPEC-suspec-cli-m2-review; builds on 0077, 0078; honors 0063 ; upheld by 0143 (the surviving checks' semantics stand)
0080Requirement ids are spec-scoped, not workspace-globalNew (checks) — supersedes part of 0078; honors 0063
0081Re-adopt the kit provenance stamp (narrow reversal of ADR-0050 §6)New (kit/cli) — narrowly reverses 0050 §6; honors 0063, 0077 ; workspace-premised clauses retired by 0137
0082Platform constraints are an advisory rule, not a new core sectionNew (docs) — builds on 0076; honors 0063
0083The structured-evidence format: binding a requirement's named Verify command to its recorded resultNew (checks/docs) — builds on 0077, 0079; honors 0063, 0080 ; upheld by 0143 (the surviving checks' semantics stand)
0084Boundary-safe prepare verbs; narrow the board-mutating close to scaffold-onlySuperseded by 0143 (was accepted) — the prepare verbs retire with their subjects — previously: New (cli) — narrows 0077 D1, reaffirms D8; honors 0063 ; narrowed by 0137 (workspace-premised mechanics retired)
0085suspec-mcp adapts the CLI's --json contract (shells out), not the core libraryNew (cli/mcp) — refines 0077 D1a, reaffirms D8; honors 0063 ; narrowed by 0143 (the suspec show <task|spec|review|checks> --json read family this ADR grew retires with the multi-verb CLI surface; the shell-out, never-import-core architecture is what survives — upheld); narrowed by 0153 (MCP preserves multi-path checking, validates payloads at runtime, and requires exact contract compatibility)
0086Deterministic review scanning is the shipped reconcile wedge: accept C014, gate the measurement track, reject the off-boundary asksNew (checks/docs/cli) — refines 0077 D7/D8, builds on 0079, 0083; honors 0060, 0063; narrowed by 0152 (C014 retires because no deterministic checker computes it)
0087Mint C015 citation-resolves: the inline [[KEY]] anchor check (toolable, fact-not-verdict, measured before shipping)New (checks/docs/cli) — surfaces a fact not a verdict (0077 D8); toolable not enforced (0063); the 0086+C014 mint precedent
0088Delegation provenance: a reviewable trace when an agent delegates to a subagent (neutral contract, runner-specific producers, fact-not-verdict)New (canon → cli/kit) — extends 0076, honors 0077 D8 + 0063
0089The decision handoff: an ## Open decisions section that frames an open decision for the human (convention, fact-not-verdict, evidence-grounded)New (canon → kit) — extends 0060, honors 0077 D8 + 0063
0090C015 tier-checks stay deferred: no high-precision form exists pre-measurement; the Rejected case is already covered by an invariantNew (canon) — refines 0087 D4; honors 0063, 0086 D3
0091suspec update: a reconcile-only kit refresh — ship --check, defer the mergeNew (canon → cli) — reopens 0081 narrowly; honors 0077 D8 + 0063 ; workspace-premised clauses retired by 0137
0092suspec-agents: a Claude-Code-first member of self-contained, useful worker definitions (records, never an executor; toolable-not-enforced)New (canon → suspec-agents/kit) — supersedes 0088's producer-2 destination; honors 0077 D8 + 0063; narrowed by 0151 (the custom agent catalog retires; harness-native fresh subagents provide isolation)
0093Collapse the 1:1 authoring personas; the catalog ships only cross-cutting stancesNew (canon → catalog/kit/website) — refines 0042 + 0064; honors 0063
0094Decomposition into small untangled units; review scrutiny weighted by diffusion, churn, and change-typeNew (canon → docs/kit) — honors 0063; the oversized-packet check is a suspec-cli follow-up
0095Ground the review model in evidence: maintainability-first value, independent distinct-lens reviewers, participation as the gate, agent-runs-the-app as evidenceNew (canon → docs/suspec-agents) — honors 0063, reinforces 0056; no format change (0058/0089 stand)
0096Artifact lifecycle at scale: durable-vs-ephemeral records, status + supersede, retention, freshness, and anti-duplicationNew (canon → docs/kit) — honors 0063; the supersede/index check is a suspec-cli follow-up; amended by 0104 (ephemeral-by-default retention); narrowed by 0137 (workspace-premised mechanics retired)
0097Mint C016 (pass-needs-evidence) + C017 (orphaned-reference); the oversized-packet band is specified-not-shipped (measured)New (canon → cli) — honors 0063 + 0086; resolves the 0094/0096 toolables ; narrowed by 0143 (C017 leaves the adopter contract; C016 and its hard severity stand at check time — the gate-path/reconcile-path split it was framed against retires, same as C013/C020); narrowed by 0152 (retired and reserved IDs remain unavailable while C021-C024 add direct artifact checks)
0098Portability: ship a Codex emitter + the universal AGENTS.md discipline; drop AntigravityNew (canon → cli + suspec-agents) — narrows 0092; honors 0063 + 0077 ; narrowed by 0143 (the Codex emitter retires; the universal AGENTS.md discipline stands); narrowed by 0151 (custom projections and agent definitions retire)
0099Review-lead orchestration, agent role routing, and reviewer ≠ implementerNew (canon → docs/suspec-agents)refines 0095; reaffirms 0056; honors 0063; narrowed by 0151 (custom role routing retires; native fresh subagents retain independent review)
0100Spec-external, ops-local: resolve the implementer straddle without committing ops artifactsSuperseded by 0137 (was accepted) — previously: New (canon → docs/kit)extends 0062/0050; reaffirms 0099
0101Open decisions carry options + a recommendation, in decision-bearing authoringNew (canon → kit) — reaffirms 0089, 0058, 0098
0102Lean the artifact surface: intake is an optional pointer; reference material single-sources to docsNew (canon → docs/kit) — reaffirms 0096; from RFC-lean-artifact-set
0103The spec is a living form; the task is an on-demand split sliceNew (canon → kit) — refines 0058/0030/0079; reaffirms 0056/0099/0100 ; narrowed by 0137 (workspace-premised mechanics retired)
0104Ephemeral by default: gitignore the working set, commit only durable truthSuperseded by 0137 (was accepted; extended to its logical end — the durable committed set becomes transient too, only promoted residue is durable) — previously: New (canon → kit) — reverses 0060; amends 0096; builds on 0103
0105Stretch and collapse: the artifact set is a dial, not a set of stationsNew (canon → kit) — refines 0064; builds on 0103
0106Keep-clean tooling: make zero-noise structural, not a conventionSuperseded by 0141 (was accepted) — nothing is left to manage once no record is owned — previously: New (canon) — realizes 0096; composes 0104/0105 ; narrowed by 0137 (workspace-premised mechanics retired)
0107Fast-track solo review via staleness detection, not an agent verdictSuperseded by 0143 (was accepted) — the staleness verbs retire; staleness is the reviewer's diff-reading duty — previously: New (canon) — reaffirms 0077 / 0056; reuses the Stale marker
0108Living specs: an Active container with per-requirement supersession, kept lightweightNew (canon) — refines 0103/0058/0096; ungates 0106
0109Output economy: a readable, economical agent-output convention (a floor, not a hook)New (canon → kit) — refines 0057; honors 0063/0077
0110The ## Execution entry is a structured change-record (a durable evidence digest)New (canon → kit/cli) — refines 0103/0108; extends 0107; narrowed by 0143 (the suspec show spec read surface this ADR's advisory rode retires with the multi-verb CLI surface; Scope/Coverage stand — Pins (reviewed-sha:/evidence-hash:, written by suspec stamp) retires with the staleness machinery it served, per 0143's Decision 1 exhaustive command surface)
0111Kit skills are Suspec concepts; style / stance / depth lives in the catalogNew (canon → kit/catalog) — refines 0064/0075; reaffirms 0093 ; narrowed by 0140 (the kit/catalog physical placement retires with the starter kit — every skill ships from one global catalog; the coupling test survives only as descriptive vocabulary)
0112Two-tier skills: a framework-free universal catalog, a Suspec-coupled kitNew (canon → kit/catalog) — refines 0111/0064; reaffirms 0105 ; narrowed by 0140 (the kit/catalog physical placement retires with the starter kit — every skill ships from one global catalog; the coupling test survives only as descriptive vocabulary)
0113Citations live in docs, not in products (the product-vs-docs boundary)New (canon → all repos) — refines 0111/0112; honors 0063
0114A retired/relocated-artifact registry + cross-repo reference linterSuperseded by 0151 (was accepted) - exhaustive status registry retires; exact topology and stale-name gates inspect current surfaces directly
0115Synced workspace catalogs must be links or freshness-gated (no orphaned copies)New (canon → kit/works) — refines 0064 ; workspace-premised clauses retired by 0137
0116Shipped-spec invariant + status/spec coherence checkNew (canon → cli) — accepted — refines 0108/0110 ; narrowed by 0137 (workspace-premised mechanics retired)
0117No count-bearing ranges in bootstrap/reference prose — link-only pointersNew (canon) — single-sourcing corollary; relates 0108; narrowed by 0155 (behavior-defining floors and caps remain explicit; changing inventory totals stay absent)
0118Numeric/adoption claims must be ground-truthed by live query, not voted from recallNew (canon → workflows) — honors 0063
0119Independent review is the invariant; the formal review is risk-weightedNew (canon → docs/site) — refines 0094; relates 0056/0105
0120Re-baselining: reconciling when reality has drifted from the artifactsNew (canon) — extends 0068/0103/0108; relates 0096/0116 ; workspace-premised clauses retired by 0137
0121Evidence-gating is the load-bearing mechanic: ungrounded model judgment is not a review signalNew (canon) — accepted — refines 0095/0056; honors 0063/0077 D8/0086 D5; relates 0093/0119 ; upheld by 0140 (the evidence discipline stands untouched — 0121 names no new tool; the gate-command mechanic it is sometimes conflated with belonged to 0077/0084/0107/0128/0129/0130/0136, retired/narrowed by 0143)
0122Revolver Review: a bounded, named form of the lead-orchestrated review panelSuperseded by 0132 (was accepted) — the bounded parallel-panel form is replaced by the rotating adversarial refine-loop; the union-not-vote reconcile and cheap-varied routing carry forward. Originally refined 0099; honored 0121/0117; related 0056/0119
0123Project Memory: a quarantine state + a poisoning-defense framing, extending the accepted memory modelSuperseded by 0142 (was accepted) — findings live in native harness memory; the agent-content-is-a-claim insight survives as skill prose — previously: New (canon) — accepted — extends 0032/0067; honors 0063/0107/0120/0121; relates 0113
0124Model cost-routing: an opt-in per-lens cost-tier convention the runner resolvesNew (canon) — accepted — serves 0122/0099; honors 0063/0117; relates 0121
0125Re-mint malformed-requirement-heading as C019; the C018 oversized-packet reservation stands (contract 0.11.0)New (canon) — accepted — corrects the unminted-id collision against 0094/0097; refines the C019 detection shape; honors 0063
0126C004 softens to at-least-one strength word; more-than-one becomes a split-candidate advisory (contract 0.12.0)New (canon) — accepted — refines 0058's writing rules on measured authoring friction (DX interrogation Q-02); honors 0063
0127C004 exempts SOL INTERFACE (IF-) blocks — a signature declaration has no strength-word slot (contract 0.13.0)New (canon) — accepted — refines 0126 on a measured SOL mis-fire; honors 0063
0128Mint C020 unresolvable-ref — a review whose named task/spec ref does not resolve hard-errors at the gate instead of silently passing (contract 0.14.0)New (canon) — accepted — closes a measured honesty-gate bypass; mirrors 0097's gate/reconcile severity split; honors 0077/0063; narrowed by 0143 (C020 and its hard severity stand at check time; the gate face retires)
0129C013 cmd-mismatch blocks at the gate face; other faces + reconcile stay advisory (contract 0.15.0)New (canon) — accepted — amends 0083 on the field test it deferred to; the reconcile-only boundary (nothing re-runs the command, 0085) is unchanged; honors 0077/0063; narrowed by 0143 (C013 and its blocking severity stand at check time; the gate face retires)
0130Review staleness also flags a reviewed file that drifts in content since reviewed_sha (reconcile-only, no contract bump)Superseded by 0143 (was accepted) — the reconcile verb it rode retires — previously: New (canon) — accepted — closes a measured content-drift blind spot in 0107; injected-predicate, 0-FP; honors 0077
0131Minimum useful rigor: default to the least rigor that leaves enough proof; add structure only where it changes execution or reviewability (the L0–L5 rigor ladder + the artifact leverage test; no contract change)New (canon) — accepted — refines 0057/0094, extends 0109; frames the measured parity question honestly (parity on tractable work; hard-work value plausible-and-unproven); honors 0117/0063/0119/0121 ; evidence note (2026-07-16): the cited suspec-works repository (DP-9 record, issue #90) has been deleted — the DP-9 measurement survives only as the verbatim excerpt in the ADR body
0132Revolver Review is a rotating adversarial refine-loop (≥6 stance pool, one reviewer at a time — mechanism refined by 0133; fix between rounds, re-review the revised state, up to 3 cycles, cheap-varied models); removes the adversarial-review skill, consuming its disciplineNew (canon) — acceptedsupersedes 0122, refines 0124 (cost-tiering defaults to cheap); mechanism refined by 0133; artifact/floor/mode clauses narrowed by 0146, then the sequential mechanism and floor restored by 0155; honors 0056/0119/0121/0063/0117
0133Examine, don't ruminate: decisions and factual claims rest on examination (primary source, the actual question), never speculation; when evidence is silent, measure and label the reasoned default — the anti-pattern is rumination over examinationNew (canon) — accepted — refines 0132 (revolver default → one reviewer at a time over a ≥6 pool, A/B queued), extends 0121/0131; its Revolver mechanism is reaffirmed by 0155; honors 0063/0117
0134Suspec's self-contained spine: the mandatory triad (spec→run→close; intake/task/review optional), artifacts-are-the-glue (a review reconciles against the spec, never the task), and skills/tools are additive accelerators — no canonical part depends on an optional one; the assumed floor is a capable harness (spawn a subagent for independent review); automated checks are early-warning, never a replacementNew (canon) — accepted — names the architectural spine; governs the sus-review rewrite, the skill-link purge, kit-skill self-containment, and the templates↔references question; relates 0119/0085/0133; honors 0063/0117 ; narrowed by 0144 (the mandatory-triad framing is replaced by keys-and-scaffold; the glue rule and the by-hand path stand); narrowed by 0149 (standalone operation forbids optional sibling-skill dependencies)
0135The kit declares its layout in a manifest; the CLI reads it, never a hardcoded templates/ path — decouples the CLI from the kit's layout so the kit can place templates per self-containment (resolves the ADR-0134 inversion + the held #8 templates↔references question)Superseded by 0138 (was accepted; the manifest-declared layout loses its last consumer when suspec update retires with the kit) — previously: New (canon) — accepted + implemented (2026-07-05) — resolves the CLI↔templates/ coupling under 0134; refines single-sourcing (kit declares layout, CLI discovers); shipped in suspec-cli (845697e) + the kit's suspec-kit.yaml, now toolable per 0063; honors 0117 ; narrowed by 0137 (workspace-premised mechanics retired)
0136The launcher boundary: suspec-cli automates the loop (worktree, setup, lean transient prompt, launch, record, reconcile) but is not the agent — it becomes one only if it runs the model loop, authors the verdict, semantically rewrites an artifact, or owns multi-agent mergeSuperseded by 0143 (was accepted) — the launcher retires; the boundary question dissolves with it — previously: New (canon) — accepted (2026-07-05) — clarifies 0077 Decision 8 (banned items unchanged; forward-note added there); upholds 0077 Decision 6, 0107, 0132, 0134 Decision 3; unblocks SPEC-suspec-cli-work; honors 0063/0117
0137Suspec is a personal harness: transient artifacts at ~/.claude/state/<repo>/, repo-root execution, durability by promotion (ADRs/tests/issues/PR digests), globally installed skill family, no committed workspace/board/.suspec/New (canon) — accepted (2026-07-09)supersedes 0049 (workspace half), 0050, 0051, 0052, 0060, 0067, 0069, 0073, 0074, 0075 (copy-whole face), 0100, 0104 (extended to its logical end); narrows 0062, 0077, 0084, 0096, 0103, 0106, 0116, 0135; upholds 0121, 0134, 0136, 0132, 0111/0112, 0092/0098 (global catalogs) ; narrowed by 0138 (the thin-repo-seed parenthetical retires — the kit repo retires entirely; suspec init owns the seed) ; Decision 2 narrowed by 0139 (store keys on the repo's absolute path not basename; location is a hand-computable rule the CLI conforms to, not a CLI-owned service; "beside the agent's scaffold" is a placement heuristic, not per-runner ownership) ; narrowed by 0141 (the CLI-resolved store, the anti-rot machinery, and the config exception retire; Decision 4's repo-root worktree launch and launch-prompt-as-store-pointer retire with the store and the launcher, per 0143 superseding 0136; transient-never-committed stands as the default, with a governance exception per 0141 Decision 1) and 0142 (durability-by-promotion retires; durable residue lives in native memory and the project's own channels)
0138Retire the starter kit entirely: suspec init seeds the repo from scaffolds embedded in the CLI, the skill family installs globally, artifact shapes live in the CLI's built-in scaffolds + the checks contract (human-facing reference: docs/reference/artifact-formats.md); suspec update + the kit-manifest machinery retire with itNew (canon) — accepted (2026-07-09)supersedes 0135 (the manifest-declared layout loses its last consumer as suspec update retires) and the kit-survival remainder of 0075; narrows 0137 (the thin-repo-seed parenthetical + its kit mentions retire); honors 0063/0117 ; narrowed by 0140 (the retirement stands; the CLI-init/scaffold successor claim retires — skills carry the shapes and placement, the CLI seeds nothing)
0139The store location is a deterministic rule keyed on the repo's ABSOLUTE path (not basename — kills the -2/-3 suffix + .repo-path marker + claim race), computed identically by any human/agent/CLI; the CLI conforms to the rule and anticipates near-misses, it does not own the location; the state-root is vendor-neutral; the skills state the rule directly so a self-started agent needs no CLI (restores ADR-0134 D3). Encoding sub-choice (escaped-dash abs-path mirror vs readable-slug+hash) left openSuperseded by 0141 (was accepted) — the location rule loses its subject with the store — previously: New (canon) — accepted (2026-07-09)narrows 0137 Decision 2 (basename key/suffix/marker + per-runner "beside the scaffold" reading retired); supersedes the SPEC-suspec-v2 AC-001 resolution mechanics (re-keyed by amendment); restores 0134 D3 for the store; upholds 0121 (the capture ledger is a pure function of the resolved store dir)
0140Suspec v3: the methodology ships as skills, first-class; CLI/MCP/checks reinforce; Suspec coexists with native plan mode; proportional rigor is doctrine; checks advise — no gate command; adopters commit no Suspec artifactsNew (canon) — accepted (2026-07-10) — the re-founding umbrella; narrows 0138 (the CLI-init/scaffold successor claim retires); 0111/0112 (the kit/catalog physical placement retires with the starter kit; the coupling test survives only as descriptive vocabulary); upholds 0121 (evidence discipline stands untouched — it names no new tool; the gate-command mechanic retires via its actual owners, narrowed/superseded by 0143), 0131, 0134, 0132/0133, 0113, 0109; companions 0141/0142/0143 ; Decision 4 narrowed by 0144 (proportional rigor restated through keys-and-scaffold); narrowed by 0151 (the standalone catalog is smaller; implementation and delegation stay native) ; evidence note (2026-07-16): the cited suspec-experiments and corpus-works repositories (paired trial, SPEC-suspec-v3) have been deleted — their cited content survives only as summarized in the ADR body
0141Artifacts live beside the agent's native artifacts: skills describe placement, the agent chooses the spot, paths flow explicitly; the store and its management machinery retireNew (canon) — accepted (2026-07-10)supersedes 0139 and 0106; narrows 0137 (transient-never-committed stands as the default, with Decision 1's governance exception; the CLI-resolved store, anti-rot machinery, and config exception retire); upholds 0134 Decision 3; narrowed by 0148 (vendor-adjacent placement is replaced by a passive agent-neutral root)
0142Durable findings become native harness memories (one claim per memory, evidence attached, searchable title); no promotion machinery; memory hygiene is skill proseNew (canon) — accepted (2026-07-10)supersedes 0123, 0032 (refined by 0067), and (with 0141) 0137's durability-by-promotion decision; upholds 0121's evidence discipline
0143Path-agnostic check is the entire CLI contract: suspec check <artifact> [--spec <path>] [--task <path>] + suspec check --contract; no resolution of any kind beyond C010's sibling-spec scan; a missing required companion blocks; C009/C010/C015 resolve artifact-relative; C017 leaves the adopter contract (contract 0.16.0)New (canon) — accepted (2026-07-10)supersedes 0136, 0084, 0107, 0130; narrows 0077, 0097, 0128, 0129, 0098, 0085 (its suspec show … --json read-family growth only), 0110 (the suspec show spec surface its advisory rode; Pins retires with the staleness machinery it served); upholds 0085 (shell-out, never-import-core architecture), 0063, 0079/0083 (the surviving checks' semantics); narrowed by 0153 (MCP accepts ordered primary path sets while review companions remain explicit)
0144Keys and scaffold: intent · review · findings are the keys — present on virtually every change at whatever weight it earns; the spec, task split, inventory, change plan, and checker are scaffold pulled in when the work earns them; keys-and-scaffold replaces mandatory-vs-optional as doctrine and vocabulary; the seal reads hexagon = the loop, triangle = the keysNew (canon) — accepted (2026-07-11)narrows 0134 (the mandatory-triad framing is replaced; artifacts-are-the-glue and the by-hand path stand verbatim) and 0140 Decision 4 (proportional rigor restated: keys always present, scaffold is what the dial moves); upholds 0131, 0142; narrowed by 0151 (the owned artifact and skill surfaces are closed and reduced)
0145Disrespec, structured human decisions, agent evidence assessment, lean artifact shapes, and evidence receiptsNew (canon → skills/agents/cli/mcp) — accepted (2026-07-12) — narrows 0058, 0083, 0097, 0101, 0109, 0119, and 0121; retires C005/C006 and renames C016 without reusing IDs; contract 0.17.0; narrowed by 0149 (the named byte-identical spine and parity gate retire while local economy rules stand); narrowed by 0150 (artifact-only handoff applies to artifact deliverables, and disposition waits for lifecycle close); narrowed by 0157 (economy governs skill source, one method owns ambiguity choices, and the contract advances to 0.19.0); narrowed by 0158 (receipt links gain deterministic path and anchor checks); scope note (2026-07-16): D1's "Markdown artifacts" reads format-neutral — Disrespec hardens supplied prose in any markup, matching the live docs/reference/output-economy.md doctrine; the source-code, commit-message, and PR-form exemptions stand
0146Purpose-specific inspection portfolio: Bulletproof, Demolition, Revolver, and Triple-check; command skills replace the remaining challenger personaNew (canon → skills/agents) — accepted (2026-07-12) — narrows 0093, 0122, 0124, and 0132; narrowed by 0151 (the small standalone catalog retains these methods while implementation stays native); narrowed by 0155 (Revolver is artifact-free, regains the stance floor, and resolves sequentially); narrowed by 0157 (inspection artifacts retire and Triple-check repairs sequentially)
0147Explicit stateless whole-artifact promotion into project-native durable channelsNew (canon → skills) — accepted (2026-07-12) — narrows 0137, 0141, and 0142 without restoring a store, registry, or lifecycle; narrowed by 0148 (promotion remains durable-only); narrowed by 0150 (Promote is one lifecycle-close choice and its selection is the explicit request)
0148Ordinary Suspec artifacts use the agent-neutral ~/.agents/artifacts/<workspace>/ rootNew (canon → skills/agents) — accepted (2026-07-12) — narrows 0141 and 0147; keeps explicit paths, zero repository footprint, and durable-only promotion; narrowed by 0150 (explicit per-run disposition replaces indefinite accumulation without lifecycle state); narrowed by 0157 (inspection is no longer an artifact)
0149Skills state every required rule directly and work when installed aloneNew (canon → skills) - accepted (2026-07-12) - narrows 0016, 0134, and 0145; retires named spines and byte-parity gates; narrowed by 0150 (artifact-producing skills state lifecycle-close disposition directly); narrowed by 0151 (the standalone catalog is reduced to the current method and artifact-author set); narrowed by 0157 (skill source becomes ruthless and one dedicated method owns ambiguity choices)
0150Action requests trigger action; transient artifact sets receive a delete, leave, or promote choice at lifecycle closeNew (canon -> skills) - accepted (2026-07-13) - narrows 0145, 0147, 0148, and 0149 without adding lifecycle state or cleanup machinery; narrowed by 0157 (lifecycle close belongs only to artifact workflows)
0151A small standalone skill catalog, native fresh subagents, and a closed owned artifact setNew (canon -> skills/agents) - accepted (2026-07-13) - supersedes 0114; narrows 0030, 0061, 0092, 0098, 0099, 0140, 0144, 0146, and 0149; narrowed by 0154 (task packets retain one governing requirement authority); narrowed by 0157 (fork-me joins the catalog and inspection leaves the artifact set)
0152Strict frontmatter, explicit artifact types, direct task checks, and an honest deterministic catalogNew (canon -> CLI) - accepted (2026-07-13) - narrows 0059, 0066, 0086, and 0097; checks contract 0.18.0; narrowed by 0154 (exact C023/C024, task authority, and unnumbered review shape; version unchanged); narrowed by 0157 (inspection retires and the contract advances to 0.19.0); narrowed by 0158 (C025-C027 close structural and wiring gaps; contract 0.20.0); narrowed by 0159 (C022 gains dependency handoff and task checks bind one explicit source spec; contract 0.21.0)
0153Multi-path MCP checking, exact runtime compatibility, and a lean response envelopeNew (canon -> MCP) - accepted (2026-07-13) - narrows 0085 and 0143; narrowed by 0157 (exact compatibility advances to checks contract 0.19.0); narrowed by 0158 (exact compatibility advances to 0.20.0); narrowed by 0159 (task specPath forwarding and exact compatibility advance to 0.21.0)
0154Spec-backed tasks, visible evidence forms, and mechanically closed review decisionsNew (canon -> skills/CLI) - accepted (2026-07-13) - narrows 0151 and 0152; checks contract remains 0.18.0; narrowed by 0157 (the contract advances to 0.19.0); narrowed by 0158 (accepted preservation coverage must be fully Supported); narrowed by 0159 (task source authority and valid review companions are enforced at check time)
0155Revolver is an artifact-free sequential resolution loop with a target-derived stance floorNew (canon -> skills) - accepted (2026-07-13) - narrows 0117 and 0146; restores the operative 0132/0133 mechanism; narrowed by 0157 (supported findings must be fixed and verified in sequence)
0156Fixed methods execute and stop on concrete blockers without generic decision menusNew (canon -> skills) - accepted (2026-07-13) - narrows 0145 and 0155; narrowed by 0157 (genuine ambiguity routes through the dedicated choice method)
0157Ruthless economical skill prose, universal ambiguity forks, closed artifact authorship, and sequential inspection repairNew (canon -> skills/CLI/MCP) - accepted (2026-07-13) - narrows 0145, 0146, 0148-0153, 0155, and 0156; checks contract 0.19.0; narrowed by 0158 (contract 0.20.0 binds spec, review, and receipt structure)
0158Spec shape, review-to-spec binding, receipt resolution, and non-waivable preservation coverageNew (canon -> skills/CLI/MCP) - accepted (2026-07-13) - narrows 0079, 0121, 0128, 0145, and 0152-0154; checks contract 0.20.0; narrowed by 0159 (companions clear their hard checks before identity binding; contract 0.21.0)
0159Explicit task-source binding, valid review companions, and checked dependency handoffNew (canon -> skills/CLI/MCP) - accepted (2026-07-13) - narrows 0143 and 0152-0154, 0158; checks contract 0.21.0
0160Revolver derives every justified stance without a numeric floor; Triple-check runs three concurrent whole-target reviewersNew (canon -> skills) - accepted (2026-07-15) - narrows 0146, 0155, and 0157
0161Three-sentence selection metadata, ruthless executable bodies, standalone semantic composition, and evidence-maintained design docsNew (canon -> skills) - accepted (2026-07-15) - narrows 0113, 0149, and 0157
0162Large delivery through reusable worktree lanes, adaptive routing, native issues and pull requests, implementation-owner repair, and human merge authorityNew (canon -> skills) - accepted (2026-07-15) - narrows 0099, 0151, and 0157
0163Conventional concise pull requests, internal review stances, actionable comments, in-place resolution, and project-owned approvalNew (canon -> skills) - accepted (2026-07-15) - narrows 0157 and 0162
0164One spec format: structured markdown (### AC-NNN + Verify with:); the format: sol selector and the SOL surface retireNew (canon -> cli/mcp/skills) - accepted (2026-07-18) - supersedes 0058; narrows 0027; upholds 0059; contract 0.22.0
0165CLI engine, ambient MCP discovery, checker-agnostic skills, and optional invocationNew (canon -> skills/mcp) - accepted (2026-07-19) - upholds 0121, 0140, 0143, 0149, 0153, and 0161
0166One enriched Markdown requirement block with deterministic shape and exact modal checksNew (canon -> cli/mcp/skills) - accepted (2026-07-19) - narrows 0164; upholds 0131 and 0143; contract 0.23.0

The new kernel ADRs (0027+), by topic

The initial rework introduced sixteen ADRs (00270042); four follow-on decisions (00430046) refine the installable kernel's shape and are covered below and in the ledger above. Of the initial sixteen, the nine the spec enumerates as mandatory kernel decisions (§30.3) record decisions that must not be left implicit in prose:

ADRRecordsSpec
0027SOL is the single home of obligation semantics§5, §6
0028APS is the controlled-prose standard around SOL§7
0029author → lint → improve → lower → decompose → implement → verify → review → promote§9
0030the kernel artifact set incl. trace, VERDICT block, finding, memory§20, §29
0031domain axis × artifact axis, lexicographic§22
0032two-tier, provenance-anchored promotion§23
0033positive + negative conformance fixtures over the three domains§33
0034one prefix, five layers; APS violations surface under the SOL- prefix, not a separate APS- code prefix§8
00354 core + 3 lifecycle verdicts§14

The remaining seven carry the Group-B recasts, the kernel-rename/versioning extensions, and the skill-carrier packaging refinement: 0036 (profiles, §27), 0037 (loading doctrine, §26.4), 0038 (the VERIFY BY/Commands binding, §15/§31.3), 0039 (the write-surface, §18/§19), 0040 (the starter-kit/ payload, §20.5/§34), 0041 (two-axis versioning, §25), and 0042 (skills carry as SKILL.md + standalone surgically-activated conditioning, §26/§27; refines 0016, 0017, 0019, 0029, 0036, 0037).

The kernel spec required a conformant repo to carry these ADRs (or equivalents) so the chain would explain why the obligation language, prose standard, pipeline, artifact set, authority model, memory, suspec, lint namespace, and verdict set had their shape — historical context; the current validity bar is the one in checks (per 0066).

0043 is proposed / parked — it records a direction (keep obligation-blocks spec-only; give other agent docs a subtractive, deterministic, advisory check surface) but builds no lint rule and changes nothing in the live lint pass. It is design intent, not an in-force decision; its backlog plan was retired with the practical-first repositioning (see git history).

0044 settles the shape of the installable payload: docs/ is the single canonical source for the language/ and passes/ twins and the kernel is a derived, checked, self-contained copy that resolves offline (no §N/Appendix-X refs to unshipped documents, no links into docs-only trees). The kernel is derived by mechanical rewrites (strip citations/§-refs, rewrite links to resolve offline) and kept honest by an eyeball-diff on edit + a grep-based coherence gate — refining the kernel-payload decision (0040). The one-time reconciling merge it authorized (the K2 work) is done.

Ledger note (2026-07-03) — link hygiene. 29 links inside pre-pivot ADR bodies pointed at the retired kernel layout (passes/, language/, model/, library/, artifacts/, reference/structured-form) and 404'd for every reader. Each was mechanically unlinked to inline code — wording untouched, decision content untouched — per the historical link-hygiene audit. No decision was edited.

Need a starting point? Install the skills