Очистить бизнес-язык ответов phase98

This commit is contained in:
2026-05-13 02:26:08 +03:00
parent 0028ef24a0
commit b1a5e4435d
11 changed files with 673 additions and 113 deletions
@@ -28,8 +28,8 @@ Current reporting baseline:
- Planner Autonomy Consolidation: `100%` for the declared phase83 slice.
- Open-World Business Overview implementation breadth: `~99%` through Slice 25.
- Open-World Semantic Control Gate: accepted critical subset after EHMO/W5/W7 hardening; fat GUI pack review remains a broad human-pressure gate.
- Route-Candidate-Driven Enablement Loop: `100%`, now regression-gated by phase91-phase97 canaries.
- Open-World Schema/Primitive Discovery: `25%`, first financial-counterparty slice accepted live at `4/4`; next schema/primitive candidate should come from real live/manual replay evidence.
- Route-Candidate-Driven Enablement Loop: `100%`, now regression-gated by phase91-phase98 canaries.
- Open-World Schema/Primitive Discovery: `38%`, financial-counterparty slice accepted live at `4/4` and limit-honesty/business-language gate accepted live at `6/6`; next schema/primitive candidate should come from real live/manual replay evidence.
## Archived Execution Snapshot (2026-04-17)
@@ -86,11 +86,12 @@ Fresh validation cut:
- Completed autonomy slice inside that loop: `Vendor/Procurement Quality Reviewed Route`: `vendor_risk_procurement_quality` now promotes to reviewed procurement-concentration evidence when confirmed outgoing payment, bank-like recipient segregation, non-financial recipient, counterparty-role, and contract-usage signals are reachable; phase95 live replay is accepted.
- Completed autonomy slice inside that loop: `Inventory Reserve/Liquidation Quality Reviewed Route`: `inventory_reserve_liquidation_quality` now promotes to reviewed inventory quality-event evidence from posted write-off, receipt-adjustment, stocktaking, and revaluation documents; phase96 live replay is accepted.
- Completed broader schema/primitive discovery slice: `Financial Counterparty Flow Hints`: bank-document money-flow recipes expose operation/purpose/comment fields, ranked value-flow buckets carry `financial_flow_hint`, explicit `СБЕРБАНК` wording is not swallowed by supplier/customer tails, and bank-like leaders are bounded away from ordinary supplier/customer overclaim; phase97 live replay is accepted.
- Current live canary: `phase97_financial_counterparty_flow_hints_live4` accepted `4/4`.
- Current accepted autorun: `AGENT | Phase 97 financial counterparty flow hints replay` (`gen-ag05122250-4451a8`).
- Completed broader schema/primitive discovery support slice: `Limit Honesty And Business Language Gate`: compact business-overview replies sanitize route/proxy/MCP-style wording, keep row-limit disclosure relevant to the asked contour, and preserve debt/VAT/bank/inventory/supplier canaries; phase98 live replay is accepted.
- Current live canary: `phase98_limit_honesty_business_language_live3` accepted `6/6`.
- Current accepted autorun: `AGENT | Phase 98 limit honesty and business-language replay` (`gen-ag05122315-f1e27c`).
- Implementation breadth: `~99% (Open-World Bounded Autonomy Breadth through Slice 25)`.
- Active broader autonomy module: `Open-World Schema/Primitive Discovery`, with the first `Financial Counterparty Flow Hints` slice accepted and saved.
- Next active slice: select the next unfamiliar 1C ask from live/manual replay evidence, then continue broader schema/primitive discovery while using phase91-phase97 as regression canaries.
- Active broader autonomy module: `Open-World Schema/Primitive Discovery`, with `Financial Counterparty Flow Hints` and `Limit Honesty And Business Language Gate` accepted and saved.
- Next active slice: select the next unfamiliar 1C ask from live/manual replay evidence, then continue broader schema/primitive discovery while using phase91-phase98 as regression canaries.
- Operating-layer progress: `~99% (Agentic Semantic Development Loop, accepted dogfood loop + autorun hygiene; manual GUI confirmation still required)`.
## Reporting Rule
@@ -103,7 +104,7 @@ Use these labels when reporting progress:
- `Прогресс модуля: 99% (Agentic Semantic Development Loop, accepted dogfood loop + autorun hygiene; manual GUI confirmation still required)` when discussing the current development-loop operating layer.
- `Прогресс модуля: 100% (Open-World Route Candidate Promotion, declared phase90 slice accepted)` when discussing the route-candidate handoff slice itself.
- `Прогресс модуля: 100% (Route-Candidate-Driven Enablement Loop, final reviewed proof-family route accepted; use as regression gate)` when discussing the current candidate-driven enablement loop.
- `Прогресс модуля: 25% (Open-World Schema/Primitive Discovery, first financial-counterparty slice accepted; next schema/primitive candidate pending)` when discussing the current broader schema/primitive discovery module.
- `Прогресс модуля: 38% (Open-World Schema/Primitive Discovery, phase97 financial-counterparty slice and phase98 business-language gate accepted; next schema/primitive candidate pending)` when discussing the current broader schema/primitive discovery module.
- `Open-World Business Overview implementation breadth: ~99%, Semantic Control Gate critical subset accepted, fat GUI pack still pending` when discussing only the already wired Slice 25 breadth.
- `Прогресс модуля: X% (Open-World Bounded Autonomy Breadth, active slice: <name>)` for later breadth work after the Semantic Control Gate is accepted.
@@ -139,7 +140,7 @@ Remaining work belongs to the next breadth module:
- confirm the latest autorun Cyrillic hygiene cut in the GUI after backend refresh and inspect frontend/API payloads if old replacement characters remain visible;
- continue dogfooding the `Agentic Semantic Development Loop` on real stage packs, especially generated-question quality, semantic business audit, repair handoff, and rerun acceptance;
- finish closure of the `Open-World Semantic Control Gate` opened by `assistant-stage1-EHMOy3lNFt`; the EHMO-derived critical subset is accepted live after W5/W7 hardening, but the fat GUI pack and residual answer-shape roughness still need final review;
- extend open-world coverage beyond the reviewed `business_overview` families already wired for money-flow/activity, customer and supplier concentration, document/account-section activity mix, counterparty role split, contract usage, yearly operating-flow dynamics, explicit profit/margin, debt due-date aging, inventory reserve/liquidation quality events, supplier/procurement quality, bank-like financial counterparty role/purpose hints, explicit-period VAT/tax, as-of-date debt and inventory position, open-settlement concentration, contract-date debt age, staleness proxies, trading-margin proxy, sales-to-stock inventory proxy, the missing-proof ledger, and the phase93-phase97 reviewed/canary routes;
- extend open-world coverage beyond the reviewed `business_overview` families already wired for money-flow/activity, customer and supplier concentration, document/account-section activity mix, counterparty role split, contract usage, yearly operating-flow dynamics, explicit profit/margin, debt due-date aging, inventory reserve/liquidation quality events, supplier/procurement quality, bank-like financial counterparty role/purpose hints, business-language/limit-honesty gating, explicit-period VAT/tax, as-of-date debt and inventory position, open-settlement concentration, contract-date debt age, staleness proxies, trading-margin proxy, sales-to-stock inventory proxy, the missing-proof ledger, and the phase93-phase98 reviewed/canary routes;
- broader dynamic schema traversal for unfamiliar 1C asks;
- more primitive descriptors where live evidence proves a real gap;
- more replay-backed domain packs that start from user business meaning, not from route convenience;
@@ -161,19 +162,20 @@ For current planning, read:
1. `README.md`
2. this document
3. `31 - inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md`
4. `32 - financial_counterparty_flow_hints_2026-05-13.md`
5. `30 - vendor_procurement_quality_reviewed_route_2026-05-12.md`
6. `29 - debt_due_date_aging_reviewed_route_2026-05-10.md`
7. `28 - accounting_profit_margin_reviewed_route_2026-05-10.md`
8. `27 - proof_family_enablement_candidates_2026-05-10.md`
9. `26 - route_candidate_driven_enablement_loop_2026-05-10.md`
10. `25 - open_world_route_candidate_promotion_2026-05-10.md`
11. `24 - agentic_semantic_development_loop_and_autorun_hygiene_2026-05-10.md`
12. `23 - current_execution_spine_and_semantic_control_gate_2026-05-05.md`
13. `22 - open_world_bounded_autonomy_breadth_2026-05-01.md`
14. `20 - planner_autonomy_consolidation_2026-05-01.md`
15. `19 - inventory_stock_open_world_breadth_proof_2026-05-01.md`
16. `17 - post_f_semantic_integrity_hardening_2026-04-23.md`
17. `16 - data_need_graph_and_open_world_mcp_plan_2026-04-22.md`
4. `33 - limit_honesty_business_language_2026-05-13.md`
5. `32 - financial_counterparty_flow_hints_2026-05-13.md`
6. `30 - vendor_procurement_quality_reviewed_route_2026-05-12.md`
7. `29 - debt_due_date_aging_reviewed_route_2026-05-10.md`
8. `28 - accounting_profit_margin_reviewed_route_2026-05-10.md`
9. `27 - proof_family_enablement_candidates_2026-05-10.md`
10. `26 - route_candidate_driven_enablement_loop_2026-05-10.md`
11. `25 - open_world_route_candidate_promotion_2026-05-10.md`
12. `24 - agentic_semantic_development_loop_and_autorun_hygiene_2026-05-10.md`
13. `23 - current_execution_spine_and_semantic_control_gate_2026-05-05.md`
14. `22 - open_world_bounded_autonomy_breadth_2026-05-01.md`
15. `20 - planner_autonomy_consolidation_2026-05-01.md`
16. `19 - inventory_stock_open_world_breadth_proof_2026-05-01.md`
17. `17 - post_f_semantic_integrity_hardening_2026-04-23.md`
18. `16 - data_need_graph_and_open_world_mcp_plan_2026-04-22.md`
Documents `01` through `15` remain valuable, but mostly as the historical architecture trail.
@@ -0,0 +1,65 @@
# 33 - Limit Honesty And Business Language Gate (2026-05-13)
This note records the second accepted cut in the broader `Open-World Schema/Primitive Discovery` module.
The trigger came from the real GUI review `assistant-stage1-v2qsm_R0fF`: several answers were factually bounded, but still felt like technical artifacts because they leaked `MCP`, `route`, `proxy`, or irrelevant row-limit wording into user-facing business answers.
## Scope
This cut keeps the data and routes unchanged, but hardens the answer surface:
- compact business-overview replies now pass through a shared business-language sanitizer before they are returned;
- `procurement-concentration route`, `vendor-risk route`, `due-date route`, and `proxy` phrases are converted into business-readable wording;
- debt due-date boundary answers keep the organization in the direct line and explain missing payment terms without route jargon;
- inventory reserve answers no longer pull unrelated incoming/outgoing money-flow limit lines into a warehouse reserve question;
- supplier dependency answers distinguish "checked concentration of outgoing payments" from a complete supplier-risk audit without naming it as a route;
- accepted replay keeps VAT and bank-like counterparty boundary canaries in the same scenario.
## Validation
Local checks:
- `npm.cmd test -- assistantMcpDiscoveryResponseCandidate.test.ts`: `26/26` passed;
- `npm.cmd test -- assistantMcpDiscoveryResponseCandidate.test.ts assistantMcpDiscoveryAnswerAdapter.test.ts assistantMcpDiscoveryPilotExecutor.test.ts addressQueryRuntimeM23.test.ts`: `519/519` passed, `1` skipped;
- `npm.cmd run build`: passed;
- graphify rebuild: `6484` nodes, `14385` edges, `142` communities.
Live semantic replay:
- spec: `docs/orchestration/address_truth_harness_phase98_limit_honesty_business_language.json`;
- accepted run: `artifacts/domain_runs/phase98_limit_honesty_business_language_live3`;
- final status: `accepted`, `6/6` passed, `0` warnings, `0` failures;
- accepted user-runnable autorun: `AGENT | Phase 98 limit honesty and business-language replay` (`gen-ag05122315-f1e27c`).
The accepted replay proves:
- overdue receivables answers state the organization, date, checked open-settlement amount, and missing payment-term basis in business language;
- short follow-up questions remain short and do not repeat technical limit text;
- VAT remains direct and debug-free;
- top incoming money keeps the bank boundary and does not overclaim bank inflows as ordinary customer revenue;
- inventory reserve answers say the reserve cannot be confirmed exactly and do not drag unrelated money-flow limit warnings into the warehouse answer;
- supplier dependency answers state that exact supplier-risk is not fully confirmed, show the checked concentration leader, and list what remains unproven.
## Status
Current module wording:
`Open-World Schema/Primitive Discovery, completed slice: limit honesty and business-language gate`
Slice progress: `100%`.
Broader module progress: `38%`.
This is not a new 1C primitive by itself. It is a necessary semantic gate for the broader primitive-discovery module: as coverage grows, bounded answers must stay business-readable and must not expose internal route/proxy/debug mechanics.
## Next Work
1. Treat phase98 as a regression canary together with phase91-phase97.
2. Pick the next unfamiliar 1C ask from live/manual replay evidence.
3. Prefer the same loop: business meaning -> route candidate/schema surface -> minimal reviewed primitive or answer-shape fix -> live replay -> save autorun only after accepted replay.
4. Keep watching for cases where a technically correct bounded answer still feels like a system artifact rather than a competent business analyst.
See also:
- [21 - current_status_canon_2026-05-01.md](./21%20-%20current_status_canon_2026-05-01.md)
- [32 - financial_counterparty_flow_hints_2026-05-13.md](./32%20-%20financial_counterparty_flow_hints_2026-05-13.md)
@@ -50,6 +50,7 @@ This package answers the next question:
30. [30 - vendor_procurement_quality_reviewed_route_2026-05-12.md](./30%20-%20vendor_procurement_quality_reviewed_route_2026-05-12.md)
31. [31 - inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md](./31%20-%20inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md)
32. [32 - financial_counterparty_flow_hints_2026-05-13.md](./32%20-%20financial_counterparty_flow_hints_2026-05-13.md)
33. [33 - limit_honesty_business_language_2026-05-13.md](./33%20-%20limit_honesty_business_language_2026-05-13.md)
## Current Status Snapshot (2026-05-13)
@@ -109,6 +110,8 @@ Status canon for planning:
- The accepted user-runnable autorun for that slice is `AGENT | Phase 96 inventory reserve/liquidation quality-events` (`gen-ag05122057-c9786e`).
- The first broader schema/primitive discovery slice is now accepted: `financial counterparty flow hints` adds bank-document purpose/operation/comment hints, protects bank-like counterparties from ordinary supplier/customer overclaim, and keeps normal counterparty net-flow canaries healthy; `phase97_financial_counterparty_flow_hints_live4` passed `4/4`.
- The accepted user-runnable autorun for that slice is `AGENT | Phase 97 financial counterparty flow hints replay` (`gen-ag05122250-4451a8`).
- The second broader schema/primitive discovery support slice is now accepted: `limit honesty and business-language gate` sanitizes route/proxy/MCP-style answer wording, keeps row-limit disclosure relevant to the asked business contour, and preserves debt/VAT/bank/inventory/supplier canaries; `phase98_limit_honesty_business_language_live3` passed `6/6`.
- The accepted user-runnable autorun for that slice is `AGENT | Phase 98 limit honesty and business-language replay` (`gen-ag05122315-f1e27c`).
- The phase94 replay spec was repaired to real UTF-8 Russian before autorun persistence, so the saved user-runnable pack does not repeat the earlier GUI mojibake/card-text regression.
- The short source of truth for status wording is [21 - current_status_canon_2026-05-01.md](./21%20-%20current_status_canon_2026-05-01.md).
- The current execution spine after EHMO is [23 - current_execution_spine_and_semantic_control_gate_2026-05-05.md](./23%20-%20current_execution_spine_and_semantic_control_gate_2026-05-05.md).
@@ -121,6 +124,7 @@ Status canon for planning:
- The third reviewed proof-family route slice is [30 - vendor_procurement_quality_reviewed_route_2026-05-12.md](./30%20-%20vendor_procurement_quality_reviewed_route_2026-05-12.md).
- The fourth/final reviewed proof-family route slice is [31 - inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md](./31%20-%20inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md).
- The first broader schema/primitive discovery slice is [32 - financial_counterparty_flow_hints_2026-05-13.md](./32%20-%20financial_counterparty_flow_hints_2026-05-13.md), now accepted live and saved as a user-runnable AGENT autorun.
- The second broader schema/primitive discovery support slice is [33 - limit_honesty_business_language_2026-05-13.md](./33%20-%20limit_honesty_business_language_2026-05-13.md), now accepted live and saved as a user-runnable AGENT autorun.
It now documents a turnaround that is already operational in code, already materially past the acute regression breakpoint, and already moved through bounded MCP autonomy, Post-F hardening, inventory breadth proof, and the declared Planner Autonomy slice:
@@ -191,7 +195,7 @@ Current honest status:
- Planner Autonomy Consolidation progress: `100%` for the declared module, with catalog-fabric, value-flow arbitration, lifecycle bounded inference, broad-evaluation bridge, inventory catalog templates, inventory runtime-boundary honesty, exact inventory recipe bridging, unambiguous metadata-surface lane inference, catalog chain-template scoring, structured chain-match contract exposure, runtime/debug propagation, subject-aware bidirectional comparison arbitration, structured catalog-alignment verdicts, representative alignment regression guard, catalog-alignment reason-code telemetry, explicit `alignment_status` propagation, truth-harness/acceptance-matrix surfacing, soft divergence warning, `catalog_alignment_ok` acceptance invariant, step-level expected catalog-alignment assertions, phase66 and phase32 spec alignment expectations, AGENT source-catalog surfacing, generated phase83 mixed planner-brain replay spec, checked-source user-facing error sanitation, surface-grounded catalog promotion, and guarded live phase83 acceptance validated. Broader unfamiliar 1C asks are now next-module breadth work rather than an open blocker inside this declared slice
- Open-World Route Candidate Promotion progress: `100%` for the declared phase90 slice, with structured `route_candidate` runtime contract, artifact propagation, live semantic replay accepted at `5/5`, and accepted AGENT autorun persistence; broader autonomous route enablement remains the next active slice
- Route-Candidate-Driven Enablement Loop progress: `100%`, with deterministic repair-target grouping, Lead Codex handoff surfacing, local tooling tests, live phase91 canary acceptance, phase92 proof-family candidates accepted/saved as a user-runnable AGENT autorun, `accounting_profit_margin` promoted into reviewed 90/91/99 execution by phase93 live replay, `debt_due_date_aging_quality` promoted into reviewed payment-term/open-balance execution by phase94 live replay, `vendor_risk_procurement_quality` promoted into reviewed procurement-concentration evidence by phase95 live replay, and `inventory_reserve_liquidation_quality` promoted into reviewed inventory quality-event evidence by phase96 live replay; the declared route-candidate-driven enablement loop is now closed and should be used as a regression gate for the next broader autonomy slice
- Open-World Schema/Primitive Discovery progress: `25%`, first slice `financial counterparty flow hints` accepted live at `4/4`; bank-document money-flow recipes expose operation/purpose/comment fields, ranked value-flow buckets carry `financial_flow_hint`, Sberbank-like leaders are bounded away from name-only supplier/customer overclaim, and the next slice should be selected from real unfamiliar 1C asks rather than synthetic domain wish lists.
- Open-World Schema/Primitive Discovery progress: `38%`, with `financial counterparty flow hints` accepted live at `4/4` and `limit honesty/business language` accepted live at `6/6`; bank-document money-flow recipes expose operation/purpose/comment fields, ranked value-flow buckets carry `financial_flow_hint`, Sberbank-like leaders are bounded away from name-only supplier/customer overclaim, route/proxy/MCP-style answer wording is sanitized, and the next slice should be selected from real unfamiliar 1C asks rather than synthetic domain wish lists.
- graph snapshot after latest rebuild: see `graphify-out/GRAPH_REPORT.md`
- current regression-gate breakpoint:
- the validated hot paths are no longer structurally broken;
@@ -283,6 +287,7 @@ Latest live proof now includes:
- vendor/procurement quality reviewed route accepted locally/live: executor/runtime bridge/answer/candidate tests passed `118/118` with `1` skipped, build passed; `phase95_vendor_procurement_quality_reviewed_route_live2` accepted `7/7`; `vendor_risk_procurement_quality` now derives reviewed procurement-concentration evidence from confirmed outgoing payment rows, separates bank-like outgoing leaders from ordinary supplier dependency, removes the proof family from `missing_proof_families` when this reviewed evidence exists, and can promote `vendor_risk_procurement_boundary` route candidates to `ready_for_reviewed_execution`; the accepted autorun is `AGENT | Phase 95 vendor/procurement quality reviewed route` (`gen-ag05121357-9ea5d6`).
- inventory reserve/liquidation quality reviewed route accepted locally/live: answer/runtime/candidate tests passed `84/84` with `1` skipped, pilot-executor tests passed `34/34`, build passed; direct MCP query for `address_inventory_quality_events_for_organization_v1` returned `fetched_rows=0`, `matched_rows=0`, `error=null`; `phase96_inventory_reserve_liquidation_quality_rerun` accepted `2/2`; `inventory_reserve_liquidation_quality` now derives reviewed evidence from posted write-off, receipt-adjustment, stocktaking, and revaluation documents, removes the proof family from `missing_proof_families` when this reviewed route executes, anchors the organization in the direct answer, and can promote `inventory_reserve_boundary` route candidates to `ready_for_reviewed_execution`; the accepted autorun is `AGENT | Phase 96 inventory reserve/liquidation quality-events` (`gen-ag05122057-c9786e`).
- financial counterparty flow hints accepted locally/live: targeted bank-flow/intent/turn-input/answer tests passed `554/554` with `7` skipped, build passed, graphify rebuilt to `6483` nodes, `14382` edges, `143` communities; `phase97_financial_counterparty_flow_hints_live4` accepted `4/4`, proving explicit `СБЕРБАНК` wording, bank-operation purpose/direction disclosure, incoming-bank no-overclaim, business-overview bank boundaries, and `Группа СВК` net-flow canary continuity; the accepted autorun is `AGENT | Phase 97 financial counterparty flow hints replay` (`gen-ag05122250-4451a8`).
- limit honesty and business-language gate accepted locally/live: response-candidate/answer-adapter/pilot-executor/M23 tests passed `519/519` with `1` skipped, build passed, graphify rebuilt to `6484` nodes, `14385` edges, `142` communities; `phase98_limit_honesty_business_language_live3` accepted `6/6`, proving debt due-date boundary, short follow-up directness, VAT debug hygiene, top incoming bank boundary, inventory reserve boundary language, and supplier dependency language together; the accepted autorun is `AGENT | Phase 98 limit honesty and business-language replay` (`gen-ag05122315-f1e27c`).
Current architectural reading:
@@ -364,6 +369,7 @@ Read in this order:
31. `30 - vendor_procurement_quality_reviewed_route_2026-05-12.md`
32. `31 - inventory_reserve_liquidation_quality_reviewed_route_2026-05-12.md`
33. `32 - financial_counterparty_flow_hints_2026-05-13.md`
34. `33 - limit_honesty_business_language_2026-05-13.md`
## Planning Rules
@@ -0,0 +1,205 @@
{
"schema_version": "domain_truth_harness_spec_v1",
"scenario_id": "address_truth_harness_phase98_limit_honesty_business_language",
"domain": "address_phase98_limit_honesty_business_language",
"title": "Phase 98 limit honesty and business-language replay",
"description": "Focused semantic replay from assistant-stage1-v2qsm_R0fF: answers may be bounded, but they must stay business-readable, direct-first, and must not leak MCP/proxy/route/debug wording when explaining row limits, incomplete coverage, debt due-date proof, inventory reserve proof, supplier dependency, VAT, or bank-like counterparties.",
"bindings": {},
"steps": [
{
"step_id": "step_01_debt_overdue_exactness_boundary",
"title": "Overdue receivables answer explains exactness boundary in business language",
"question": "По ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)альтернатива",
"(?i)2020|31\\.12\\.2020|конец 2020",
"(?i)дебитор|расчет|долг",
"(?i)срок оплат|просроч|не подтвержд|нельзя точно"
],
"forbidden_answer_patterns": [
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)уперл.*лимит",
"(?i)лимит выборки"
],
"criticality": "critical",
"semantic_tags": [
"debt_due_date_aging_quality",
"limit_honesty",
"business_language"
]
},
{
"step_id": "step_02_short_followup_keeps_short_business_answer",
"title": "Short why follow-up stays short and avoids repeated technical limitation text",
"question": "То есть просрочку доказать нельзя, коротко почему?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)коротко|нельзя|не подтвержд|не доказ",
"(?i)срок оплат|дата оплат|услови",
"(?i)просроч"
],
"forbidden_answer_patterns": [
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)уперл.*лимит",
"(?i)лимит выборки"
],
"criticality": "critical",
"semantic_tags": [
"followup_directness",
"debt_due_date_aging_quality",
"business_language"
]
},
{
"step_id": "step_03_vat_direct_answer_without_debug_leak",
"title": "VAT answer remains direct and does not leak debug mechanics",
"question": "НДС за 2020 по ООО Альтернатива Плюс какой?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)ндс",
"(?i)2020",
"(?i)альтернатива",
"(?i)к уплат|нетто|книга продаж|книга покупок|вычет"
],
"forbidden_answer_patterns": [
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)snapshot_items",
"(?i)answer_object"
],
"criticality": "critical",
"semantic_tags": [
"vat",
"business_language",
"debug_leak_guard"
]
},
{
"step_id": "step_04_top_incoming_money_keeps_bank_boundary",
"title": "Top incoming money answer keeps bank boundary and avoids ordinary-customer overclaim",
"question": "А кто принес больше всего денег за 2020?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)2020",
"(?i)деньг|поступлен|входящ",
"(?i)сбербанк|свк|контрагент",
"(?i)банк|не.*обычн|не.*клиент|финансов|провер"
],
"forbidden_answer_patterns": [
"(?i)сбербанк.*обычн.*клиент",
"(?i)сбербанк.*главн.*клиент",
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)уперл.*лимит",
"(?i)лимит выборки"
],
"criticality": "critical",
"semantic_tags": [
"financial_counterparty_flow_hint",
"customer_revenue_and_payments",
"limit_honesty"
]
},
{
"step_id": "step_05_inventory_reserve_boundary_business_language",
"title": "Inventory reserve boundary uses business terms, not proxy jargon",
"question": "По ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)резерв|неликвид|склад",
"(?i)не подтвержд|нельзя точно|точно.*нельзя|нет подтвержден",
"(?i)списан|резерв|ликвидац|залежал|стар"
],
"forbidden_answer_patterns": [
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)уперл.*лимит",
"(?i)лимит выборки"
],
"criticality": "critical",
"semantic_tags": [
"inventory_reserve_liquidation_quality",
"business_language",
"limit_honesty"
]
},
{
"step_id": "step_06_supplier_dependency_bank_boundary",
"title": "Supplier dependency answer separates bank-like recipient from supplier dependency",
"question": "А зависимость от одного поставщика за 2020 можно точно оценить?",
"allowed_reply_types": [
"factual",
"factual_with_explanation",
"partial_coverage"
],
"required_answer_patterns_all": [
"(?i)поставщик|зависим|закуп|исходящ",
"(?i)2020",
"(?i)крупнейш|получател|концентрац",
"(?i)точн|не подтвержд|не доказ|не полностью",
"(?i)надежност|качество|договор|полная структура"
],
"forbidden_answer_patterns": [
"(?i)сбербанк.*обычн.*поставщик",
"(?i)сбербанк.*главн.*поставщик",
"(?i)\\bMCP\\b",
"(?i)proxy",
"(?i)route_candidate",
"(?i)primitive",
"(?i)planner_",
"(?i)catalog_",
"(?i)уперл.*лимит",
"(?i)лимит выборки"
],
"criticality": "critical",
"semantic_tags": [
"vendor_risk_procurement_quality",
"financial_counterparty_flow_hint",
"business_language"
]
}
]
}