mcpField
W
workflow-skill-designer

workflow-skill-designer

github.com/catlog22エージェントワークフロー2.1k79 回インストール19 週間前に更新
リポジトリ

workflow-skill-designer について

構造化されたワークフロー スキルを設計するメタスキルです。要件から、調整役の SKILL.md とフェーズ別の実行ドキュメントを作成します。複数フェーズのスキル作成や再構成に適しています。

主な機能

  1. 01調整役とフェーズ文書の生成
  2. 02フェーズ詳細のオンデマンド読み込み
  3. 03フェーズ間データフローの定義
  4. 04条件付きフェーズ実行
  5. 05構造と参照の検証

活用シーン

  1. 01既存コマンドをフェーズ型スキルに変換
  2. 02要件からワークフロースキルを作成
  3. 03単一構成のスキルをフェーズ別に再編

インストール

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

$npx skills add https://github.com/catlog22/claude-code-workflow --skill workflow-skill-designer

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

同梱ファイル

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

phases/
01-requirements-analysis.md
02-orchestrator-design.md
03-phase-design.md
04-validation.md

詳細

ワークフロースキルデザイナー

オーケストレーター+フェーズのパターンに従って、構造化されたワークフロースキルを作成するメタスキルです。SKILL.md をコーディネーター、phases/ フォルダーを実行詳細として、完全なスキルパッケージを生成します。

アーキテクチャの概要

┌─────────────────────────────────────────────────────────────────┐
│  Workflow Skill Designer                                         │
│  → Analyze requirements → Design orchestrator → Generate phases  │
└───────────────┬─────────────────────────────────────────────────┘
                │
    ┌───────────┼───────────┬───────────┐
    ↓           ↓           ↓           ↓
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Phase 1 │ │ Phase 2 │ │ Phase 3 │ │ Phase 4 │
│ Require │ │  Orch   │ │ Phases  │ │ Valid   │
│ Analysis│ │ Design  │ │ Design  │ │ & Integ │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
     ↓           ↓           ↓           ↓
  workflow    SKILL.md    phases/     Complete
  config     generated   0N-*.md     skill pkg

生成される出力構造

このメタスキルが生成するスキルは、次の構造に従います。

.claude/skills/{skill-name}/
├── SKILL.md                    # Orchestrator: coordination, data flow, TodoWrite
├── phases/
│   ├── 01-{phase-name}.md      # Phase execution detail (full content)
│   ├── 02-{phase-name}.md
│   ├── ...
│   └── 0N-{phase-name}.md
├── specs/                      # [Optional] Domain specifications
└── templates/                  # [Optional] Reusable templates

コア設計パターン

成功したワークフロースキルの実装(workflow-plan、project-analyze など)から抽出したパターンです。

パターン 1:オーケストレーター+段階的な読み込み

SKILL.md = 専用のコーディネーター。以下を含みます。

  • アーキテクチャ図(ASCII)
  • Ref: phases/0N-xxx.md マーカーを使った実行フロー
  • フェーズ参照ドキュメントの表(必要に応じて読み込み)
  • フェーズ間のデータフロー
  • コア規則とエラー処理

フェーズファイル = 実行の詳細をすべて記載します。以下を含みます。

  • エージェントのプロンプト、bash コマンド、コードの実装一式
  • 検証チェックリスト、エラー処理
  • 入力/出力の仕様
  • 次のフェーズへのリンク

重要なルール:SKILL.md では Ref: マーカーを使ってフェーズドキュメントを参照します。フェーズドキュメントはそのフェーズの実行時にのみ読み込み、すべてを一度に読み込むことはありません。

パターン 2:TodoWrite の添付/折りたたみ
Phase starts:
  → Sub-tasks ATTACHED to TodoWrite (in_progress + pending)
  → Orchestrator executes sub-tasks sequentially

Phase ends:
  → Sub-tasks COLLAPSED back to high-level summary (completed)
  → Next phase begins
パターン 3:フェーズ間のデータフロー
Phase N output → stored in memory/variable → Phase N+1 input
                  └─ or written to session file for persistence

