ADAPT-2: Canonical adaptive route authority (LOCAL_FIX | STANDARD_CHANGE | RESEARCHED_CHANGE) #291

Closed
opened 2026-09-09 14:24:43 +01:00 by conductor · 3 comments
Owner

Depends on: ADAPT-1. Blocks: ADAPT-3/4/5.

Add one authoritative route field with reasons[], risk_flags[], uncertainty_flags[], escalation_conditions[]. Deterministic-first: consumes ISSUE contract, INWARD grounding, authority owner, dependency/architecture flags, reversibility, local reproducibility, local testability, remaining design alternatives. A small bounded semantic classifier may arbitrate ONLY when deterministic policy cannot safely decide — no heavyweight triage stage.

Routes reversible and first-class: LOCAL_FIX→escalate on unknown mechanism; STANDARD_CHANGE→escalate on consequential architecture choice; RESEARCHED_CHANGE→downgrade when INWARD proves existing mechanism adequate. Route changes recorded, never failures.

Task tree derives allowed transitions; duplicate required_stages truth removed/derived from one canonical state model.

Tests: reproducible local bug→LOCAL_FIX; established feature→STANDARD_CHANGE; new backend/authority→RESEARCHED_CHANGE; local path discovers uncertainty→escalation; research path discovers existing mechanism→downgrade.

Depends on: ADAPT-1. Blocks: ADAPT-3/4/5. Add one authoritative route field with reasons[], risk_flags[], uncertainty_flags[], escalation_conditions[]. Deterministic-first: consumes ISSUE contract, INWARD grounding, authority owner, dependency/architecture flags, reversibility, local reproducibility, local testability, remaining design alternatives. A small bounded semantic classifier may arbitrate ONLY when deterministic policy cannot safely decide — no heavyweight triage stage. Routes reversible and first-class: LOCAL_FIX→escalate on unknown mechanism; STANDARD_CHANGE→escalate on consequential architecture choice; RESEARCHED_CHANGE→downgrade when INWARD proves existing mechanism adequate. Route changes recorded, never failures. Task tree derives allowed transitions; duplicate required_stages truth removed/derived from one canonical state model. **Tests:** reproducible local bug→LOCAL_FIX; established feature→STANDARD_CHANGE; new backend/authority→RESEARCHED_CHANGE; local path discovers uncertainty→escalation; research path discovers existing mechanism→downgrade.
Author
Owner

Parent epic: #284. Predecessor: #257 (PROVISIONALLY_RATIFIED).

Parent epic: #284. Predecessor: #257 (PROVISIONALLY_RATIFIED).

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the bugperception labels 2026-09-09 14:25:16 +01:00
Author
Owner

ADAPT-2 revised scope COMPLETE — PR #325 merged natively (master v0.66.0, 18/18 CI).

Revised per the 2026-09-10 handoff. The audit found classify_route() had zero production callers — architecturally implemented but cognitively dead. PR #325 makes it operational, applying the Runtime Reachability doctrine for the first time:

IMPLEMENTED → CALLED BY PRODUCTION ✓ (ISSUE stage dispatch entry)
→ CHANGES EXECUTION ✓ (LOCAL_FIX terminally routes out of the fixed-depth chain)
→ PERSISTED ✓ (append-only route.jsonl: INITIAL_ROUTE/ESCALATION/DOWNGRADE/FINAL_ROUTE)
→ OBSERVABLE ✓ (tree state records route + probes)
→ END-TO-END PROVEN ✓ (6 required canaries green)

Additions: structured sufficiency inputs with traceable provenance (UNKNOWN escalates, never manufactured certainty); mechanism-uncertainty honesty (measurement questions are not source-readable); Targeted Evidence Probe (bounded, outside the canonical chain, budget-capped, opt-in real probing); verification-driven escalation hook (bare failure evidence refused); narrow deep-research floor (non-downgradable).

Also paid in passing: dead ARTIFACT_MISSING block in _execute_outward (unreachable ~100 lines; missing-artifact case now fails loud per ADAPT-9 as intended), dual-module test identity poison, upstream pyright lock drift (the known TUNE).

Next per handoff §20: Live Rune Slice / reachability inventory, then PL1. ADAPT-2 expansion stops here per the completion criterion.

**ADAPT-2 revised scope COMPLETE — PR #325 merged natively (master v0.66.0, 18/18 CI).** Revised per the 2026-09-10 handoff. The audit found `classify_route()` had zero production callers — architecturally implemented but cognitively dead. PR #325 makes it operational, applying the Runtime Reachability doctrine for the first time: ``` IMPLEMENTED → CALLED BY PRODUCTION ✓ (ISSUE stage dispatch entry) → CHANGES EXECUTION ✓ (LOCAL_FIX terminally routes out of the fixed-depth chain) → PERSISTED ✓ (append-only route.jsonl: INITIAL_ROUTE/ESCALATION/DOWNGRADE/FINAL_ROUTE) → OBSERVABLE ✓ (tree state records route + probes) → END-TO-END PROVEN ✓ (6 required canaries green) ``` Additions: structured sufficiency inputs with traceable provenance (UNKNOWN escalates, never manufactured certainty); mechanism-uncertainty honesty (measurement questions are not source-readable); Targeted Evidence Probe (bounded, outside the canonical chain, budget-capped, opt-in real probing); verification-driven escalation hook (bare failure evidence refused); narrow deep-research floor (non-downgradable). Also paid in passing: dead ARTIFACT_MISSING block in `_execute_outward` (unreachable ~100 lines; missing-artifact case now fails loud per ADAPT-9 as intended), dual-module test identity poison, upstream pyright lock drift (the known TUNE). Next per handoff §20: Live Rune Slice / reachability inventory, then PL1. ADAPT-2 expansion stops here per the completion criterion.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#291