3b52d8d7ac
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
157 lines
13 KiB
Markdown
157 lines
13 KiB
Markdown
# Discovery Interview Skill — Integration Plan
|
||
|
||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||
|
||
**Goal:** Интегрировать проектный vendored-скил `discovery-interview` (режимы FEATURE + SYSTEM) в «мозг» Лидерры с полной «Тяжёлой» церемонией.
|
||
|
||
**Architecture:** Vendored-скил в `.claude/skills/`, триггерится по `description`. Два режима разведены с C10-скилом `process-analysis` по слою-источнику (app-код / голова заказчика / мета-слой). Полная нормативная регистрация: Tooling #55, PSR_v1 R10.1, Pravila §13.2, CLAUDE.md, ADR-009, узел automation-graph.
|
||
|
||
**Tech Stack:** Markdown skill-файлы, `skill-creator` (авторинг + eval триггера), проектная нормативка, vis.js automation-graph.
|
||
|
||
**Спека:** `docs/superpowers/specs/2026-05-18-discovery-interview-design.md`. Все границы DI1–DI6 — §5 спеки.
|
||
|
||
---
|
||
|
||
## File Structure
|
||
|
||
**Create:**
|
||
|
||
- `.claude/skills/discovery-interview/SKILL.md` — скил, 2 режима, триггер-описание.
|
||
- `.claude/skills/discovery-interview/references/jtbd-questions.md` — банк JTBD-вопросов.
|
||
- `docs/discovery/README.md` — назначение каталога.
|
||
- `docs/discovery/templates/discovery-brief.md` — шаблон FEATURE-артефакта.
|
||
- `docs/discovery/templates/system-snapshot.md` — шаблон SYSTEM-артефакта.
|
||
- `docs/adr/ADR-009-discovery-interview-tooling.md` — ADR (формат Nygard, 7 секций).
|
||
|
||
**Modify:**
|
||
|
||
- `docs/Tooling_v8_3.md` — §4.30 (#55) + §0 счётчики + шапка v2.13.
|
||
- `docs/Plugin_stack_rules_v1.md` — R10.1 строка + версия v3.12.
|
||
- `docs/Pravila_raboty_Claude_v1_1.md` — §13.2 абзац + версия v1.26.
|
||
- `CLAUDE.md` — §3 title-counter, §1 row 2b, §3.3 строка, §6 абзац, §9 запись, §0 cross-refs, шапка v2.13.
|
||
- `docs/CHANGELOG_claude_md.md` — запись v2.13.
|
||
- `.claude/skills/process-analysis/SKILL.md` — +1 строка взаимного SKIP в «Границы».
|
||
- `docs/automation-graph.html` — узел `discovery_interview` + рёбра.
|
||
- `cspell-words.txt` — новые термины при необходимости.
|
||
|
||
---
|
||
|
||
## Task 1 — Skill `discovery-interview` (SKILL.md + references) + eval
|
||
|
||
**Files:**
|
||
|
||
- Create: `.claude/skills/discovery-interview/SKILL.md`
|
||
- Create: `.claude/skills/discovery-interview/references/jtbd-questions.md`
|
||
|
||
- [ ] **Step 1: SKILL.md frontmatter** — `name: discovery-interview` + `description` (зафиксировано, изменять только по результату eval):
|
||
|
||
```
|
||
Структурированное интервью-discovery ПЕРЕД проектированием. Два режима. FEATURE — заказчик описывает проблему/боль/цель без готового решения («менеджеры жалуются на…», «сделки теряются», «хочу чтобы…»): JTBD-интервью вскрывает проблему до решения, отдаёт discovery-brief в brainstorming. SYSTEM — запрос ориентации по проекту («сориентируй», «где мы сейчас», «что в тулчейне/карте», «catch-up по…»): синтез по мета-слою (карта, CLAUDE.md, MEMORY, Открытые_вопросы, Tooling, git log). SKIP — чёткий директив на реализацию («интегрируй X», «закрой находку Y», «поправь Z»): это не discovery. SKIP — анализ бизнес-процесса из кода («как устроен процесс X», «process discovery», «где узкое место»): это skill process-analysis. Триггеры — «discovery interview», «проведи discovery», «сориентируй по проекту», расплывчатый проблемный запрос.
|
||
```
|
||
|
||
- [ ] **Step 2: SKILL.md тело** — секции: «Несущий принцип — 3 слоя-источника» (таблица из §2.1 спеки); «Режим FEATURE» (триггер/SKIP/JTBD-процесс/discovery-brief/хэндофф в brainstorming); «Режим SYSTEM» (триггер/SKIP/scope-интервью/синтез/запрет читать `app/`-код/system-snapshot); «JTBD-дисциплина» (прошлое поведение, один вопрос, 5×почему, не наводящие); «Границы» (DI1–DI4 + взаимный SKIP с `process-analysis`).
|
||
|
||
- [ ] **Step 3: references/jtbd-questions.md** — банк вопросов: проблема, текущий обходной путь, цена боли (время/деньги/частота), сигнал успеха, ограничения; формулировки в прошедшем времени.
|
||
|
||
- [ ] **Step 4 (eval — тест триггера):** через `skill-creator` собрать кейс-сет «должен сработать / не должен» (вкл. спорные: «сделай discovery» → должен; «как устроен процесс сделок» → НЕ должен, process-analysis; «интегрируй openapi-mcp» → НЕ должен, директив; «сориентируй по карте» → должен SYSTEM). Прогнать eval, замерить точность.
|
||
|
||
- [ ] **Step 5:** при промахах — итерировать `description` (Step 1) и повторить eval, пока точность чистая. Если коллизия с `process-analysis` не уходит — fallback: переименовать скил (имя без «discovery»), зафиксировать в ADR-009.
|
||
|
||
- [ ] **Step 6: Commit** — `git add .claude/skills/discovery-interview/` → `feat(discovery): add discovery-interview skill — FEATURE + SYSTEM modes`.
|
||
|
||
---
|
||
|
||
## Task 2 — `docs/discovery/` каталог + шаблоны
|
||
|
||
**Files:**
|
||
|
||
- Create: `docs/discovery/README.md`
|
||
- Create: `docs/discovery/templates/discovery-brief.md`
|
||
- Create: `docs/discovery/templates/system-snapshot.md`
|
||
|
||
- [ ] **Step 1: README.md** — назначение каталога: home SYSTEM-snapshot'ов (`YYYY-MM-DD-*.md`); FEATURE-brief здесь не хранится — он вливается секцией в спеку brainstorming. Ссылка на скил и спеку.
|
||
|
||
- [ ] **Step 2: templates/discovery-brief.md** — разделы: Проблема · JTBD · Текущий обходной путь · Цена боли · Сигнал успеха · Ограничения.
|
||
|
||
- [ ] **Step 3: templates/system-snapshot.md** — разделы: Запрос ориентации (scope) · Состояние · Что открыто · Источники (пины) · Следующий шаг.
|
||
|
||
- [ ] **Step 4: Commit** — `git add docs/discovery/` → `feat(discovery): add docs/discovery — README + brief/snapshot templates`.
|
||
|
||
---
|
||
|
||
## Task 3 — ADR-009
|
||
|
||
**Files:**
|
||
|
||
- Create: `docs/adr/ADR-009-discovery-interview-tooling.md`
|
||
|
||
- [ ] **Step 1:** Написать ADR в формате существующих (см. `ADR-008-business-process-tooling.md` как образец): Status `Accepted` / Date 2026-05-18 / Deciders Дмитрий; Context (зачем discovery-interview, коллизия с C10 `process-analysis`); Decision (2 режима, 3-слойный разрез, `discovery-tooling` категория, §12.2 — не трогается, режим «пользователи» defer); Consequences; Enforcement (None — advisory, проверяется eval'ом и code review).
|
||
|
||
- [ ] **Step 2: Commit** — `git add docs/adr/ADR-009-discovery-interview-tooling.md` → `docs(discovery): ADR-009 — discovery-interview tooling decision`.
|
||
|
||
---
|
||
|
||
## Task 4 — Нормативная регистрация (Tooling + PSR_v1 + Pravila + CLAUDE.md)
|
||
|
||
Один логический change → один коммит (паттерн C10 `1a49d7b`).
|
||
|
||
**Files:**
|
||
|
||
- Modify: `docs/Tooling_v8_3.md` — новый `### 4.30. discovery-interview` (#55, off-phase, discovery-tooling) по образцу §4.28; §0 счётчик 54→55 (74→75), off-phase row +24→+25, итоговая строка; шапка → v2.13 + запись; футер-строка Прил. Н.
|
||
- Modify: `docs/Plugin_stack_rules_v1.md` — R10.1 (блок проектных скилов) +строка `discovery-interview`; версия → v3.12 + запись.
|
||
- Modify: `docs/Pravila_raboty_Claude_v1_1.md` — §13.2 +абзац «Off-phase discovery-tooling» (как проектный скил, не §12.2); версия → v1.26 + запись.
|
||
- Modify: `CLAUDE.md` — §3 title-counter 54→55; §1 priority-chain row 2b counter; §3.3 +строка #55 + footer-счётчик; §6 +абзац discovery-interview; §9 +запись v2.13; §0 cross-refs Tooling v2.13 / PSR_v1 v3.12 / Pravila v1.26; шапка → v2.13. Прямой Edit — worktree-constraint эксцепшн §5 п.10.
|
||
- Modify: `docs/CHANGELOG_claude_md.md` — запись v2.13.
|
||
|
||
- [ ] **Step 1:** re-Read `docs/Pravila_raboty_Claude_v1_1.md` §13.2 (актуальная версия в worktree — v1.25 после C10) перед правкой.
|
||
- [ ] **Step 2:** Tooling §4.30 + §0 счётчики + шапка.
|
||
- [ ] **Step 3:** PSR_v1 R10.1 + версия.
|
||
- [ ] **Step 4:** Pravila §13.2 + версия.
|
||
- [ ] **Step 5:** CLAUDE.md 6 точек + шапка; CHANGELOG запись.
|
||
- [ ] **Step 6: Verify** — счётчики сходятся во всех 4 файлах (55 формализованных / 75 total / off-phase +25 / 12 off-phase подкатегорий); cross-refs версий взаимно согласованы.
|
||
- [ ] **Step 7: Commit** — `git add docs/Tooling_v8_3.md docs/Plugin_stack_rules_v1.md docs/Pravila_raboty_Claude_v1_1.md CLAUDE.md docs/CHANGELOG_claude_md.md` → `docs(discovery): register discovery-tooling — Tooling/PSR/Pravila/CLAUDE.md`.
|
||
|
||
---
|
||
|
||
## Task 5 — Граница в `process-analysis` (взаимный SKIP)
|
||
|
||
**Files:**
|
||
|
||
- Modify: `.claude/skills/process-analysis/SKILL.md` — секция «Границы», +1 строка.
|
||
|
||
- [ ] **Step 1:** В «Границы» добавить строку: `**Интервью заказчика про будущую фичу / ориентация по проекту** — скил discovery-interview (вскрытие проблемы до решения; этот скил — про вскрытие as-is процесса из кода).`
|
||
- [ ] **Step 2: Commit** — `git add .claude/skills/process-analysis/SKILL.md` → `docs(discovery): process-analysis — reciprocal SKIP boundary to discovery-interview`.
|
||
|
||
---
|
||
|
||
## Task 6 — Узел карты `automation-graph.html`
|
||
|
||
**Files:**
|
||
|
||
- Modify: `docs/automation-graph.html`
|
||
|
||
- [ ] **Step 1:** Добавить узел `discovery_interview` в раздел off-phase / discovery-tooling (по образцу узлов C10 из коммита `afcff10`); Паспорт узла (дата внедрения 18.05.2026, использований 0).
|
||
- [ ] **Step 2:** Рёбра: `discovery_interview → brainstorming` (хэндофф), `discovery_interview → process_analysis` (ребро-граница), рёбра к governing-правилам (CLAUDE.md / Pravila §13.2).
|
||
- [ ] **Step 3: Smoke** — открыть карту через Playwright MCP, проверить 0 JS-ошибок, узел отрисован, нет перекрытий; обновить метрики узлов/рёбер в легенде.
|
||
- [ ] **Step 4: Commit** — `git add docs/automation-graph.html` → `feat(map): discovery_interview node — discovery-tooling section`.
|
||
|
||
---
|
||
|
||
## Task 7 — Регрессия, push, memory
|
||
|
||
- [ ] **Step 1:** `/regression quick` (lint/format/type-check) — трогаем markdown/skill/html, код не меняем. Ожидание: GREEN. Failure'ы — выписать с file:line.
|
||
- [ ] **Step 2:** invoke `superpowers:verification-before-completion` перед claim «готово».
|
||
- [ ] **Step 3:** pre-push — `gitleaks` full-history + `lychee` вручную в worktree (квирк 97 — lefthook не в PATH).
|
||
- [ ] **Step 4:** Push — `git push origin worktree-discovery-interview:main`.
|
||
- [ ] **Step 5: Memory** — topic-файл `project_discovery_interview.md` + строка в `MEMORY.md` (≤200 символов, следить за лимитом 24.4 КБ).
|
||
|
||
---
|
||
|
||
## Порядок и зависимости
|
||
|
||
Task 1 → 2 → 3 → 4 → 5 → 6 → 7. Task 1 — критический путь (eval-гейт). Tasks 4–6 механические — допустимы субагенты (Haiku/Sonnet, raw output), контроллер верифицирует счётчики и git-базу после каждого. Task 3 (ADR) зависит от результата eval Task 1 (фиксирует rename-fallback, если он сработал).
|
||
|
||
## Не входит
|
||
|
||
Режим «интервью конечных пользователей» — defer post-Б-1. Реальный прогон интервью. Переименование скила — только fallback по eval (Task 1 Step 5).
|