Skip to content

Commit 32e7853

Browse files
committed
Accept routing-fact ergonomics after live interface 45 qualification
1 parent e305c76 commit 32e7853

7 files changed

Lines changed: 110 additions & 57 deletions

File tree

‎docs/plans/README.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,5 +122,6 @@ closed; no further implementation slice in it is admitted.
122122

123123
[Routing-fact ergonomics](routing-fact-ergonomics/plan.md) owns the separately admitted
124124
focused input improvement, its consumer cutover and actual-agent qualification.
125-
The accepted six-slice refactoring remains closed. Review-evidence packaging and
126-
broader test strengthening are later, separately admitted work.
125+
It is Accepted after locked CI, independent review and connected interface-45
126+
qualification. The accepted six-slice refactoring remains closed. Review-evidence
127+
packaging and broader test strengthening are later, separately admitted work.

‎docs/plans/routing-fact-ergonomics/execution-ledger.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,31 @@ in `reports/r2-live-agent.md`. These disposable client runs do not substitute fo
148148
the actual connected-session check: that connection still reports interface 44 and
149149
`restart-and-reconnect`. Keep R-A7 and overall acceptance pending until the host
150150
refreshes the catalog and the connected tools exercise the changed surface.
151+
152+
## R2 acceptance and closure
153+
154+
After the session restart, both the connected native tool declarations and
155+
`runtime_info` reported interface 45, with `installation_state: current` and
156+
on-demand output delivery unchanged. Against one actual snapshot, the agent
157+
constructed a compact route from known values, answered the unresolved boundary
158+
question, and used the returned content-page and full-explanation requests
159+
directly. Three invalid calls returned bounded typed feedback; explicit unknown
160+
and a justified empty enum set retained their distinct meanings. Other unanswered
161+
facts remained unanswered. Production has no alias, boolean or nullable facts,
162+
so those cases retain the disposable-fixture CI evidence without fabricated live
163+
assertions. The [R2 live report](reports/r2-live-agent.md) records the connected
164+
observations separately from the paired fresh-model comparison.
165+
166+
The acceptance owner reconciled R-A1–R-A8: exact-source locked Python 3.12 CI
167+
run `36465019273` covers the integrated production candidate `09d7829d` through
168+
HEAD `39d44f00` (tree `ca0e6c21`); independent review found no blocker, and
169+
RF-R1/RF-R2 have explicit non-blocking dispositions. The evidence and manifest
170+
commits `56303b79` and `e305c760` changed only documentation and the generated
171+
repository-index digest. The final acceptance records likewise change no
172+
production source or output-delivery configuration. The complete structural
173+
checkpoint passed 73/73 after regenerating the suite-input manifest for the
174+
updated plan-index digest; manifest freshness passed. An identical full Engine
175+
campaign is not required for documentation-only changes. R1 and R2
176+
are Accepted, the plan acceptance status is satisfied, and no further slice is
177+
admitted under this plan. Review-evidence packaging and broader test strengthening
178+
remain separate priorities requiring new admission.

‎docs/plans/routing-fact-ergonomics/issues.md‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ blocker. The acceptance owner dispositions its two findings as non-blocking:
6464
and the reviewer found no reachable trigger; RF-10 and cold-transport tests
6565
exercise the known risk. Defer until a concrete valid-workflow failure exists.
6666

67-
The source-review recommendation is preserved as evidence for R-A8, not a final
68-
acceptance verdict. [Connected-agent qualification](reports/r2-live-agent.md)
69-
remains the open gate; exact-head locked CI has since passed separately.
67+
The source-review recommendation remains reviewer evidence, not unilateral
68+
acceptance authority. The owner accepted R-A8 after the separate exact-head CI
69+
and [connected-agent qualification](reports/r2-live-agent.md) passed. Neither
70+
advisory opens another implementation slice.
71+
72+
The production fact registry has no aliases, boolean facts or nullable facts.
73+
Their negative and state distinctions remain covered by disposable-fixture tests
74+
in the supported CI. They were not fabricated in the live production snapshot.

‎docs/plans/routing-fact-ergonomics/plan.md‎

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Routing-Fact Ergonomics
22

3-
**Plan status:** `Verifying`
3+
**Plan status:** `Accepted`
44

5-
**Current phase:** R2 exact-head CI and source review complete; connected interface-45 qualification pending
5+
**Current phase:** R2 accepted; no active implementation or integration slice
66

7-
**Next slice:** **R2 — Live agent comparison and accepted cutover**
7+
**Next slice:** `none`
88

9-
**Acceptance status:** `partial`
9+
**Acceptance status:** `satisfied`
1010