各フェーズは、前のフェーズの出力を次の方法で受け取ります。

  • メモリ内変数(sessionId、contextPath など)
  • セッションディレクトリのファイル(.workflow/active/{sessionId}/...)
  • 計画メモ(蓄積された制約のドキュメント)
パターン 4:条件付きフェーズ実行
Phase N output contains condition flag
  ├─ condition met → Execute Phase N+1
  └─ condition not met → Skip to Phase N+2
パターン 5:入力の構造化

ユーザー入力(自由形式のテキスト)→ フェーズ 1 の前に構造化形式に変換:

GOAL: [objective]
SCOPE: [boundaries]
CONTEXT: [background/constraints]
パターン 6:対話形式での設定収集(SKILL.md の責務)

ワークフローの設定(自動モード、強制探索など)は、フェーズをディスパッチする前に、SKILL.md で AskUserQuestion を使って収集する必要があります。フェーズでは、これらを workflowPreferences.{key} コンテキスト変数として参照します。

アンチパターン:フェーズファイル内で $ARGUMENTS.includes(...) を使ってコマンドラインフラグ(--yes、-e、--explore)を解析します。

// CORRECT: In SKILL.md (before phase dispatch)
const prefResponse = AskUserQuestion({
  questions: [
    { question: "是否跳过确认?", header: "Auto Mode", options: [
      { label: "Interactive (Recommended)", description: "交互模式" },
      { label: "Auto", description: "跳过所有确认" }
    ]}
  ]
})
workflowPreferences = { autoYes: prefResponse.autoMode === 'Auto' }

// CORRECT: In phase files (reference only)
const autoYes = workflowPreferences.autoYes

// WRONG: In phase files (flag parsing)
const autoYes = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
パターン 7:フェーズの直接引き継ぎ

あるフェーズから同じスキル内の別のフェーズを呼び出す必要がある場合、フェーズドキュメントを直接読み込んで実行します。SKILL.md を経由する Skill() ルーティングは使用しないでください。

// CORRECT: Direct handoff (executionContext already set)
Read("phases/02-lite-execute.md")
// Execute with executionContext (Mode 1)

// WRONG: Skill routing (unnecessary round-trip)
Skill(skill="workflow-lite-plan", args="--in-memory")
パターン 8:フェーズファイルの衛生管理

フェーズファイルは内部実行ドキュメントです。以下を含めてはなりません。

禁止事項理由正しい配置場所
フラグの解析($ARGUMENTS.includes(...))設定は SKILL.md で収集するAskUserQuestion を使って SKILL.md で収集
呼び出し構文(/skill-name "...")ユーザー向けドキュメントではない削除するか、SKILL.md のみに記載
変換元の記載(Source: Converted from...)実装詳細削除
フェーズ間のスキルルーティング(Skill(skill="..."))フェーズを直接読み込むRead("phases/...") で直接読み込む
パターン 9:簡潔な復旧(フェーズの永続化)

複数フェーズにまたがるワークフローは、長い会話の中で実行されます。コンテキストの圧縮(compact)により、前のフェーズのドキュメントは自然に要約されます。この戦略では二重の保護を採用します。TodoWrite でアクティブなフェーズを追跡し、圧縮から保護するとともに、圧縮が発生した場合に sentinel をフォールバックとして使用し、復旧を開始します。

設計原則:TodoWrite の in_progress =アクティブなフェーズ → compact から保護 | sentinel =保護に失敗した場合の再読み込みフォールバック。

二重保護の仕組み:

レイヤー役割仕組み
1. アクティブフェーズの保護予防TodoWrite の in_progress マーカーで現在のフェーズを示す → compact 時にそのフェーズの内容全体を保持し、圧縮しない
2. Sentinel の再読み込み復旧フェーズファイルに識別子を埋め込む → 圧縮が続いた場合、sentinel のみの状態を検出した時点で直ちに再読み込み

適用する場面:直接引き継ぎ(パターン 7)によってフェーズをまたいで実行するすべての場面。特に、後続のフェーズに複雑な実行プロトコル(複数のステップ、エージェントのディスパッチ、CLI のオーケストレーション)が含まれる場合に適用します。


レイヤー 1:アクティブフェーズの保護(TodoWrite との連携)

