2.8 KiB
Spec: ADR Retrieval
Purpose
Defines how relevant ADRs are found by the os-adr plugin: deterministic-first layered narrowing (frontmatter match, status filter, Graphify expansion) with AI judgment applied only to the narrowed candidate set, graceful degradation without a project graph, a mid-task-callable query surface, and eval-readiness sketches accompanying the build.
Requirements
Requirement: Deterministic-first retrieval layering
ADR retrieval SHALL narrow candidates through ordered layers: (1) path/component match of query
inputs against each ADR's affected-paths/affected-components frontmatter; (2) status filter
admitting only Accepted ADRs by default, with an explicit override to include other statuses;
(3) Graphify graph traversal when a project graph exists; (4) AI judgment applied only to the
already-narrowed candidate set. AI judgment SHALL never be applied to the full ADR corpus.
Scenario: Path match narrows first
- WHEN retrieval is queried with file paths being edited
- THEN ADRs whose
affected-pathsmatch are selected before any model involvement
Scenario: Default status filter
- WHEN retrieval runs without an override
- THEN only
AcceptedADRs appear in the candidate set
Scenario: AI sees only the narrowed set
- WHEN the AI-judgment layer runs
- THEN it receives only the candidates surviving layers 1–3, not the full corpus
Requirement: Graph layer degrades gracefully
WHEN no graphify-out/ project graph exists (or ADRs are not yet indexed as graph nodes),
retrieval SHALL still function using layers 1, 2, and 4, without error.
Scenario: No project graph present
- WHEN retrieval runs in a project that has never been onboarded to Graphify
- THEN results are produced from frontmatter matching and status filtering alone
Requirement: Mid-task-callable query surface
Retrieval SHALL be exposed as a find skill (/os-adr:find) backed by a deterministic CLI,
callable at any point during a task — not only at SessionStart — so an agent can check
in-progress work against existing decisions.
Scenario: Query during a task
- WHEN an agent mid-task invokes
/os-adr:findwith the files or topic it is working on - THEN it receives the relevant Accepted ADR candidates for those inputs
Requirement: Eval-readiness sketches accompany the build
Held-out evaluation scenario shapes (write-trigger and retrieval) SHALL be sketched in a design doc before the plugin skeleton is finalized, and any plugin surface those sketches require SHALL be part of the initial build. The evaluation itself SHALL NOT be part of this change.
Scenario: Sketches exist before skeleton freeze
- WHEN the plugin skeleton is finalized
- THEN a scenario-sketch document exists covering at least one write-trigger and one retrieval scenario shape