11 KiB
08 - Current Status Audit (2026-04-17)
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.mdrebuilt on2026-04-17- current owner modules in
llm_normalizer/backend/src/services/ - current scenario acceptance scripts under
scripts/ - current AGENT semantic source catalog under
docs/orchestration/
Graph Snapshot
Latest graph rebuild:
5261 nodes11347 edges134 communities
Most relevant current god nodes for turnaround 11:
resolveAddressIntent()ChannelRegistryCanonicalStorecomposeFactualReplyBody()compactWhitespace()
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()still carries answer-shaping pressure, but it is no longer a top-3 god node after the latest extractions;assistantServicestill 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.tsassistantTransitionPolicy.tsassistantBoundaryPolicy.tsassistantMetaFollowupPolicy.tsassistantMemoryRecapPolicy.tsassistantProviderExecutionPolicy.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_v1address_coverage_evidence_v1
Primary current owners:
addressTruthGatePolicy.tsaddressCoverageEvidencePolicy.tsassistantRuntimeContractResolver.tsassistantTruthAnswerPolicyRuntimeAdapter.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.jsonscenario_acceptance_matrix.mdpack_state.jsonfinal_status.md
Primary current owners:
domain_truth_harness.pyscenario_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 = 58saved_session_questions_total = 81
The source catalog already covers mixed reusable tags such as:
inventory_rootselected_objectselected_object_suppliercounterparty_documentscounterparty_shipment_fallbacksettlements_account_60settlements_receivablesvatmeta_smalltalkmeta_scopemeta_capabilitymeta_historical_capabilitymeta_memorysame_date_pivotsame_date_restore
This is enough to build targeted semantic packs that are not single-domain toy scripts.
Honest Phase Status
Estimated overall turnaround completion: ~90%
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: 92%
Reason:
- root, selected-object, same-date, and carryover classes are materially operational;
- transition policy is extracted;
- scenario acceptance now evaluates continuity explicitly.
Remaining debt:
- legacy transition helpers still physically exist inside
assistantService.ts; - not every follow-up family is represented as equally clean first-class transition taxonomy.
Phase 3. Capability Contracts
Status: 86%
Reason:
- critical inventory/address capabilities are materially contract-driven;
- selected-object and root capability behavior is much more explicit than before.
Remaining debt:
resolveAddressIntent()is still too central;- 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.tsinstead of staying fully incomposeStage.ts. - named reply contracts and answer semantics presets now also live in
address_runtime/replyContracts.tsinstead of being rebuilt inline across major factual branches. - inventory answer construction now has an explicit owner in
address_runtime/inventoryReplyBuilders.tsinstead of staying inline insidecomposeFactualReplyBody().
Remaining debt:
composeFactualReplyBody()is still a major concentration point, but its graph pressure is lower than in the previous snapshot;- humanized blocked/limited semantics are not yet fully separated from answer semantics across all paths;
composeStage.tsstill remains too large even after packaging extraction and inventory-family extraction.
Phase 5. AssistantService Extraction
Status: 82%
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.tsis still about5050lines;- runtime uses extracted owners, but legacy bodies and fallback branches still live in the coordinator file;
- code review still sometimes requires reading
assistantServicetogether with extracted owners.
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: 90%
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:
- semantic replay remains intentionally tool-driven and script-driven rather than promoted to a mandatory UI-first loop;
- coverage breadth should continue to grow as new domain slices are hardened.
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
semanticsobjects in major compose branches; - inventory factual replies are now owned by a dedicated module rather than embedded directly in the central compose body;
- 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. 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.
2. 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.
3. 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.
4. 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:
- continue reducing
assistantService.tsto a thinner coordinator; - continue isolating answer semantics further away from
composeFactualReplyBody()now that reply packaging and reply contracts have their own owner seams; - keep extending AGENT packs with mixed business + meta + interruption patterns instead of single-family smoke tests;
- keep using 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 realoperationally usefulnot 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.