# 08 - Archived Current Status Audit (2026-04-17) ## Status Canon Update - 2026-05-01 This is an archived execution snapshot, not the current progress dashboard. The percentages and graph counts below were correct for the `2026-04-17` audit window. Current module wording lives in: - [README.md](./README.md) - [21 - current_status_canon_2026-05-01.md](./21%20-%20current_status_canon_2026-05-01.md) ## Purpose This note is the honest execution snapshot for the turnaround package after the latest architecture passes, graph rebuild, and semantic acceptance work. It is not a replacement for the phase documents. It is the current-state audit that answers: - what is already real in code; - what still remains architectural debt; - how far the turnaround has actually progressed. ## Audit Basis This snapshot is based on: - `graphify-out/GRAPH_REPORT.md` rebuilt on `2026-04-19` - current owner modules in `llm_normalizer/backend/src/services/` - current scenario acceptance scripts under `scripts/` - current AGENT semantic source catalog under `docs/orchestration/` - live replay comparison between: - `address_truth_harness_phase12_wider_saved_session_pool_live_20260419_rerun16` - `address_truth_harness_phase14_counterparty_tail_resume_live_20260418_rerun2` - `address_truth_harness_phase15_answer_inspection_followup_live_20260419_rerun11` - `address_truth_harness_phase16_multicompany_late_pivot_live_20260419_rerun10` - `address_truth_harness_phase17_clarification_resume_and_counterparty_tail_live_20260419_rerun5` - [10 - regression_breakpoint_analysis_2026-04-17.md](./10%20-%20regression_breakpoint_analysis_2026-04-17.md) - [11 - continuity_stabilization_plan_2026-04-17.md](./11%20-%20continuity_stabilization_plan_2026-04-17.md) ## Graph Snapshot Latest graph rebuild: - `5372 nodes` - `11525 edges` - `135 communities` Most relevant current god nodes for turnaround `11`: 1. `resolveAddressIntent()` 2. `ChannelRegistry` 3. `CanonicalStore` 4. `compactWhitespace()` 5. `ExecuteQueryParams` The relevant conclusion is not that every god node is part of turnaround `11`. The relevant conclusion is: - `resolveAddressIntent()` remains the main unresolved domain-intent concentration point; - `composeFactualReplyBody()` no longer appears in the top god-node slice after the latest compose extractions, which means the central answer-shaping pressure has materially dropped; - `assistantService` still appears as a large coordinator-heavy community rather than a thin shell. ## What Is Already Real In Code ### 1. Policy owners are no longer hypothetical The following owner modules exist and are live architectural objects: - `assistantRoutePolicy.ts` - `assistantTransitionPolicy.ts` - `assistantBoundaryPolicy.ts` - `assistantMetaFollowupPolicy.ts` - `assistantMemoryRecapPolicy.ts` - `assistantProviderExecutionPolicy.ts` `assistantService.ts` wires these owners in active runtime paths around: - provider policy creation near line `4725` - route/meta/memory policy creation near lines `4738-4783` - transition policy creation near line `4785` - boundary policy creation near line `5439` ### 2. Truth and coverage/evidence are explicit contracts The exact lane now exposes explicit machine-readable contracts: - `address_truth_gate_v1` - `address_coverage_evidence_v1` Primary current owners: - `addressTruthGatePolicy.ts` - `addressCoverageEvidencePolicy.ts` - `assistantRuntimeContractResolver.ts` - `assistantTruthAnswerPolicyRuntimeAdapter.ts` This means exact-lane answers are no longer judged only by final text or hidden heuristics. ### 3. Scenario acceptance is now a real gate artifact The truth harness now writes: - `scenario_acceptance_matrix.json` - `scenario_acceptance_matrix.md` - `pack_state.json` - `final_status.md` Primary current owners: - `domain_truth_harness.py` - `scenario_acceptance_policy.py` This is the main reason the project is no longer relying on unit tests alone for architecture verification. ### 4. Mixed AGENT semantic source material already exists Current source catalog snapshot: - `truth_harness_steps_total = 58` - `saved_session_questions_total = 81` The source catalog already covers mixed reusable tags such as: - `inventory_root` - `selected_object` - `selected_object_supplier` - `counterparty_documents` - `counterparty_shipment_fallback` - `settlements_account_60` - `settlements_receivables` - `vat` - `meta_smalltalk` - `meta_scope` - `meta_capability` - `meta_historical_capability` - `meta_memory` - `same_date_pivot` - `same_date_restore` This is enough to build targeted semantic packs that are not single-domain toy scripts. ## Honest Phase Status Turnaround implementation progress: `~96%` Pre-expansion readiness: `~78%` This split is intentional. The codebase already contains most of the required architectural objects, but the mixed saved-session runtime is still not stable enough to justify aggressive domain expansion. ### Phase 0. Shared Baseline Status: `100%` Reason: - architecture vocabulary is stable; - planning discussions already use the package and current owner names. ### Phase 1. Formal Layer Separation Status: `100%` Reason: - subsystem boundaries are explicit enough in planning and in code ownership; - `canonical_layer`, `llm_normalizer/backend`, and domain loop/orchestration assets are no longer treated as one blob. ### Phase 2. State And Transition Contracts Status: `88%` Reason: - root, selected-object, same-date, and carryover classes exist as real owner seams; - transition policy is extracted; - scenario acceptance evaluates continuity explicitly. Remaining debt: - there is still no single authoritative continuity contract for every live mixed session path; - continuity priority is still split across route policy, transition policy, recap policy, navigation state, and coordinator glue; - the flagship repaired chains are now stable, but more non-flagship saved-session paths still need proof before this phase can be treated as expansion-safe. ### Phase 3. Capability Contracts Status: `91%` Reason: - critical inventory/address capabilities are materially contract-driven; - selected-object and root capability behavior is much more explicit than before. - inventory intent-family now has an explicit owner in `addressInventoryIntentSignals.ts` instead of staying only as inline signal pressure inside `resolveAddressIntent()`. - counterparty / documents / contracts / open-items intent-family now also has an explicit owner in `addressCounterpartyIntentSignals.ts`, even though legacy inline branches still remain as cleanup debt inside the central resolver. Remaining debt: - `resolveAddressIntent()` is still too central; - extracted owner seams now exist for the hottest inventory and counterparty families, but the legacy inline body still keeps graph pressure high until the final cleanup pass is done; - some business contours outside the most exercised inventory/address scenarios remain less explicit. ### Phase 4. Coverage / Evidence / Truth Gate Isolation Status: `89%` Reason: - explicit truth and coverage/evidence contracts exist; - answer policy reads those contracts rather than rebuilding verdicts blindly from raw rows. - reply-packaging mechanics are now explicitly split into `address_runtime/replyPackaging.ts` instead of staying fully in `composeStage.ts`. - named reply contracts and answer semantics presets now also live in `address_runtime/replyContracts.ts` instead of being rebuilt inline across major factual branches. - inventory answer construction now has an explicit owner in `address_runtime/inventoryReplyBuilders.ts` instead of staying inline inside `composeFactualReplyBody()`. - counterparty / lifecycle / value / contract-profile factual replies now also have an explicit owner in `address_runtime/counterpartyAnalyticsReplyBuilders.ts` instead of staying inline inside `composeFactualReplyBody()`. - `composeStage.ts` is now down to about `4305` lines after the counterparty analytics extraction and duplicate-body cleanup. Remaining debt: - `composeFactualReplyBody()` is still not fully decomposed, but it is no longer one of the top graph pressure points in the current snapshot; - humanized blocked/limited semantics are not yet fully separated from answer semantics across all paths; - `composeStage.ts` still remains too large even after packaging extraction, inventory-family extraction, and counterparty analytics extraction. ### Phase 5. AssistantService Extraction Status: `84%` Reason: - major policy categories have real owners outside the coordinator. - data-scope probing and organization-history extraction are now delegated to a dedicated owner. - address/backend debug payload assembly is no longer owned only by the coordinator. Remaining debt: - `assistantService.ts` is still about `5050` lines; - runtime uses extracted owners, but priority and fallback seams still cross the coordinator boundary; - code review still requires reading `assistantService` together with extracted owners to understand real behavior. ### Phase 6. Provider / Runtime Axis Hardening Status: `80%` Reason: - provider/runtime behavior is now an explicit policy concern; - local/openai semantics are materially less entangled with business routing. Remaining debt: - compatibility is stronger than before, but not yet the final universal execution contract for every contour and acceptance pack. ### Phase 7. Scenario Acceptance As Primary Gate Status: `86%` Reason: - acceptance writes first-class artifacts; - AGENT source catalog and mixed packs exist; - meta-space, domain-space, and cross-domain interruptions are already represented. Remaining debt: - narrow packs and seam tests are much stronger than before, and the main saved-session flagship replay family is now green; - acceptance is no longer failing on the original continuity-critical edges, but replay breadth is still under the intended multi-domain blast radius; - coverage breadth should continue to grow across additional mixed trajectories before expansion is treated as low-risk. ## Current Breakpoint Evidence The strongest current architectural reading is no longer "the system still collapses on the original mixed continuity breakpoint". It is now: - `phase12_wider_saved_session_pool` is green end-to-end on the broader flagship saved-session family; - `phase14_counterparty_tail_resume` is green on a different late-session counterparty/inventory/activity contour; - `phase15_answer_inspection_followup` is green on grounded self-correction plus neighboring VAT bridge continuity; - `phase16_multicompany_late_pivot` is green on late company switch plus referential inventory/receivables authority; - `phase17_clarification_resume_and_counterparty_tail` is green on the specific semantic seams exposed by the manual run `assistant-stage1-uWH6xahSDt`: company clarification resumption, historical inventory continuation, short `СВК` retarget, and counterparty tail follow-up; - therefore the original collapse has been materially repaired, and the main remaining risk has shifted from acute failure to incomplete generalization. In practical terms, the active breakpoint is now: - owner extraction has progressed far enough to make the system materially safer than before; - saved-session mixed runtime still does not have one fully final governing authority consumed uniformly across every hot path; - replay breadth is now the main honest gate before multi-domain expansion, not the old flagship continuity collapse itself. ## What Has Improved Relative To The Original State Compared with the pre-turnaround baseline, the system is now materially better in the following ways: - long mixed conversations are more stable; - selected-object continuity is no longer treated as optional polish; - temporal honesty is now evaluated as an explicit invariant; - factual-negative answers can remain truthful instead of collapsing into generic technical refusals; - meta questions and memory recap are no longer purely incidental side effects of route logic; - organization data-scope probing is no longer owned only by coordinator-local helper bodies; - debug payload assembly is now further isolated from top-level turn coordination; - reply formatting and reply-type classification now have an explicit owner outside `composeStage.ts`; - confirmed-balance and heuristic-candidate reply contracts now have explicit builders instead of repeated inline `semantics` objects in major compose branches; - inventory factual replies are now owned by a dedicated module rather than embedded directly in the central compose body; - counterparty analytics, lifecycle, customer/supplier value rankings, and contract-value factual replies are now owned by a dedicated module rather than embedded directly in the central compose body; - inventory intent classification now has a dedicated owner instead of being only an inline segment inside the central address intent resolver; - counterparty / contract / documents intent classification now also has a dedicated owner instead of being only an inline segment inside the central address intent resolver; - architecture regressions can now be localized to route, transition, truth gate, coverage/evidence, boundary, or meta/memory layers. ## What Still Remains The Main Architectural Debt ### 1. Mixed-session continuity still has no single authority The project now has real route, transition, recap, and boundary owners, but the live session still does not resolve: - active root frame - selected object - organization scope - temporal carryover - clarification state - recap source of truth from one governing contract. This is still the highest-risk debt before domain expansion, even though the repaired replay families are now green. ### 2. `assistantService.ts` is still too large The extracted owners are real, but the coordinator has not yet been fully reduced to a thin orchestration shell. ### 3. `resolveAddressIntent()` is still too central Intent resolution remains one of the most connected business nodes in the graph. This means capability and contour growth still concentrate pressure there. ### 4. `composeFactualReplyBody()` is still too central Truth contracts are now explicit, and reply packaging, reply contracts, and the inventory answer family have all started moving into their own owners, but final answer-shaping still retains too much architecture weight. This is the main remaining reason why user-facing humanization and limitation semantics are not completely isolated yet. ### 5. Coverage breadth is stronger, but still selective The project is now strong on: - inventory root - selected-object provenance/documents - counterparty document and shipment-fallback cases - key settlement and VAT follow-ups - meta/memory/context integrity But not every business family has reached the same contract maturity. ## Recommended Next Work The next honest architecture slice should be: 1. finish one authoritative continuity contract for live mixed sessions; 2. subordinate clarification to restored business continuity instead of letting it act as a default escape hatch; 3. continue reducing `assistantService.ts` to a thinner coordinator; 4. continue isolating answer semantics further away from `composeFactualReplyBody()` now that reply packaging and reply contracts have their own owner seams; 5. keep extending AGENT packs with mixed business + meta + interruption patterns instead of single-family smoke tests; 6. keep using mixed scenario acceptance as the main sign-off rather than unit-test green status alone. ## Bottom Line Turnaround `11` is no longer a proposal. It is an operational architecture program that is already mostly implemented in the critical path. The current state is best described as: - `architecturally real` - `operationally useful` - `not yet fully cleaned up` The remaining work is now mostly about: - removing residual concentration points; - tightening the last humanized answer-policy seams; - and broadening acceptance coverage without regressing the hard-won exact-data behavior.