TodoWrite はすでに各フェーズの実行状態を追跡しています。この情報を利用して compact の方針を制御します。

TodoWrite status → Compact behavior:
  ┌─ completed  → ✅ 可压缩(已完成,不再需要完整内容)
  ├─ in_progress → 🛡️ 禁止压缩(正在执行,必须保留完整协议)
  └─ pending    → ✅ 可压缩(尚未加载,无内容)

SKILL.md の実行フローで compact との連携を示します。

## Execution Flow

> **⚠️ COMPACT DIRECTIVE**: Context compression MUST check TodoWrite phase status.
> The phase currently marked `in_progress` is the active execution phase — preserve its FULL content.
> Only compress phases marked `completed` or `pending`.

Phase 1: Requirements Analysis    ← TodoWrite tracks status
   └─ Ref: phases/01-xxx.md
Phase 2: Execution Engine         ← TodoWrite tracks status
   └─ Ref: phases/02-xxx.md
...

TodoWrite の状態遷移に応じて、compact の保護範囲を自動的に更新します。

Phase 1: in_progress 🛡️  →  completed ✅   (compact 可压缩 Phase 1)
Phase 2: pending ✅       →  in_progress 🛡️ (compact 保护 Phase 2)

レイヤー 2: Sentinel 再読み込み (フォールバック復旧)

レイヤー 1 の保護があっても、compact は極端なシナリオ(超長コンテキスト、多ターンのエージェントスケジューリング)ではアクティブフェーズを圧縮してしまう可能性があります。Sentinel は復旧能力を確保します:

Phase ファイルの先頭に sentinel を埋め込む:

> **📌 COMPACT SENTINEL [Phase N: {phase-name}]**
> This phase contains {M} execution steps (Step N.1 — N.{M}).
> If you can read this sentinel but cannot find the full Step protocol below, context has been compressed.
> Recovery: `Read("phases/0N-xxx.md")`

Sentinel の設計上の特徴:

  • 構造化され、目立つ → compact はこれを重要情報として要約内に保持します
  • step 数を含む → 自己検証の根拠を提供します(「M 個の Step が見えるはずだが、要約しかない」)
  • re-read パスを含む → テーブルを参照せずに復旧できます

Phase リファレンステーブル (二重の保険を統合)
| Phase | Document | Purpose | Compact |
|-------|----------|---------|---------|
| 1 | phases/01-xxx.md | Planning | TodoWrite 驱动 |
| 2 | phases/02-xxx.md | Execution | TodoWrite 驱动 + 🔄 sentinel |

**Compact Rules**:
1. **TodoWrite `in_progress`** → 保留完整内容,禁止压缩
2. **TodoWrite `completed`** → 可压缩为摘要
3. **🔄 sentinel fallback** → 带此标记的 phase 包含 compact sentinel;若 compact 后仅存 sentinel 而无完整 Step 协议,**必须立即 `Read("phases/0N-xxx.md")` 恢复后再继续**

チェックポイント (実行ステップ前の二重検証)
> **⚠️ CHECKPOINT**: Before proceeding, verify:
> 1. This phase is TodoWrite `in_progress` (active phase protection)
> 2. Full protocol (Step N.X — N.{M}) is in active memory, not just sentinel
> If only sentinel remains → `Read("phases/0N-xxx.md")` now.
ハンドオフコメント
// Phase N is tracked by TodoWrite — active phase protection applies.
// Sentinel fallback: if compressed despite protection, re-read triggers automatically.
Read("phases/0N-xxx.md")

実行フロー

Phase 1: Requirements Analysis
   └─ Ref: phases/01-requirements-analysis.md
      ├─ Input source: commands, descriptions, user interaction
      └─ Output: workflowConfig (phases, data flow, agents, conditions)

Phase 2: Orchestrator Design (SKILL.md)
   └─ Ref: phases/02-orchestrator-design.md
      ├─ Input: workflowConfig
      └─ Output: .claude/skills/{name}/SKILL.md

Phase 3: Phase Files Design
   └─ Ref: phases/03-phase-design.md
      ├─ Input: workflowConfig + source content
      └─ Output: .claude/skills/{name}/phases/0N-*.md

