arm-ka-docs/Makefile
Andrey Epifancev f9240fd351 DBML v5.24: таблица vgo_assignment (AURORA-1751/1540/1541, #196), §5/§8 под факт реализации
Миграция 0011_dbml_v5_24 (vgo_assignment) уже была слита в arm-core main;
docs/model/data-model-v5.24.dbml не существовал — arm-core-dbml-check
красный в регрессии 2026-11-02_2131. Таблица описана по факту ORM/миграции
(dbml_parity.py уже содержал хардкод под это: поля side нет — решение
зафиксировано).

Заодно приведены в соответствие с уже слитым кодом:
- 05-domain-rules.md §5: экран «Пары ВГО» (elimination-totals/pairs) оставлен
  как есть (двойной учёт — известное ограничение, из UI убран), добавлен
  п. 2a — разнесение строк в «Таблице корректировок» (vgo_assignment),
  которое и решает двойной учёт исключением спорной строки до ручного
  решения аналитика;
- §8: корректировка — массивы debit[]/credit[], всегда APPLIED, без
  REVOKED, оптимистичная блокировка по version_no, порог строго > 5 % (R-35);
- OQ-178: открытый вопрос "включительно или нет" (ТЗ/DOC-272613 против
  факта реализации) зафиксирован отдельно от уже закрытого OQ-174;
- analyst/eliminations-vgo.md, dev/api-contract-corrections.md/goodwill.md,
  context/*, Makefile, openspec/config.yaml, repo-templates/arm-core.CLAUDE.md —
  версия 5.23 → 5.24; диаграмма part08 перерисована.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-02 23:09:32 +04:00

54 lines
3.4 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Команды проверки репозитория arm-ka-docs. Запуск из корня репозитория.
# Сервисных целей (lint/test/up...) здесь нет: описание общих целей сервисов — dev/checks.md.
VENV := .venv
# Если окружение создано (`make venv`) — берём его интерпретатор, иначе системный python3 (в нём должны быть jsonschema и PyYAML)
PY := $(if $(wildcard $(VENV)/bin/python),$(CURDIR)/$(VENV)/bin/python,python3)
# Пусто — проверяются все change'и и спеки; `make validate-openspec CHANGE=<id>` — один change
CHANGE ?=
# Текущая версия модели данных — по ней рисуются диаграммы (make diagrams)
DBML ?= model/data-model-v5.24.dbml
.PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-statements sync-statements statements-check check diagrams regress
# Зависимости скриптов проверки контракта — jsonschema и PyYAML (перечни кодов форм contracts/statement-code-orders.yaml)
venv:
uv venv --python 3.11 --allow-existing $(VENV)
uv pip install --python $(VENV)/bin/python jsonschema pyyaml
# Примеры contracts/examples/ (и examples/v1/ окна перехода) против схем JSON Schema 2020-12 + перечни кодов форм
validate-contracts:
$(PY) scripts/validate_contracts.py
# Спеки и change'и OpenSpec (нужен CLI openspec в PATH)
validate-openspec:
openspec validate $(if $(CHANGE),$(CHANGE),--all) --strict
# Снимок для контура вырезает артефакты агента на любой глубине (dev/contour-transfer-guide.md §3); нужны git и bash
test-snapshot:
STATEMENTS_PY=$(PY) scripts/test_prepare_contour_snapshot.sh
# sync-statements.sh на синтетических репозиториях: помощник проверок, копирование пакета, отказы
test-sync-statements:
STATEMENTS_PY=$(PY) scripts/test_sync_statements.sh
# Копия пакета arm_statements в хост одной командой (worktree, issue, PR); SYNC_ARGS="--host arm-core [--check|--dry-run]"
sync-statements:
STATEMENTS_PY=$(PY) scripts/sync-statements.sh $(SYNC_ARGS)
# Обзор свежести копий во всех хостах; в check не входит — читает соседние репозитории.
# Коды 0 и 10 — зелёные, любой другой — цель завершается кодом 1 после проверки всех трёх хостов.
statements-check:
@rc=0; for h in arm-core tabular-parser scan-gateway; do \
STATEMENTS_PY=$(PY) scripts/sync-statements.sh --check --host $$h || { c=$$?; [ $$c -eq 10 ] || rc=1; }; \
done; exit $$rc
check: validate-contracts validate-openspec test-snapshot test-sync-statements
# Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет
diagrams:
python3 scripts/gen_model_diagrams.py $(DBML)
# Полная регрессия main всех репозиториев workspace перед выкладкой (scripts/regression/README.md); REGRESS_ARGS="--only stand,ui"
regress:
scripts/regression/regress.sh $(REGRESS_ARGS)