1111
**Composed-design review:** `applicable`; see [the composed-design admission](#simplicity-and-ownership-review).
1212

@@ -17,8 +17,8 @@
1717
**Admission:** this plan owns priority 2 of the user's new sequence **2 → 4 → 3**:
1818
routing-fact ergonomics, review-evidence packaging, then broader test strengthening.
1919
The prior six-slice refactoring is Accepted and closed. This plan does not reopen it.
20-
The user admitted `start` against this path; R1 is now implemented. The next
21-
admission is `verify` for the R2/integration evidence after checking current state.
20+
The user admitted `start` and then `verify` against this path. R1 and R2 are
21+
accepted; later priorities require separate admission.
2222

2323
## Objective
2424

@@ -89,12 +89,12 @@ Analysis, native queries and stored contracts. It is not a retired renderer.
8989
| --- | --- | --- | --- | --- | --- | --- |
9090
| R-A1 | The new focused input and output fact grammar is explicit, generated, discoverable, and has no old-envelope fallback. | contract | supported locked runtime | automated | satisfied | [Verification and exact-head locked CI](reports/verification.md) |
9191
| R-A2 | Equivalent supported inputs produce identical canonical fact bindings, rule truth/unknown sets, selected dependencies, ordering and qualified content. | focused + differential | supported locked runtime | automated | satisfied | [Verification and exact-head locked CI](reports/verification.md) |
92-
| R-A3 | Static and snapshot-dependent failures are bounded, useful typed input rejections; no invalid value becomes success, a transport exception or fabricated absence. | contract + negative | both MCP purposes | automated | satisfied | [Verification and remaining environment/host/review claims](reports/verification.md) |
93-
| R-A4 | Fact binding uses the selected snapshot after qualification; content and full-explanation continuations round-trip that binding without additional capture or compilation. | integration | real SQLite and replacement stdio | automated | satisfied | [Verification and remaining environment/host/review claims](reports/verification.md) |
94-
| R-A5 | Native query/preview, evidence-backed Analysis, authoring, stored identities/handles and prior retained workflows preserve their contracts and results. | compatibility/retention | baseline producer and candidate consumers | automated | satisfied | [Verification and remaining environment/host/review claims](reports/verification.md) |
92+
| R-A3 | Static and snapshot-dependent failures are bounded, useful typed input rejections; no invalid value becomes success, a transport exception or fabricated absence. | contract + negative | both MCP purposes | automated | satisfied | [Verification](reports/verification.md) |
93+
| R-A4 | Fact binding uses the selected snapshot after qualification; content and full-explanation continuations round-trip that binding without additional capture or compilation. | integration | real SQLite and replacement stdio | automated | satisfied | [Verification](reports/verification.md) |
94+
| R-A5 | Native query/preview, evidence-backed Analysis, authoring, stored identities/handles and prior retained workflows preserve their contracts and results. | compatibility/retention | baseline producer and candidate consumers | automated | satisfied | [Verification](reports/verification.md) |
9595
| R-A6 | All actual affected producers, consumers, generated examples and live guidance are coordinated; complete required CI and structural checks pass on the relevant material. | integration | current hash-locked CI | automated | satisfied | [Verification and exact-head locked CI](reports/verification.md) |
96-
| R-A7 | The supported live agent can construct and refine routing facts with the smaller format, use discovery as needed and preserve unknowns, without new repair loops or a required extra call. | user workflow | actual authorized client/model/surface | observed | pending | [Verification and remaining environment/host/review claims](reports/verification.md) |
97-
| R-A8 | Independent review and acceptance-owner disposition establish the exact candidate's invariants and proportionality; unrelated work and previous acceptance are preserved. | review | independent reviewer and owner | manual | pending | [Verification and remaining environment/host/review claims](reports/verification.md) |
96+
| R-A7 | The supported live agent can construct and refine routing facts with the smaller format, use discovery as needed and preserve unknowns, without new repair loops or a required extra call. | user workflow | actual authorized client/model/surface | observed | satisfied | [Connected interface-45 navigation and paired comparison](reports/r2-live-agent.md) |
97+
| R-A8 | Independent review and acceptance-owner disposition establish the exact candidate's invariants and proportionality; unrelated work and previous acceptance are preserved. | review | independent reviewer and owner | manual | satisfied | [External review](reports/external-review.md), [owner findings](issues.md), [final verification](reports/verification.md) |
9898

9999
No production standards proposal or publication is necessary for the navigation
100100
workflow qualification. Required existing authoring regressions and retained-state
@@ -308,7 +308,7 @@ its snapshot-dependent binding and multiple continuation producers.
308308

309309
### R1 — Coordinated focused contract and consumers
310310

311-
**Status:** `Implemented`
311+
**Status:** `Accepted`
312312

313313
**Goal:** implement the single smaller focused route representation with semantic
314314
and authority equivalence and useful error behavior.
@@ -341,7 +341,7 @@ current locked CI and generated freshness. Old focused input must fail usefully.
341341

342342
### R2 — Live agent comparison and accepted cutover
343343

344-
**Status:** `Planned`; depends on the coherent R1 candidate.
344+
**Status:** `Accepted`; completed against the coherent R1 candidate.
345345

346346
**Goal:** establish the externally meaningful reduction in construction burden and
347347
complete review/acceptance without a new feature slice.
@@ -393,10 +393,8 @@ priority 3 only defers broader unrelated test hardening.
393393

394394
## Blockers
395395

396-
The source candidate is locally verified. Supported-runtime CI and actual host/model
397-
behavior and independent review remain unqualified; their owner and procedure are
398-
R2/integration. The missing environment cannot be
399-
silently marked passed. Source and static planning checks do not claim R-A7.
396+
No acceptance blocker remains. The supported-runtime CI, independent review and
397+
actual connected interface-45 agent check are recorded under their own evidence.
400398

401399
## Re-Plan Triggers
402400

@@ -411,17 +409,18 @@ meaning and uncertainty rather than shipping a permissive fallback.
411409

412410
## Final Acceptance
413411

414-
Source implementation and local verification are complete. R-A3–R-A5 have the
415-
requested local/real-process evidence. R-A1/R-A2/R-A6 still require supported locked
416-
CI; R-A7/R-A8 require actual host/model evidence and independent review/owner
417-
disposition. See the verification report rather than substituting baseline CI or
418-
planning probes. Preserve original failures and repaired candidate evidence.
419-
Use ordinary repository branching/commit/review rules; no prescribed commit count,
420-
retrospective PR or history rewrite is part of this plan.
412+
R-A1–R-A8 are satisfied. Exact-source Python 3.12 locked CI covers the integrated
413+
production candidate; the independent source reviewer found no blocker; the owner
414+
deferred two advisories with triggers; and the refreshed connected agent completed
415+
construction, refinement, continuation and supported error cases on interface 45.
416+
The [verification](reports/verification.md), [live-agent record](reports/r2-live-agent.md),
417+
[review](reports/external-review.md), [issues](issues.md) and [ledger](execution-ledger.md)
418+
retain the separate evidence. No authoring boundary changed, so no new proposal
419+
lifecycle run was required. The earlier accepted six-slice sequence remains closed.
421420

422421
After R1/R2 acceptance, the user's next priority is **review-evidence packaging**;
423422
then **targeted test strengthening**. Neither is implemented or admitted as a source
424423
slice here, and neither reopens the closed six-slice refactoring.
425424

426-
- Acceptance status: `partial`
427-
- Final status: `Verifying`
425+
- Acceptance status: `satisfied`
426+
- Final status: `Accepted`

‎docs/plans/routing-fact-ergonomics/reports/r2-live-agent.md‎

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,30 @@
11
# R2 connected-agent qualification
22

3-
**State (2026-09-28): incomplete.** The connected authoring-purpose Codex tool catalog still presents interface 44. A direct `runtime_info` call returned instance `acd7ec54-b009-41a3-a5ee-62b2110681a9`, interface `44`, catalog digest `sha256:feedb6e08686a2b2036548c41c05459a7e72c4fd9d2cd217ecc22bf18b6c3d17`, `installation_state: restart-required` and `action: restart-and-reconnect`. The saved registration selects the repository source, purpose `authoring`, and `--output-schemas on-demand`; it has no new routing flag. No store, handle or registration argument was changed.
3+
**State (2026-09-28): completed after session restart.** The connected authoring-purpose Codex catalog and `runtime_info` both report interface **45**. The live instance is `7b218cb0-a70a-4325-934c-743b3f312e96`, catalog digest `sha256:8235cb21f7d1937be1a003eb2eef570345242194dac36d79463b16e26bb6d65d`, `installation_state: current`, `action: reuse`. The saved registration still selects the repository source, purpose `authoring`, and `--output-schemas on-demand`; it has no new routing flag. No store, handle or registration argument was changed.
4+
5+
## Initial stale connection (historical observation)
6+
7+
Before restart, the connected catalog still presented interface 44. `runtime_info` returned instance `acd7ec54-b009-41a3-a5ee-62b2110681a9`, catalog digest `sha256:feedb6e08686a2b2036548c41c05459a7e72c4fd9d2cd217ecc22bf18b6c3d17`, `installation_state: restart-required` and `action: restart-and-reconnect`.
48

59
Through that same connected tool, `routing_facts` returned a real snapshot handle and eight registered enum-set categories. For the representative review/qualification task, known facts were activities `verification, documentation`, boundaries `generated-contract, ipc`, topics `contracts, diagnostics, performance`, and details `topic.contracts.schemas, workflow.verification.oracles`. Other categories remained omitted and unknown. The baseline envelope request was 563 JSON bytes including the returned snapshot and `content.limit=2`. The old process returned the transport error `Engine invocation failed; inspect server stderr` for `route`, so it supplied no valid baseline route or continuation. This failure is not evidence about the interface-45 process. No application or standards mutation occurred.
610

7-
The candidate connection has not yet been refreshed in this agent session. Interface-45 construction, refinement, continuations and mistake feedback through this connected tool remain unobserved, so R-A7 is still open. The separate paired model comparison below does not replace that connected-agent check. Keep the plan `Verifying` until the actual catalog reports 45 and the live workflow is observed. Existing automated disposable-fixture coverage of boolean, nullable and alias cases remains separate from the production vocabulary, which has none of those definitions.
11+
The paired model comparison below is separate from the connected-session result.
12+
13+
## Actual connected interface-45 navigation and mistakes
14+
15+
`routing_facts` returned snapshot `snapshot:v1:00d9a08b-4d75-4266-a00c-e172d95df3c1` and eight enum-set definitions. The agent supplied known verification, documentation and commit activities, library application form, contracts/diagnostics/performance topics, and schema/oracle details directly. It left boundaries, frameworks, languages and workflow profile unanswered. The first compact route succeeded with 12 reading entries and four unresolved questions; no `describe_input` call was needed. The boundary question was then answered with `generated-contract` and `ipc` against the **same snapshot**. The refined route succeeded with 18 reading entries; frameworks, languages and workflow profile remained unanswered rather than becoming empty or absent.
16+
17+
The returned `content.next` request and the returned full `explanation` request were each passed directly to `route` without rebuilding their facts. Both succeeded, retained the same snapshot and compact fact values, and retained the three unanswered questions. The content page returned one exact item at offset one and a further continuation. A separate explicit-unknown enum-set assertion returned `{"state":"unknown"}` in the echo and kept that fact unanswered. A justified known-empty framework set returned `[]` and removed that question. These separate probes did not alter the main refinement's unknown facts.
18+
19+
| Live mistake | Result |
20+
| --- | --- |
21+
| String supplied for enum-set `routing.activities` | `ROUTE.INPUT_INVALID`, exact `/facts/routing.activities`, useful unique-string-set feedback. |
22+
| Undeclared fact name | `ROUTE.INPUT_INVALID`, non-exact `/facts` pointer without echoing the caller's key. |
23+
| Old `{type,state,value}` envelope | `INTERFACE.INVALID_ARGUMENTS`, bounded `/facts/*` `oneOf` feedback and `describe_input(route)` hint. |
24+
25+
All three were typed invalid outcomes (`isError: true`), not internal transport errors or successful routes. There were no route construction errors, repair calls or extra discovery calls in the successful connected workflow. The production registry has **no aliases, boolean facts or nullable facts**. Alias-collision, false, null and known-absence semantics therefore use the existing disposable-fixture tests in the supported 608/571-test CI, rather than inventing unsupported production facts or mutating standards. The live explicit-unknown and known-empty checks use actual enum-set definitions. No proposal, publication or production standards edit was made.
826

9-
## Paired fresh-model comparison (separate from the connected-session gate)
27+
## Paired fresh-model comparison (separate from the connected-session result)
1028

1129
Two disposable clean checkouts used the same `gpt-6-sol` prompt and authoring/on-demand registration: baseline `ff2e13ed31a42dbe6cc70ee76f7e7a7e58eabe76` (interface 44) and candidate `39d44f007c36684e1ebc546f31a19e20e2e660e5` (interface 45). The model routed a new internal library feature for implementation, verification and documentation, explicitly no application forms, with representation boundaries initially unresolved. It then learned the IPC and generated-contract boundaries, refined against the original snapshot, and followed one returned content page and the full explanation. All four route calls per side succeeded without input repair. The initial candidate explicitly supplied `routing.boundaries: {"state":"unknown"}`; the baseline omitted that still-unknown category. Both preserved other unanswered categories. The candidate's later calls used the returned compact facts directly.
1230

0 commit comments

Comments
 (0)