mcpField
S
swain-roadmap

swain-roadmap

github.com/cristoslcエージェントワークフロー259 回インストール25 週間前に更新
リポジトリ

swain-roadmap について

swain-roadmap は、アーティファクトグラフからプロジェクトのロードマップを再生成し、結果を開くスキルです。プロジェクト全体、指定アーティファクトのスライス、テキスト形式のコマンドライン要約に対応します。

主な機能

  1. 01プロジェクトのロードマップ再生成
  2. 02範囲を指定したスライスの作成
  3. 03優先度と依存関係の表示
  4. 04アーティファクトから意図のプレースホルダーを補完
  5. 05コマンドラインで状態と要約を表示

活用シーン

  1. 01プロジェクトのロードマップを更新
  2. 02ビジョンやイニシアチブのスライスを確認
  3. 03ターミナルで優先度と依存関係を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cristoslc/swain --skill swain-roadmap

インストール後、Claude Code で/swain-roadmapを入力して読み込まれたか確認します。

詳細

ロードマップ

状態を変更する操作を行う前に、アクティブなセッションがあるか確認してください:

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
bash "$REPO_ROOT/.agents/bin/swain-session-check.sh" 2>/dev/null

JSON 出力の "status" が "active" 以外の場合は、オペレーターに「アクティブなセッションがありません。/swain-init で開始しますか?」と伝えてください。オペレーターが断った場合は続行してください。

アーティファクトグラフから ROADMAP.md を再生成して開きます。主な処理は swain-design の chart.sh roadmap が行います。このスキルはユーザー向けのエントリーポイントです。

呼び出されたとき

1. chart.sh の場所を特定する
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
CHART_SH="$REPO_ROOT/.agents/bin/chart.sh"

chart.sh が見つからない場合は、swain-design がインストールされていないことをユーザーに伝えて終了してください。

2. ロードマップを再生成する

引数を解析します。ユーザーがアーティファクト ID(例:swain-roadmap VISION-001)を指定した場合は、SCOPE_ID にその ID を設定します。それ以外の場合は、SCOPE_ID を空にします。

SCOPE_ID が設定されている場合:

bash "$CHART_SH" roadmap --scope "$SCOPE_ID"

スコープ対象のアーティファクトのフォルダーに roadmap.md を書き込みます。

SCOPE_ID が空の場合:

bash "$CHART_SH" roadmap

プロジェクトのルートに ROADMAP.md を書き込み、各 Vision および Initiative のアーティファクトフォルダーにある roadmap.md のスライスもすべて再生成します。

プロジェクト全体の ROADMAP.md には、次の内容が含まれます:

  • 4 象限チャート — 優先度マトリクスを PNG 形式で表示(mmdc が利用できない場合は、インライン Mermaid にフォールバック)
  • 凡例 — エピックを象限ごとにグループ化し、短縮 ID を表示
  • アイゼンハワーテーブル — Do First / Schedule / In Progress / Backlog の各項目に、進捗、ブロック解除数、オペレーターによる判断の必要性を表示
  • ガントタイムライン — 優先度を反映したスケジュールと依存関係のリンク
  • 依存関係グラフ — 優先度の境界をまたぐブロック関係(依存関係がある場合のみ)

各アーティファクトのスライスには、意図の概要、子アーティファクトのリンクと進捗を含むテーブル、集計進捗バー、最近の git コミット、アイゼンハワー優先度のサブセットが含まれます。

2.5. 意図のプレースホルダーを後処理する

chart.sh の完了後、出力ファイルをスキャンし、{{INTENT: <ID>}} プレースホルダーを探します。それぞれについて、次の手順を実行します:

  1. 元のアーティファクトの Markdown を読みます。
  2. Vision の場合は ## Value Proposition、Initiative の場合は ## Goal / Objective の最初の文を抽出します。
  3. {{INTENT: <ID>}} マーカーを抽出した文に置き換えます。
  4. ファイルを書き戻します。

セクションが見つからない場合は、プレースホルダーをそのまま残してください(オペレーターが手動で入力するか、SPEC-144 を通じて brief-description フロントマターに値が設定されるのを待つことができます)。

3. ロードマップを開く

SCOPE_ID が設定されている場合は、スコープ対象のスライスを開きます。グラフキャッシュからアーティファクトのファイルパスを取得して、そのフォルダーを特定します:

