Files
portal/docs/superpowers/plans/2026-05-18-discovery-interview-integration.md
T
Дмитрий 802cda1b34 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

13 KiB
Raw Blame History

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 frontmattername: 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: Commitgit 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: Commitgit 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: Commitgit add docs/adr/ADR-009-discovery-interview-tooling.mddocs(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: Commitgit 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.mddocs(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: Commitgit add .claude/skills/process-analysis/SKILL.mddocs(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: Commitgit add docs/automation-graph.htmlfeat(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).