- спеки 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>
46 lines
3.4 KiB
Makefile
46 lines
3.4 KiB
Makefile
# Команды проверки репозитория 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)
|