Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
naoterumaker avatar

Procedure Extractor

  • 4 installs
  • Updated July 30, 2026
  • naoterumaker/manabi-skills

Helps with ai & agent building tasks.

About

procedure-extractor is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • procedure-extractor
  • AI & Agent Building
  • AI-coding skill

Procedure Extractor by the numbers

  • 4 all-time installs (skills.sh)
  • Ranked #13,372 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/naoterumaker/manabi-skills --skill procedure-extractor

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs4
Last updatedJuly 30, 2026
Repositorynaoterumaker/manabi-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Procedure Extractor

推奨実行モデル & 並列化

モデル: sonnet 必須(opusはコスト3-5倍。精度差は小さい) haiku禁止: 手順の意味的な紐付けにはsonnet以上が必要

並列化: 章をN分割してN Agent並列起動

章数推奨並列度各Agent担当章数
~12章2 Agent6章ずつ
~24章4 Agent6章ずつ
~36章4-6 Agent6-9章ずつ
36章+6 Agent6-10章ずつ

Agent起動テンプレート:

Agent(
  model: "sonnet",
  mode: "bypassPermissions",
  run_in_background: true,
  prompt: "Process chapters NN-NN of [bundle_path]..."
)

注意: visual-indexerは画像を全Read するため最もコスト重い。必ずsonnet+並列。opusで全章順次は禁じ手。

前提: visual-indexerが完了していること。procedure-extractorはvisual-index.jsonのフレーム情報を参照して手順とスクショを紐付ける。

---

WHAT

講座トランスクリプトからUIウォークスルー・操作手順を抽出し、visual-indexerが分類したスクリーンショットと紐付けて procedures.json を生成する。

WHY

  • 講座動画には「概念の説明」と「操作の実演」が混在している
  • concept-extractorは概念・定義・名言を抽出するが、操作手順は対象外
  • 手順はスクリーンショットと紐付けることで初めて再現可能になる
  • 本スキルはマルチモーダル(スクショを実際に読む)である点がconcept-extractorと異なる

concept-extractorとの境界

対象担当スキル
概念・定義・理論concept-extractor「壁打ちとは〜」
名言・引用concept-extractor「AIは道具です」
画面操作・設定手順procedure-extractor「ここをクリックして〜」
ツール操作のデモprocedure-extractor「noteで検索欄に入力して〜」

---

入力の優先順位

優先度ソース用途
1chapters/{id}/manual.md手順の文脈理解(編集済みで構造化されている)
2chapters/{id}/transcript.txt手順の詳細(操作の言い回しが残っている)
3chapters/{id}/visual-index.jsonスクショ紐付け(必須)
4resources-manifest.jsonリソース参照の紐付け

マニュアルとトランスクリプトの両方を読むのがベスト。 マニュアルで手順の構造を把握し、トランスクリプトで具体的な操作の言い回しを拾う。

---

BLOCKER gates

以下を満たさない場合は処理を中断し、ユーザーに報告する。

Gateチェック内容中断時メッセージ
B1manifest.jsonが存在するmanifest.jsonが見つかりません。course-bundleを先に実行してください。
B2対象チャプターのvisual-index.jsonが存在するvisual-index.jsonが見つかりません。visual-indexerを先に実行してください。
B3対象チャプターのtranscript.txtが存在するtranscript.txtが見つかりません。

---

処理フロー

1. manifest.json を読む
2. 対象チャプターの visual-index.json を読む  ← BLOCKER B2
3. 対象チャプターの transcript.txt を読む     ← BLOCKER B3
4. 対象チャプターの manual.md があれば読む(構造化済みマニュアル)
5. transcript_ts.json があれば読む(タイムスタンプ付きセグメント)
6. resources-manifest.json があれば読む(リソース参照用)
7. トランスクリプト(+マニュアル)から手順的言語パターンをスキャン
8. 関連するアクションをprocedureにグルーピング
9. 各ステップをスクリーンショットと紐付け(→ Screenshot Correlation)
10. 各ステップのリソース参照を紐付け(→ リソース参照の紐付け)
11. procedures.json を生成
12. 自己検証を実行

