backlog(atoms/pipeline/outputs)と skill ヘルス(usage/duration/unused)を統合分析し 1 レポートで提示する。kawai 氏型 analytics ループの起点。「次に何やる?」「atom 整理」「放置案件」「stale」「振り返り」「retro」「skill 使用統計」「unused skill」「atom-suggest」で発動。
feature-flow
web アプリの機能を構造化して書き下すワークフロー。新規/既存の 2 モード、5 フェーズで構造化(先行事例調査は並列3エージェント、Reader Test 付き)。「機能を考えたい」「機能定義したい」「web アプリ作りたい」「機能から設計したい」「新しい機能」で発動。
※ 曖昧な状態の掘り下げは deep-interview、要件統合は discovery-council、設計は design を使う。
含まれるファイル(2)
- SKILL.md13.6 KB
- reference.md8.1 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Feature Flow - web アプリ機能定義ワークフロー
web アプリの機能を「型に沿って書き下す」ためのワークフロー。 Sisyphus フローの 入口(discovery-council や design の前段)。
入力
$ARGUMENTS — 機能の概要 + オプションフラグ
--new: 強制的に Mode 1(最初から)で実行--existing: 強制的に Mode 2(途中から)で実行--light: 並列エージェント調査と Reader Test を省略(軽量モード)
基本姿勢(Never agree easily)
ユーザーが「○○機能を作りたい」と言っても、すぐに乗らない。
- 本当にその機能が必要か?
- 既に世に存在するもので解決できないか?
- 既存の自プロジェクトで解決できないか?
- 「作らない」「買う」「OSS を使う」も正解の選択肢として常に残す
1 つの機能を作るより、作らない判断ができる方が価値が高い場面がある。
対話前提スキル: 機能定義は対話的な確認が必須。AskUserQuestion が使えない環境では「対話モードで /feature-flow を実行してください」と案内して終了する。
Phase 0: モード判定
カレントディレクトリに既存 web アプリのコードがあるかで Mode 1 / Mode 2 を判定する。
# 自動判定: 以下のどれかがあれば Mode 2 候補
ls package.json pyproject.toml Cargo.toml go.mod composer.json Gemfile 2>/dev/null
ls -d src app pages components 2>/dev/null
判定ロジック:
--newフラグ → Mode 1 確定--existingフラグ → Mode 2 確定- 上記コマンドで何かヒット → Mode 2 をサジェスト
- 何もなければ Mode 1 をサジェスト
最終決定は AskUserQuestion でユーザーに確認:
AskUserQuestion:
question: "どちらのモードで進めますか?"
options:
- "Mode 1: 最初から(新規 web アプリ)"
- "Mode 2: 途中から(既存アプリに機能追加)"
Phase A: ユーザーストーリー(共通)
3 問。1 問ずつ AskUserQuestion で確認する。
A1. WHO — 誰が使う?
AskUserQuestion:
question: "この機能を使うのは主に誰ですか?役割・習熟度・人数感を教えてください。"
options:
- "個人ユーザー(不特定多数、習熟度バラバラ)"
- "社内スタッフ(特定の役割、ある程度習熟)"
- "管理者・運用担当(少人数、深い習熟)"
- "外部 API クライアント(人ではなくプログラム)"
- "自由記述"
A2. WHEN — どんな場面で?
AskUserQuestion:
question: "どんな場面・トリガー・頻度で使われますか?"
options:
- "毎日のルーチン(朝・夕など定時)"
- "特定イベント発生時(注文、申請、エラーなど)"
- "気になった時にいつでも(不定期)"
- "バッチ処理(自動・定期)"
- "自由記述"
A3. GOAL — 何を達成したい?
ここは選択式にしない。手段ではなく結果を聞く。
AskUserQuestion:
question: |
この機能で「結果として何が達成できれば成功」ですか?
手段(○○画面を作る等)ではなく、ユーザーが得る結果を答えてください。
options:
- "自由記述(必須)"
A の挑発(Never agree easily)
3 問終わったら、必ず一度問い直す:
AskUserQuestion:
question: |
確認したいことがあります。
今のユーザーストーリーを踏まえると、この機能を作らずに以下で代用できる可能性はありませんか?
- 既存のサービス・ツール
- スプレッドシートや手動運用
- 自分が既に持っているアプリの拡張
本当に新しい機能を作る必要がありますか?
options:
- "作る必要がある(理由を一言で)"
- "考え直したい(一旦中断)"
- "Phase B (先行事例調査) の結果を見てから判断したい"
「考え直したい」を選択した場合はワークフローを中断、メモを残して終了。
Phase B: 先行事例調査(モード分岐 + 並列3エージェント)
--light フラグ時はこのフェーズを省略可能(その場合はユーザーに事前確認)。
Mode 1: 最初から(外向き並列3エージェント)
リファレンス:
reference.mdの "Mode 1 Agent Prompts" を Read して使用
3 エージェント同時 spawn:
- market-researcher: 商用 SaaS / 既製アプリの調査
- oss-scout: OSS / GitHub での類似実装
- pattern-observer: UI/UX パターンの観察
TeamCreate:
team_name: "feature-flow-prior-art"
description: "Phase B: 先行事例調査(外向き)"
3 エージェントを並列 spawn(reference.md のテンプレート参照)。 全エージェントの完了を待ってから統合レポートを作成する。
Mode 2: 途中から(内向き並列3エージェント)
リファレンス:
reference.mdの "Mode 2 Agent Prompts" を Read して使用
3 エージェント同時 spawn:
- code-explorer: 類似機能のエントリポイントから実装をトレース
- architecture-mapper: 既存抽象境界・データモデルの把握
- convention-scout: 命名規則・配置・テストパターンの抽出
TeamCreate:
team_name: "feature-flow-prior-art"
description: "Phase B: 既存コード探索(内向き)"
B1: 統合レポート提示
各エージェントの報告をメインエージェントが統合し、ユーザーに提示する。
## 先行事例調査 結果(統合)
### Market Research(Mode 1 のみ)
...
### OSS Scout(Mode 1 のみ)
...
### Pattern Observer(Mode 1 のみ)
...
### Code Explorer(Mode 2 のみ)
...
### Architecture Mapper(Mode 2 のみ)
...
### Convention Scout(Mode 2 のみ)
...
### 統合所見
- 採用すべきパターン
- 避けるべきパターン
- 「作る vs 既存活用」の暫定判断
B2: 補足と方針決定
AskUserQuestion:
question: "知っている類似品・参考実装が他にあれば教えてください(無ければ "なし")"
options:
- "なし"
- "自由記述"
AskUserQuestion:
question: |
調査結果を踏まえて、どの方針で進めますか?
Mode 1 の場合:
- a) 差別化ポイントを定めて自作する
- b) 差別化不要、既存パターンを参考に車輪再発明する
- c) 既存サービス / OSS を採用して撤退する
Mode 2 の場合:
- a) 既存の類似機能のパターンに沿って自作
- b) 既存ライブラリ / 内部モジュールの拡張で済ませる
- c) 既に同等機能が存在、撤退する
options:
- "a (自作 / 拡張)"
- "b (既存に乗る / 既存モジュール活用)"
- "c (撤退する)"
- "自由記述"
「c (撤退)」の場合はワークフローを中断、撤退理由をメモして終了。
Phase C: データと操作(共通)
3 問。
C1. INPUT — 何を入力する?
AskUserQuestion:
question: "ユーザーがこの機能に何を入力しますか?データ種別・取得元を教えてください。"
options:
- "フォーム入力(テキスト・数値・選択)"
- "ファイルアップロード(画像・CSV・PDF など)"
- "外部 API・連携サービスから取得"
- "別画面・別機能の出力をそのまま渡す"
- "ユーザー入力なし(自動生成 / バッチ)"
- "自由記述"
C2. OUTPUT — 何を返す / 表示する?
AskUserQuestion:
question: "この機能の結果として、ユーザーに何が返りますか / 何が表示されますか?"
options:
- "一覧表示(テーブル・カード・カンバン)"
- "詳細表示(単一エンティティ)"
- "ファイル生成・ダウンロード"
- "別システムへ通知・送信(実体は裏側)"
- "状態変更のみ(UI 上は完了通知)"
- "自由記述"
C3. STATE — 何を保存する?
AskUserQuestion:
question: |
保存対象を整理します。以下の観点で答えてください。
- 永続化すべきデータは何か(DB に残す)
- 揮発で OK のデータは何か(セッション・キャッシュ)
- 保存しないもの(明示的に消す)
options:
- "自由記述(必須)"
Mode 2 の場合、architecture-mapper の出力を踏まえて「既存モデルとの整合性」を 1 文で言及する。
Phase D: 成功条件(共通)
2 問。
D1. DONE — どうなったら「できた」と言える?
AskUserQuestion:
question: |
この機能の Definition of Done を、観測可能な条件で答えてください。
(「ユーザーが X を入力して Y が返れば OK」のような形)
options:
- "自由記述(必須)"
D2. NON-GOALS — 今回やらないことは?
AskUserQuestion:
question: |
今回スコープ外にすることを明示してください。
(「○○は将来の拡張、○○は別機能で扱う」のような形)
options:
- "なし(全部やる)"
- "自由記述"
Phase E: Spec 書き出し + Reader Test
E1: spec ファイル作成
plan/YYYY-MM-DD-feature-<slug>.md に書き出す(slug は機能名から自動生成)。
スキーマ:
# Feature: <name>
- Mode: <1: 最初から / 2: 途中から>
- 作成日: YYYY-MM-DD
## A. ユーザーストーリー
- WHO: ...
- WHEN: ...
- GOAL: ...
## B. 先行事例調査
### 調査結果サマリー
- Mode 1: market / oss / pattern observer の要約
- Mode 2: code-explorer / architecture-mapper / convention-scout の要約
### 方針
- 採用する方針: a / b / c
- 採用理由: ...
- 採用すべきパターン: ...
- 避けるべきパターン: ...
## C. データと操作
- INPUT: ...
- OUTPUT: ...
- STATE: ...
- (Mode 2)既存モデルとの整合性: ...
## D. 成功条件
- DONE: ...
- NON-GOALS: ...
## E. ハンドオフ候補
- 次フェーズ: discovery-council / design / 直接実装
- 関連 reference:
- Mode 2 の場合は code-explorer が示した重要ファイル一覧
E2: Reader Test
--light フラグ時は省略可能。
フレッシュな agent に spec を読ませて、解釈一致を確認する。
Agent:
subagent_type: "general-purpose"
name: "spec-reader"
description: "Reader Test: spec の解釈一致確認"
prompt: |
あなたは初見のレビュアーです。
## タスク
plan/YYYY-MM-DD-feature-<slug>.md を読んで、以下の 4 点を答えてください:
1. この機能で「誰が」「何のために」「何を達成」するのか
2. 入力・出力・保存対象は何か
3. どうなったら「できた」と言えるか
4. 読んでも不明確だった点・解釈に迷った点(あれば)
## 出力
上記 4 点を簡潔に。3 と 4 が特に重要。
メインエージェントが Reader の応答を受けて:
- 解釈が spec と一致 → Phase E3 へ
- 解釈にズレあり / 不明確箇所あり → 該当 Phase に戻って修正、再 Reader Test
E3: ハンドオフ提示
AskUserQuestion:
question: |
Spec が完成しました(plan/YYYY-MM-DD-feature-<slug>.md)。
次に何を進めますか?
options:
- "discovery-council で要件統合(複数機能を束ねたい)"
- "design でアーキテクチャ設計に進む"
- "直接実装に進む(軽い機能のため)"
- "一旦ここで止める(後で再開)"
- "自由記述"
選択結果に応じて該当スキルを Skill ツールで起動するか、案内のみで終了する。
Gotchas
- Phase A の挑発を省かない: ユーザーが既に乗り気でも、必ず一度は「作らない選択肢」を提示する。これがコスト最小で質を上げる
- Phase B のエージェント並列を foreground で待つ: background のまま次フェーズに進むと統合レポートが空になる
- Mode 判定で誤検出:
node_modulesだけある(package.json は無い)状態などで Mode 2 と誤判定しがち。明示確認を必ず取る - Reader Test の解釈ズレを放置しない: spec の質は将来のナレッジ価値に直結。ズレがあれば必ず該当 Phase に戻る
--lightの使い時: 30 分以内で実装できる軽い機能 / プロトタイプ用途に限る。本番機能では並列調査と Reader Test を省略しない
出力
plan/YYYY-MM-DD-feature-<slug>.md
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
要件が曖昧なとき、ソクラテス式に1問ずつ質問して要件を掘り下げる。十分に明確になったら discovery-council にハンドオフ。「要件が曖昧」「何を作ればいいか」「掘り下げて」「インタビューして」で発動。※ 完成した plan/design を詰問するなら grill、非対話で一括批判するなら critic。
designer エージェントによるアーキテクチャ設計。requirements.md を基に design.md を作成。「設計して」「アーキテクチャ設計して」「アーキテクチャを考えて」「設計書を作って」で発動。
3エージェント(researcher, analyst, scout)による並列要件分析 Council。peer-to-peer で相互検証し requirements.md を確定。「要件を整理して」「要件定義して」「現状分析して」「要件をまとめて」で発動。
技術記事の並列レビュー Council。anti-ai-slop / fact-checker / narrative-critic / reader-advocate を並列 spawn、severity 付き findings を最大3ラウンドで収束。Zenn などのドラフト完成後に使う。「記事レビュー」「editorial swarm」「編集会議」「記事推敲」「記事添削」で発動。
スキルの自己進化。auto-memory と実行履歴から学びを抽出し、各スキルの Gotchas セクションに自動追記する。セッション終了前、定期的な改善サイクル、問題に遭遇した後に使う。「スキルを進化させて」「学びを反映して」「Gotchas を更新」「evolve」で発動。