Phase 4: Validation & Integration
   └─ Ref: phases/04-validation.md
      └─ Output: Validated skill package

Phase リファレンスドキュメント (オンデマンドで読み込み):

Phaseドキュメント目的
1phases/01-requirements-analysis.mdさまざまなソースからワークフロー要件を分析します
2phases/02-orchestrator-design.mdオーケストレーションパターンを含む SKILL.md を生成します
3phases/03-phase-design.md完全な実行詳細を保持した phase ファイルを生成します
4phases/04-validation.md構造、参照、統合を検証します

入力ソース

このメタスキルは、複数のソースからのワークフロー定義を受け付けます:

ソース説明例
既存のコマンド.claude/commands/ のオーケストレーター + サブコマンドを変換しますplan.md + session/start.md + tools/*.md
テキスト記述ユーザーが自然言語でワークフローを記述します「3 フェーズのコードレビューワークフローを作成する」
要件ドキュメント構造化された要件ファイルphases/agents/outputs を含む requirements.md
既存のスキル既存のスキルをリファクタリング/再設計しますフラットなスキルをフェーズに再構成します

Frontmatter 変換ルール

コマンド形式からスキル形式へ変換する場合:

コマンドフィールドスキルフィールド変換
namenameグループをプレフィックスとして付加: plan → workflow-plan
descriptiondescriptionトリガーフレーズを追加: Triggers on "xxx"
argument-hint(削除)引数は入力処理セクションで扱います
examples(削除)例はインラインドキュメントに移動します
allowed-toolsallowed-toolsワイルドカードを展開: Skill(*) → Skill、よく必要となるツールを追加します
group(削除)name プレフィックスに埋め込みます

オーケストレーターのコンテンツマッピング

SKILL.md に入れるものと、phase ファイルに入れるもの:

SKILL.md (コーディネーター)
セクションコンテンツソース
Frontmattername、description、allowed-toolsコマンドの frontmatter(変換済み)
アーキテクチャ概要phase フローの ASCII 図実行構造から導出
主要な設計原則調整ルールコマンドのコーディネーターの役割から抽出
実行フローRef: マーカー付きの phase シーケンス + Phase リファレンステーブルコマンドの実行プロセス
コアルールオーケストレーションの制約コマンドのコアルール
入力処理構造化フォーマットへの変換コマンドの入力処理
データフローphase 間のデータ受け渡しコマンドのデータフロー
TodoWrite パターンアタッチ/コラプスのライフサイクルコマンドの TodoWrite セクション
phase 後の更新phase 間の計画メモ / 状態更新コマンドの phase 間更新コード
エラーハンドリング障害からの復旧コマンドのエラーハンドリング
コーディネーターチェックリストphase 前後のアクションコマンドのコーディネーターチェックリスト
関連コマンド前提条件とフォローアップコマンドの関連コマンド
フェーズファイル (実行の詳細)
内容ルール
エージェントプロンプト全文ソースコマンドからそのまま保持
Bash コマンドブロックそのまま保持
コード実装そのまま保持
検証チェックリストそのまま保持
エラーハンドリングの詳細そのまま保持
入出力仕様ソースにない場合は追加
フェーズヘッダー# Phase N: {Name} を追加
目的セクション箇条書きで ## Objective を追加
次フェーズリンク次へのリンクを含む ## Next Phase を追加

重要なルール: フェーズファイルはソースに対して内容に忠実でなければなりません。要約、省略、簡略化をしてはいけません。フェーズファイルは実行指示そのものです。すべての bash コマンド、すべてのエージェントプロンプト、すべての検証ステップを保持する必要があります。

SKILL.md テンプレート

---
name: {skill-name}
description: {description}. Triggers on "{trigger1}", "{trigger2}".
allowed-tools: {tools}
---

# {Title}

{One-paragraph description of what this skill does and what it produces.}

## Architecture Overview

{ASCII diagram showing phases and data flow}

## Key Design Principles

1. **{Principle}**: {Description}
...

## Interactive Preference Collection

Collect workflow preferences via AskUserQuestion before dispatching to phases:
{AskUserQuestion code with preference derivation → workflowPreferences}

## Auto Mode Defaults

When `workflowPreferences.autoYes === true`: {auto-mode behavior}.

## Execution Flow

{Phase sequence with Ref: markers}

**Phase Reference Documents** (read on-demand when phase executes):

| Phase | Document | Purpose | Compact |
|-------|----------|---------|---------|
| 1 | [phases/01-xxx.md](phases/01-xxx.md) | ... | TodoWrite 驱动 |
| N | [phases/0N-xxx.md](phases/0N-xxx.md) | ... | TodoWrite 驱动 + 🔄 sentinel |
...

**Compact Rules**:
1. **TodoWrite `in_progress`** → 保留完整内容,禁止压缩
2. **TodoWrite `completed`** → 可压缩为摘要
3. **🔄 sentinel fallback** → 带此标记的 phase 包含 compact sentinel;若 compact 后仅存 sentinel 而无完整 Step 协议,必须立即 `Read()` 恢复

## Core Rules

1. {Rule}
...

## Input Processing

{How user input is converted to structured format}

## Data Flow

{Inter-phase data passing diagram}

## TodoWrite Pattern

{Attachment/collapse lifecycle description with examples}

## Post-Phase Updates

{State updates between phases}

## Error Handling

{Failure recovery rules}

## Coordinator Checklist

{Pre/post phase action list}

## Related Commands

{Prerequisites and follow-ups}

フェーズファイルテンプレート

# Phase N: {Phase Name}

> **📌 COMPACT SENTINEL [Phase N: {phase-name}]**
> This phase contains {M} execution steps (Step N.1 — N.{M}).
> If you can read this sentinel but cannot find the full Step protocol below, context has been compressed.
> Recovery: `Read("phases/0N-xxx.md")`
> _(Include for phases marked 🔄 in SKILL.md Phase Reference table — see Pattern 9)_

{One-sentence description of this phase's goal.}

## Objective

- {Goal 1}
- {Goal 2}

## Execution

### Step N.1: {Step Name}

{Full execution detail: commands, agent prompts, code}

### Step N.2: {Step Name}

> **⚠️ CHECKPOINT**: Before proceeding, verify:
> 1. This phase is TodoWrite `in_progress` (active phase protection)
> 2. Full protocol (Step N.X — N.{M}) is in active memory, not just sentinel
> If only sentinel remains → `Read("phases/0N-xxx.md")` now.
> _(Add checkpoints before critical execution steps: agent dispatch, CLI launch, review — see Pattern 9)_

{Full execution detail}

## Output

- **Variable**: `{variableName}` (e.g., `sessionId`)
- **File**: `{output file path}`
- **TodoWrite**: Mark Phase N completed, Phase N+1 in_progress

## Next Phase

Return to orchestrator, then auto-continue to [Phase N+1: xxx](0N+1-xxx.md).

設計判断フレームワーク

新しいワークフロースキルを設計する際は、次の問いに答えてください。

問い影響例
フェーズはいくつか?ディレクトリ構造通常 3〜7 フェーズ
どのフェーズが条件付きか?オーケストレーターのロジック「conflict_risk が medium 以上の場合のみ Phase 3」
フェーズ間でどのようなデータが流れるか?Data Flow セクションsessionId、contextPath、configFlags
どのフェーズがエージェントを使用するか?フェーズファイルの複雑さエージェントプロンプトはそのまま保持する必要がある
TodoWrite の粒度は?TodoWrite Patternサブタスクを持つフェーズもあれば、単一のフェーズもある
計画メモのパターンはあるか?Post-Phase Updatesフェーズをまたいで蓄積される状態ドキュメント
エラーからの復旧は?Error Handling1 回リトライしてから報告、対ロールバック
設定の収集が必要か?Interactive Preference CollectionSKILL.md の AskUserQuestion で収集し、workflowPreferences として渡す
フェーズ N がフェーズ M に引き継ぐか?Direct Phase Handoff (Pattern 7)Skill() ルーティングではなく、フェーズドキュメントを直接読み取る
長時間のコンテキスト後に後続フェーズが実行されるか?Compact Recovery (Pattern 9)センチネルとチェックポイントを追加し、Phase Reference テーブルで 🔄 を付ける

コメント