---

Step 5: 手順的言語パターンの検出

トランスクリプトから以下のパターンを検出する。詳細は references/visual-correlation.md を参照。

アクション動詞パターン

カテゴリパターン例
クリック系クリック、タップ、押す、押して、ポチッと
入力系入力、入れて、打って、書いて、貼り付け
選択系選択、選んで、チェック、オン/オフ
移動系開く、アクセス、移動、飛んで、遷移
設定系設定、変更、切り替え、オンにして
指示語+動詞「ここを〜」「この画面で〜」「こちらの〜」

グルーピングルール

NGOK理由
1つの巨大procedure(20ステップ)5-8ステップの小さなprocedureに分割長い手順は理解しにくい
概念説明を手順として抽出明確なアクション(動詞+対象)のみ抽出概念はconcept-extractorの領域
文脈なしにステップを列挙titleとoutcomeで手順の目的を明示手順だけでは「何のために」がわからない
リソース参照を無視してaction文だけ記録resource_refで外部リソースを紐付けスキル化時にリソースをassets/に含められる
マニュアルがあるのにトランスクリプトだけから抽出マニュアル+トランスクリプト両方を活用マニュアルは構造化済みで手順の把握が容易

分割の目安:

  • 画面が変わるタイミング
  • 目的が変わるタイミング(「検索する」→「購入する」)
  • 8ステップを超えたら分割を検討

---

Step 7: Screenshot Correlation

スクリーンショットとの紐付けロジック。

紐付けフロー

1. transcript_ts.json からアクション動詞の出現タイムスタンプを特定
2. visual-index.json で該当タイムスタンプ付近のフレームを検索
   - 対象: type が browser_screenshot または terminal_screenshot のフレーム
   - 範囲: アクション前後 ±5秒
3. 候補フレームを Read ツールで実際に読み、内容を確認
4. トランスクリプトの操作内容と画面内容が一致するフレームを screenshot_ref に設定

紐付けルール

NGOK理由
screenshot_refに存在しないファイルを指定visual-indexから実在するフレームのみ参照壊れた参照はスキル合成時にエラーになる
全ステップにscreenshot_refを強制スクショなしのステップは screenshot_ref: nullすべてのアクションに画面があるわけではない
1枚のスクショを無理に1ステップに限定複数ステップが同一スクショを参照してもよい同じ画面での連続操作は自然
タイムスタンプだけで機械的にマッチ画像の中身を実際に読んで確認タイムスタンプのずれは頻繁に発生する

transcript_ts.json がない場合

タイムスタンプ情報がない場合は以下で代替する: 1. トランスクリプト内の位置(先頭からの割合)でチャプター全体の時間軸を推定 2. visual-index.json のフレーム順序と照合 3. 画像内容を実際に読んで、トランスクリプトの文脈と照合

---

Step 10: リソース参照の紐付け

手順内で外部リソースを使用するステップには resource_ref を設定する。

検知パターン

  • 「Notionからコピー」「テンプレートを使って」「PDFを参照」
  • 「ここにあるプロンプトを」「ダウンロードして」

紐付け方法

1. resources-manifest.json を読む 2. 手順内のリソース言及を検知 3. manifest内の該当リソースとマッチング 4. resource_ref にパスを設定(マッチしない場合は null)

---

出力フォーマット: procedures.json

チャプターごとに procedures.json を生成する。

