Этап 4 / Пакет по РБП восстановление живого контура сбора данных и доказательной базы
This commit is contained in:
+115
@@ -0,0 +1,115 @@
|
||||
# 9 — Разведка структуры 1С и связей через MCP по 3 контрольным вопросам (2026-03-29)
|
||||
|
||||
Статус: COMPLETED
|
||||
Scope: Stage 4, P0-only, без redesign/proof-engine расширения
|
||||
|
||||
## 1) Цель и границы
|
||||
|
||||
Цель этой работы: не чинить wording, а построить доказательную карту:
|
||||
`вопрос -> anchors -> route -> 1C entities/relations -> evidence -> answer`.
|
||||
|
||||
Source of truth:
|
||||
1. Q1 VAT (13/15 июля, мебель).
|
||||
2. Q2 RBP (31 июля, 5 000).
|
||||
3. Q3 FA amortization (31 июля, 2 471,52 / 2 465,28 / 849,83).
|
||||
|
||||
## 2) Что использовано как фактическая база
|
||||
|
||||
- Replay/live артефакты: `docs/ARCH/9_audit_artifacts/replay_logs/*`
|
||||
- Debug payloads 3 кейсов: `docs/ARCH/9_audit_artifacts/debug_payloads/*`
|
||||
- Live inventory: `docs/ARCH/9_audit_artifacts/raw_live_calls/*`
|
||||
- Snapshot probes: `docs/ARCH/9_audit_artifacts/snapshot_samples/*`
|
||||
- Relation probes: `docs/ARCH/9_audit_artifacts/relation_probe_logs/*`
|
||||
- Query recipes: `docs/ARCH/9_audit_artifacts/query_recipe_examples/*`
|
||||
- Code paths: `assistantService`, `assistantDataLayer`, `assistantRuntimeGuards`, `assistantClaimBoundEvidence`, `answerComposer`
|
||||
|
||||
## 3) Узел A — обязательные сущности и переходы
|
||||
|
||||
Результат: см. `9A - entity_seed_map.md`.
|
||||
|
||||
Коротко:
|
||||
- Q1 VAT: обязательна цепочка doc->invoice->register->book + posting consistency.
|
||||
- Q2 RBP: обязательна object-level цепочка writeoff->movement->close->residual.
|
||||
- Q3 FA: обязательна object-level цепочка FA object->depreciation->posting + expected-set coverage.
|
||||
|
||||
## 4) Узел B — snapshot vs live coverage
|
||||
|
||||
Результат: см. `9B - snapshot_vs_live_coverage_map.md`.
|
||||
|
||||
Жесткий verdict по coverage:
|
||||
- Q1 VAT: `snapshot_plus_live_required`
|
||||
- Q2 RBP: `data_not_reachable_in_current_runtime`
|
||||
- Q3 FA: `snapshot_plus_live_required`
|
||||
|
||||
Причина:
|
||||
- runtime использует ограниченный `2020экспорт` subset;
|
||||
- live path сейчас broad (`execute_query` generic probe), без claim-specific call sequence;
|
||||
- object-level reconstruction для RBP/FA не замыкается.
|
||||
|
||||
## 5) Узел C — relation map 1С
|
||||
|
||||
Результат: см. `9C - relation_map_1c_entities.md`.
|
||||
|
||||
Ключевой вывод:
|
||||
- VAT relation skeleton в текущих источниках есть и partially operational.
|
||||
- RBP/FA critical relations либо не реконструируются, либо не используются в current runtime path.
|
||||
- На FA есть cross-domain contamination (нерелевантные связи попадают в evidence path).
|
||||
|
||||
## 6) Узел D — реальные MCP маршруты
|
||||
|
||||
Результат: см. `9D - mcp_query_recipes.md`.
|
||||
|
||||
Фактическая картина:
|
||||
- Q1: есть live call, но это broad probe.
|
||||
- Q2: live call отсутствует (route canonical-only).
|
||||
- Q3: live call есть, но без object scope.
|
||||
|
||||
Missing layer:
|
||||
- claim-bound call sequence per question (required_live_calls) отсутствует во всех 3 кейсах.
|
||||
|
||||
## 7) Узел E — source-to-proof failure map
|
||||
|
||||
Результат: см. `9E - source_to_proof_failure_map.md`.
|
||||
|
||||
### Локальные verdict
|
||||
- Q1 VAT: `EVIDENCE_MATERIALIZATION_IS_PRIMARY_PROBLEM` (residual)
|
||||
- Q2 RBP: `SOURCE_COVERAGE_IS_PRIMARY_PROBLEM` (в связке с route gap)
|
||||
- Q3 FA: `ONE_C_RELATION_MAPPING_IS_PRIMARY_PROBLEM`
|
||||
|
||||
### Общий verdict
|
||||
`MULTI_NODE_FAILURE_CONFIRMED`
|
||||
|
||||
## 8) Ответы на главные вопросы ТЗ
|
||||
|
||||
### По НДС
|
||||
- Какие сущности нужны: docs receipt/sale, invoice links, VAT registers, postings, book linkage.
|
||||
- Почему positive path уже работает: relation skeleton для VAT реально доступен.
|
||||
- Где шум: broad live probe + admissibility reject шум.
|
||||
|
||||
### По РБП
|
||||
- Есть ли данные в source: частично.
|
||||
- Есть ли путь через MCP в current runtime: практически нет (route не включает live).
|
||||
- Где рвется: `source coverage + route + relation reconstruction + evidence materialization`.
|
||||
|
||||
### По амортизации
|
||||
- Какие объекты должны участвовать: полный expected set ОС за июль.
|
||||
- Почему admissible evidence уже есть, но proof не закрывается: object-level relation/anchor closure не достигается.
|
||||
- Где не хватает mapping/anchors: `wrong_entity_mapping` + `claim_anchor_coverage_insufficient`.
|
||||
|
||||
## 9) Что конкретно чинить следующим пакетом
|
||||
|
||||
1. Добавить claim-specific MCP call sequences per question (вместо generic live probe).
|
||||
2. Закрыть object-level relation reconstruction для RBP и FA.
|
||||
3. Подключить/использовать source layers, которые сейчас физически есть, но runtime не использует.
|
||||
4. Снизить reject not-due-to-data в evidence gate.
|
||||
|
||||
## 10) Финальный результат разведки
|
||||
|
||||
Размытая формулировка «слабая доказательная база» снята.
|
||||
|
||||
Теперь зафиксировано:
|
||||
- какие данные нужны;
|
||||
- какие связи обязательны;
|
||||
- какие вызовы MCP должны быть;
|
||||
- где текущий runtime теряет source-to-proof контур;
|
||||
- какие узлы приоритетно чинить следующим execution pack.
|
||||
@@ -0,0 +1,95 @@
|
||||
# 9A — Entity Seed Map
|
||||
|
||||
Дата: 2026-03-29
|
||||
Scope: 3 контрольных вопроса (НДС / РБП / Амортизация)
|
||||
|
||||
## Q1 — НДС (13/15 июля, мебель)
|
||||
|
||||
### Seed entities
|
||||
- Поступление товаров (документ, 13 июля)
|
||||
- Реализация товаров (документ, 15 июля)
|
||||
- Номенклатура/позиции мебели
|
||||
- Контрагент + договор
|
||||
- Счет-фактура
|
||||
- НДС-регистры
|
||||
- Проводки/движения по хозрасчетному регистру
|
||||
|
||||
### Required entities
|
||||
- `Document_ПоступлениеТоваровУслуг`
|
||||
- `Document_РеализацияТоваровУслуг`
|
||||
- Invoice-linked document refs
|
||||
- `AccumulationRegister_НДС*` records (purchase/sales/tax chain)
|
||||
- Book-layer records (книга покупок/продаж в терминах register linkage)
|
||||
- Posting/movement records for doc confirmation
|
||||
|
||||
### Expected transitions (обязательные)
|
||||
1. `receipt_document -> invoice_link`
|
||||
2. `sale_document -> invoice_link`
|
||||
3. `invoice_link -> vat_register_entry`
|
||||
4. `vat_register_entry -> book_entry`
|
||||
5. `document -> posting`
|
||||
6. `item_scope(receipt) -> item_scope(sale)`
|
||||
|
||||
### Смежный контур (не ядро claim)
|
||||
- Currency/warehouse/responsible fields.
|
||||
- Broad journal references без цепочки invoice/register/book.
|
||||
|
||||
## Q2 — РБП (31 июля, 5 000)
|
||||
|
||||
### Seed entities
|
||||
- Документ списания РБП за июль
|
||||
- Объект РБП
|
||||
- Движения по счету/регистрам РБП
|
||||
- Month-close записи
|
||||
- Остаток на конец июля
|
||||
|
||||
### Required entities
|
||||
- RBP write-off document record
|
||||
- RBP object card / object identifier
|
||||
- RBP movements (дебет/кредит/period bound)
|
||||
- Month-close linked entries
|
||||
- End-period residual per object
|
||||
|
||||
### Expected transitions (обязательные)
|
||||
1. `rbp_writeoff_document -> rbp_object`
|
||||
2. `rbp_object -> movement_records`
|
||||
3. `movement_records -> month_close_entries`
|
||||
4. `month_close_entries -> end_period_residual`
|
||||
5. `end_period_residual -> normal_vs_tail_state`
|
||||
|
||||
### Смежный контур (не ядро claim)
|
||||
- Общие bank/payment journals без object-level RBP linkage.
|
||||
|
||||
## Q3 — Амортизация (31 июля, 2 471,52 / 2 465,28 / 849,83)
|
||||
|
||||
### Seed entities
|
||||
- Объекты ОС (expected set за июль)
|
||||
- Документы начисления амортизации
|
||||
- Проводки по амортизации
|
||||
- Периодные month-close записи
|
||||
- Суммовые anchors из вопроса
|
||||
|
||||
### Required entities
|
||||
- FA object identifiers (expected set)
|
||||
- Depreciation documents for July 2020
|
||||
- Object-to-posting linkage
|
||||
- Posting accounts relevant to depreciation flow
|
||||
- Missed-object detector (object without depreciation row)
|
||||
|
||||
### Expected transitions (обязательные)
|
||||
1. `fa_object -> depreciation_document`
|
||||
2. `depreciation_document -> posting`
|
||||
3. `posting -> account_scope(02/20/44 and linked)`
|
||||
4. `expected_fa_set -> covered_fa_set`
|
||||
5. `set_diff -> missing_object_risk`
|
||||
|
||||
### Смежный контур (не ядро claim)
|
||||
- Non-FA tax/personnel registers (например NDFL-related records), если не дают object-level FA proof.
|
||||
|
||||
## Seed/required summary
|
||||
|
||||
| Question | Seed quality in current runtime | Required transitions fully reconstructable now |
|
||||
| --- | --- | --- |
|
||||
| Q1 VAT | medium-high | partial-high |
|
||||
| Q2 RBP | low-medium | low |
|
||||
| Q3 FA | medium | medium-low |
|
||||
@@ -0,0 +1,53 @@
|
||||
# 9B — Snapshot vs Live Coverage Map
|
||||
|
||||
Дата: 2026-03-29
|
||||
|
||||
## 1) Snapshot coverage (факт)
|
||||
|
||||
Текущий runtime подключает только `docs/ARCH/2020экспорт` subset:
|
||||
- `03_snapshot_fragment_problem_cases.json`
|
||||
- `04_samples_SpisanieSRaschetnogoScheta.json`
|
||||
- `05_samples_RealizaciyaTovarovUslug.json`
|
||||
- `06_samples_PostuplenieTovarovUslug.json`
|
||||
- `07_samples_DocumentJournals.json`
|
||||
- `08_samples_NDS_registers.json`
|
||||
- `09_samples_key_fields_Recorder_Ref_Supplier_Buyer_Responsible.json`
|
||||
|
||||
Дополнительно физически существует monthly as-of corpus (`2020_monthly_company_asof_full_test`), но current runtime его не использует.
|
||||
|
||||
## 2) Live coverage (факт)
|
||||
|
||||
Current runtime live path:
|
||||
- method: `execute_query`
|
||||
- endpoint: MCP proxy `/api/execute_query`
|
||||
- запрос: generic accounting register probe (`TOP N`, без claim-specific filters)
|
||||
|
||||
## 3) Coverage by question
|
||||
|
||||
| Question | Snapshot needed entities reachable | Live needed entities reachable | Current runtime uses required route | Coverage verdict |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Q1 VAT | Yes (docs + VAT registers + key links) | Partially (generic postings probe) | Yes (`store_canonical + hybrid_store_plus_live`) | `snapshot_plus_live_required` |
|
||||
| Q2 RBP | Partially (RBP object-level chain не подтверждается) | Not in current route (no live call selected) | No (canonical-only route) | `data_not_reachable_in_current_runtime` |
|
||||
| Q3 FA | Partially (object-level FA chain неполная) | Partially (generic probe without object scope) | Partially (live есть, но не claim-targeted) | `snapshot_plus_live_required` |
|
||||
|
||||
## 4) Why these verdicts
|
||||
|
||||
### Q1
|
||||
- Snapshot покрывает ключевой VAT relation skeleton.
|
||||
- Live помогает подтвердить movement-level signals.
|
||||
- Без связки snapshot+live цепочка доказательства хуже по устойчивости.
|
||||
|
||||
### Q2
|
||||
- В текущем runtime path live verification не запускается.
|
||||
- Snapshot subset не дает стабильный object-level RBP residual proof.
|
||||
- Поэтому данные не являются достижимыми для полного proof в текущем контуре.
|
||||
|
||||
### Q3
|
||||
- Есть часть snapshot/live сигналов, но object-level FA coverage не закрывается.
|
||||
- Нужны адресные live calls по объектам ОС, которых сейчас нет.
|
||||
|
||||
## 5) B3 verdict (жесткая форма)
|
||||
|
||||
- Q1 VAT: `snapshot_plus_live_required`
|
||||
- Q2 RBP: `data_not_reachable_in_current_runtime`
|
||||
- Q3 FA: `snapshot_plus_live_required`
|
||||
@@ -0,0 +1,43 @@
|
||||
# 9C — Relation Map 1C Entities
|
||||
|
||||
Дата: 2026-03-29
|
||||
Формат: `entity_A`, `entity_B`, `relation_type`, `required_for_claim`, `reachable_via_snapshot`, `reachable_via_live`, `current_runtime_uses_it`, `notes`
|
||||
|
||||
## Q1 — VAT chain completeness
|
||||
|
||||
| entity_A | entity_B | relation_type | required_for_claim | reachable_via_snapshot | reachable_via_live | current_runtime_uses_it | notes |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `Document_ПоступлениеТоваровУслуг` | `Counterparty/Contract` | `document_has_counterparty` | yes | yes | no | yes | подтверждается links в sample docs |
|
||||
| `Document_РеализацияТоваровУслуг` | `Counterparty/Contract` | `document_has_counterparty` | yes | yes | no | yes | есть в snapshot links |
|
||||
| `Document_*` | `Posting` | `document_to_posting` | yes | partial | partial | partial | live probe broad, без doc filter |
|
||||
| `VAT Register Record` | `Document (Recorder)` | `register_recorded_by_document` | yes | yes | no | yes | есть в `08_samples_NDS_registers` |
|
||||
| `VAT Register Record` | `Invoice Document` | `register_relates_to_invoice` | yes | yes | no | yes | ключевой переход для claim |
|
||||
| `VAT Register Record` | `Book Entry layer` | `register_to_book` | yes | partial | no | partial | собирается косвенно через chain signals |
|
||||
| `Receipt Item Scope` | `Sale Item Scope` | `item_scope_match` | yes | partial | no | partial | прямой item-level реконструкции не хватает |
|
||||
|
||||
## Q2 — RBP tail state
|
||||
|
||||
| entity_A | entity_B | relation_type | required_for_claim | reachable_via_snapshot | reachable_via_live | current_runtime_uses_it | notes |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `RBP Writeoff Document` | `RBP Object` | `writeoff_to_object` | yes | partial | partial | no | current route не выходит в live |
|
||||
| `RBP Object` | `RBP Movements` | `object_to_movement` | yes | partial | partial | no | object-level mapping не реконструируется |
|
||||
| `RBP Movements` | `Month Close Entry` | `movement_to_close` | yes | low | partial | no | нет явной цепочки в current runtime |
|
||||
| `Month Close Entry` | `End Period Residual` | `close_to_residual` | yes | low | partial | no | ключевое звено для tail verdict отсутствует |
|
||||
| `Residual` | `Tail Classification` | `residual_to_tail_state` | yes | low | low | no | claim check остается `not_found` |
|
||||
|
||||
## Q3 — FA amortization completeness
|
||||
|
||||
| entity_A | entity_B | relation_type | required_for_claim | reachable_via_snapshot | reachable_via_live | current_runtime_uses_it | notes |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| `FA Object` | `Depreciation Document` | `object_to_depreciation_doc` | yes | partial | partial | partial | в runtime нет устойчивого object-level bind |
|
||||
| `Depreciation Document` | `Posting` | `depreciation_to_posting` | yes | partial | partial | partial | live call generic, object scope отсутствует |
|
||||
| `Posting` | `Account Scope` | `posting_to_account_scope` | yes | yes | yes | partial | часть evidence режется gate по account/domain mismatch |
|
||||
| `Expected FA Set` | `Covered FA Set` | `coverage_set_comparison` | yes | low | low | no | нет полноценного expected-set reconstruction |
|
||||
| `Set Difference` | `Missing Object Risk` | `set_diff_to_risk` | yes | low | low | no | финальный proof не закрывается |
|
||||
| `Non-FA Registers` | `FA Claim` | `cross_domain_noise` | no | yes | yes | yes (undesired) | в replay есть нерелевантные NDFL entities |
|
||||
|
||||
## Relation map conclusions
|
||||
|
||||
1. VAT relation skeleton в snapshot реально существует и частично закрывается текущим runtime.
|
||||
2. Для RBP и FA критичные object-level transitions либо не реконструируются, либо не используются runtime.
|
||||
3. На FA наблюдается cross-domain contamination: runtime использует связи, не обязательные для claim, что мешает proof closure.
|
||||
@@ -0,0 +1,85 @@
|
||||
# 9D — MCP Query Recipes
|
||||
|
||||
Дата: 2026-03-29
|
||||
Основание: replay + текущий `assistantDataLayer` (`execute_query` generic probe)
|
||||
|
||||
## Q1 — VAT
|
||||
|
||||
- `question`: 13/15 июля, полнота НДС-цепочки
|
||||
- `required_live_calls`:
|
||||
1. `execute_query:find_receipt_document_by_date_item`
|
||||
2. `execute_query:find_sale_document_by_date_item`
|
||||
3. `execute_query:find_invoice_links_for_receipt_sale`
|
||||
4. `execute_query:find_vat_register_entries_by_invoice`
|
||||
5. `execute_query:find_sales_purchase_book_entries`
|
||||
6. `execute_query:cross_check_document_postings`
|
||||
- `current_live_calls`:
|
||||
1. `execute_query:generic_accounting_register_probe`
|
||||
- `missing_live_calls`: все 6 required calls выше
|
||||
- `wrong_live_calls`:
|
||||
1. `execute_query:generic_accounting_register_probe_without_claim_filters`
|
||||
- `call_sequence_for_proof`:
|
||||
1. seed receipt/sale docs
|
||||
2. resolve invoice links
|
||||
3. resolve VAT register rows
|
||||
4. resolve book entries
|
||||
5. cross-check postings
|
||||
6. build admissible chain verdict
|
||||
|
||||
## Q2 — RBP
|
||||
|
||||
- `question`: есть ли хвост РБП на конец июля
|
||||
- `required_live_calls`:
|
||||
1. `execute_query:find_rbp_writeoff_documents_in_period`
|
||||
2. `execute_query:find_rbp_object_movements_account_97`
|
||||
3. `execute_query:find_month_close_entries_linked_to_rbp`
|
||||
4. `execute_query:compute_end_period_residual_by_rbp_object`
|
||||
5. `execute_query:classify_normal_vs_abnormal_residual`
|
||||
- `current_live_calls`: none
|
||||
- `missing_live_calls`: все 5 required calls выше
|
||||
- `wrong_live_calls`:
|
||||
1. `no_live_call_selected_due_to_canonical_route`
|
||||
- `call_sequence_for_proof`:
|
||||
1. seed writeoff doc
|
||||
2. bind RBP object
|
||||
3. collect 97 movements
|
||||
4. collect close entries
|
||||
5. compute residual tail
|
||||
6. classify tail state
|
||||
|
||||
## Q3 — FA amortization
|
||||
|
||||
- `question`: полнота охвата объектов ОС амортизацией за июль
|
||||
- `required_live_calls`:
|
||||
1. `execute_query:find_fa_objects_expected_in_period`
|
||||
2. `execute_query:find_depreciation_documents_2020_07`
|
||||
3. `execute_query:map_fa_object_to_depreciation_rows`
|
||||
4. `execute_query:cross_check_postings_accounts_02_20_44`
|
||||
5. `execute_query:detect_missing_fa_objects_without_depreciation`
|
||||
- `current_live_calls`:
|
||||
1. `execute_query:generic_accounting_register_probe`
|
||||
- `missing_live_calls`: все 5 required calls выше
|
||||
- `wrong_live_calls`:
|
||||
1. `execute_query:generic_accounting_register_probe_without_object_scope`
|
||||
- `call_sequence_for_proof`:
|
||||
1. seed by period + known amounts
|
||||
2. resolve expected FA set
|
||||
3. resolve depreciation docs
|
||||
4. map object-level postings
|
||||
5. detect missing objects
|
||||
6. produce completeness verdict
|
||||
|
||||
## Current vs required MCP profile
|
||||
|
||||
| Question | Current live profile | Gap type |
|
||||
| --- | --- | --- |
|
||||
| Q1 VAT | Generic movement probe | claim-specific live calls missing |
|
||||
| Q2 RBP | Live path absent | wrong route + missing live chain |
|
||||
| Q3 FA | Generic movement probe | object-scoped live chain missing |
|
||||
|
||||
## Query recipe examples in artifacts
|
||||
|
||||
- `docs/ARCH/9_audit_artifacts/query_recipe_examples/mcp_query_recipe_matrix.json`
|
||||
- `docs/ARCH/9_audit_artifacts/query_recipe_examples/Q1_VAT_recipe.md`
|
||||
- `docs/ARCH/9_audit_artifacts/query_recipe_examples/Q2_RBP_recipe.md`
|
||||
- `docs/ARCH/9_audit_artifacts/query_recipe_examples/Q3_FA_recipe.md`
|
||||
@@ -0,0 +1,83 @@
|
||||
# 9E — Source-to-Proof Failure Map
|
||||
|
||||
Дата: 2026-03-29
|
||||
|
||||
## Категории классификации
|
||||
- `missing_source_data`
|
||||
- `source_exists_but_runtime_does_not_use_it`
|
||||
- `wrong_route_selection`
|
||||
- `wrong_entity_mapping`
|
||||
- `missing_relation_reconstruction`
|
||||
- `live_call_insufficient_for_proof`
|
||||
- `evidence_not_materialized`
|
||||
- `claim_anchor_coverage_insufficient`
|
||||
- `answer_layer_cannot_close_proof`
|
||||
|
||||
## Q1 — VAT
|
||||
|
||||
### Что система должна была сделать
|
||||
Собрать и доказать цепочку: `receipt/sale doc -> invoice -> VAT register -> book entry -> posting consistency`.
|
||||
|
||||
### Что реально поднято
|
||||
- claim path собран, `admissible_evidence_count=12`, grounded-positive достигнут.
|
||||
- live call есть (`execute_query`, matched_rows=24).
|
||||
|
||||
### Где рвется/шумит
|
||||
- `live_call_insufficient_for_proof` (частично): live probe broad, не claim-targeted.
|
||||
- `evidence_not_materialized` (частично): высокий reject (`weak_source_mapping`, `wrong_account_scope`).
|
||||
|
||||
### Локальный verdict Q1
|
||||
`EVIDENCE_MATERIALIZATION_IS_PRIMARY_PROBLEM` (residual cleanup mode, non-blocking).
|
||||
|
||||
## Q2 — RBP
|
||||
|
||||
### Что система должна была сделать
|
||||
Доказать/опровергнуть хвост РБП к 31.07 через object-level цепочку `writeoff -> movements -> close -> residual`.
|
||||
|
||||
### Что реально поднято
|
||||
- route: canonical-only.
|
||||
- live calls: отсутствуют.
|
||||
- targeted checks: все `not_found`.
|
||||
- admissible evidence: `0`.
|
||||
|
||||
### Где рвется
|
||||
- `wrong_route_selection`
|
||||
- `source_exists_but_runtime_does_not_use_it`
|
||||
- `missing_relation_reconstruction`
|
||||
- `live_call_insufficient_for_proof`
|
||||
- `evidence_not_materialized`
|
||||
|
||||
### Локальный verdict Q2
|
||||
`SOURCE_COVERAGE_IS_PRIMARY_PROBLEM` (в комбинации с route gap).
|
||||
|
||||
## Q3 — FA amortization
|
||||
|
||||
### Что система должна была сделать
|
||||
Построить object-level proof полноты амортизации: expected FA set, per-object posting coverage, missing-object detection.
|
||||
|
||||
### Что реально поднято
|
||||
- live call есть, admissible evidence `19`.
|
||||
- итог всё равно limited: `claim_anchor_coverage_insufficient`.
|
||||
- в evidence встречается cross-domain noise (нерелевантные сущности для FA claim).
|
||||
|
||||
### Где рвется
|
||||
- `wrong_entity_mapping`
|
||||
- `missing_relation_reconstruction`
|
||||
- `live_call_insufficient_for_proof`
|
||||
- `claim_anchor_coverage_insufficient`
|
||||
- `answer_layer_cannot_close_proof`
|
||||
|
||||
### Локальный verdict Q3
|
||||
`ONE_C_RELATION_MAPPING_IS_PRIMARY_PROBLEM` (с evidence/anchor side-effects).
|
||||
|
||||
## Сводный failure map
|
||||
|
||||
| Question | Primary break nodes | Result mode |
|
||||
| --- | --- | --- |
|
||||
| Q1 VAT | evidence materialization residuals | grounded-positive |
|
||||
| Q2 RBP | source coverage + route + missing relation reconstruction | limited |
|
||||
| Q3 FA | relation mapping + claim-anchor closure | limited |
|
||||
|
||||
## Общий verdict
|
||||
|
||||
`MULTI_NODE_FAILURE_CONFIRMED`
|
||||
@@ -0,0 +1,51 @@
|
||||
# 9F — Current Runtime vs Required Runtime
|
||||
|
||||
Дата: 2026-03-29
|
||||
|
||||
## 1) Сравнение по этапам контура
|
||||
|
||||
| Stage | Required runtime behavior | Current runtime behavior | Gap |
|
||||
| --- | --- | --- | --- |
|
||||
| Anchor extraction | Claim-specific anchors (period + entity/object + account/doc links) | Есть claim layer, но coverage нестабильный на FA/RBP | partial gap |
|
||||
| Route selection | Выбор route по required proof path | Для RBP уходит в canonical-only | high gap |
|
||||
| Source selection | Targeted source scope per claim | Ограниченный snapshot subset + broad fallback patterns | high gap |
|
||||
| Relation reconstruction | Object-level relation chain reconstruction | Частично (VAT лучше, RBP/FA хуже) | high gap |
|
||||
| Live call plan | Sequence of claim-bound MCP calls | 0 или 1 generic `execute_query` probe | blocker/high gap |
|
||||
| Evidence materialization | Candidate -> admissible aligned with claim links | Часто высокий reject шум | high gap |
|
||||
| Answer handoff | Grounded when claim proof closed, limited when not | Работает, но Q3 блокируется при non-zero admissible из-за anchor closure | medium-high gap |
|
||||
|
||||
## 2) Required vs current per question
|
||||
|
||||
### Q1 VAT
|
||||
- Required: цепочка doc->invoice->register->book + posting proof.
|
||||
- Current: в целом закрывает positive path.
|
||||
- Gap: current live query слишком broad, admissibility много отбрасывает.
|
||||
|
||||
### Q2 RBP
|
||||
- Required: object-level RBP lifecycle + residual classification.
|
||||
- Current: canonical route, live path не включен, admissible=0.
|
||||
- Gap: route/source/relation/live одновременно недожаты.
|
||||
|
||||
### Q3 FA
|
||||
- Required: expected FA set + per-object depreciation coverage.
|
||||
- Current: live есть, admissible есть, но proof closure нет.
|
||||
- Gap: relation/object mapping и claim-anchor closure.
|
||||
|
||||
## 3) Что должен делать required runtime (минимум)
|
||||
|
||||
1. Для каждого claim строить relation-aware execution graph.
|
||||
2. Подключать claim-specific live call sequence, а не одиночный broad probe.
|
||||
3. Материализовать evidence в object-level chain links.
|
||||
4. Закрывать eligibility на claim-level coverage, а не на сигнальном surrogate.
|
||||
|
||||
## 4) Что делает current runtime сейчас
|
||||
|
||||
1. Имеет рабочий positive path на VAT.
|
||||
2. Сохраняет limited mode честно, но часто из-за pipeline-level разрывов (не только из-за отсутствия данных).
|
||||
3. Не имеет стабильного object-level proof path для RBP и FA.
|
||||
|
||||
## 5) Runtime delta verdict
|
||||
|
||||
- Q1: near-required with residual materialization cleanup.
|
||||
- Q2: far-from-required.
|
||||
- Q3: mid-gap (data/evidence есть, closure нет).
|
||||
@@ -0,0 +1,44 @@
|
||||
# Chat Export (3 Control Questions)
|
||||
|
||||
Источник replay: `x:\1C\NDC_1C\docs\ARCH\8_audit_artifacts\question_replay_logs\1_live_replay.txt`
|
||||
|
||||
## Q1 — НДС (L1)
|
||||
**User question**
|
||||
13 июля проведено поступление товаров, а 15 июля — реализация этих же мебельных позиций. НДС-цепочка по этим движениям у нас полная или где-то есть выпадение между документом, проводкой и налоговым отражением?
|
||||
|
||||
**Runtime outcome**
|
||||
- `reply_type`: `factual_with_explanation`
|
||||
- `claim_type`: `prove_vat_chain_completeness`
|
||||
- `grounding_mode`: `grounded_positive`
|
||||
- `admissible_evidence_count`: `12`
|
||||
- `eligibility_outcome`: `grounded_allowed`
|
||||
- `reason_codes`: none
|
||||
|
||||
## Q2 — РБП (L2)
|
||||
**User question**
|
||||
31 июля прошло «Списание РБП за Июль 2020 г.», в том числе на 5 000 и ещё несколько сумм. Есть ли в базе признаки, что часть РБП к концу июля всё ещё живёт дольше ожидаемого?
|
||||
|
||||
**Runtime outcome**
|
||||
- `reply_type`: `partial_coverage`
|
||||
- `claim_type`: `prove_rbp_tail_state`
|
||||
- `grounding_mode`: `limited_or_insufficient_evidence`
|
||||
- `admissible_evidence_count`: `0`
|
||||
- `eligibility_outcome`: `limited_or_insufficient_evidence`
|
||||
- `reason_codes`: `admissible_evidence_count_zero`, `targeted_evidence_hit_rate_zero`
|
||||
|
||||
## Q3 — Амортизация (L3)
|
||||
**User question**
|
||||
31 июля начислена амортизация тремя суммами — 2 471,52, 2 465,28 и 849,83. Это похоже на полное начисление по всем нужным объектам за июль или есть риск, что какой-то объект ОС в июле не попал в амортизацию?
|
||||
|
||||
**Runtime outcome**
|
||||
- `reply_type`: `partial_coverage`
|
||||
- `claim_type`: `prove_month_close_state`
|
||||
- `grounding_mode`: `limited_or_insufficient_evidence`
|
||||
- `admissible_evidence_count`: `19`
|
||||
- `eligibility_outcome`: `limited_or_insufficient_evidence`
|
||||
- `reason_codes`: `claim_anchor_coverage_insufficient`
|
||||
|
||||
## Быстрый итог по 3 вопросам
|
||||
- 1 кейс вышел в `grounded_positive`.
|
||||
- 2 кейса остались в `partial_coverage`.
|
||||
- Основные причины ограничения: `admissible_evidence_count_zero` (Q2) и `claim_anchor_coverage_insufficient` (Q3).
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
# Q1 VAT — MCP Query Recipe
|
||||
|
||||
Current runtime call:
|
||||
- `execute_query` generic accounting-register probe (broad, not claim-specific).
|
||||
|
||||
Required proof-oriented call sequence:
|
||||
1. `execute_query:find_receipt_document_by_date_item`
|
||||
2. `execute_query:find_sale_document_by_date_item`
|
||||
3. `execute_query:find_invoice_links_for_receipt_sale`
|
||||
4. `execute_query:find_vat_register_entries_by_invoice`
|
||||
5. `execute_query:find_sales_purchase_book_entries`
|
||||
6. `execute_query:cross_check_document_postings`
|
||||
|
||||
Why current call is insufficient:
|
||||
- returns broad movements without explicit invoice/register/book linkage.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Q2 RBP — MCP Query Recipe
|
||||
|
||||
Current runtime call:
|
||||
- no live call selected (both fragments routed to canonical snapshot path).
|
||||
|
||||
Required proof-oriented call sequence:
|
||||
1. `execute_query:find_rbp_writeoff_documents_in_period`
|
||||
2. `execute_query:find_rbp_object_movements_account_97`
|
||||
3. `execute_query:find_month_close_entries_linked_to_rbp`
|
||||
4. `execute_query:compute_end_period_residual_by_rbp_object`
|
||||
5. `execute_query:classify_normal_vs_abnormal_residual`
|
||||
|
||||
Why current path is insufficient:
|
||||
- object-level RBP lifecycle is not reconstructed in live path.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Q3 FA — MCP Query Recipe
|
||||
|
||||
Current runtime call:
|
||||
- `execute_query` generic accounting-register probe.
|
||||
|
||||
Required proof-oriented call sequence:
|
||||
1. `execute_query:find_fa_objects_expected_in_period`
|
||||
2. `execute_query:find_depreciation_documents_2020_07`
|
||||
3. `execute_query:map_fa_object_to_depreciation_rows`
|
||||
4. `execute_query:cross_check_postings_accounts_02_20_44`
|
||||
5. `execute_query:detect_missing_fa_objects_without_depreciation`
|
||||
|
||||
Why current call is insufficient:
|
||||
- object scope is missing, which causes claim-anchor coverage gap.
|
||||
@@ -0,0 +1,100 @@
|
||||
[
|
||||
{
|
||||
"question_id": "Q1_VAT",
|
||||
"question": "13/15 July VAT chain completeness",
|
||||
"required_live_calls": [
|
||||
"execute_query:find_receipt_document_by_date_item",
|
||||
"execute_query:find_sale_document_by_date_item",
|
||||
"execute_query:find_invoice_links_for_receipt_sale",
|
||||
"execute_query:find_vat_register_entries_by_invoice",
|
||||
"execute_query:find_sales_purchase_book_entries",
|
||||
"execute_query:cross_check_document_postings"
|
||||
],
|
||||
"current_live_calls": [
|
||||
"execute_query:generic_accounting_register_probe"
|
||||
],
|
||||
"missing_live_calls": [
|
||||
"execute_query:find_receipt_document_by_date_item",
|
||||
"execute_query:find_sale_document_by_date_item",
|
||||
"execute_query:find_invoice_links_for_receipt_sale",
|
||||
"execute_query:find_vat_register_entries_by_invoice",
|
||||
"execute_query:find_sales_purchase_book_entries",
|
||||
"execute_query:cross_check_document_postings"
|
||||
],
|
||||
"wrong_live_calls": [
|
||||
"execute_query:generic_accounting_register_probe_without_claim_filters"
|
||||
],
|
||||
"call_sequence_for_proof": [
|
||||
"seed_by_receipt_sale_docs",
|
||||
"resolve_invoice_links",
|
||||
"resolve_vat_register_rows",
|
||||
"resolve_book_entries",
|
||||
"validate_doc_to_posting_chain",
|
||||
"build_admissible_chain_summary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"question_id": "Q2_RBP",
|
||||
"question": "RBP write-off and residual tail at 2020-07-31",
|
||||
"required_live_calls": [
|
||||
"execute_query:find_rbp_writeoff_documents_in_period",
|
||||
"execute_query:find_rbp_object_movements_account_97",
|
||||
"execute_query:find_month_close_entries_linked_to_rbp",
|
||||
"execute_query:compute_end_period_residual_by_rbp_object",
|
||||
"execute_query:classify_normal_vs_abnormal_residual"
|
||||
],
|
||||
"current_live_calls": [
|
||||
|
||||
],
|
||||
"missing_live_calls": [
|
||||
"execute_query:find_rbp_writeoff_documents_in_period",
|
||||
"execute_query:find_rbp_object_movements_account_97",
|
||||
"execute_query:find_month_close_entries_linked_to_rbp",
|
||||
"execute_query:compute_end_period_residual_by_rbp_object",
|
||||
"execute_query:classify_normal_vs_abnormal_residual"
|
||||
],
|
||||
"wrong_live_calls": [
|
||||
"no_live_call_selected_due_to_canonical_route"
|
||||
],
|
||||
"call_sequence_for_proof": [
|
||||
"seed_by_writeoff_doc",
|
||||
"bind_to_rbp_object",
|
||||
"collect_97_movements",
|
||||
"collect_close_entries",
|
||||
"compute_residual_tail",
|
||||
"produce_tail_state_verdict"
|
||||
]
|
||||
},
|
||||
{
|
||||
"question_id": "Q3_FA",
|
||||
"question": "FA amortization completeness for 2020-07 with 3 amounts",
|
||||
"required_live_calls": [
|
||||
"execute_query:find_fa_objects_expected_in_period",
|
||||
"execute_query:find_depreciation_documents_2020_07",
|
||||
"execute_query:map_fa_object_to_depreciation_rows",
|
||||
"execute_query:cross_check_postings_accounts_02_20_44",
|
||||
"execute_query:detect_missing_fa_objects_without_depreciation"
|
||||
],
|
||||
"current_live_calls": [
|
||||
"execute_query:generic_accounting_register_probe"
|
||||
],
|
||||
"missing_live_calls": [
|
||||
"execute_query:find_fa_objects_expected_in_period",
|
||||
"execute_query:find_depreciation_documents_2020_07",
|
||||
"execute_query:map_fa_object_to_depreciation_rows",
|
||||
"execute_query:cross_check_postings_accounts_02_20_44",
|
||||
"execute_query:detect_missing_fa_objects_without_depreciation"
|
||||
],
|
||||
"wrong_live_calls": [
|
||||
"execute_query:generic_accounting_register_probe_without_object_scope"
|
||||
],
|
||||
"call_sequence_for_proof": [
|
||||
"seed_by_fa_amounts_and_period",
|
||||
"resolve_expected_fa_set",
|
||||
"resolve_depreciation_docs",
|
||||
"map_object_level_postings",
|
||||
"detect_missed_objects",
|
||||
"produce_completeness_verdict"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T05:48:19.981Z",
|
||||
"aggregate": {
|
||||
"wrong_period": 36,
|
||||
"wrong_domain": 8,
|
||||
"wrong_account_scope": 20,
|
||||
"weak_source_mapping": 42,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 8
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 0,
|
||||
"wrong_domain": 0,
|
||||
"wrong_account_scope": 12,
|
||||
"weak_source_mapping": 14,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 36,
|
||||
"wrong_domain": 0,
|
||||
"wrong_account_scope": 0,
|
||||
"weak_source_mapping": 12,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 0,
|
||||
"wrong_domain": 8,
|
||||
"wrong_account_scope": 8,
|
||||
"weak_source_mapping": 16,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 8
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T05:48:19.981Z",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"business_scope_raw": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"business_scope_resolved": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"company_scope_resolution_reason": [
|
||||
"temporal_claim_bound_company_scope_recovery"
|
||||
]
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"business_scope_raw": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"business_scope_resolved": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"company_scope_resolution_reason": [
|
||||
"temporal_claim_bound_company_scope_recovery"
|
||||
]
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"business_scope_raw": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"business_scope_resolved": [
|
||||
"company_specific_accounting"
|
||||
],
|
||||
"company_scope_resolution_reason": [
|
||||
"temporal_claim_bound_company_scope_recovery"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metric": {
|
||||
"live_company_scope_resolution_rate": 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T05:48:19.981Z",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"claim_type": "prove_vat_chain_completeness",
|
||||
"admissible_evidence_count": 12,
|
||||
"live_calls": [
|
||||
{
|
||||
"fragment_id": "F2",
|
||||
"route": "hybrid_store_plus_live",
|
||||
"method": "execute_query",
|
||||
"args_summary": null,
|
||||
"query_subject": "vat_chain_conflict",
|
||||
"account_scope": [],
|
||||
"fetched_rows": 24,
|
||||
"returned_rows": 12,
|
||||
"matched_rows": 24,
|
||||
"status": "ok"
|
||||
}
|
||||
],
|
||||
"claim_targeted_hit_rate": 1,
|
||||
"eligibility": {
|
||||
"eligible": true,
|
||||
"grounding_mode": "grounded_positive",
|
||||
"outcome": "grounded_allowed",
|
||||
"reason_codes": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"claim_type": "prove_rbp_tail_state",
|
||||
"admissible_evidence_count": 0,
|
||||
"live_calls": [],
|
||||
"claim_targeted_hit_rate": 0,
|
||||
"eligibility": {
|
||||
"eligible": false,
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"outcome": "limited_or_insufficient_evidence",
|
||||
"reason_codes": [
|
||||
"admissible_evidence_count_zero",
|
||||
"targeted_evidence_hit_rate_zero"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"claim_type": "prove_month_close_state",
|
||||
"admissible_evidence_count": 19,
|
||||
"live_calls": [
|
||||
{
|
||||
"fragment_id": "F2",
|
||||
"route": "hybrid_store_plus_live",
|
||||
"method": "execute_query",
|
||||
"args_summary": null,
|
||||
"query_subject": "fixed_asset_card_mismatch",
|
||||
"account_scope": [],
|
||||
"fetched_rows": 24,
|
||||
"returned_rows": 12,
|
||||
"matched_rows": 24,
|
||||
"status": "ok"
|
||||
}
|
||||
],
|
||||
"claim_targeted_hit_rate": 1,
|
||||
"eligibility": {
|
||||
"eligible": false,
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"outcome": "limited_or_insufficient_evidence",
|
||||
"reason_codes": [
|
||||
"claim_anchor_coverage_insufficient"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T05:48:19.980Z",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"raw_time_scope": "2020-07",
|
||||
"resolved_time_anchor": "2020-07-13",
|
||||
"effective_primary_period": {
|
||||
"from": "2020-07-13",
|
||||
"to": "2020-07-13",
|
||||
"granularity": "day"
|
||||
},
|
||||
"temporal_guard_input": "2020-07-13..2020-07-13",
|
||||
"temporal_guard_basis": "resolved_primary_period",
|
||||
"eligibility_time_basis": "resolved_primary_period",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"contradiction": {
|
||||
"has_july_effective_primary_period": true,
|
||||
"temporal_guard_outcome": "passed",
|
||||
"temporal_basis_mismatch": false,
|
||||
"failed_under_july_effective_period": false,
|
||||
"contradiction": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"raw_time_scope": "2020-07",
|
||||
"resolved_time_anchor": "2020-07-31",
|
||||
"effective_primary_period": {
|
||||
"from": "2020-07-31",
|
||||
"to": "2020-07-31",
|
||||
"granularity": "day"
|
||||
},
|
||||
"temporal_guard_input": "2020-07-31..2020-07-31",
|
||||
"temporal_guard_basis": "resolved_primary_period",
|
||||
"eligibility_time_basis": "resolved_primary_period",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"contradiction": {
|
||||
"has_july_effective_primary_period": true,
|
||||
"temporal_guard_outcome": "passed",
|
||||
"temporal_basis_mismatch": false,
|
||||
"failed_under_july_effective_period": false,
|
||||
"contradiction": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"raw_time_scope": "2020-07",
|
||||
"resolved_time_anchor": "2020-07-31",
|
||||
"effective_primary_period": {
|
||||
"from": "2020-07-31",
|
||||
"to": "2020-07-31",
|
||||
"granularity": "day"
|
||||
},
|
||||
"temporal_guard_input": "2020-07-31..2020-07-31",
|
||||
"temporal_guard_basis": "resolved_primary_period",
|
||||
"eligibility_time_basis": "resolved_primary_period",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"contradiction": {
|
||||
"has_july_effective_primary_period": true,
|
||||
"temporal_guard_outcome": "passed",
|
||||
"temporal_basis_mismatch": false,
|
||||
"failed_under_july_effective_period": false,
|
||||
"contradiction": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"metric": {
|
||||
"live_temporal_contradiction_rate": 0
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T09:50:58",
|
||||
"cases": [
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"claim_type": "prove_vat_chain_completeness",
|
||||
"question_type_class": "which_chains_are_complete_vs_incomplete",
|
||||
"routes": [
|
||||
{
|
||||
"fragment_id": "F1",
|
||||
"route": "store_canonical",
|
||||
"reason": "Only plain factual lookups are allowed to stay on canonical path. Query class: canonical_fact_lookup. Allowed fallback: no_route. Forbidden fallback: hybrid_store_plus_live."
|
||||
},
|
||||
{
|
||||
"fragment_id": "F2",
|
||||
"route": "hybrid_store_plus_live",
|
||||
"reason": "Lifecycle-first intents are deterministically promoted to hybrid path. Query class: lifecycle_first. Allowed fallback: no_route. Forbidden fallback: store_canonical."
|
||||
}
|
||||
],
|
||||
"required_checks": [
|
||||
"source_document_found",
|
||||
"invoice_found",
|
||||
"tax_register_entry_found",
|
||||
"book_entry_found",
|
||||
"chain_linkage_status"
|
||||
],
|
||||
"check_status": {
|
||||
"source_document_found": "found",
|
||||
"invoice_found": "found",
|
||||
"tax_register_entry_found": "found",
|
||||
"book_entry_found": "found",
|
||||
"chain_linkage_status": "found"
|
||||
},
|
||||
"candidate_evidence_total": 30,
|
||||
"admissible_evidence_count": 12,
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 0,
|
||||
"wrong_domain": 0,
|
||||
"wrong_account_scope": 12,
|
||||
"weak_source_mapping": 14,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 0
|
||||
},
|
||||
"eligibility_outcome": "grounded_allowed",
|
||||
"grounding_mode": "grounded_positive",
|
||||
"reason_codes": [
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"claim_type": "prove_rbp_tail_state",
|
||||
"question_type_class": "what_is_it_grounded_on",
|
||||
"routes": [
|
||||
{
|
||||
"fragment_id": "F1",
|
||||
"route": "store_canonical",
|
||||
"reason": "Only plain factual lookups are allowed to stay on canonical path. Query class: canonical_fact_lookup. Allowed fallback: no_route. Forbidden fallback: hybrid_store_plus_live."
|
||||
},
|
||||
{
|
||||
"fragment_id": "F2",
|
||||
"route": "store_canonical",
|
||||
"reason": "Only plain factual lookups are allowed to stay on canonical path. Query class: canonical_fact_lookup. Allowed fallback: no_route. Forbidden fallback: hybrid_store_plus_live."
|
||||
}
|
||||
],
|
||||
"required_checks": [
|
||||
"rbp_writeoff_lifecycle_confirmed",
|
||||
"residual_tail_found",
|
||||
"close_contradiction_or_normal_residual"
|
||||
],
|
||||
"check_status": {
|
||||
"rbp_writeoff_lifecycle_confirmed": "not_found",
|
||||
"residual_tail_found": "not_found",
|
||||
"close_contradiction_or_normal_residual": "not_found"
|
||||
},
|
||||
"candidate_evidence_total": 12,
|
||||
"admissible_evidence_count": 0,
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 36,
|
||||
"wrong_domain": 0,
|
||||
"wrong_account_scope": 0,
|
||||
"weak_source_mapping": 12,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 0
|
||||
},
|
||||
"eligibility_outcome": "limited_or_insufficient_evidence",
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"reason_codes": [
|
||||
"admissible_evidence_count_zero",
|
||||
"targeted_evidence_hit_rate_zero"
|
||||
]
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"claim_type": "prove_month_close_state",
|
||||
"question_type_class": "why_breaks",
|
||||
"routes": [
|
||||
{
|
||||
"fragment_id": "F1",
|
||||
"route": "store_feature_risk",
|
||||
"reason": "Rule checks without symptom/lifecycle signals run via risk profile path. Query class: rule_check_without_symptom. Allowed fallback: no_route. Forbidden fallback: store_canonical."
|
||||
},
|
||||
{
|
||||
"fragment_id": "F2",
|
||||
"route": "hybrid_store_plus_live",
|
||||
"reason": "Lifecycle-first intents are deterministically promoted to hybrid path. Query class: lifecycle_first. Allowed fallback: no_route. Forbidden fallback: store_canonical."
|
||||
}
|
||||
],
|
||||
"required_checks": [
|
||||
"close_operation_found",
|
||||
"distribution_step_found",
|
||||
"residual_tail_found"
|
||||
],
|
||||
"check_status": {
|
||||
"close_operation_found": "found",
|
||||
"distribution_step_found": "found",
|
||||
"residual_tail_found": "found"
|
||||
},
|
||||
"candidate_evidence_total": 35,
|
||||
"admissible_evidence_count": 19,
|
||||
"reject_breakdown": {
|
||||
"wrong_period": 0,
|
||||
"wrong_domain": 8,
|
||||
"wrong_account_scope": 8,
|
||||
"weak_source_mapping": 16,
|
||||
"zero_live_match": 0,
|
||||
"future_dated_or_out_of_window": 8
|
||||
},
|
||||
"eligibility_outcome": "limited_or_insufficient_evidence",
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"reason_codes": [
|
||||
"claim_anchor_coverage_insufficient"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
# Chat Export Live Replay
|
||||
|
||||
## L1 | vat_chain_furniture_13_15_july
|
||||
user: 13 июля проведено поступление товаров, а 15 июля — реализация этих же мебельных позиций. НДС-цепочка по этим движениям у нас полная или где-то есть выпадение между документом, проводкой и налоговым отражением?
|
||||
assistant(reply_type=factual_with_explanation, trace_id=i2sI02TOEt-jx_): Коротко: Цепочки разделены на подтвержденные, частично подтвержденные и неподтвержденные. Что сломано: - Ожидаемый переход в учетной цепочке не подтвержден; подтверждение пока частичное, вывод ограничен. Почему это похоже на проблему: - Цепочки разделены на завершенные и незавершенные по текущей опоре. - Часть НДС-цепочки подтверждена, но один или несколько переходов документ -> счет-фактура -> регистр -> книга не подтверждены. На чем это основано: - Опора собрана по НДС-звеньям, чтобы разделить полные и неполные переходы. - Опора собрана по звеньям НДС-цепочки, чтобы разделить полные и неполные переходы. - Вывод опирается на 10 подтвержденных наблюдений в текущем срезе. - Проверены связанные документы и проводки по 6 источникам. - Есть связка между основным выводом и подтверждающими записями. - Опора частичная: по НДС-цепочке не подтверждены одно или несколько звеньев. - Цепочки пока не удалось уверенно разделить на полные и неполные. Что проверить первым: - Сначала разложите НДС-цепочку по шагам: документ -> счет-фактура -> регистр -> книга. - Проверьте ОС-контур: объект ОС -> ввод в эксплуатацию -> начисление амортизации по счетам 01/02. - Сверьте параметр амортизации и наличие начисления по каждому объекту ОС в периоде. Ограничения: - Деление на «complete/incomplete» зависит от полноты цепочки в текущем срезе. - Надежность problem-сигнала низкая, поэтому вывод ограничен. - Оценка сделана на snapshot-срезе и может не включать часть цепочки. - Live probe использует ограниченный выборочный read-only запрос к 1С.
|
||||
|
||||
## L2 | rbp_tail_31_july_5000
|
||||
user: 31 июля прошло “Списание РБП за Июль 2020 г.”, в том числе на 5 000 и ещё несколько сумм. Есть ли в базе признаки, что часть РБП к концу июля всё ещё живёт дольше ожидаемого?
|
||||
assistant(reply_type=partial_coverage, trace_id=kDTLdj1FllFHW4): Коротко: Ниже перечислены основания вывода по списание, остаток и подтверждение на конец периода. Что сломано: - Цепочка затрат и закрытия месяца подтверждена только частично; подтверждение пока частичное, вывод ограничен. Почему это похоже на проблему: - Фокус ответа по подтверждение списания и остатка на конец периода, а не общий close-narrative. - Ожидаемая цепочка списания выглядит незавершенной. - По часть списаний к концу периода подтверждена не полностью, поэтому остаток может сохраняться дольше ожидаемого. На чем это основано: - Опора перечислена по РБП-объектам, документам списания и остаткам на конец периода. - Основание собрано по объект списания, документ списания и остаток на конец периода. - Опора частичная: не по всем объектам подтверждено списание к концу периода. - Отдельно не подтверждено или покрыто частично: R1, R2. - В опоре использованы якоря вопроса: 2020, period:2020. Что проверить первым: - Сначала перечислите по объект, документ списания и остаток после списания на конец периода. - Перечислите основание по объект, документ списания, движение по счету 97, остаток на конец периода. Ограничения: - В основание включены только подтвержденные источники; неподтвержденные вынесены в ограничения. - Якоря из вопроса без прямого подтверждения: 5 000. - Надежность problem-сигнала низкая, поэтому вывод ограничен. - Оценка сделана на snapshot-срезе и может не включать часть цепочки. - Canonical output ограничен доменным runtime-контрактом. - Ни одно требование не получило подтвержденного покрытия.
|
||||
|
||||
## L3 | fa_amortization_2471_2465_849
|
||||
user: 31 июля начислена амортизация тремя суммами — 2 471,52, 2 465,28 и 849,83. Это похоже на полное начисление по всем нужным объектам за июль или есть риск, что какой-то объект ОС в июле не попал в амортизацию?
|
||||
assistant(reply_type=partial_coverage, trace_id=tSRTKmvWeBFIig): Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано: - подтверждение пока частичное, вывод ограничен. Почему это похоже на проблему: - Переход от карточки ОС к начислению амортизации подтвержден не полностью. - По ОС часть переходов к начислению амортизации подтверждена не полностью, поэтому есть риск пропуска отдельных объектов. На чем это основано: - Вывод опирается на 10 подтвержденных наблюдений в текущем срезе. - Проверены связанные документы и проводки по 6 источникам. - Есть связка между основным выводом и подтверждающими записями. - Опора частичная: не по всем объектам ОС подтверждено попадание в начисление амортизации. - Подтверждено по требованиям: R1. Что проверить первым: - Проверьте ОС-контур: объект ОС -> ввод в эксплуатацию -> начисление амортизации по счетам 01/02. - Сверьте параметр амортизации и наличие начисления по каждому объекту ОС в периоде. Ограничения: - Якоря из вопроса без прямого подтверждения: 2 471,52, 2 465,28, 849,83. - Механизм проблемы подтвержден не полностью. - Надежность problem-сигнала низкая, поэтому вывод ограничен. - Риск-факторы определяются эвристикой, а не полным набором бизнес-правил 1С. - Часть нерелевантных записей исключена domain purity фильтром. - Оценка сделана на snapshot-срезе и может не включать часть цепочки.
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Live Case Matrix
|
||||
|
||||
| Case | Label | Reply | Claim Type | Admissible Evidence | Grounding Mode | Scope | Temporal |
|
||||
| --- | --- | --- | --- | ---: | --- | --- | --- |
|
||||
| L1 | vat_chain_furniture_13_15_july | factual_with_explanation | prove_vat_chain_completeness | 12 | grounded_positive | company_specific_accounting | passed |
|
||||
| L2 | rbp_tail_31_july_5000 | partial_coverage | prove_rbp_tail_state | 0 | limited_or_insufficient_evidence | company_specific_accounting | passed |
|
||||
| L3 | fa_amortization_2471_2465_849 | partial_coverage | prove_month_close_state | 19 | limited_or_insufficient_evidence | company_specific_accounting | passed |
|
||||
@@ -0,0 +1,23 @@
|
||||
# Live Replay Report (Wave 19.2)
|
||||
|
||||
## Source
|
||||
- Source of truth replayed from: `X:\1C\NDC_1C\llm_normalizer\docs\runs\2026-03-29_Stage_04_Wave_19_1_Live_Alignment_Fix_Claim_Bound_Runtime\1.txt`
|
||||
- Replayed exactly 3 user turns from the original export.
|
||||
- Runtime path: MCP ON, useMock=true.
|
||||
|
||||
## Metrics
|
||||
- live_temporal_contradiction_rate: 0
|
||||
- live_company_scope_resolution_rate: 1
|
||||
- live_admissible_evidence_nonzero_rate: 0.6667
|
||||
- live_partial_coverage_default_rate: 0.6667
|
||||
- baseline_partial_coverage_default_rate: 1
|
||||
- live_claim_path_completion_rate: 0.6667
|
||||
- live_false_grounded_answer_rate: 0
|
||||
|
||||
## Verdict
|
||||
- LIVE_TEMPORAL_ALIGNMENT_FIXED: FIXED
|
||||
- LIVE_COMPANY_SCOPE_FIXED: FIXED
|
||||
- LIVE_EVIDENCE_PATH_FIXED: FIXED
|
||||
- LIVE_PARTIAL_COVERAGE_DEFAULT_REDUCED: REDUCED
|
||||
- Overall: WAVE19_2_ACCEPTED
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"generated_at": "2026-03-29T09:22:59",
|
||||
"cases": [
|
||||
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"run_id": "2026-03-29_Stage_04_Wave_19_2_Live_Runtime_Fix_Replay_1txt",
|
||||
"stage": "Stage_04",
|
||||
"wave": "Wave_19_2",
|
||||
"scope": "live_runtime_fix_by_replay_1txt",
|
||||
"source_of_truth": "X:\\1C\\NDC_1C\\llm_normalizer\\docs\\runs\\2026-03-29_Stage_04_Wave_19_1_Live_Alignment_Fix_Claim_Bound_Runtime\\1.txt",
|
||||
"execution": {
|
||||
"replay_mode": "exact_questions_from_1_txt",
|
||||
"runtime_path": "assistant_message_with_mcp_runtime_on",
|
||||
"normalizer_mode": "useMock=true",
|
||||
"session_id": "asst-wave19_2-1774763298275"
|
||||
},
|
||||
"thresholds": {
|
||||
"live_temporal_contradiction_rate": 0,
|
||||
"live_company_scope_resolution_rate": 1,
|
||||
"live_false_grounded_answer_rate": 0,
|
||||
"live_admissible_evidence_nonzero_min_cases": 2
|
||||
},
|
||||
"metrics": {
|
||||
"case_count": 3,
|
||||
"baseline_partial_coverage_default_rate": 1,
|
||||
"live_temporal_contradiction_rate": 0,
|
||||
"live_company_scope_resolution_rate": 1,
|
||||
"live_admissible_evidence_nonzero_rate": 0.6667,
|
||||
"live_partial_coverage_default_rate": 0.6667,
|
||||
"live_claim_path_completion_rate": 0.6667,
|
||||
"live_false_grounded_answer_rate": 0
|
||||
},
|
||||
"verdicts": {
|
||||
"LIVE_TEMPORAL_ALIGNMENT_FIXED": "FIXED",
|
||||
"LIVE_COMPANY_SCOPE_FIXED": "FIXED",
|
||||
"LIVE_EVIDENCE_PATH_FIXED": "FIXED",
|
||||
"LIVE_PARTIAL_COVERAGE_DEFAULT_REDUCED": "REDUCED",
|
||||
"overall_status": "WAVE19_2_ACCEPTED"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
[
|
||||
{
|
||||
"case_id": "L1",
|
||||
"label": "vat_chain_furniture_13_15_july",
|
||||
"claim_type": "prove_vat_chain_completeness",
|
||||
"routes": "store_canonical -\u003e hybrid_store_plus_live",
|
||||
"business_scope_resolved": "company_specific_accounting",
|
||||
"resolved_time_anchor": "2020-07-13",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"admissible_evidence_count": 12,
|
||||
"grounding_mode": "grounded_positive",
|
||||
"reply_type": "factual_with_explanation"
|
||||
},
|
||||
{
|
||||
"case_id": "L2",
|
||||
"label": "rbp_tail_31_july_5000",
|
||||
"claim_type": "prove_rbp_tail_state",
|
||||
"routes": "store_canonical -\u003e store_canonical",
|
||||
"business_scope_resolved": "company_specific_accounting",
|
||||
"resolved_time_anchor": "2020-07-31",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"admissible_evidence_count": 0,
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"reply_type": "partial_coverage"
|
||||
},
|
||||
{
|
||||
"case_id": "L3",
|
||||
"label": "fa_amortization_2471_2465_849",
|
||||
"claim_type": "prove_month_close_state",
|
||||
"routes": "store_feature_risk -\u003e hybrid_store_plus_live",
|
||||
"business_scope_resolved": "company_specific_accounting",
|
||||
"resolved_time_anchor": "2020-07-31",
|
||||
"temporal_guard_outcome": "passed",
|
||||
"admissible_evidence_count": 19,
|
||||
"grounding_mode": "limited_or_insufficient_evidence",
|
||||
"reply_type": "partial_coverage"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# 2020 экспорт: состав выгрузки
|
||||
|
||||
Папка собрана автоматически для ручного анализа текущего состояния.
|
||||
|
||||
## Файлы
|
||||
|
||||
1. `01_ontology_mapping_layer.md` — текущая онтология/мэппинг и метрики среза.
|
||||
2. `02_canonical_relation_rules.md` — правила построения canonical relations.
|
||||
3. `03_snapshot_fragment_problem_cases.json` — проблемный фрагмент snapshot июня 2020.
|
||||
4. `04_samples_SpisanieSRaschetnogoScheta.json` — реальные записи по `СписаниеСРасчетногоСчета`.
|
||||
5. `05_samples_RealizaciyaTovarovUslug.json` — реальные записи по `РеализацияТоваровУслуг`.
|
||||
6. `06_samples_PostuplenieTovarovUslug.json` — реальные записи по `ПоступлениеТоваровУслуг`.
|
||||
7. `07_samples_DocumentJournals.json` — реальные записи по журналам документов.
|
||||
8. `08_samples_NDS_registers.json` — реальные записи по НДС-регистрам.
|
||||
9. `09_samples_key_fields_Recorder_Ref_Supplier_Buyer_Responsible.json` — записи с ключевыми полями.
|
||||
|
||||
## Ключевые поля: фактическая встречаемость в snapshot
|
||||
|
||||
| field | count |
|
||||
| --- | --- |
|
||||
| Ответственный_Key | 187 |
|
||||
| Ref | 168 |
|
||||
| Recorder | 147 |
|
||||
| Ref_Key | 93 |
|
||||
| Поставщик_Key | 78 |
|
||||
| Покупатель_Key | 46 |
|
||||
+5449
File diff suppressed because it is too large
Load Diff
+3320
File diff suppressed because it is too large
Load Diff
+2086
File diff suppressed because it is too large
Load Diff
+3078
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+8753
File diff suppressed because it is too large
Load Diff
+112
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"status": "success",
|
||||
"snapshot_mode": "cumulative_asof",
|
||||
"year": 2020,
|
||||
"service_root": "http://localhost/buh_test/odata/standard.odata/",
|
||||
"entity_sets_total": 2,
|
||||
"entity_sets": [
|
||||
"AccountingRegister_Хозрасчетный",
|
||||
"AccountingRegister_Хозрасчетный_RecordType"
|
||||
],
|
||||
"page_size": 500,
|
||||
"max_pages_per_set": 0,
|
||||
"include_undated": "all_months",
|
||||
"truncated_entity_sets_count": 0,
|
||||
"truncated_entity_sets": [],
|
||||
"records_exported_per_month": {
|
||||
"2020-01": 15113,
|
||||
"2020-02": 15211,
|
||||
"2020-03": 15508,
|
||||
"2020-04": 15578,
|
||||
"2020-05": 15648,
|
||||
"2020-06": 15953,
|
||||
"2020-07": 16039,
|
||||
"2020-08": 16122,
|
||||
"2020-09": 16175,
|
||||
"2020-10": 16212,
|
||||
"2020-11": 16308,
|
||||
"2020-12": 16377
|
||||
},
|
||||
"dated_records_exported_per_month": {
|
||||
"2020-01": 10644,
|
||||
"2020-02": 10742,
|
||||
"2020-03": 11039,
|
||||
"2020-04": 11109,
|
||||
"2020-05": 11179,
|
||||
"2020-06": 11484,
|
||||
"2020-07": 11570,
|
||||
"2020-08": 11653,
|
||||
"2020-09": 11706,
|
||||
"2020-10": 11743,
|
||||
"2020-11": 11839,
|
||||
"2020-12": 11908
|
||||
},
|
||||
"undated_records_exported_per_month": {
|
||||
"2020-01": 4469,
|
||||
"2020-02": 4469,
|
||||
"2020-03": 4469,
|
||||
"2020-04": 4469,
|
||||
"2020-05": 4469,
|
||||
"2020-06": 4469,
|
||||
"2020-07": 4469,
|
||||
"2020-08": 4469,
|
||||
"2020-09": 4469,
|
||||
"2020-10": 4469,
|
||||
"2020-11": 4469,
|
||||
"2020-12": 4469
|
||||
},
|
||||
"links_exported_per_month": {
|
||||
"2020-01": 47623,
|
||||
"2020-02": 48036,
|
||||
"2020-03": 49243,
|
||||
"2020-04": 49539,
|
||||
"2020-05": 49834,
|
||||
"2020-06": 51071,
|
||||
"2020-07": 51426,
|
||||
"2020-08": 51769,
|
||||
"2020-09": 51992,
|
||||
"2020-10": 52151,
|
||||
"2020-11": 52545,
|
||||
"2020-12": 52831
|
||||
},
|
||||
"entity_set_stats": {
|
||||
"AccountingRegister_Хозрасчетный": {
|
||||
"pages_read": 9,
|
||||
"records_scanned": 4469,
|
||||
"records_mapped": 4469,
|
||||
"records_with_datetime": 0,
|
||||
"records_without_datetime": 4469,
|
||||
"records_skipped_future": 0,
|
||||
"mapping_errors": 0,
|
||||
"truncated_by_limit_or_guard": false,
|
||||
"pagination_repeat_guard_hits": 0
|
||||
},
|
||||
"AccountingRegister_Хозрасчетный_RecordType": {
|
||||
"pages_read": 26,
|
||||
"records_scanned": 12659,
|
||||
"records_mapped": 11908,
|
||||
"records_with_datetime": 12659,
|
||||
"records_without_datetime": 0,
|
||||
"records_skipped_future": 751,
|
||||
"mapping_errors": 0,
|
||||
"truncated_by_limit_or_guard": false,
|
||||
"pagination_repeat_guard_hits": 0
|
||||
}
|
||||
},
|
||||
"snapshot_files": [
|
||||
"snapshot_2020-01_asof_full.json",
|
||||
"snapshot_2020-02_asof_full.json",
|
||||
"snapshot_2020-03_asof_full.json",
|
||||
"snapshot_2020-04_asof_full.json",
|
||||
"snapshot_2020-05_asof_full.json",
|
||||
"snapshot_2020-06_asof_full.json",
|
||||
"snapshot_2020-07_asof_full.json",
|
||||
"snapshot_2020-08_asof_full.json",
|
||||
"snapshot_2020-09_asof_full.json",
|
||||
"snapshot_2020-10_asof_full.json",
|
||||
"snapshot_2020-11_asof_full.json",
|
||||
"snapshot_2020-12_asof_full.json"
|
||||
],
|
||||
"output_dir": "x:\\1C\\NDC_1C\\docs\\ARCH\\2020_monthly_company_asof_full_test",
|
||||
"generated_at_utc": "2026-03-27T21:34:24.669751+00:00"
|
||||
}
|
||||
Reference in New Issue
Block a user