ci: run native OpenSpec and local link validation in verify (WealthLedger/specs#2)
Specs security / security (push) Successful in 8s
Specs verify / verify (push) Successful in 15s

npm run validate: toolchain check, openspec schema validate, openspec validate --all --strict, lychee --offline --include-fragments for root *.md and openspec/specs. CI verify installs the pinned CLI and sha256-pinned lychee and runs it.

Closes #2
This commit was merged in pull request #73.
This commit is contained in:
2026-11-02 21:06:17 +03:00
parent 7f73de76ac
commit 1fd7e6ad97
4 changed files with 33 additions and 10 deletions
+12 -8
View File
@@ -18,14 +18,18 @@ OpenSpec применяется после явного решения Change Ow
Для native validation из этого репозитория:
```bash
npm run check:openspec
openspec schema validate wealth-ledger-sdd --verbose
openspec schema validate wealth-ledger-sdd-v2 --verbose
openspec status --change <change> --store wealth-ledger-specs
openspec validate <change> --type change --strict --store wealth-ledger-specs
openspec validate --specs --strict --store wealth-ledger-specs
npm run validate
```
Одна команда, её же вызывает CI `verify`: `check:openspec` (Node, версия CLI,
store), `openspec schema validate` (все schemas), `openspec validate --all --strict`
(specs и active changes) и [lychee](https://lychee.cli.rs/) 0.24.2 `--offline
--include-fragments` для относительных ссылок и anchors в корневых `*.md`
(включая `AI_INDEX`) и `openspec/specs`. Архивы и внешние URL не проверяются.
В чистой среде один раз: `openspec store register .`; lychee ставится
отдельно (например, `brew install lychee`). Для отдельного change:
`openspec status --change <change> --store wealth-ledger-specs`.
OpenSpec CLI ставится глобально и не закрепляется в `package.json`: его транзитивная
зависимость `braces` имеет advisory без исправления в 3.x. Ожидаемая версия хранится
в `openspec/.cli-version`; `npm run check:openspec` проверяет Node из `.nvmrc`, версию
@@ -36,8 +40,8 @@ Node задаётся собственной `.nvmrc`; после `nvm use --sil
`npm run verify` локально проверяет whitespace в незакоммиченном diff; CI `verify`
выполняет тот же `git diff --check` по коммитам PR (merge-base→head) или push
(before→after, для новой ветки — последний коммит). Это структурная проверка
whitespace, не semantic spec validation. OpenSpec validation остаётся отдельной
проверкой при изменениях требований. История релизов — [CHANGELOG](CHANGELOG.md).
whitespace. Ни whitespace, ни structural validation не заменяют semantic review.
История релизов — [CHANGELOG](CHANGELOG.md).
## Релизы