Andrey Epifancev 069c5643b1 feat(plugins): мод /feature — панель фичи, перенос в обвязку (#7)
Мод Claude Code жил во временной папке сессии obsidian-voice-note и в
новых сессиях не загружался. Перенесён как есть в plugins/feature/,
плагин переименован plan-progress → feature (команда /feature, запасные
/progress и /feature-pane). Поведение не менялось.

- README мода: что показывает, контракт с форматами обвязки (ledger,
  ## Findings, Decisions в design.md, планы, .bounded), разработка.
- Сгенерированные движком типы (.claude-plugin/types/) — в .gitignore.
- Строки о моде в CLAUDE.md и README обвязки; install.sh его пока не ставит.

Проверено: claude plugin test plugins/feature — 22/22, claude plugin
validate — без ошибок, tsc — чисто, bash tests/run.sh — 157/157.

Refs #7

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:37:42 +04:00

4.6 KiB
Raw Blame History

feature — панель фичи для Claude Code

Мод Claude Code: команда /feature [ветка | issue | план] открывает панель по веткам в работе — где фича и чей ход, что сделано и что требует внимания человека. Только чтение: мод ничего не пишет в репозитории.

     ‹ feat/10-obsidian-wrapper  6/7 ›
           ○ ● ○ ○ ○ ○ ○
  #10 · openspec: obsidian-wrapper · по SDD-ledger
  Этап: ручная проверка (Task 7)  ход за тобой

 1: ○ Документы 5   2: ● Задачи 6/7   3: ○ Рулинги 10   4: ○ Отложено 14

Что показывает

  • Этап и чей ход — по тому, какие артефакты есть: brainstorming → ревью спеки → ревью плана → исполнение → финальное ревью → ручная проверка → ветка на сервере (PR).
  • 1 Документы — proposal, design, спеки capability, план, SDD-ledger. Enter открывает файл в glow -t в соседней панели iTerm (Terminal.app — новое окно, иначе open; без glow — less).
  • 2 Задачи — задачи плана со статусами по ledger (SDD шаги плана не отмечает), шаги раскрываются по Enter.
  • 3 Рулинги — решения из ## Decisions made without discussion, кроме принятых человеком, с маркером R-n; Enter раскрывает обоснование и цену ошибки.
  • 4 Отложено — находки deferred и находки без статуса (!); Enter раскрывает пояснение к статусу.

Вкладка по умолчанию — по этапу: до старта исполнения документы, при исполнении задачи, на ревью PR рулинги. Клавиши: 1–4 вкладки, 9/0 ветки, e/h раскрыть все и скрыть готовые задачи, r обновить. Цифры работают в любой раскладке.

Что читает (контракт с обвязкой)

Источник Что берётся
git worktree list в корне сессии ветки в работе; ветка на main без работы не показывается
.superpowers/sdd/<plan>/progress.md, plan-path статусы задач (Task N: complete, fix round), R-n (design #m), Task N is manual, строки Final…
таблица ## Findings в ledger (| Маркер | Суть | Статус |) отложенное; без таблицы — предварительный подсчёт по строкам ledger
docs/superpowers/plans/*.md задачи (### Task N: …) и шаги (- [ ]), Issue: #N
openspec/changes/<id>/ proposal, design, specs/*/spec.md; ## Decisions made without discussion в design.md
.bounded, feat/<issue>-…, @{u} bounded-задача, номер issue, ветка на сервере

Меняется формат одного из этих источников — меняется и мод, в том же PR.

Разработка

  • Тесты: claude plugin test plugins/feature; проверка манифеста и вызовов: claude plugin validate plugins/feature.
  • Типы: движок пишет их в .claude-plugin/types/ при загрузке мода (в git не попадают); после этого npx -p typescript tsc -p plugins/feature --noEmit.
  • Запуск из worktree с перезагрузкой при правках: claude --plugin-dir <worktree>/plugins/feature.
  • Логика разбора — чистые функции в hooks/parse.ts (тестируются напрямую), отрисовка и ввод-вывод — hooks/register.tsx.

Ограничения

  • Корень сессии должен быть git-репозиторием: workspace из нескольких репозиториев (.wt/<фича>/<репо>) пока не поддерживается.
  • Фон панели в полноэкранном режиме рисует Claude Code ключом темы composerSidebarBackground; поменять его можно только своей темой (~/.claude/themes/<имя>.json).