arm-ka-docs/Makefile
Andrey Epifancev f7ee6bee55 model: DBML v5.20 — уточнение периода и счёта ОСВ аналитиком (#147)
- document: is_modified, original_values, modified_by, modified_at — правка
  period_year / period_quarter / is_cumulative / osv_account_code на месте,
  распознанное в original_values (первичка не мутируется); копия document не
  создаётся.
- 05-domain-rules §9.5 п. 12: PATCH /documents/{id}/osv-header — проверки,
  сброс подтверждения и снятие привязок к версиям «в работе», аудит
  RECOGNIZED_DATA_EDIT; §3 п. 1 — новая точка отвязки.
- OQ-161 закрыт вариантом (2); флаг CONSOLIDATION_PERIOD_FROM_VERSION
  снимается после правки на экране.
- entities-v5.20, диаграммы, ссылки на текущую версию модели.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 18:57:47 +04:00

50 lines
3.1 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.20.dbml
.PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-statements sync-statements statements-check check diagrams
# Зависимости скриптов проверки контракта — 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)