From 0bd4c82389e6cb7545ee4c8dfb9dbc081b1d7fe7 Mon Sep 17 00:00:00 2001 From: Rezolv Date: Thu, 25 Jun 2026 20:12:42 -0400 Subject: [PATCH] docs(#1607): record recall-side rejected alternatives in ADR-550 (#1714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Appends an 'Alternatives considered (recall / representation / packaging side)' addendum to ADR-550: the two NEW spec-phase-side rejections (the withdrawn LLM requirement classifier #652, and a deterministic prohibition-recall engine) plus cross-references to the two already-decided ones (no polarity field on truths — D3; deferred single dispatcher CLI — D7e). Enforcement-side alternatives stay in ADR-1606. Closes #1607. --- docs/adr/550-spec-phase-probe-contract.md | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/docs/adr/550-spec-phase-probe-contract.md b/docs/adr/550-spec-phase-probe-contract.md index ce7597c2b..8389b1245 100644 --- a/docs/adr/550-spec-phase-probe-contract.md +++ b/docs/adr/550-spec-phase-probe-contract.md @@ -142,3 +142,40 @@ This ratifies the **deterministic SOURCE** for the test-tier `CheckDescriptor` t 5. **Out of scope (unchanged boundaries).** Machine-proven fail-first (a violation-fixture / RuleTester-invalid proof replacing the `failFirst` caller attestation) stays tracked as **#1279**. The `dispositionForProhibition` green/fail-closed **policy** is untouched. No new check kinds are added. Net effect on D3: the prohibition-item shape is extended with three optional, backward-compatible flat-scalar keys that give the test-tier locate a deterministic spec-phase source; the contract's CI-testable surface (D5) gains the projection round-trip parity (CHK-03), the fail-closed guard (CHK-06), and the byte-stable backward-compat fixture (CHK-07). The decision also lives in `src/probe-core.cts` / `src/prohibition-enforcement.cts` comments, the `verify-phase.md` / `spec-phase.md` prose, and the #1278 changeset. + +## Addendum (2026-06-22) — Alternatives considered (recall / representation / packaging side) + +This consolidates the spec-phase-side rejected and deferred alternatives for the probe family, +so a re-proposal meets a recorded reason rather than a fresh debate. (The enforcement-mechanism +alternatives — the flat-vs-nested descriptor, the inline violation snippet, `failFirst` +attestation, and mandatory causation control — are recorded in **ADR-1606**, the +prohibition-enforcement verify-time seam.) + +- **A standalone LLM requirement *classifier* as a feature — REJECTED (#652, closed + 2026-06-04).** The enhancement "requirement classification in the spec phase should use an + LLM-assisted classifier" was closed without approval: the edge-probe's shape taxonomy plus + the prohibition probe's adversarial recall **already capture most of the value** a general + classifier would, without adding a separate model-dependent surface to maintain. *Re-open + only if* a classifier demonstrably beats both probes on a held-out battery. + +- **A deterministic `prohibition-probe.cjs` recall engine — REJECTED.** Unlike the closed edge + taxonomy, the prohibition recall stage is inherently LLM prose reasoning; only the + schema/projection layer is real code (Decision 7b). A deterministic recall adapter is the + scope-creep flagged in `gsd-core/references/prohibition-probe.md`; recall is validated + offline (N18), not asserted in CI. *Re-open only if* recall can be made deterministic without + collapsing the adversarial open-question that gives it model-robust reach. + +- **A `polarity` field on `truths` — REJECTED (already decided — see Decision 3).** `truths` + are positive observables with no `verify.cjs` handler; a prohibition parked there inherits + non-enforcement. Recorded in Decision 3 ("`truths` is left untouched — no `polarity` field is + added"); listed here only so the alternatives set is readable in one place. + +- **A single dispatcher CLI for all probes — DEFERRED (already decided — see Decision 7e).** + Each probe ships its own bin calling a shared `runProbeCli(...)`; a unified dispatcher is + deferred as pure invocation plumbing with no migration debt. Recorded in Decision 7e; listed + here only for completeness. + +*Net:* the two NEW entries (#652 classifier, deterministic recall engine) are the only ones +this addendum adds to 550's decision record; the other two are cross-references to existing +decisions, collected so the probe family's full "alternatives considered" set is readable in +one place.