# Команды проверки репозитория 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 ?= slice-0-skeleton # Текущая версия модели данных — по ней рисуются диаграммы (make diagrams) DBML ?= model/data-model-v5.18.dbml .PHONY: venv validate-contracts validate-openspec test-snapshot test-sync-web test-sync-statements sync-web 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/ против трёх схем JSON Schema 2020-12 validate-contracts: $(PY) scripts/validate_contracts.py # Спека текущего изменения OpenSpec (нужен CLI openspec в PATH) validate-openspec: openspec validate $(CHANGE) --strict # Снимок для контура вырезает артефакты агента на любой глубине (dev/contour-transfer-guide.md §3); нужны git и bash test-snapshot: scripts/test_prepare_contour_snapshot.sh # sync-web.sh на синтетических репозиториях: точка синхронизации, перенос набора, отказ при расхождении, пайплайн переноса test-sync-web: scripts/test_sync_web.sh # sync-statements.sh на синтетических репозиториях: помощник проверок, копирование пакета, отказы test-sync-statements: STATEMENTS_PY=$(PY) scripts/test_sync_statements.sh # Синхронизация arm-core/web с arm-web@test одной командой (worktree, issue, PR); SYNC_ARGS="--check" или "--dry-run" sync-web: scripts/sync-web.sh $(SYNC_ARGS) check: validate-contracts validate-openspec test-snapshot test-sync-web # Диаграммы model/diagrams/part01…09.{svg,png} из $(DBML); нужен npx (Node.js), зависимостей Python нет diagrams: python3 scripts/gen_model_diagrams.py $(DBML)