architecture
V0 архитектура с TOC bottleneck-анализом. Запускает architect (Fable 5.1). ≤10 компонентов, Mermaid диаграмма, invariants как constraints, top-3 риска. FAST +…
Запуск работы над одной фичей (WIP=1). Авто-запускает test-researcher + user-perspective-critic (dual critique), читает domain-rules.yaml, error-journal, выбирает light/heavy path по размеру. Триггеры — "/feature <id>", "берём feat-X", "поехали по feat-Y".
$ npx -y skills add andrewcigan/vibe-dev-plugin --skill feature --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/featureContext preview
The summary Claude sees to decide when to auto-load this skill.
Запуск работы над одной фичей (WIP=1). Авто-запускает test-researcher + user-perspective-critic (dual critique), читает domain-rules.yaml, error-journal, выбирает light/heavy path по размеру. Триггеры — "/feature <id>", "берём feat-X", "поехали по feat-Y".
name: feature description: Запуск работы над одной фичей (WIP=1). Авто-запускает test-researcher + user-perspective-critic (dual critique), читает domain-rules.yaml, error-journal, выбирает light/heavy path по размеру. Триггеры — "/feature <id>", "берём feat-X", "поехали по feat-Y". when_to_use: Когда пользователь начинает работу над конкретной фичей из feature_list.json. Это основной рабочий цикл FAST и FULL pipeline.
Запуск одной фичи. WIP=1 enforced — другую фичу взять нельзя пока эта не passing.
P="$(cat .harness/profile 2>/dev/null)"; HB=.harness/hooks-heartbeat
case "$P" in pending-*) echo "❌ профиль $P не подтверждён живым хуком — enforcement НЕ активен"; esac
[ -f "$HB" ] && [ $(( $(date +%s) - $(awk '{print $1;exit}' "$HB") )) -le 1800 ] \
|| echo "❌ heartbeat несвежий/отсутствует — хуки в этой сессии НЕ работают"
ls .harness/hook-crashes/ 2>/dev/null && echo "⚠️ сторожа падали — см. /doctor"Любая строка с ❌ → **STOP**: запусти `/doctor`, почини активацию, потом возвращайся к фиче. Работать над фичей при мёртвых сторожах = «харнес не поднялся» (главный провал аудита 06-10).
# В feature_list.json должна быть ровно одна active или ноль
python3 -c "
import json
d = json.load(open('feature_list.json'))
active = d.get('active')
if active is not None and active != '<this-feature-id>':
print(f'❌ WIP=1 violated: feat \"{active}\" already active. Закрой её через /verify до passing или /handoff с paused.')
exit(1)
"Если нарушено — STOP, скажи пользователю.
Если фича в `done` — спроси пользователя зачем заново. Если фича в `superseded`/`rejected` — STOP.
# Если feat.dependencies = ["feat-001", "feat-002"] — все должны быть в done
Если нет — предложить взять зависимости сначала.
Из feature_list.json смотрим `size_estimate` И `surface` (v6.2 F5 — урок П2 аудита: «зелёные тесты лгут» именно на интерфейсных фичах, которые по размеру проскакивали мимо критика):
**Поверхность ПЕРЕБИВАЕТ размер (монотонно — только ужесточение):**
при любом размере** + evidence «нажми и подтверди» (layer_4/5) до passing. UI-фича размера S не существует с точки зрения проверки: кнопку видит пользователь, не линтер.
([rules/verification-lanes.md](../../rules/verification-lanes.md)) до passing.
при .tsx в diff нельзя — файловая эвристика остаётся полом).
> ⚠️ **Порядок enforced хуком, а не дисциплиной.** `hooks/checks/state-transition.sh` БЛОКИРУЕТ > перевод M/L-фичи в `active`, пока нет `docs/test-strategy.md` с её id. Поэтому критика идёт > ПЕРВОЙ (фича остаётся в `up_next`), перевод в `active` — последним. Это test-first: стратегия > проверки рождается до реализации. Закрывает H7 (раньше критику просили «по-доброму» — и пропускали).
Запусти 2 subagent **параллельно** через Task tool (детерминированный вариант через Workflow — Шаг 3-bis):
**Agent 1: test-researcher (engineering critique)**
**Agent 2: user-perspective-critic (top-down user perspective)**
Третий subagent (synthesizer) читает оба выхода и пишет `docs/test-strategy.md`:
Если `affected_files` содержит `*/schema/*`, `*/migrations/*`, `prisma/`, `drizzle/`, `supabase/migrations/` ИЛИ `category=data` — **ОБЯЗАТЕЛЬНО** запусти агента `data-model-reviewer` (Opus, fresh context) ПЕРЕД реализацией. Он пишет `docs/data-model-review.md` (недостающие/лишние сущности, упущенные поля, спорные решения, UX-фичи которые врут о связях). Утверждение пользователя по вердикту — gate для старта. Это глобальное правило `~/CLAUDE.md` (модель данных застывает — переделка дороже ревью).
Для **M/L-фичи** (и любой с `detail_required: true`) разложи детальный план в `docs/changes/<feat-id>/` по образцу OpenSpec (шаблон — `templates/change-proposal.md`):
🌐 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 /…