13 Commits

Author SHA1 Message Date
Andrey Epifancev
5fcb300373 make check: validate-openspec проверяет все спеки и change'и (#126)
CHANGE ?= slice-0-skeleton указывал на давно заархивированный change, make check был красным (O-1 плана 0, #116). По умолчанию теперь openspec validate --all --strict; CHANGE=<id> — один change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:01:38 +04:00
Andrey Epifancev
f675c762af Слияние main в feat/116: §1 ОСВ cp1251 (tabular-parser #47) рядом с правилом v2.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:42:19 +04:00
Andrey Epifancev
fdd25a6000 fix(scripts): sync-statements.sh --in-place не пишет в основной checkout и main, --check всегда печатает итог, правки доков (#120)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:31:22 +04:00
Andrey Epifancev
7900191401 feat(scripts): prepare-contour-snapshot.sh проверяет свежесть копии arm_statements (sync-statements --check, Р-42) (#120)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:24:42 +04:00
Andrey Epifancev
bb7c1a0c07 feat(make): sync-statements, statements-check и test-sync-statements в check (#120)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:22:44 +04:00
Andrey Epifancev
ddf6927332 feat(scripts): помощник statements_check.py — зависимости пакета и коды словаря имён против перечня (#120)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:06:56 +04:00
Andrey Epifancev
e33a4a45f9 contracts(#116): окно перехода 1.x, перечни кодов форм, okei, смысл column_index и ref (K-5, K-6, K-8, K-22, S-15)
- recognition-result.v1.schema.json и recognition-result-message.v1.schema.json — байтовые копии схем 1.2 / 1.0
  (до 9b1a4cc), примеры 1.x — examples/v1/; живут до удаления маппера 1.x ядра (K-8)
- statement-code-orders.yaml — упорядоченные перечни кодов ББ/ОФР по редакциям 66n / fsbu4 и вариантам
  full / simplified, с законными повторами (Р-20: 1220, 1520, 2410 у fsbu4; раздел III НКО у 66n) и кодами
  печатных форм 1С из fixtures (1105, 1130, 1140, 1215, 1231, 1530, 2420, 2460, 2530, 2930) (K-5)
- validate_contracts.py: схемы v1 и examples/v1/, проверка формы перечня кодов; make venv ставит PyYAML
- v2.0: header.okei (+ _text, _confidence) и okei в headerField (K-22); columns[].column_index — столбец сетки
  кандидата (K-6); line_refs — только строки lines[]; ref Excel — имя листа в кавычках по правилу Excel (S-15);
  статус ОСВ — по контрольным суммам §1.4 листа (S-22); примеры приведены к этим правилам

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 02:02:41 +04:00
Andrey Epifancev
ecc789667f model: DBML v5.19 — строки форм со статусами, needs_review, document_issue, crm_id ГСК/ГСЗ (#116)
- financial_statement_line: снята уникальность (meta_id, line_code); row_index, source_ref (частичный
  уникальный индекс), line_status (enum statement_line_status), line_code_text, parent_row_index,
  needs_review, is_confirmed
- financial_statement_value: source_text, needs_review (хранится — пересмотр п. 4 v5.13), is_confirmed,
  confirmed_by/at; financial_statement_column: period_kind, label_confidence;
  financial_statement_meta: form_variant (enum statement_form_variant), needs_review_fields
- новая таблица document_issue + enum document_issue_kind, issue_severity, issue_source
- recognition_job.statements_version; document: file_ordinal, уникальность типа на файл — только не для
  BALANCE/INCOME (Р-10); related_group.crm_id (arm-core#112)
- changelog и правила заполнения миграции в шапке; entities-v5.19.md; диаграммы части 01, 04, 06
  (document_issue — в части 06); ссылки на текущую модель и DBML в Makefile — v5.19

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BJKMLHdxMwSUeYcdkwqX4W
2026-10-18 00:53:06 +04:00
Andrey Epifancev
e8dbcff83f feat(scripts): sync-web.sh — синхронизация arm-core/web с arm-web и проверка отставания в пайплайне переноса (#94)
Скрипт делает одной командой то, что делалось вручную в arm-core #94 и #100:
точка синхронизации по хэшу дерева src (без хранения состояния), worktree по
абсолютному пути, issue и PR в arm-core через tea, перенос набора (всё кроме
служебного arm-web), контроль diff -rq, проверки vitest/tsc/biome/build до
коммита. Режимы --check (0/10/20), --dry-run, --ref, --core-ref.

prepare-contour-snapshot.sh для arm-core перед снимком вызывает sync-web.sh
--check: при отставании спрашивает «перенести как есть?», «n» запускает
синхронизацию и останавливает перенос (код 3) до merge PR и закрытия issue;
без терминала — флаг --web-as-is; расхождение (прямые правки web/) — стоп.
Тест test_sync_web.sh на синтетических репозиториях, цели make test-sync-web
и sync-web, гайд §3 шаг 0, §3.1, §8.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 10:45:35 +04:00
Andrey Epifancev
c2c95012ea model: DBML v5.18 — stored_file.consolidation_id, рабочий стол консоли (#90)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 23:24:57 +04:00
Andrey Epifancev
7b37e696ca fix(dev): снимок для контура вырезает артефакты агента на любой глубине (#75)
Фронт перенесён в arm-core/web/ из arm-web вместе со своими .claude/, CLAUDE.md,
openspec/config.yaml, docs/superpowers/ и .codegraph/. Скрипт удалял их только в
корне, поэтому в arm-core их пришлось вычищать вручную (arm-core #73).

- prepare-contour-snapshot.sh: удаление и проверка через find по всему дереву;
  опустевшие docs/ убираются; Dockerfile/.dockerignore — по-прежнему только корень
- scripts/test_prepare_contour_snapshot.sh + make test-snapshot (входит в make check):
  синтетический arm-core с артефактами в корне и в web/
- dev/contour-transfer-guide.md §1–§3 и текст SNAPSHOT.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019qoydUVv8g1qHxc123u2RR
2026-10-08 23:42:04 +04:00
Andrey Epifancev
d643453dee Устаревшая документация: модель v5.17, диаграммы по частям, сделанное — в сделанное (#60)
- Ссылки на источник истины v5.13/v5.14/v5.15 → v5.17: openspec/config.yaml, KICKOFF-PROMPT, 00-workspace-layout,
  08-source-docs-index, заголовок 05-domain-rules, dev/checks.md; спека quality-checks — без привязки к версии
  (путь — переменная DBML Makefile).
- Диаграммы model/diagrams/part01…09 перерисованы по v5.17 (были v5.12): scripts/gen_model_diagrams.py
  (разбиение DBML на части + dbml-renderer + resvg через npx, версии закреплены), цель make diagrams;
  описание в 04-data-model-guide, 06-test-data, 08-source-docs-index.
- dev/frontend-api-guide.md: КПП (arm-core #52) и DB_SCHEMA (#53) — из §11 в §1, КПП в маршрутах §5.2/§5.3,
  схеме §5.8 и каталоге ошибок §9 (сверено с кодом 99669cd).
- Ссылки на заархивированные change'и (dev/README, dev/checks, api-contract-slice-3b/4), путь к v4 DBML в индексе.
- 09-delivery-plan: статусы Срезов 0, 2d, 3b, 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vJkmBGKKqMoEMzvsXG3y2
2026-10-07 23:35:44 +04:00
Andrey Epifancev
039bb4ed7b build: Makefile репозитория docs с целью check (валидация контракта и OpenSpec)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 05:19:39 +04:00