# 41 - Вход в контекст разработки ассистента 1C (2026-05-18) ## Назначение Этот документ является короткой, но полной точкой входа для нового чата, нового Codex-сеанса или нового инженера. Он фиксирует актуальное состояние архитектуры после закрытия последнего semantic replay по saved-session `gen-mo1t93wq-jy0453e` и коммита: - `9c86407 Зафиксировать семантическую целостность VAT, debt mirror и trace-ответов` Главная цель проекта не изменилась: - построить 1C-ассистента, который сам выбирает безопасные маршруты по MCP/1C evidence; - не превращать систему в набор хардкодных доменных скрепок; - отвечать бизнесово полезно, прямо и честно; - не выдавать неподтвержденные inference как confirmed 1C fact. ## Что читать первым Для быстрого входа читать в таком порядке: 1. `AGENTS.md` 2. `graphify-out/GRAPH_REPORT.md` 3. `docs/ARCH/11 - architecture_turnaround/README.md` 4. `docs/ARCH/11 - architecture_turnaround/21 - current_status_canon_2026-05-01.md` 5. `docs/ARCH/11 - architecture_turnaround/24 - agentic_semantic_development_loop_and_autorun_hygiene_2026-05-10.md` 6. `docs/ARCH/11 - architecture_turnaround/40 - mixed_schema_primitive_closure_replay_2026-05-13.md` 7. этот документ 8. актуальные Tasker-карточки с label `1C assistant` и `Архитектура` Исторические документы `01`-`20` важны как trail решений, но текущий рабочий статус берется из `21`, `24`, `40`, этого документа и Tasker. ## Текущий статус модулей Post-F Semantic Integrity Hardening: - статус: `99%`, operationally closed; - теперь это regression gate, а не активный denominator; - защищает stale scope, wrong focus_object, repeated pivots, post-pivot arbitration, VAT materialization, debt mirror polarity, selected-object continuity и answer-shape truth. Planner Autonomy Consolidation: - статус: `100%` для declared phase83 slice; - planner-brain, catalog alignment, live-readiness gate и mixed replay приняты; - это не означает arbitrary 1C autonomy, но это закрывает первый мозг маршрутов. Open-World Schema/Primitive Discovery: - phases97-105 приняты и сохранены как canaries; - phase105 mixed schema/primitive closure replay accepted `13/13`; - модуль находится на manual-review readiness, а не на blind coding stage. Agentic Semantic Development Loop: - статус: `99%`; - stage loop, business-audit handoff, save-after-acceptance gate и autorun hygiene работают; - human GUI checkpoint остается финальным high-signal подтверждением. Последний semantic integrity cut: - saved session: `gen-mo1t93wq-jy0453e`; - final replay: `artifacts/domain_runs/saved_session_gen_mo1t93wq_jy0453e_rerun_final_semantic_20260518`; - результат: `accepted`, `31/31 passed`, `0 failed`, `execution_status=exact`; - закрытые seams: VAT same-period carryover, stale MCP discovery counterparty in short debt mirror, sale-trace lot/batch honesty, broad best-year net-ranking honesty. ## Архитектурная концепция Система состоит из нескольких связанных слоев. Assistant runtime: - внешний фасад живого ассистента, GUI и runtime-сессий; - основной pressure center все еще вокруг `assistantService.ts`, но бизнесовая логика постепенно вынесена в специализированные модули; - runtime обязан сохранять session state, но не должен позволять старой памяти победить explicit current-turn meaning. Exact address lane: - `AddressQueryService`, `addressRecipeCatalog`, `addressIntentResolver`, `addressFilterExtractor`, `address_runtime/*`; - отвечает за VAT, receivables/payables, inventory, value-flow, bank operations, accounting result, procurement, debt aging, inventory quality events и связанные factual replies; - exact route может быть fast path, но не может обходить truth gate, scope gate и answer-shape gate. MCP discovery/planner lane: - `assistantMcpDiscoveryPlanner`, `assistantMcpCatalogIndex`, `assistantMcpDiscoveryPilotExecutor`, `assistantMcpDiscoveryRuntimeBridge`; - выбирает reviewed primitive chains через metadata, entity grounding, documents, movements, value-flow, route candidates; - не должен превращать unknown или proxy-only evidence в confirmed fact. Data-need graph and route-candidate layer: - описывает вопрос пользователя как бизнесовую потребность, а не только как route id; - хранит subject, fact family, action family, period, aggregation, ranking, comparison, proof expectation, missing axes и forbidden-overclaim flags; - `route_candidate` превращает missing proof family в конкретный enablement target, а не в размытое “не умеем”. Continuity and transition layer: - `assistantTransitionPolicy`, `assistantContinuityPolicy`, `assistantMcpDiscoveryTurnInputAdapter`, navigation state и focus/answer object helpers; - решает, что переносится между turn-ами: organization, counterparty, period, selected object, answer_object, provenance bundle; - explicit current-turn entity/period/action должны побеждать stale organization, stale focus_object и старые discovery candidates. Answer shaping and response policy: - `assistantMcpDiscoveryAnswerAdapter`, `assistantMcpDiscoveryResponseCandidate`, `assistantMcpDiscoveryResponsePolicy`, factual reply builders; - пользовательский ответ должен начинаться с прямого business answer; - proof, caveats, row limits и method notes идут после ответа; - internal route ids, capability ids, raw debug enums и service mechanics не должны попадать в финальный ответ. GUI, autoruns and runtime artifacts: - `autoRuns`, `eval`, `assistantService`, `addressTextRepair`; - GUI autoruns являются human checkpoint и replay history; - сохранение вопросов не равно AGENT replay; - saved AGENT pack допустим только после live replay and review; - UTF-8 без BOM и отсутствие mojibake являются acceptance surface, а не косметикой. ## Главные инварианты - Сначала проверяется человеческий смысл вопроса и ответа, потом debug. - Live replay важнее зеленых unit tests. - Explicit текущий субъект сильнее stale scope. - Valid clarification is not a bug. - Debt mirror должен различать `мы должны` и `нам должны`. - Bank-like counterparty не является обычным поставщиком или клиентом без purpose/operation evidence. - VAT period carryover должен сохранять тот же период, если пользователь говорит `за этот период`. - Inventory sale trace может подтвердить sale trace by nomenclature, но не exact selected lot без batch/lot proof. - Broad business overview не должен ранжировать unreliable net, если один из потоков ограничен row cap. - No route/proxy/MCP/debug garbage in final answer. ## Текущие canary/replay anchors Ключевые canaries: - `phase83_planner_brain_alignment_live_20260501_readygate_rerun3` - `address_truth_harness_post_f_cross_stage_canary_agent_20260424_live7` - `inventory_stock_open_world_breadth_rerun_semantic_integrity_20260501_fix5` - `phase90`-`phase96` route-candidate/proof-family acceptance chain - `phase97_financial_counterparty_flow_hints_live4` - `phase98_limit_honesty_business_language_live3` - `phase99_large_query_budget_continuation_live2` - `phase100_large_query_continuation_ux_live2` - `phase101_inventory_root_scope_no_warehouse_clarification_live1` - `phase102_debt_mirror_clean_scope_polarity_live3` - `phase103_financial_role_purpose_arbitration_live3` - `phase104_generic_role_tail_anchor_hygiene` - `phase105_mixed_schema_primitive_closure_live3` - `saved_session_gen_mo1t93wq_jy0453e_rerun_final_semantic_20260518` Если новый фикс касается соседней зоны, соответствующий replay нужно использовать как semantic regression gate. ## Как продолжать в новом чате Новый Codex-сеанс должен начинать так: 1. прочитать `AGENTS.md`; 2. прочитать `graphify-out/GRAPH_REPORT.md`; 3. прочитать этот документ, README, `21`, `24`, `40`; 4. проверить `git status --short`; 5. не коммитить runtime_job artifacts без явного решения; 6. определить текущий active module и его denominator; 7. если пользователь принес run id, сначала читать human Q/A, затем artifacts/debug; 8. если внесены code changes, запускать targeted tests, build по необходимости, semantic replay, graphify rebuild; 9. после accepted replay обновлять docs/Tasker, если меняется архитектурный статус. ## Текущее направление после этого среза Следующий крупный фокус: - закрепить agentic semantic replay loop как регулярный gate после крупных фиксов; - минимизировать ручную роль пользователя до финального GUI checkpoint; - продолжать движение к open-world bounded autonomy, где ассистент не ждет хардкодного route-per-domain, а выбирает reviewed MCP primitive path по data-need graph, route_candidate и evidence gates. При этом нельзя объявлять проект universal arbitrary-1C agent. Честная формулировка текущего состояния: - система уже умеет много устойчивых 1C-контуров; - bounded MCP autonomy substrate реально работает; - route-candidate-driven enablement показал, как превращать gaps в reviewed routes; - но широкая arbitrary schema traversal все еще должна расширяться через replay-backed slices, а не через свободную импровизацию.