一键导入
symphony-workflow
Symphony orchestrator からディスパッチされた bg セッションの共通実行手順。Linear issue のステータス振り分け、workpad 運用、実装から Human Review 遷移、マージまでを定義する。Symphony の bg セッション起動直後に呼ぶ
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Symphony orchestrator からディスパッチされた bg セッションの共通実行手順。Linear issue のステータス振り分け、workpad 運用、実装から Human Review 遷移、マージまでを定義する。Symphony の bg セッション起動直後に呼ぶ
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
codex review CLIを使用したコードレビュー。セルフレビュー、PR作成前チェック、コミット確認に使用。「レビューして」「変更を確認して」で発動
AI 生成コード由来のノイズ検出。過剰コメント、防御的 try/catch、`any` キャスト、深いネスト、周辺と不整合な書き方を `origin/main` との diff から拾い指摘する。「deslop して」「AI っぽい部分削って」「不要なコメント探して」で発動
PR のコンフリクト監視・レビュー応答・CI 復旧・マージまでを一括で面倒見るスキル。「land して」「PR をマージ」「Merging を流して」等で発動する。マージ完了までユーザーへ制御を返さずウォッチャーループを回し続ける
指定 PR の 3 channel feedback (top-level / inline review / review summary) を 1 回で取得し structured markdown で返す。引数は PR 番号 / PR URL / なし (現 branch から解決) の 3 パターン。channel を取りこぼさない単一手順
Linear issue 上の `## Codex Workpad` ヘッダ付き コメント を 検索 / 作成 / 更新 する スキル。バックグラウンドセッション の進捗を 1 つの コメント に集約し、ターン 上限到達 や CI 失敗 を跨いだ永続記憶として使う。バックグラウンドセッション 起動直後と作業節目ごとに発動する
MUST use whenever Claude wants the user to read or review a file it has prepared or modified — markdown reports / plan files / design docs / summaries, drafts before MCP writes (Notion / Slack / Linear / Gmail drafts / Obsidian), SQL queries, code files, config files, or any text file that needs human eyes before the next step. Opens the file(s) in a tmux split pane with nvim so the user reviews while Claude continues editing.
| name | symphony-workflow |
| description | Symphony orchestrator からディスパッチされた bg セッションの共通実行手順。Linear issue のステータス振り分け、workpad 運用、実装から Human Review 遷移、マージまでを定義する。Symphony の bg セッション起動直後に呼ぶ |
Symphony からディスパッチされた bg セッションが Linear issue を処理する共通手順。リポジトリ固有の設定 (tracker / workspace / clone) と例外ルールはディスパッチプロンプト (各リポジトリの WORKFLOW.md) 側にあり、本スキルの共通手順を上書きする。
Linear MCP サーバー linear-mh4gf が利用可能である前提。設定されていなければ即座に止まり、ブロッカーを明示する。
workpad スキルを呼ぶ。## Codex Workpad コメントを検索または作成し、新しい実装に入る前に最新化する## Codex Workpad コメント 1 つ。"done" や要約の別コメントは出さないValidation / Test Plan / Testing の節があれば必須受け入れ条件として workpad に転記し、完了前に実行するmcp__linear-mh4gf__save_issue で別 issue を起票する。本 issue のスコープは広げない
Backlog に置き、同一プロジェクトに紐付け、本 issue を related でリンクするblockedBy を貼るworkpad — 単一の ## Codex Workpad Linear コメントを検索または作成し、計画 / 受け入れ条件 / 検証 / メモを 1 箇所に集約するparallel-review — Human Review 遷移前に bg セッション自身が行うセルフレビュー。AI 生成ノイズ、CLAUDE.md 違反、挙動の正しさに関わるバグの一次検出を行う。構成ツールと出力フォーマットはスキル本体を一次ソースとする。「並列レビュースイープ」の節で必須pr-feedback-fetch — PR の 3 チャンネルのフィードバック (トップレベル / インラインレビュー / レビューサマリー) を 1 回で取得する。「PR フィードバックスイープ」の節で必須。スキルが未配置の環境では同節の代替 3 コマンドを直接実行するland — Linear ステータスが Merging になったら、land スキルを繰り返し呼んで PR がマージされるまで進める。gh pr merge を直接叩かないBacklog — 本ワークフローのスコープ外。何も変更しないTodo — キュー待ち。作業に入る前に必ず In Progress へ動かす
Human Review へ戻すIn Progress — 実装稼働中Human Review — PR がアタッチ済みで検証完了、人間の Approve 待ち。本ワークフローの terminal_states に含まれるMerging — 人間が Approve 済み。land スキルのフローを実行するRework — レビュアーが方針の全リセットを要求。計画と実装を再度ゼロから行うDone — 終端。何もしないmcp__linear-mh4gf__get_issue を identifier で呼んで issue を取得するBacklog — issue を変更しない。Todo へ人間が動かすのを待って止まるTodo — 即 mcp__linear-mh4gf__save_issue で In Progress へ動かす。続けて workpad スキルで初期コメントを検索または作成し、ステップ 1 へ進む
In Progress — 現行の workpad コメントを起点に実行フローを続けるHuman Review — 終端。何もせず終了するMerging — land スキルを起動し、PR がマージされるまで繰り返す。gh pr merge を直接叩かないRework — ステップ 4 へ進むDone — 何もせず終了するCLOSED または MERGED なら、前回のブランチ作業は再利用しないorigin/main から新規ブランチを切って、新規の試行として実行フローを再起動するTodo チケットは次の順で開始する
mcp__linear-mh4gf__save_issue(state: "In Progress")workpad スキルで ## Codex Workpad の初期コメントを検索または作成するworkpad スキルで単一の永続 workpad コメントを検索または作成する
## Codex Workpad 見出しを検索するTodo 起点で来た場合、追加のステータス遷移で時間を使わない。本ステップ開始時には既に In Progress であるはずAcceptance Criteria と Validation がタスクと整合しているか確認する<host>:<abs-workdir>@<short-sha>mac-studio:/Users/hermes/.symphony/workspaces/<repo>/MH-XX@f3702a4Validation / Test Plan / Testing の節があれば、workpad の Acceptance Criteria と Validation へ必須チェックボックスとして転記する。任意項目への格下げは禁止Notes に記録する。コマンドと出力か、決定的な挙動の説明origin/main の最新をブランチへマージして同期し、結果を workpad の Notes に書く。マージ元 / clean か conflicts resolved か / 結果の HEAD short SHA を含めるbranch, git status, HEAD) を確認し、開始時の origin/main 同期結果が workpad に書かれているかを再確認する。書かれていなければ書くTodo なら In Progress へ動かす。それ以外はそのままTodo 起点で既に PR がアタッチされていたチケットは、新規の機能作業の前に PR フィードバックスイープを完走するValidation / Test Plan / Testing を実行する。未達は未完了とみなすValidation / Notes に残すgit push の前に必ずスコープの検証を走らせ、green を確認する。失敗なら原因を直してから再実行し、green を確認してからコミットしてプッシュするorigin/main の最新をブランチへマージし、コンフリクトを解消し、チェックを再実行する### Confusions 節を簡潔に追加するHuman Review へ動かす前に CI とフィードバックの締めのループを回す
gh pr checks を繰り返し確認し、全て green になるまで待つ。CI の失敗は本ターン内で直す。Stop hook は使わず、本スキルがそのループを担うPlan / Acceptance Criteria / Validation が完了した作業と過不足なく一致するよう更新するgh pr view --json isDraft で Draft 状態を確認し、Draft なら gh pr ready で Ready 化する。これで GitHub 側の ready_for_review イベントが発火し、Slack のレビュー通知が飛ぶ。例外: 阻害時のエスケープハッチに該当する真の外部ブロッカーの場合のみ Draft 維持可mcp__linear-mh4gf__save_issue で Human Review へ動かす
Human Review へ動かすTodo 起点で既に PR がアタッチされていたチケットは次を満たす
Human Review へ動かすHuman Review は本ワークフローの終端。bg セッションは終了し、Symphony は人間の操作まで再ディスパッチを止めるgh pr ready --undo) か、gitAutomationStates.draft イベント経由で In Progress へ動かす。Symphony が再ディスパッチし、bg セッションが既存 workpad から再開するRework へ動かす。Symphony が再ディスパッチし、bg セッションがステップ 4 を実行するMerging へ動かしたら、Symphony が再ディスパッチし、bg セッションが land スキルを起動するMerging 状態では land スキルを繰り返し呼んで PR がマージされるまで進める
land スキルは CI green / mergeable / Approve / Linear ステータス Merging を事前検証するgh pr merge --squash --delete-branch を実行するgitAutomationStates.merge イベント経由で Linear ステータスは Done へ動くgh pr merge を直接叩かないRework は方針の全リセット。少量の修正は通常の In Progress → Human Review のループで扱う。Rework は明示的な「やり直し」信号Notes に差分を書くgh pr close で閉じる## Codex Workpad コメントを mcp__linear-mh4gf__delete_comment で削除する。新規ブランチ + 新規 workpad の規約origin/main から新規ブランチを切るTodo なら In Progress へ動かす。それ以外はそのまま## Codex Workpad 初期コメントを作るHuman Review へ動かす前に bg セッション自身が行うセルフレビュー。AI 生成ノイズ、CLAUDE.md 違反、挙動の正しさに関わるバグを人間レビュアーの前段で塞ぐ。3 つのスイープの役割分担は次のとおり
gh pr checks 確認で担保する手順は次のとおり
/parallel-review を実行する。構成ツールと出力フォーマットはスキル本体を一次ソースとして扱う### Notes に時系列で追記する### Notes に記録した。プッシュバックで完了にした指摘は次回スイープで再出現しても対応対象から除外する/parallel-review を再実行する。プッシュバックだけの対応なら再実行不要。対応が必要な指摘が残らなくなった時点で本スイープを完了とする### Notes に記録し、スイープを完了扱いとする。スキル全体が実行不能な時のみエスケープハッチ (下記の阻害時の節) を適用するPR がアタッチされたチケットは、本スイープを完走させてから Human Review へ動かす。
pr-feedback-fetch スキルを呼んで PR の 3 チャンネルのフィードバックを 1 回で取得する。引数は次のいずれか
200) — 番号指定取得 channel: 3/3 の集計まで揃えて返す。チャンネルを個別に叩き分けないgh api repos/<owner>/<repo>/issues/<pr>/commentsgh api repos/<owner>/<repo>/pulls/<pr>/commentsgh api repos/<owner>/<repo>/pulls/<pr>/reviewspr-feedback-fetch スキルを再度呼び、対応が必要なコメントが残らなくなるまで本スイープを繰り返すインラインレビューコメントへの返信を投稿する時、gh api -f body='...' は使わない。本文中のバッククォート (`) や $ が zsh のコマンド置換や変数展開として解釈され、囲まれた部分が黙って消える。下書きを .claude/tmp/ 配下のファイルに書き、jq -n --rawfile body <path> ... | gh api ... --input - で標準入力から渡す。詳細は land スキル SKILL.md のレビュー対応節を参照する。同じ問題は gh issue comment やトップレベルの gh pr comment でも起きるので、それぞれ --body-file <path> を使う
完了を阻害する必須ツールや認証 / 権限の不足がセッション内で解消できない時のみ本ハッチを使う。
Human Review へ動かし、workpad にブロッカー概要を書く
Human Review へ動かす時は PR を Ready 化せず Draft のまま遷移してよい。完了バーの「PR が Ready 状態」要件はこの経路に限り免除される。ブロッカー概要から人間が状況を把握するHuman Review へ動かす。完了バーの「並列レビュースイープ完走」要件はこの経路に限り免除される。部分失敗 (一部ツールのみ失敗) は本ハッチの対象外で、並列レビュースイープの手順 5 に従う次の全項目を満たした時のみ Human Review へ動かす。
gh pr view --json isDraft で確認する。GitHub の ready_for_review イベントを発火させ、Slack 通知で人間が Approve のタイミングを拾えるようにするため。例外: 阻害時のエスケープハッチに該当する場合のみ Draft のまま遷移するorigin/main から新規ブランチを切り、再現 / 計画からやり直すBacklog なら何も変更しない。人間が Todo へ動かすのを待つ## Codex Workpad)Backlog issue を作って受ける。本 issue のスコープは広げない
related でリンクし、依存があれば blockedBy を貼るHuman Review へ動かさないHuman Review は本ワークフローの終端。動かした時点でセッションは終了するDone) なら何もせず終了する永続 workpad コメントは次の構造を使い、実行中ずっとその場で更新する。
## Codex Workpad
```text
<hostname>:<abs-path>@<short-sha>
```
### Plan
- [ ] 1\. Parent task
- [ ] 1.1 Child task
- [ ] 1.2 Child task
- [ ] 2\. Parent task
### Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
### Validation
- [ ] targeted tests: `<command>`
### Notes
- <short progress note with timestamp>
### Confusions
- <only include when something was confusing during execution>
PR タイトル末尾に (<issue identifier>) を付ける (例: docs(workflow): ... (MH-67))。identifier はディスパッチプロンプトの ## Issue 節の値をそのまま使う。Linear がこの記載を読んで PR を自動アタッチする。
参照 — https://linear.app/docs/github#linking-linear-issues-to-github-prs
URL スラッグやタイトルから推論した別形 (例: 余計な桁を足す等) を書かない。
ブランチ名や PR 本文には identifier の記載を要求しない。リンクは PR タイトル 1 箇所だけで成立する。
アタッチ検証は PR 作成直後の必須ステップとして次を行う
mcp__linear-mh4gf__get_issue を再実行するattachments 配列に対象 PR の URL が含まれていることを確認するgh pr edit --title で修正して再検証するHuman Review で人間判断に委ねるmain への直接プッシュ禁止。必ず gh pr create で PR を出す(<issue identifier>) を必須記載 (例: docs(workflow): ... (MH-67))get_issue 結果から取る)。人間のレビュアーが Linear へ遷移できるようにするため--body-file で渡す。.claude/tmp/pr-body-<slug>.md に書いて gh pr create --body-file <path> で渡す