architecture
V0 архитектура с TOC bottleneck-анализом. Запускает architect (Fable 5.1). ≤10 компонентов, Mermaid диаграмма, invariants как constraints, top-3 риска. FAST +…
Four-layer verification фичи. syntax → runtime → e2e → user-reported. Только passing all 4 = feature в done. Триггеры — "/verify", "проверь работает", "запусти тесты".
$ npx -y skills add andrewcigan/vibe-dev-plugin --skill verify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/verifyContext preview
The summary Claude sees to decide when to auto-load this skill.
Four-layer verification фичи. syntax → runtime → e2e → user-reported. Только passing all 4 = feature в done. Триггеры — "/verify", "проверь работает", "запусти тесты".
name: verify description: Four-layer verification фичи. syntax → runtime → e2e → user-reported. Только passing all 4 = feature в done. Триггеры — "/verify", "проверь работает", "запусти тесты". when_to_use: По завершению implementation фичи. Это единственный путь перевести feature_list.json state из active в passing.
Four-layer verification (4-уровневая проверка) активной фичи.
P="$(cat .harness/profile 2>/dev/null)"; HB=.harness/hooks-heartbeat
case "$P" in pending-*) echo "❌ профиль $P не подтверждён живым хуком"; esac
[ -f "$HB" ] && [ $(( $(date +%s) - $(awk '{print $1;exit}' "$HB") )) -le 1800 ] \
|| echo "❌ heartbeat несвежий — хуки в этой сессии НЕ работают"❌ → СТОП: verify при мёртвых сторожах легко станет «зелёным враньём» (passing-гейт не проверит evidence). Сначала `/doctor`.
Минимальный gate, фундамент.
# JavaScript/TypeScript npm run check # tsc --noEmit npm run lint # eslint # Python ruff check . mypy src/ # Common git diff --check # whitespace
Если хоть что-то красное — STOP, чинить.
# из feature_list.json[active].verification.layer_2_runtime npm test -- --filter=<feature> # или pytest tests/test_<feature>.py -v
Все тесты зелёные = pass.
Закрывает lecture-10 (E2E меняет результат).
# Из feature_list.json[active].verification.layer_3_e2e ./e2e/test-<feature>.sh # или playwright test e2e/<feature>.spec.ts # или chrome-devtools-mcp scenarios
Кейс из реального проекта: unit-тесты прошли 3/3, e2e нашёл 5 дефектов на границах. Этот слой не пропускать.
Тип доказательства обязан соответствовать `surface` фичи — полная таблица: [rules/verification-lanes.md](../../rules/verification-lanes.md). Кратко: ui → браузер + layer_4/5; api → curl + статус; cli → команда + exit; job → лог реального прогона; service → behavior-probe (НЕ pgrep). Hook не пустит passing с пустым evidence у этих поверхностей.
**«Не могу прогнать живьём» → Live-Target Probe, 4 яруса** (см. ту же таблицу): найти живой сервер → поднять самому → preview-деплой → только после задокументированного провала всех трёх — честный `UNIT_VERIFIED` (не passing). Skip молча — не вариант.
Закрывает CRITICAL инсайт: «если verification passing, но пользователь говорит не работает — у нас плохие verification commands».
**Этот слой = реальное использование пользователем.**
Если layer 1-3 зелёные:
Перед промоушеном в passing — повторно прогнать negative-test:
# Специально внести ошибку → verification должна упасть # Если verification всё равно зелёная — verification сломана, не код
Это единоразовая проверка на фичу. Закрывает реальный случай (ожидаемое значение «утекло» в контекст теста) и общий «verification not verified» gap.
Layer 1-4 + negative прогнал сам имплементатор — тот же агент, что писал код. Финальный слой — **независимый** свежий взгляд: запусти агента `stage-verifier` (fresh context, `disallowedTools=Write/Edit` — физически не может подгонять код) в **adversarial-режиме**.
Обязателен на M/L (surface=logic/ui). На S — по усмотрению. Гарантия независимости — `disallowedTools` во фронтматтере (self-check раздел 4 флагует verifier с Write/Edit).
Все 4 слоя + negative passed → feature_list.json:
"state": "passing",
"evidence": {
"layer_1_at": "ISO timestamp",
"layer_2_at": "...",
"layer_3_at": "...",
"layer_4_at": "...",
"negative_verified_at": "...",
"commit_hash": "abc123"
}Auto-commit:
git add -A git commit -m "feat(<feature-id>): <feature-name> Implements: <feature-id> Verified-By: <verification_command_hash> State-Transition: active→passing"
d['features'][f]['verify_attempts'] = d['features'][f].get('verify_attempts', 0) + 1При **3 неуспешных попытках** на layer 2+3 (не syntax — syntax чинить сразу) → **auto-trigger /stuck**.
При любом fail записываем в error-journal.md:
## err-NNN | <date> | <feature_id> **Триггер**: verification fail (layer N) **User reported**: no (auto-detected) **5 Why**: 1) ... 5) корневая причина ... **Класс ошибки**: <verification_gap / scope_leak / state_drift / ...>
🌐 English: this file · Русский: README.ru.md A harness-first plugin that turns a business idea into a shipped product — for founders who build with Codex and Claude Code.
Repo: andrewcigan/vibe-dev-plugin
V0 архитектура с TOC bottleneck-анализом. Запускает architect (Fable 5.1). ≤10 компонентов, Mermaid диаграмма, invariants как constraints, top-3 риска. FAST +…
7-tuple оценка здоровья проекта (Instructions / State / Verification / Scope / Lifecycle / Learning / Cost-Safety) через ВНЕШНЕГО evaluator-agent (не…
Управляемый чекпоинт состояния в файлы посреди работы — вместо авто-сжатия («рулетки»). Перезаписывает Current State, синхронизирует статусы, ротирует…
Выбор стека под bottleneck архитектуры. Запускает stack-advisor (Fable 5.1). Использует 2026 tech-updates (opendataloader-pdf, VoxCPM2, chrome-devtools-mcp).…
FULL этап 5 — автономный critique long-list идей. Запускает idea-critic (Sonnet), который отсеивает hard-filters и оставляет Top-3-5 по score. Триггеры —…
Бриф для Claude Design (claude.ai/design) по формуле C.R.O.P. Плагин не рисует UI сам — готовит handoff. Запускает design-handoff-builder (Opus). FAST этап 3 /…