From 5fcb30037325b9ed3198c8736f8d24b91f40bd58 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sun, 18 Oct 2026 23:01:38 +0400 Subject: [PATCH] =?UTF-8?q?make=20check:=20validate-openspec=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D1=8F=D0=B5=D1=82=20=D0=B2=D1=81?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BF=D0=B5=D0=BA=D0=B8=20=D0=B8=20change'?= =?UTF-8?q?=D0=B8=20(#126)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CHANGE ?= slice-0-skeleton указывал на давно заархивированный change, make check был красным (O-1 плана 0, #116). По умолчанию теперь openspec validate --all --strict; CHANGE= — один change. Co-Authored-By: Claude Opus 5.5 --- Makefile | 7 ++++--- dev/checks.md | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 8e9c3e4..368f628 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ VENV := .venv # Если окружение создано (`make venv`) — берём его интерпретатор, иначе системный python3 (в нём должны быть jsonschema и PyYAML) PY := $(if $(wildcard $(VENV)/bin/python),$(CURDIR)/$(VENV)/bin/python,python3) -CHANGE ?= slice-0-skeleton +# Пусто — проверяются все change'и и спеки; `make validate-openspec CHANGE=` — один change +CHANGE ?= # Текущая версия модели данных — по ней рисуются диаграммы (make diagrams) DBML ?= model/data-model-v5.19.dbml @@ -18,9 +19,9 @@ venv: validate-contracts: $(PY) scripts/validate_contracts.py -# Спека текущего изменения OpenSpec (нужен CLI openspec в PATH) +# Спеки и change'и OpenSpec (нужен CLI openspec в PATH) validate-openspec: - openspec validate $(CHANGE) --strict + openspec validate $(if $(CHANGE),$(CHANGE),--all) --strict # Снимок для контура вырезает артефакты агента на любой глубине (dev/contour-transfer-guide.md §3); нужны git и bash test-snapshot: diff --git a/dev/checks.md b/dev/checks.md index 3fc41dd..9e5e03a 100644 --- a/dev/checks.md +++ b/dev/checks.md @@ -179,7 +179,7 @@ PR убедитесь, что `docs` и `fixtures` доступны (пропу |---|---| | `make venv` | `.venv` (Python 3.11, `uv`) с `jsonschema` и `PyYAML` — зависимостями скриптов (после обновления репозитория — перезапустить) | | `make validate-contracts` | `python scripts/validate_contracts.py`: примеры `contracts/examples/` против текущих схем JSON Schema 2020-12, примеры `contracts/examples/v1/` — против схем прежнего MAJOR `*.v1.schema.json` (окно перехода на контракт 2.0), форма упорядоченных перечней кодов `contracts/statement-code-orders.yaml` (коды — 4 цифры формы; в варианте `full` код стоит 1 + (вхождений в `repeats`) раз, в `simplified` — не чаще); код 1 при любой ошибке | -| `make validate-openspec` | `openspec validate slice-0-skeleton --strict` (другое изменение: `make validate-openspec CHANGE=`) | +| `make validate-openspec` | `openspec validate --all --strict` — все спеки и незаархивированные change'и (один change: `make validate-openspec CHANGE=`) | | `make check` | все проверки выше и `test-snapshot`, `test-sync-web`, `test-sync-statements` | | `make test-sync-statements` | сценарии `sync-statements.sh` на синтетических репозиториях: коды `--check`, `--in-place`, `--dry-run`, отказ при прямой правке | | `make sync-statements` | копия пакета `arm_statements` в хост одной командой (worktree, issue, PR); `SYNC_ARGS="--host arm-core [--check\|--dry-run]"` |