ARTIFACT_FILE="$(bash "$CHART_SH" show "$SCOPE_ID" 2>/dev/null | grep -oE 'docs/[^ ]+' | head -1)"
if [ -n "$ARTIFACT_FILE" ]; then
    open "$REPO_ROOT/$(dirname "$ARTIFACT_FILE")/roadmap.md"
fi

スコープが指定されていない場合は、プロジェクト全体のロードマップを開きます:

open "$REPO_ROOT/ROADMAP.md"

チャートや図を含む全体をオペレーターが確認できるよう、必ずレンダリングされたファイルを開いてください。オペレーター自身に開くよう伝えてはいけません。こちらで開いてください。

4. CLI の概要を表示する

ROADMAP.md には、ターミナルではレンダリングされないテーブル、Mermaid 図、画像参照が含まれています。--cli フラグを使用して、整形済みのプレーンテキストの概要を取得します:

bash "$CHART_SH" roadmap --cli

このコマンドは、アイゼンハワーの象限(Do First、Schedule、In Progress、Backlog)ごとにグループ化された、決定的で整列済みの概要を出力します。各 Initiative の下には、すべての第 1 階層の子(EPIC、SPEC、SPIKE)がネストされます。この出力をそのまま表示し、再フォーマットしたり、絞り込んだりしないでください。

CLI 出力の前に「ROADMAP.md を更新して開きました。」と伝えてください。スコープを指定した実行の場合は、代わりに「{SCOPE_ID} のロードマップスライスを更新して開きました。」と伝えてください。

コンテキストを含めた表示

ロードマップ項目(アイゼンハワーの各象限、ガントタイムライン)を一覧表示するときは、各アーティファクトを ID だけでなく、コンテキストを含む行として表示します:

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
bash "$REPO_ROOT/.agents/bin/artifact-context.sh" <ID> 2>/dev/null

ユーティリティが利用できない場合は、<ID> — <title> を使用してください。

6. フォーカスレーンのコンテキスト

.agents/session.json にフォーカスレーンが設定されている場合は、最後にその内容に触れてください。

FOCUS="$(bash "$REPO_ROOT/.agents/bin/swain-focus.sh" 2>/dev/null)"

フォーカスが設定されている場合は、「フォーカス:{FOCUS}。推奨事項はこのレーンに限定されています。」と伝えてください。

最新状態の確認(他のスキル向け)

他のスキルは、古さに基づく再生成のために chart.sh を直接呼び出せます。このスキルは常に無条件で再生成するため、「強制更新」の経路です。

ステータスダッシュボード(ADR-023、以前はSPEC-122)

オペレーターが「ステータス」「次は何をする?」「ダッシュボード」「概要」「現在の状況は?」「何に取り組めばいい?」と言った場合、ステータススクリプトを実行します。

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
STATUS_SCRIPT="$REPO_ROOT/.agents/bin/swain-status.sh"
[ -f "$STATUS_SCRIPT" ] && bash "$STATUS_SCRIPT" --refresh || echo "status dashboard script not found"

コンパクトモード(MOTD)では、bash "$STATUS_SCRIPT" --compact を実行します。

キャッシュ

ステータスは120秒のTTLで .agents/status-cache.json に書き込みます。キャッシュを迂回するには --refresh、生の出力を取得するには --json を使用します。

推奨事項

JSONキャッシュから .priority.recommendations[0] を読み取ります。フォーカスレーンが設定されている場合、推奨事項の対象はそのビジョン/イニシアチブに絞られます。

モードの推定
  1. 両方の仕様書がレビュー中で、戦略的な決定も保留中の場合 -> オペレーターに確認します
  2. 仕様書がレビュー待ちの場合 -> 詳細モード
  3. フォーカスレーンがあり、決定が保留中の場合 -> ビジョンモード
  4. 対応事項がない場合 -> ビジョンモード(マスタープランのミラー)
必要な決定(ロードマップとの統合)

Eisenhower分類には chart.sh roadmap --json を使用します。オペレーターの決定が必要な「先に実行」と「スケジュール」象限から上位5件を表示します。

エラー処理

  • chart.sh が失敗した場合は、エラー出力を表示し、swain-doctor の実行を提案します
  • ROADMAP.md が存在していても chart.sh を利用できない場合は、既存ファイル(古い可能性があります)を鮮度に関する警告とともに表示します
  • 決して処理を完全に失敗させず、利用可能な情報をすべて表示します

コメント