diff --git a/.gitignore b/.gitignore index 1ffed2b..e44f625 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .superpowers/ .bounded dev/.env +.venv/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b280266 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +# Команды проверки репозитория arm-ka-docs. Запуск из корня репозитория. +# Сервисных целей (lint/test/up...) здесь нет: описание общих целей сервисов — dev/checks.md. +VENV := .venv +# Если окружение создано (`make venv`) — берём его интерпретатор, иначе системный python3 (в нём должен быть jsonschema) +PY := $(if $(wildcard $(VENV)/bin/python),$(CURDIR)/$(VENV)/bin/python,python3) +CHANGE ?= slice-0-skeleton + +.PHONY: venv validate-contracts validate-openspec check + +# Единственная зависимость скриптов проверки контракта — jsonschema +venv: + uv venv --python 3.11 --allow-existing $(VENV) + uv pip install --python $(VENV)/bin/python jsonschema + +# Примеры contracts/examples/ против трёх схем JSON Schema 2020-12 +validate-contracts: + $(PY) scripts/validate_contracts.py + +# Спека текущего изменения OpenSpec (нужен CLI openspec в PATH) +validate-openspec: + openspec validate $(CHANGE) --strict + +check: validate-contracts validate-openspec