Merge pull request #651 from AssetOverflow/docs/servability-doc-adr0206-reconcile
docs: amend servability-blade session note — reconcile with ADR-0206 (no parallel substrate)
This commit is contained in:
commit
6f586f83d4
1 changed files with 79 additions and 11 deletions
|
|
@ -15,6 +15,8 @@ truthfully-labeled output modes).
|
|||
`No serving path, algebra, versor, recall, or gate touched. This is the research`
|
||||
`trail — what we decided and how the conversation arrived there.`
|
||||
|
||||
> **Amended 2026-06-08 (see [§ Amendment](#amendment-2026-06-08--reconcile-with-adr-0206--epistemic_state-do-not-build-parallel-substrate) below).** The doctrine here stands, but the original draft **under-referenced substrate that already ships the serving half of this design.** `ServabilityDecision` / `ServabilityBlade` must be built as the **activation of the already-shipped ADR-0206 response-governance bridge** (`ReachPolicy` / `govern_response` / `shape_surface`, gated STRICT-only today, already disclosing `[approximate]`), and the `epistemic_state` Literal must **reuse `core/epistemic_state.py`** — *not* a parallel object or a smaller renamed enum. Read the Amendment before building.
|
||||
|
||||
> **Why this doc exists, and why now.** CORE is open-source research in a largely
|
||||
> uncharted corner of AI — a deterministic cognitive engine, not a transformer
|
||||
> wrapper. The *reasoning behind* a design is as load-bearing as the design.
|
||||
|
|
@ -173,6 +175,12 @@ records its disqualification. This is the "typed" half of §2 made concrete.
|
|||
The serving-lane policy object. It consumes a `ProblemAttemptSession` plus risk
|
||||
and user intent, and selects a *truthfully-labeled* output mode.
|
||||
|
||||
> **Reuse, don't reinvent (Amendment 2026-06-08):** this *is* the ADR-0206
|
||||
> `ReachPolicy` / `govern_response` decision, gated STRICT today — not a new object.
|
||||
> The `mode` values below map onto `ReachLevel` (`STRICT < APPROXIMATE < EXTRAPOLATE
|
||||
> < CREATIVE`); the `epistemic_state` field must be `core.epistemic_state.EpistemicState`,
|
||||
> not the Literal sketched here. Build SRV as the *activation* of that seam. See the Amendment.
|
||||
|
||||
```python
|
||||
@dataclass(frozen=True)
|
||||
class ServabilityDecision:
|
||||
|
|
@ -310,12 +318,56 @@ thought honestly, not only ratified conclusions.
|
|||
|
||||
---
|
||||
|
||||
## Amendment 2026-06-08 — reconcile with ADR-0206 + `epistemic_state` (do NOT build parallel substrate)
|
||||
|
||||
A review of this note against the tree at `main` found it **under-references the substrate that
|
||||
already ships the serving half of this design.** The *doctrine* above stands; the *naming and the
|
||||
build plan* must reuse existing organs, not fork parallel ones (CLAUDE.md: reuse over reinvention;
|
||||
[[feedback-adr-cross-reference-discipline]]). Three bindings:
|
||||
|
||||
1. **`ServabilityDecision` / `ServabilityBlade` ⇒ advance ADR-0206 `core/response_governance/`, not
|
||||
a new object.** [ADR-0206](../decisions/ADR-0206-response-governance-bridge.md) (the
|
||||
Response-Governance Bridge) already ships `ReachPolicy`, `govern_response`, and `shape_surface`,
|
||||
with `ReachLevel = STRICT < APPROXIMATE < EXTRAPOLATE < CREATIVE` and disclosure prefixes
|
||||
(`shape_surface` already emits `[approximate]`). It is gated **STRICT-only** today
|
||||
(`govern_response` returns `STRICT_POLICY`; `shape_surface` is the identity at STRICT) — which is
|
||||
*precisely* "the answer/refuse binary is the strict end of a spectrum" (§5). The SRV modes map
|
||||
onto `ReachLevel`; the SRV `risk → strictness` table is the policy ADR-0206 explicitly left as the
|
||||
future bridge. **Build SRV as the activation of that seam** — produce a widening `ReachLevel`
|
||||
under the reliability-gate license — not as a parallel `ServabilityDecision`.
|
||||
|
||||
2. **The `epistemic_state` Literals (§4/§5) ⇒ reuse `core.epistemic_state.EpistemicState`.** That
|
||||
ratified enum already carries the richer taxonomy (`DECODED`, `EVIDENCED_INCOMPLETE`, `INFERRED`,
|
||||
`UNVERIFIED_POSSIBLE`/`NOVEL`, `CONTRADICTED`, `AMBIGUOUS`, `UNDETERMINED`, … + reserved
|
||||
`VERIFIED`, `SCOPE_BOUNDARY`, `COMPUTATIONALLY_BOUNDED`, …), and `response_governance/policy.py`
|
||||
already partitions it into ACTIVE / RESERVED / RECONCILE. The six-value Literal drafted in §4/§5
|
||||
is a parallel, smaller rename — **drop it and import the enum**; do not commit a new closed vocab
|
||||
([[feedback-defer-substrate-vocab-commitment]]).
|
||||
|
||||
3. **`ProblemAttemptSession` ⇒ extend `core/comprehension_attempt/`, don't fork.** §4 already names
|
||||
this as the home; make it **binding**: firm up `ComprehensionAttempt`'s evidence shape rather than
|
||||
adding a parallel dataclass — and only extend the existing type, never shadow it.
|
||||
|
||||
**First activation, already scoped.** The natural first widening past STRICT is the reserved
|
||||
`VERIFIED` state via a canonical-comparison pass —
|
||||
[`VERIFIED-canonical-comparison-scoping-2026-06-06`](../analysis/VERIFIED-canonical-comparison-scoping-2026-06-06.md)
|
||||
+ ADR-0206 (`VERIFIED` is the only state that licenses widening past gold). The disciplined loop:
|
||||
**produce one reserved state → consume it through `govern_response`/`shape_surface` → prove the
|
||||
served mode on the capability-index yardstick → keep `sealed_eval` verified/refuse → repeat.** One
|
||||
state at a time, no bulk taxonomy expansion, no parallel policy object.
|
||||
|
||||
> **Why the amendment, not a rewrite:** this is a session/research-trail doc; the original reasoning
|
||||
> is preserved intact above. The fault was a *missing cross-reference*, not a wrong idea — the
|
||||
> bindings here are what keep the next agent from building `ServabilityDecision`/`PRA` beside
|
||||
> ADR-0206 instead of inside it.
|
||||
|
||||
## Decision & sequencing
|
||||
|
||||
- **Decided (doctrine, not yet ADR):** `wrong=0` ≡ **no false presentation of
|
||||
epistemic status** — a disclosure discipline. Serving becomes graded controlled
|
||||
disclosure; the answer/refuse binary is retained verbatim only at the strict end
|
||||
(`sealed_eval` / `safety_critical`).
|
||||
(`sealed_eval` / `safety_critical`). **This is the ADR-0206 `ReachLevel` spectrum,
|
||||
gated STRICT today** — see the Amendment.
|
||||
- **Decided:** typed + isolated candidate guesses are admissible at **practice
|
||||
time** (they already are, via the sealed lane + CMB; we are naming the law).
|
||||
- **Proposed:** `ProblemAttemptSession` (PRA) as the practice-lane evidence
|
||||
|
|
@ -332,13 +384,29 @@ thought honestly, not only ratified conclusions.
|
|||
|
||||
## Open / next
|
||||
|
||||
- **PRA** — firm the `ProblemAttemptSession` evidence shape on the existing
|
||||
`core/comprehension_attempt/` substrate (verified + eliminated candidates +
|
||||
residual ambiguity, explicit).
|
||||
- **REL** — relevance / distractor grounding, so `confidence_basis` and
|
||||
`servable_claims` are grounded, not asserted.
|
||||
- **SRV** — implement the blade against `ServabilityDecision`; wire as the
|
||||
realizer's input; unify the refusal taxonomy under its `refuse_*` /
|
||||
`contradiction_report` branches.
|
||||
- **ADR** — promote this doctrine to an ADR *only* once SRV has a concrete
|
||||
consumer and the risk-tier mapping is a closed, tested contract.
|
||||
**Immediate (capability rung, unrelated to this doctrine — finish first):** the CMB ladder —
|
||||
**CMB-b** (exact solver, landed), **CMB-c** (reader), **CMB-d** (router/contemplation wiring),
|
||||
**CMB-e** (ledger) — plus the **R3-vac** oracle patch (port `_canonical_outcome` non-vacuous
|
||||
validation to `evals/rate_oracle`). None of these touch serving or this doctrine.
|
||||
|
||||
**Then (this doctrine, as ADR-0206 activation — per the Amendment, reuse don't reinvent):**
|
||||
|
||||
- **PRA** — firm the attempt evidence shape **on `core/comprehension_attempt/`** (extend
|
||||
`ComprehensionAttempt`: verified + eliminated candidates + residual ambiguity), reusing
|
||||
`core.epistemic_state.EpistemicState`. Not a new parallel dataclass.
|
||||
- **REL** — relevance / distractor grounding so `confidence_basis` is grounded, not asserted —
|
||||
consolidating the grounding that already exists (R2 referent guard, R1 distractor refusal,
|
||||
derivation `verify.py`, `epistemic_state_for_grounding_source`), not a greenfield organ.
|
||||
- **SRV** — **activate the ADR-0206 seam**: produce the reserved `VERIFIED` state (canonical
|
||||
comparison, scoping doc above) and let `govern_response`/`shape_surface` emit one widened
|
||||
`ReachLevel` for one measured case. Wire through the existing `shape_surface` (already the
|
||||
realizer-facing seam); unify `refuse_*` / `contradiction_report` under the existing refusal
|
||||
taxonomy. **Not** a parallel `ServabilityDecision`/blade.
|
||||
- **Yardstick gate (non-negotiable):** every widening shows a capability-index delta before it
|
||||
counts ([[milestone-agi-spine-A-to-E-complete]] discipline); `sealed_eval` stays verified/refuse.
|
||||
- **(Optional) second scorecard** — measure `over_refusal` / `mode_misclassification` as truthful-
|
||||
but-suboptimal, distinct from `wrong`, so over-refusal becomes visible debt. Must never alter
|
||||
sealed-eval scoring.
|
||||
- **ADR** — promote to an ADR (likely an **ADR-0206 amendment**, not a new ADR) *only* once a
|
||||
reserved state is produced, consumed through `govern_response`, and the `risk → ReachLevel`
|
||||
mapping is a closed, tested contract.
|
||||
|
|
|
|||
Loading…
Reference in a new issue