wf-next
Orchestrates multi-step project workflows by advancing collections to their next phase while maintaining state consistency.
Install
mkdir -p .claude/skills/wf-next && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19129" && unzip -o skill.zip -d .claude/skills/wf-next && rm skill.zipInstalls to .claude/skills/wf-next
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use when 既存コレクション(collections/planning/)を一段進めるとき。「次どうする?」「続き進めて」で発動。進捗閲覧のみは /wf-status、新規は /wf-newKey capabilities
- →Orchestrate workflow phase transitions
- →Detect completed material automatically
- →Delegate tasks to subagents
- →Verify output consistency
- →Manage workflow-state.json
How it works
The skill reads the workflow-state.json to identify the current phase and delegates specific tasks to subagents. It verifies the output of each subagent against the state before proceeding to the next step.
Inputs & outputs
When to use wf-next
- →Advancing a content project to the next stage
- →Continuing a multi-step development collection
- →Automating phase transitions in a planning workflow
- →Resuming an interrupted project task
About this skill
前後工程
前工程:/wf-auto,/wf-new後工程:/analytics-analyze,/flop-analysis
Overview
既存コレクションを次工程へ進めるオーケストレーター。完了済みの素材を自動検出し、未完了のステップから再開する。
/wf-auto から固定 collection を委譲された場合も本スキルが state 更新の単一責務を持つ。統合 runner の allow_external_publish = false 制約ではローカル動画・metadata 生成まで進め、YouTube 書き込み直前で停止する。対話 gate の承認後は同じ run へ結果を返し、resolver が実成果物を再評価する。
Hard Gates: subagent 委譲境界
- メインエージェントだけが
workflow-state.jsonを読み書きし、phase遷移、assets/upload/updated_at更新を行う。subagent は委譲先 skill の入力確認に必要な場合だけ state を読み、書き込まない。 - AskUserQuestion、
skip_*_approvalの承認ゲート、候補選択、playlist 初期化などの承認はメインエージェントが完了させる。未承認の操作を subagent へ委譲しない。 - 各フェーズの生成・変換処理は Agent ツールで一作業ずつ subagent へ委譲する。委譲プロンプトには入力パス、実行する skill / CLI、期待成果物、state 書き込み禁止、完了報告形式を明記する。
- subagent 終了後、メインエージェントが期待成果物の存在と現在の
phase/assetsとの整合を実ファイルで検証する。すべて PASS の場合だけ state を更新する。失敗、欠落、不整合時は state を変更せず、同じステップから再実行できる状態で停止する。
委譲プロンプトには上記 3 の要素を具体値で埋め、成果物は絶対パスで受け取る。subagent の status: success だけを更新根拠にせず、実ファイルで検証する。
このセッションで初めて
/wf-*を呼ぶ場合は、先にdocs/workflow-cheatsheet.mdの判定フローを 1 回だけユーザーに提示すること。
When to Use
| 状況 | 使う? |
|---|---|
| 制作中コレクションがあり、次工程へ進める意思がある | ✅ 使う |
| 制作中コレクションがそもそも無い | ❌ /wf-new を使う(または /collection-ideate で候補から) |
| 「進んでる?」と読み取りだけ求められた | ❌ /wf-status を使う |
| 公開済み動画の振り返り | ❌ /analytics-analyze または /flop-analysis |
/wf-next は workflow-state.json::phase を読み取り、対応する次工程を 1 段だけ実行して assets / phase を更新する。冪等性あり:途中エラーで停止しても、再実行で未完了ステップから再開する。ユーザーが workflow-state.json を手で編集すると冪等性の前提が崩れる(扱い基準)。
前提
config/channel/ が存在すること(load_config() でロード可能)。
存在しない場合、ユーザーに確認:
- 新規チャンネル →
/channel-newを案内 - 既存チャンネル(YouTube で既に運営中)→
/channel-new(既存チャンネル取り込みモード)を案内
承認ゲート(config 駆動)
config/channel/workflow.json の workflow.wf_next で、フェーズ進行前に承認を取るかをチャンネルごとに宣言できる。boolean は skip_manual_mastering と同じく true = 手動工程(承認)を省いて自動進行 の向きに統一されている(#1744)。SKILL.md 本体を書き換える運用は不要(yt-skills sync の衝突を避けるためにも本ファイルは編集しない)。
{
"workflow": {
"wf_next": {
"skip_audio_approval": true,
"skip_upload_approval": true,
"skip_manual_mastering": false
}
}
}
skip_audio_approval(defaulttrue):falseにするとpreparedフェーズ 2-B(音源承認ゲート)で、最終マスター候補を検出した時点で承認を取るskip_upload_approval(defaulttrue):falseにするとmasteredフェーズ 3-B(アップロード承認ゲート)で、/video-upload実行直前に承認を取る- 既定値は両方
trueで、workflow.jsonに何も書かれていない既存チャンネルは従来通り全自動進行(後方互換) - 旧キー
approval_gates.audio/approval_gates.uploadは廃止済みで、設定に残っている場合はConfigErrorで停止する。skip_audio_approval/skip_upload_approvalへ移行する - 値の解決は
youtube_automation.configuration.load_config().workflow.wf_next経由(skip_audio_approval/skip_upload_approval/skip_manual_mastering。コード側で参照可能)
skip_*_approval = false のゲートに到達したら、本 skill は AskUserQuestion で承認を取り、却下されたらフロー停止 + ガイダンスのみで終了する。
raw master 直採用(skip_manual_mastering)
workflow.wf_next.skip_manual_mastering(default false)は、prepared フェーズ 2-B(マスター音源検出)で raw master と別の最終マスター候補が 01-master/ に見つからないときの挙動を切り替える。
true:assets.raw_masterのファイル名をそのままassets.master_audioとして採用し、phase: "mastered"へ進む。「raw(自動クロスフェード結合出力)を外部 DAW でマスタリングせずそのまま公開する」運用(raw=final)をチャンネル単位で宣言するためのオプションfalse(未設定含む): 従来通り、ユーザーが最終マスターを01-master/に配置するまで停止する
skip_audio_approval とは独立した設定であることに注意。skip_audio_approval は「候補を採用する前に確認プロンプトを出すかどうか」だけを制御し、候補そのものの自動採用/スキップ判断には関与しない。skip_manual_mastering: true かつ skip_audio_approval: false の場合は、raw master を採用する前に承認を取る。
想定 API call 数
| API | call 数 / 実行 | 変動要因 |
|---|---|---|
| videos.insert(1,600 units / 本、mastered フェーズの yt-upload-collection / yt-upload-auto) | アップロード本数 | collection / release 型・進行フェーズ |
| playlists.insert / playlistItems.insert(各 50 units、yt-playlist-manager --init) | 新規プレイリスト数 + 割当本数 | プレイリスト構成 |
| Vertex AI Lyria(subagent /lyria 委譲時) | /lyria の「想定 API call 数」を参照 | Lyria パス採否 |
- 上限 / 承認: upload 前に
--planで事前確認し、playlist 系は--dry-runを使う。/videoup /masterup /video-description はローカル処理で API 0。委譲先 skill の見積もりは各 skill の「想定 API call 数」を参照。
Instructions
1. アクティブなコレクションの特定
-
collections/planning/のworkflow-state.jsonを探索 -
複数ある場合はユーザーに選択を促す
-
対象確定後、フェーズ処理へ進む前に骨格プリフライトを実行する(fail-loud、#1494):
uv run yt-collection-preflight <collection-dir-name>[NG](01-master/等の欠落)が報告されたらuv run yt-collection-preflight <collection-dir-name> --fixで補完してから続行する。欠落したまま後工程へ進むと/masterup//videoupがマスター音源の置き場を見失う
2. フェーズ別処理
prepared → 段階的サポート
完了済みの素材と音楽エンジンを確認し、未完了の作業を案内・実行。
Suno パス:
assets.music_prompts = true+assets.raw_master = null:workflow-state.json::planning.music.suno_playlist_urlの記録有無と02-Individual-music/の音声ファイル(mp3 / m4a / wav)実在を確認する02-Individual-music/に音声ファイルが 1 件以上存在(URL 記録の有無は問わない):- AskUserQuestion による URL 入力はスキップする。title list は
/masterupStep 1.6 がローカルファイル名から自動復元するため playlist URL は不要。メインが/masterupの dry-run / 検証ゲートを実行し、選曲・混入許容・over-max 例外などの承認分岐をすべて解決する - Agent ツールで subagent を起動し、対象 collection、(記録があれば)playlist URL、承認済み選択条件を入力として
/masterupの Subagent Contract を実行させる。workflow-state.json更新と雨レイヤー後処理は実行させない - 期待成果物
01-master/master.*と01-master/.selection.logの存在をメインが確認し、成功時だけassets.raw_masterとupdated_atを更新する。雨レイヤーが有効なら、その後にメインが/masterupStep 5.6 を実行し、出力と state を再検証する - ガイダンス: 「raw master をミキシング+マスタリングし、最終マスターを 01-master/ に配置後、
/wf-nextを再実行してください」 - ここでフロー停止
- AskUserQuestion による URL 入力はスキップする。title list は
- URL 記録済みだが
02-Individual-music/に音声ファイルが無い:- URL 再入力は要求せず、「ダウンロードが完了していない可能性があります。
/suno-helperを再開するか手動でダウンロードしてから/wf-nextを再実行してください」を表示 - ここでフロー停止(
/masterupは自動実行しない)
- URL 再入力は要求せず、「ダウンロードが完了していない可能性があります。
- URL 未記録(キー自体が無い、または
null)かつ02-Individual-music/に音声ファイルも無い:- 従来通りユーザーにプレイリスト URL を AskUserQuestion で取得
- URL 取得後、上記と同じくメインが
/masterupの承認分岐を解決し、Agent ツールで Subagent Contract を委譲する - メインが
01-master/master.*と01-master/.selection.logを検証し、成功時だけassets.raw_masterとupdated_atを更新する - ガイダンス: 「raw master をミキシング+マスタリングし、最終マスターを 01-master/ に配置後、
/wf-nextを再実行してください」 - ここでフロー停止
Lyria パス:
assets.music_prompts = true+assets.raw_master = null:- Agent ツールで subagent を起動し、対象 collection と theme を入力に
/lyria <theme>の Lyria 3 API セグメント生成だけを実行させる(最大 ~184 秒/リクエスト)。state 書き込みと承認取得は禁止する - 委譲前に期待する
02-Individual-music/の音声ファイルと01-master/の raw master パスを列挙する。メインが実在を確認し、成功時だけassets.raw_masterとupdated_atを更新する - ガイダンス: 「生成されたセグメントをミキシング+マスタリングし、最終マスターを 01-master/ に配置後、
/wf-nextを再実行してください」 - ここでフロー停止
- Agent ツールで subagent を起動し、対象 collection と theme を入力に
マスター音源検出(音源承認ゲート 2-B):
2. assets.raw_master != null + assets.master_audio = null:
-
判定・state 更新は reference script を使う。worktree 外(main repo 側)で採用する最終マスター候補を見つけた場合は、先に worktree 側
01-master/へコピーしてから script を実行する。script は worktree 側01-master/とworkflow-state.jsonを唯一の書き込み対象にする。SKIP_MANUAL_MASTERING="$(python3 -c 'from youtube_automation.configuration import load_config; print(str(load_config().workflow.wf_next.skip_manual_mastering).lower())')" SKIP_AUDIO_APPROVAL="$(python3 -c 'from youtube_automation.configuration import load_config; print(str(load_config().workflow.wf_next.skip_audio_approval).lower())')" python3 "$(git rev-parse --show-toplevel)/.claude/skills/wf-next/references/master_audio_transition.py" \ "$COLLECTION_DIR" \ --skip-manual-mastering "$SKIP_MANUAL_MASTERING" \ --skip-audio-approval "$SKIP_AUDIO_APPROVAL"action: "needs_selection"が返った場合は、candidate_sources[].id(例:main:final.wav/worktree:final.wav)から採用候補を AskUserQuestion で確認し、--selected-master-audio <id>を付けて同じコマンドを再実行する。候補ファイル名が一意なら従来通り<filename>でもよいが、worktree と main repo 側で同名候補がある場合は<id>が必須。action: "needs_approval"が返った場合だけ AskUserQuestion で承認を取り、承認なら--approved yes --approved-master-audio <master_audio>、却下なら--approved no --approved-master-audio <master_audio>を付けて同じコマンドを再実行する。複数候補かつ承認ゲートありの場合は、選択後の再実行でneeds_approvalが返るため、承認時も--selected-master-audio <id> --approved yes --approved-master-audio <filename>を付ける。承認対象と再実行時の採用予定ファイルが一致しない場合、script は state を更新せず再承認を要求する。この script の出力とworkflow-state.json更新結果を 2-B の実行契約とする。 -
走査対象:
- worktree 内
01-master/を必ず走査 - worktree 検知:
git rev-parse --git-common-dirがカレント.gitと異なる絶対パスを返したら worktree 内とみなし、メインリポルート(git-common-dirの親ディレクトリ)のcollections/planning/<collection-name>/01-master/も確認する。採用するファイルが main repo 側にある場合は、state 更新前に worktree 側01-master/へコピーする(state 更新後の動画化が worktree 内で完結するように)
- worktree 内
-
候補抽出: raw_master と異なるファイルのうち
.m4a/.wav/.flac/.aac/.mp3を最終マスター候補として列挙 -
検出できた場合:
- 複数候補があればユーザーに採用ファイルを確認(worktree 内と main repo 側で同名ファイルが両方ある場合も含む)
- 採用ファイルが worktree 外(main repo 側)にあるときは worktree 側
01-master/にコピーしてから処理(state 更新後の動画化が worktree 内で完結するように) - 承認ゲート(
skip_audio_approval = falseのとき): 採用ファイル名を提示して AskUserQuestion で「この音源でmasteredに進めてよいか」を確認する。承認されたら下記の state 更新へ進む。却下されたらassets.master_audioを更新せず、ガイダンス「最終マスターを差し替えて/wf-nextを再実行してください」を表示して停止 assets.master_audioにファイル名のみ記録 →phase: "mastered"→ 自動的に公開フローへ進む(skip_audio_approval = trueのときは確認なし)
-
検出できない場合:
workflow.wf_next.skip_manual_mastering = trueのとき(raw=final 運用):assets.raw_masterのファイル名をそのまま最終マスターとして採用する。承認ゲート(skip_audio_approval = false)が有効なら、raw master 直採用であることを明示して AskUserQuestion で確認してから進む。assets.master_audioにassets.raw_masterと同じファイル名を記録 →phase: "mastered"→ 自動的に公開フローへ進むskip_manual_mastering = false(未設定含む、デフォルト): ガイダンス「最終マスターを 01-master/ に配置後、/wf-nextを再実行してください」を表示して停止(従来動作)
mastered → 公開フロー(アップロード承認ゲートあり)
以下を一気通貫実行する。実作業は subagent、成果物検証と各ステップ完了時の workflow-state.json 更新はメインが担当し、途中で中断しても同じ状態から再開できる。
- 並列 A(2 Agent 同時起動):
- Agent 1: 対象 collection、
01-master/<assets.master_audio>、10-assets/main.png/jpgまたはloop.mp4を入力に Skill/videoupの Subagent Contract を実行。thumbna
- Agent 1: 対象 collection、
Content truncated.
When not to use it
- →Starting a new collection
- →Checking workflow status only
- →Analyzing published video performance
Prerequisites
Limitations
- →Main agent only writes to workflow-state.json
- →Subagents cannot update workflow state
- →Requires preflight check before execution
How it compares
It acts as an orchestrator that enforces strict delegation boundaries, ensuring the main agent validates all subagent outputs before updating the project state, unlike manual workflows.
Compared to similar skills
wf-next side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| wf-next (this skill) | 0 | 9d | Review | Intermediate |
| trello | 41 | 2mo | Review | Beginner |
| executing-plans | 6 | 2mo | No flags | Intermediate |
| github-project-management | 4 | 5mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by daiki-beppu
View all by daiki-beppu →You might also like
trello
openclaw
Manage Trello boards, lists, and cards via the Trello REST API.
executing-plans
obra
Use when you have a written implementation plan to execute in a separate session with review checkpoints
github-project-management
ruvnet
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
project-clickup
incidentfox
ClickUp project management integration for incident tracking and task management
coo-advisor
alirezarezvani
Operations leadership for scaling companies. Process design, OKR execution, operational cadence, and scaling playbooks. Use when designing operations, setting up OKRs, building processes, scaling teams, analyzing bottlenecks, planning operational cadence, or when user mentions COO, operations, process improvement, OKRs, scaling, operational efficiency, or execution.
tlc-spec-driven
tech-leads-club
Project and feature planning with 4 phases - Specify, Design, Tasks, Implement+Validate. Creates atomic tasks with verification criteria and maintains persistent memory across sessions. Stack-agnostic. Use when: (1) Starting new projects (initialize vision, goals, roadmap), (2) Working with existing codebases (map stack, architecture, conventions), (3) Planning features (requirements, design, task breakdown), (4) Implementing with verification, (5) Tracking decisions/blockers across sessions, (6) Pausing/resuming work. Triggers on "initialize project", "map codebase", "specify feature", "design", "tasks", "implement", "pause work", "resume work".