[P0] 04.specs. Добавить единый local verify и schema/spec validation в CI #2
Notifications
Due Date
No due date set.
Depends on
#4 [P1] 14.specs. Сделать toolchain Specs явным
WealthLedger/specs
Reference: WealthLedger/specs#2
Reference in New Issue
Block a user
Проблема
У specs нет repo-local verify и .gitea/workflows. README содержит отдельные команды native validation. Behavioral authority не имеет автоматической проверки собственных спецификаций и навигации.
Что сделать
Предоставить одну локальную проверку и вызвать её из CI. Runtime/toolchain принадлежит specs #4; ожидаемую версию OpenSpec получать из openspec/.cli-version, не из глобального latest.
Критерии готовности
Основание и связи
README, CLI pin, сверка 14.09.2026. Required checks на сервере — отдельная specs #3. Локальный runner workspace — main #4.
[P0] 04.specs. Добавить native schema/spec validation в CIto [P0] 04.specs. Добавить единый local verify и schema/spec validation в CI[Process] Audit supplement — meaningful committed CI input
Существующие user criteria/schema-navigation requirements и assignee сохраняются; текущий audit P2, historical title P0 не переписан. Не создаётся отдельный дубль CI задачи.
Problem
Нынешний verify=git diff --check в clean checkout читает пустой worktree/index diff, не PR/push commits. Setup-node/npm ci не добавляют content guarantee. Native/store expectations первоначальной задачи отдельно от whitespace proof.
Expected Behavior
Required verify проверяет actual committed range; native validation scope/toolchain явно определён в existing local guidance без custom validator.
Evidence
Audit date
2026-10-11; 11. IDs VERIFY-001, CA-H08. Revisionfcdc805f6c1b3be6a20a7e858e3e80cbd83a9121; Confidence High; Verification status static.Affected: verify.yml:13–22; package.json:8–14; README:18–35,52–55,68–70.
Scope
In scope
Meaningful Git range, history availability/zero SHA handling; existing native toolchain requirements routed to #4.
Out of scope
Удаление required context без replacement, новый script/validator framework, standard lifecycle edits, application gates.
Proposed Approach
PR merge-base→head, push before→after с определённым initial/zero-SHA fallback. Git-only verify job может убрать Node install после input proof; commits/security remain. Initial native requirements закрывать штатными commands, не объявлять whitespace semantic spec validation.
Acceptance Criteria
Verification
Disposable Git range positive/negative и native checks при actual requirements/schema change. No full application verify/build/tests.
Dependencies
#4 — только для исходных native toolchain criteria; Git-range fix независимо и не должен ждать CLI installation.
Traceability
Campaign WealthLedger/main#23 . Findings VERIFY-001, CA-H08. WealthLedger/specs; T32.
Progress (VERIFY-001 supplement) — PR #72.
verifyтеперь проверяет committed range: PR merge-base→head, push before→after, zero/absent before → последний коммит. Node/npm ci убраны из git-only job.ee1b188) → run 1815verifyFAIL (ci-probe.md:1: trailing whitespace); удаление (52c6e3d) → runs 1816–1818 PASS.Остаётся открытым в #2: OpenSpec validation в CI (нужен CLI в runner) и проверка AI_INDEX targets/anchors.
PR #72 squash-merged в develop как
7f73de7. Push run 1820verifyPASS, range97f3585..7f73de7— push-ветка (before→after) подтверждена на CI. Zero-SHA fallback подтверждён только локально (на CI сработает при первом push новой защищённой ветки).Supplement VERIFY-001 выполнен. Issue остаётся открытой: OpenSpec validation в CI и проверка AI_INDEX targets/anchors.
Закрыто PR #73 (
1fd7e6a, squash в develop) поверх #72 (7f73de7).npm run validate:check:openspec→openspec schema validate→openspec validate --all --strict --store wealth-ledger-specs→lychee 0.24.2 --offline --include-fragments(корневые*.mdвкл. AI_INDEX,openspec/specs; архивы и внешние URL — вне scope).verify: whitespace по committed range, затем pinned CLI из.cli-version+store register .+ sha256-pinned lychee →npm run validate.Unknown store.portfolio-viewX/spec.md File not found); revert run 1829 PASS. Push develop runs 1830/1831 PASS.Ограничение: lychee проверяет только локальные ссылки и anchors; semantic review по-прежнему ручной.