arm-ka-docs/Makefile
Andrey Epifancev 12ae96ba6e Библиотека arm_statements вместо копий: спеки, контекст, инструменты docs (AURORA-1677)
- спеки statement-normalization, quality-checks, arm-core, recognition-contract — дельты под библиотеку
- удалены sync-statements, statements-check, test-sync-statements; новая statements-orders-check в make check
- снимок для контура: без шага 0a, цель install вырезается (иначе проверка «нет uv» падает)
- 03-architecture, 05-domain-rules, 00-workspace-layout, dev/checks.md, contour-transfer-guide; баннеры убраны

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 16:45:19 +04:00

46 lines
3.4 KiB
Makefile
Raw Permalink 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.23.dbml
# Checkout библиотеки arm_statements (RSHB/pylib_ai_arm_statements) рядом с docs — для statements-orders-check
STATEMENTS_DIR ?= ../pylib_ai_arm_statements
.PHONY: venv validate-contracts validate-openspec test-snapshot statements-orders-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:
scripts/test_prepare_contour_snapshot.sh
# Перечень кодов форм: источник — contracts/statement-code-orders.yaml, в библиотеке — его байтовая копия
# arm_statements/rules/statement_code_orders.yaml. Расхождение или нет checkout рядом — предупреждение, цель зелёная:
# порядок правки «docs → библиотека → версия в сервисах», и до выпуска библиотеки docs законно впереди.
statements-orders-check:
@lib="$(STATEMENTS_DIR)/arm_statements/rules/statement_code_orders.yaml"; \
if [ ! -f "$$lib" ]; then echo "statements-orders-check: ПРЕДУПРЕЖДЕНИЕ — нет $$lib (STATEMENTS_DIR), сверка пропущена"; \
elif cmp -s contracts/statement-code-orders.yaml "$$lib"; then echo "statements-orders-check: перечень кодов совпадает с библиотекой"; \
else echo "statements-orders-check: ПРЕДУПРЕЖДЕНИЕ — contracts/statement-code-orders.yaml отличается от $$lib (выпустите библиотеку с новым перечнем)"; fi
check: validate-contracts validate-openspec test-snapshot statements-orders-check
# Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет
diagrams:
python3 scripts/gen_model_diagrams.py $(DBML)