mcpField
S
swain-status

swain-status

github.com/cristoslc生産性262 回インストール25 週間前に更新
リポジトリ

swain-status について

swain-status は、プロジェクト担当者向けに成果物、タスク、Git、GitHub の課題、セッション情報をまとめるステータスダッシュボードスキルです。推奨事項を示し、フォーカスレーンによる絞り込みや簡潔な出力にも対応します。

主な機能

  1. 015 種類のプロジェクト状態を集約
  2. 02推奨事項と未決事項を順位付け
  3. 03フォーカスレーンで推奨事項を限定
  4. 04簡潔な出力と JSON 出力
  5. 05状態をキャッシュしロードマップの鮮度を確認

活用シーン

  1. 01プロジェクトの進捗と作業中タスクの確認
  2. 02判断や分解が必要な項目の特定
  3. 03単一のビジョンや取り組みへの集中
  4. 04MOTD パネルへの状態要約の出力

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
agent-summary-template.md
status-format.md
scripts/
swain-status.sh

詳細

ステータス

プロジェクト全体のステータスダッシュボードです。成果物のライフサイクル(swain chart)、タスク追跡(tk)、git、GitHub のイシュー、セッション状態のデータを集約し、アクティビティを中心としたビューにまとめます。

ロードマップの鮮度

ステータススクリプトには、ROADMAP.md が存在しない場合、またはドキュメント成果物のいずれかより古い場合に再生成する古さチェックが含まれています。これは自動的に実行されるため、別途呼び出す必要はありません。

ロードマップを全面的に更新する場合(無条件で再生成する場合)は、代わりに swain-roadmap を使用します。

呼び出されたとき

skills/swain-status/scripts/swain-status.sh にあるステータススクリプトを見つけて実行します。

# Find the script from the project root or installed skills directories
SKILL_DIR="$(find . .claude .agents -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
bash "$SKILL_DIR" --refresh

パスの検索に失敗した場合は、**/swain-status/scripts/swain-status.sh を glob 検索します。

スクリプトのターミナル出力では、クリック可能な成果物リンクに OSC 8 ハイパーリンクが使用されています。ターミナル出力をそのままスクロールさせてください。これは参照データであり、主な出力ではありません。

スクリプトの実行後、references/agent-summary-template.md のテンプレートに従って、構造化されたエージェントのサマリーを提示します。 意思決定の際にユーザーが読むのはエージェントのサマリーです。テンプレートの順序に従い、「推奨事項」セクション(下記参照)から始め、次に「必要な決定」、「着手可能な作業」、その後に参照データを記載します。

スクリプトは、次の5つのデータソースから情報を収集します。

  1. 成果物 — swain chart のビジョンを起点とした階層(エピックの進捗、着手可能/ブロック中の項目、依存関係情報)。ランク付けされた成果物ビューを表示するには、bash "$(find "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" -path '*/swain-design/scripts/chart.sh' -print -quit 2>/dev/null)" recommend を使用します。フォーカスレーンは自動的に適用されます。
  2. タスク — tk(進行中、最近完了したタスク)
  3. Git — ブランチ、作業ツリーの状態、最近のコミット
  4. GitHub — オープンなイシュー、ユーザーに割り当てられたイシュー
  5. セッション — swain-session のブックマークとコンテキスト

コンパクトモード(MOTD 連携)

スクリプトは、swain-stage の MOTD パネルで使用するための --compact をサポートしています。

REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
STATUS_SCRIPT="$(find "$REPO_ROOT" -path '*/swain-status/scripts/swain-status.sh' -print -quit 2>/dev/null)"
[ -n "$STATUS_SCRIPT" ] && bash "$STATUS_SCRIPT" --compact || echo "swain-status.sh not found"

MOTD ボックスに適した4〜5行の出力です。ブランチ、アクティブなエピックの進捗、現在のタスク、着手可能な項目数、割り当てられたイシュー数が表示されます。

キャッシュ

スクリプトは、プロジェクトローカルの agents ディレクトリに JSON キャッシュを書き込みます。

.agents/status-cache.json
  • TTL: 120秒(設定の status.cacheTTL で変更可能)
  • 強制更新: --refresh フラグを指定すると、TTL を無視します
  • JSON アクセス: --json フラグを指定すると、キャッシュをそのまま出力します(プログラムからの利用向け)

MOTD は、全体更新の合間にこのキャッシュを低コストで読み取れます。

移行: .agents/status-cache.json が存在せず、~/.claude/projects/<project-path-slug>/memory/status-cache.json が存在する場合は、旧ロケーションから一度だけ読み取り、以後は新しいロケーションに書き込みます。

推奨事項

推奨事項には、次のスコアリング式を使用します。

score = unblock_count × vision_weight

vision_weight は成果物の Vision 祖先から引き継がれます(high=3、medium=2、low=1、デフォルトは medium)。最も高くランク付けされた項目については、JSON キャッシュから .priority.recommendations[0] を読み取ります。

同点の場合は、次の順序で判定します。

  1. 成果物のビジョンにおける決定負債が大きいもの
  2. 実装タイプよりも決定タイプの成果物
  3. 成果物 ID(決定性のあるフォールバック)

