Files
portal/docs/superpowers/plans/2026-05-18-discovery-interview-integration.md
T
Дмитрий 3b52d8d7ac docs(discovery): brainstorming spec + integration plan
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 05:28:58 +03:00

157 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).