{
  "chapter_id": "06",
  "procedures": [
    {
      "id": "p06-01",
      "title": "noteでプロンプトを検索する方法",
      "steps": [
        { "step": 1, "action": "NotionからPredictionXプロンプトをコピー", "screenshot_ref": "frame_011.jpg", "resource_ref": "prompts/prediction-x.md" },
        { "step": 2, "action": "note.comにアクセス", "screenshot_ref": "frame_012.jpg", "resource_ref": null },
        { "step": 3, "action": "検索欄に「プロンプト」と入力", "screenshot_ref": "frame_013.jpg", "resource_ref": null },
        { "step": 4, "action": "有料のみフィルタを選択", "screenshot_ref": "frame_014.jpg", "resource_ref": null }
      ],
      "outcome": "有料のプロンプト一覧が表示される",
      "tags": ["note", "プロンプト検索", "壁打ち"],
      "prerequisites": ["c03-02"],
      "difficulty": "beginner"
    }
  ]
}

フィールド仕様

フィールド必須説明
chapter_idYesチャプター番号(manifest.jsonと一致)
procedures[].idYesp{chapter_id}-{連番} 形式
procedures[].titleYes手順の目的を表す簡潔なタイトル
procedures[].steps[].stepYesステップ番号(1始まり)
procedures[].steps[].actionYes具体的な操作内容
procedures[].steps[].screenshot_refYesフレームファイル名 or null
procedures[].steps[].resource_refNoリソースファイルパス or null(resources-manifest.jsonと対応)
procedures[].outcomeYesこの手順を完了すると何が起きるか
procedures[].tagsYes具体的なタグ(ツール名・機能名)
procedures[].prerequisitesNo前提となるconcept ID(c{xx}-{yy}形式)
procedures[].difficultyYesbeginner / intermediate / advanced

difficulty 判定基準

レベル基準
beginner1画面で完結、特別な知識不要
intermediate複数画面遷移、設定項目の理解が必要
advanced外部連携、API設定、条件分岐あり

---

Step 9: 自己検証

生成後に以下をすべてチェックする。1つでも失敗したら修正する。

  • [ ] 各procedureに明確なtitleとoutcomeがあるか
  • [ ] screenshot_refが全てvisual-index.jsonに存在するフレームを指しているか
  • [ ] stepsの順序が論理的か(前提なしに後段のステップが来ていないか)
  • [ ] tagsが具体的か(「その他」のような曖昧タグがないか)
  • [ ] 概念的な内容が混入していないか(それはconcept-extractorの仕事)
  • [ ] 1つのprocedureが8ステップ以下か
  • [ ] procedures.jsonが schemas/procedures.schema.json に準拠しているか
  • [ ] 全screenshot_refのファイルが実際に存在するか(Bashで確認)
  • [ ] resource_refが設定されたステップのパスがresources-manifest.jsonに存在するか
  • [ ] マニュアルがある章でマニュアルを参照したか

screenshot_ref 検証コマンド

# procedures.jsonから全screenshot_refを抽出し、存在チェック
jq -r '.procedures[].steps[].screenshot_ref // empty' procedures.json | while read f; do
  [ -f "$FRAMES_DIR/$f" ] || echo "MISSING: $f"
done

---

ユーザーへの提示

処理完了後、以下の形式で報告する:

## 手順抽出完了: Chapter {id}

- 抽出数: {n} procedures, {m} total steps
- スクショ紐付け: {linked}/{total} steps にスクショあり
- 難易度分布: beginner={b}, intermediate={i}, advanced={a}

### 抽出した手順一覧
| ID | タイトル | ステップ数 | スクショ数 |
|----|---------|----------|----------|
| p{id}-01 | ... | 5 | 3 |
| p{id}-02 | ... | 4 | 4 |

出力先: {path}/procedures.json

---

このスキルがやらないこと

やらないこと理由代わりに使うスキル
概念・定義の抽出テキストのみの作業concept-extractor
動画のフレーム切り出し前処理video-to-frames
スクショの分類・インデックス作成前処理visual-indexer
動画ダウンロード前処理video-downloader
マニュアル文書の生成後工程(別スキル)

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.