Andrey Epifancev
7c6c3ba140
docs: OQ-138 закрыт (тыс. руб. верим, округление итогов мягкое), контракт — $comment и примеры (M-12), §12/§7, 06-test-data, статус Среза 2b
...
Refs RSHB/arm-tabular-parser#20
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
2026-10-06 23:17:36 +04:00
Andrey Epifancev
82ad2ab251
feat(contract): v1.2 — DISCLOSURE, statementDocument.checks, границы периода ОСВ, примеры
...
Refs #26
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: cedd7915-2efe-41e5-988c-a9117033598b
2026-10-06 14:13:44 +04:00
Andrey Epifancev
c2005a4699
docs: финальное ревью Среза 2a — §1 (лимиты чтения, ИНН, ACCOUNT_RE, риски R-21), OQ-106…OQ-109
...
- 05-domain-rules §1.0 п. 1: признак ОСВ в первых 30 строках листа; п. 4, §1.3: ИНН по значениям без дополнения
нулём, дополнение при извлечении (R-24); ACCOUNT_RE с re.ASCII | re.DOTALL (M-1); §1.4: остаточные риски R-21
(RR-1…RR-4, слепые зоны); §1.6: лимиты чтения (R-23), логирование.
- 06-test-data §3 п. 17: ИНН в тексте строки — ОСВ 76 Счастливочной за 1–3 кв. 2024 (6 + 7 + 7 строк).
- 07-open-questions: OQ-106 (Итого = первый корень), OQ-107 (hierarchy=sums), OQ-108 (defusedxml, лимиты чтения),
OQ-109 (размер объекта S3 до скачивания); OQ-105 ссылается на риски §1.4.
- OQ-81 «частично закрыт» в 09-delivery-plan, tasks.md и proposal.md change.
- contracts/examples/result-osv-needs-check.json — как пишет парсер (копия tabular-parser байт в байт).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 16:32:52 +04:00
Andrey Epifancev
baeb9189f6
docs: §1 по факту парсера, 06-test-data, план срезов 2a–2d, OQ, пример контракта
...
- 05-domain-rules §1: обязательные группы (R-12), hierarchy=<имя>, TOTAL в rows, буквенные субсчета и Вал./Кол. (R-16, R-18, R-19), ИНН (R-15, R-17), сверка по нетто (R-21), R-20, пустая ОСВ, ASSUMPTION(OQ-02), новый §1.6 (статусы, коды, лимиты, словари)
- 06-test-data: синтетика s01–s16, golden (82 снимка), рукописный xlsb, пустые ОСВ, буквенные субсчета
- 09-delivery-plan: Срез 2 → 2a–2d, 2a по факту
- 07-open-questions: OQ-98…OQ-105, пометки допущений парсера у OQ-01/02/45, OQ-81 частично закрыт
- contracts/examples/result-osv-needs-check.json: ACCOUNT в group_schema, ИНН из колонки, «Вал.» без контрагента, строка TOTAL
- openspec tasks.md: 1.2, 2.1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 15:53:11 +04:00
Andrey Epifancev
186d6f1dcf
contracts: needs_check-пример — строка 3 как «Вал.» под контрагентом (CURRENCY, уровень 2)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 11:59:41 +04:00
Andrey Epifancev
ec7c42f964
contracts: результат v1.1 — rows[].extra (§1.2), пример needs_check
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-05 11:56:16 +04:00
Andrey Epifancev
991a152454
fix(contracts): schema_version принимает любой MINOR, границы confidence, описание Nats-Msg-Id
...
- schema_version: const "1.0" заменён на pattern ^1\.\d+$ во всех трёх схемах (I-1, R-8);
в $comment добавлено правило раскатки нового MINOR сначала на потребителей
- границы 0–100 для organization_name_confidence, inn_confidence, line_code_confidence,
line_name_confidence (I-2)
- description recognition-result-message: две формы Nats-Msg-Id на recognition.result (M-5)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:58:48 +04:00
Andrey Epifancev
38c50c2101
Контракт: примеры сообщений и результатов распознавания v1.0
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:04:49 +04:00
Andrey Epifancev
a57cf2db49
Контракт: схема сообщения результата recognition-result-message v1.0
...
Конверт на subject recognition.result: status processing | done | needs_check | error,
условные обязательные поля через if/then (done/needs_check → result_s3 и
result_schema_version; error → error). group_schema в конверт не входит.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:02:18 +04:00
Andrey Epifancev
8efaba47bf
Контракт: схема запроса распознавания recognition-request v1.0
...
JSON Schema 2020-12 по spec recognition-contract: schema_version, job_id,
file_id (uuid), pipeline, file_type, original_name, s3 {bucket, key},
reply_deadline (date-time), attempt (>= 1).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 18:00:35 +04:00
Andrey Epifancev
65c3809efe
Контракт v1.0: схема результата распознавания без пометки «черновик»
...
- title без «ЧЕРНОВИК v1, уточнить в Срезе 2»
- $comment о правилах версионирования (MAJOR.MINOR)
- NOT_IMPLEMENTED в перечне error.code
- пустой documents допустим только при status = error (if/then, minItems: 1 для done и needs_check)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 17:58:47 +04:00
Andrey Epifancev
e4e2b3ee83
docs: стартовый контекст
2026-10-02 23:02:44 +04:00