フォーカスレーンが設定されている場合、推奨事項はそのビジョン/イニシアチブの範囲に限定されます。周辺のビジョンは別途要約します(「周辺状況の把握」を参照)。

推奨項目のビジョンについて注意力の逸脱が検出された場合は、推奨事項にその情報をコンテキストとして含めます。

モードの推定

swain-status は、コンテキストから動作モードを推定します(最初に一致したものを適用します)。

  1. 仕様がレビュー中で、戦略的な決定も保留中 → 「方針を決めますか、それともレビューしますか?」と尋ねます
  2. 仕様がオペレーターのレビュー待ち(エージェントの作業は完了し、承認が必要) → 詳細モード
  3. フォーカスレーンが設定され、戦略的な決定が保留中 → そのレーン内のビジョンモード
  4. レビュー中の仕様はなく、決定事項が積み上がっている → ビジョンモード
  5. どちらのモードにも実行可能な項目がない → ビジョンモード(マスタープランのミラーを表示)

オペレーターの回答後、swain は swain-session のブックマークを通じて、セッション中その選択を記憶します。

フォーカスレーン

オペレーターは、推奨事項の対象を単一のビジョンまたはイニシアチブに絞るため、swain-session でフォーカスレーンを設定できます。

bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-focus.sh' -print -quit 2>/dev/null)" set VISION-001

設定すると、.priority.recommendations にはそのビジョンに属する項目のみが含まれます。フォーカス対象外のビジョンは「周辺状況」セクションに表示されます。

周辺状況

フォーカスレーンが設定されている場合、保留中の判断事項があるフォーカス対象外のビジョンが要約されます。 「一方で、[Vision] には N 件の保留中の判断事項があります(重み:W)」

これは状況の映し鏡であり、推奨事項ではありません。蓄積状況を見て方針転換が必要かどうかを判断するのはオペレーターです。

すべての仕様が解決済みのアクティブなエピック

アクティブなエピックの progress.done == progress.total が成立する場合:

  • エピック進捗テーブルの「準備状況」列に「→ クローズ可能」と表示します
  • 「着手可能な作業」カテゴリには表示しません(実装作業ではありません)
  • 「子仕様に取り組む」として表示しません

判断が必要な項目(ロードマップ連携)

既存のステータス出力セクションの後に、ロードマップから上位の判断事項を表示します。このセクションでは、chart.sh roadmap --json のアイゼンハワー分類を使用します。

データの収集
bash "$(find . -path '*/swain-design/scripts/chart.sh' -print -quit)" roadmap --json
フィルタリング
  1. フォーカスレーンによる絞り込み: フォーカスレーンが設定されている場合、そのビジョンの項目のみに絞り込みます。
  2. アイゼンハワー・クアドラントによるフィルタリング: 「最優先」と「スケジュール」のクアドラントに属する項目を表示します。分類基準:
    • 重要: weight >= 3
    • 緊急: アクティブなステータス、または score > 0
  3. オペレーターの判断によるフィルタリング: オペレーターの判断が必要な項目を表示します。
    • ステータスが「Proposed」 — 有効化するか破棄するかの判断が必要
    • children_total == 0 — 子仕様への分解が必要
    • children_complete == children_total かつ children_total > 0 — 完了/クローズ可能
表示
  • 上位 5 件までを表示し、weight の降順、次に score の降順で並べます。
  • 各項目は受動的なリスト項目ではなく、行動を促すプロンプトとして書式設定します。例:
    • EPIC-038 PR-Only Agent Guardrails — **分解が必要**(仕様 0 件、優先度高)
    • EPIC-024 GitHub Issue Polling — **有効化または破棄?**(Proposed、優先度高)
    • EPIC-012 Session Atomization — **完了可能**(仕様 4/4 件完了)
  • 該当する項目がない場合は、セクション全体を省略します。見出しだけを表示しないでください。
フォールバック

chart.sh roadmap --json が失敗するか、データが空の場合は、「判断が必要な項目」セクションを何も通知せず省略し、ステータス出力の残りを続行します。

設定

swain.settings.json(プロジェクト)および ~/.config/swain/settings.json(ユーザーによる上書き)から読み込みます。

KeyTypeDefaultDescription
status.cacheTTLnumber120キャッシュの有効期間(秒)

セッションブックマーク

ステータスを表示した後、最も行動につながる要点でブックマークを更新します:bash "$(find . .claude .agents -path '*/swain-session/scripts/swain-bookmark.sh' -print -quit 2>/dev/null)" "Checked status — {key highlight}"

エラー処理

  • chart.sh / specgraph が利用できない場合:アーティファクトのセクションを省略し、ほかのデータを表示します
  • tk が利用できない場合:タスクのセクションを省略します
  • gh CLI が利用できない、または GitHub リモートがない場合:イシューのセクションを省略します
  • .agents/session.json が存在しない場合:ブックマークを省略します
  • 致命的なエラーで処理を中断しないでください。利用可能なデータをすべて表示します

コメント