【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/af」「この作業完了」「クローズして」「一旦ここまで」「今日はここで止める」「いったん置いておく」など終える・中断する意図で発動。このスキルを経由せずにupdate_activityでcompleted・pending・snoozed・shelvedにしない。
中文简介正在准备中。当前显示原文说明。
【必須】仕事を複数の子に分けてbgに振り、まとめ役として追う・引き継ぐ・終える。
「orchとして進める」「この[統合]をorchにして」「bgに振って」「orchの状況見せて」「○○のorch終えて」や、`orch`タグの付いたアクティビティにcheck-inしたとき、1体で抱えきれないと判断したとき(スコープが広すぎる・複雑で自信が持てない・情報が足りない・文脈を1体で持てない)に発動。
このスキルを経由せずにorchの起票・子の束縛・終了判定をしない。
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
orchとは、orchタグの付いた未完了のアクティビティで、説明の先頭に「担い手」欄を持つもの。担い手欄に名前とsessionIdで書かれた窓口が、今のorchの担当(今の担い手)である。担い手欄が「空席」、または書かれた窓口が生きていない状態は異常ではない。子として振ったbgは動き続け、報告はログに溜まる。
一生のサイクルは次の順で回る。
orchの担い手は、子になる作業をサブエージェントやWorkflowでも自分でせず、必ずbgに振る。orchが自分でやるのはまとめ役の仕事(振り分け・状態の確認・他セッションとの調整・ユーザーへの取り次ぎ)と、自分の判断のための協議(相談役との協議)だけである。
orchは束ねるだけでなく、担当範囲の成果に責任を負う。判断が要る場面では、ユーザーに聞く前に、相談役との協議と実データの収集(調査・実測はbgに振る)で自分で詰める。相談役とは、判断の材料と案を返すだけの相談専用のサブエージェント(その環境で呼べる設計・推論向けのロール。無ければ、判断の論点と材料を渡して案を求めるサブエージェント)を指す。協議は結論を出すための相談で、調査・実測・実装の作業は含まない。結論と責任はorchが持つ。ユーザーに上げるのはユーザーに上げるものの列挙に当たるものだけで、それ以外は在席でも自分で決め、決めた内容と根拠を報告する。
「orchとして進める」「bgに振って」「orchの状況見せて」「○○のorch続けて」「○○のorch終えて」などのユーザー発話のほか、窓口のClaudeが自分1体で抱えきれないと判断した場面でも自発的に発動してよい。orchタグの付いたアクティビティにcheck-inしたとき(check-in skill経由か、check_inツールの直接呼び出しかを問わない)は、ユーザーの発話がただの「続きやる」「チェックイン」でも必ず発動し、代わる節から入る。
窓口が自分1体で抱えきれないと判断する目安は、判断の要る子の目標が2つ以上ある・長く待つ、に加えて、次のどれかに当たるとき。
bgに振らずその場で完結する単発の作業やレビューには発動しない。
一覧節の手順でsearchし、同じ範囲のorchが既にあるか確認する。
orchは無いが、同じ範囲を束ねる未完了のまとめ役(orchタグも担い手欄も無い「[統合]」など)があるとき、またはユーザーが既存のアクティビティを名指ししてorchにするよう頼んだときは、新しく起票せず、それをorchにする(既存のまとめ役をorchにする)。新しく起票すると、同じ範囲に親が2本並ぶ。
add_activityを直接呼ぶ(check_in=True)。intentはintent:discussorchを含める。domainや内容を表す素タグも付けるclaude agents --jsonでpidが$CLAUDE_PIDの行のnameとsessionIdを使う)recompose-context skillで、束ね役の親の提案にユーザーが了承したときの起票。bgに振る話ではなく、同じテーマの子を束ねるために立てる。
add_activityで起票する。担い手欄は「空席」とする。この時点ではgoalを書かないget_by_idsで今のタグと説明を読み、get_goalでgoalのlabelを読む。labelがclosed(判定済み)なら、そのアクティビティはorchにせず無ければ起票するへ進むupdate_activityを1回だけ呼び、説明とタグを同時に書き換える。分けて書くと「タグはあるが担い手欄が無い」途中の状態ができ、一覧の付け替えがタグを外してしまう
orchを足し、intentをintent:discussに替える。update_activityのtagsは全置換なので、読んだタグを落とさないundefined: 雛形どおりset_goalで作るnot_needed(常駐の不要印): set_goal(..., replace=True)で雛形のgoalに置き換える。不要印のまま残さないactive: goalは作り直さない。常設にするなら、update_goalのop=addで錠の条件(担い手human、「ユーザーがこのorchを終えることを了承した」)を足す。期限付きならそのままにする既にある未完了のアクティビティを子にするのは、記録から、このorch(またはorchにする前のまとめ役)の仕事として切り出されたと推せるものに限る(recompose-context skillの「親への結びつけ」と同じ基準・同じ条件の書き方)。別のorchの子として束縛済みのもの(各orchのget_goalの条件のboundに出るもの)は子にしない。別の窓口が作業中のものも、基準に合えば束縛してよい。束縛しても作業する窓口は変わらない。子にgoalが無ければ、束縛するときに後付けする(書き方はrecompose-context skillの「goalが未定義」と同じ)。goalが無いままだと、束縛した条件「子のgoalがachievedで閉じた」を満たせない。
起票(または既存のまとめ役をorchにする手順)が済んだら、次を含む一言をユーザーに返す。
見本:「これは子が3本に分かれて判断も要るので、bgに振って私がorchとして回すね。『[統合] ○○』を作った。形は期限付きで、子が全部済んだら閉じる(ずっと持つ常設にしたければ言って)。あなたに戻ってくるのは、PRのマージと、判断が要るときのask。止められた操作の許可が要るときは、まとめて頼む」
振る前に、claude agents --jsonで全セッションの生きたbg(kind=backgroundかつpidあり)を数える。ユーザーとの取り決めの上限を超えるなら、超えない範囲まで待つ。
子1本につき、次の3段を同じ手番で続けて行う。
add_activityをcheck_in=Falseで呼び、子を作る(orchタグは付けない。このタグはorchアクティビティ自体にだけ付ける)set_goalでgoalを作るupdate_goal(op=add)で、子のアクティビティへ束縛した条件を足す続けて依頼文ラッパー(${CLAUDE_PLUGIN_ROOT}/scripts/bg_dispatch.py。必須引数は--activity-id・--activity-title・--worktree・--parent-goal-handle・--parent-condition-id)で起動する。親goalの指定を必須にする(orchの子は依頼文ラッパーで親goalを指定して振る)。起動後、waitingForを1回見て、起動の入口で止まっていないか確かめる。起動できたら状態節のbg表に1行足す。
期限付きのorchにも、最初の子と範囲の違う子を後から足してよい。2本目のbgのために2本目のorchを作らない。
起動後のbgに、起動時の範囲の外の仕事を送らない。範囲外の残件は新しい子として振る。
信頼済みのディレクトリで、作業ツリーの中から起動する。止まったらwaitingForを見る。zshのクォート・特殊文字のエスケープに注意する。リポジトリ別の起動場所の具体は、環境ごとの私的な取り決めに従う。
依頼文ラッパーが生成する依頼文に、次を含める。
add_logsで書く~/.claude配下の変更、既決を見直すことになる判断、auto modeや権限に止められた操作は、進めずに報告先へ返す。止められたら迂回しない-- depends:で決まるので、衝突しても壊れはしない。番号を直すのは後からマージするPR(後発側はマージ順で決める)で、マージする者(orch)がマージ前にorigin/mainと突き合わせ、重なっていれば次の空き番号に振り直させるsync-memory --minimal: 最後の報告の前に実行する"ultracode"やWorkflowの実行指示を書かない(やってはいけないこと節)生死の規則は2本ある。
claude agents --jsonでkind=backgroundかつpidあり。stateは生死を表さないclaude agents --jsonで、担い手欄のsessionIdが一致しpidがある行がある(kindは問わない)。名前は判定に使わない。Remote Controlの窓口やbgは起動後に名前が自動で変わるため、名前の一致を求めると生きている担い手を死んでいると読んでしまう。そのような行が複数あれば(/resume後に並ぶことがある)startedAtが最も新しい行を担い手とする(/resumeすると同じsessionIdの行が増え、新しく開いた側が今使われている窓口になるため。両方にpidがあっても新しい側に送る)name。担い手欄に書かれた名前は人が読むための表示で、宛先には使わない許可待ちはwaitingForがpermission promptのときと見分ける。attentionの「止まっている」は見に行く候補で、CI待ち・許可待ち・単純に止まった・まだ振っていない、を上の規則で見分ける。
goalのchildrenの「達成」は外した子(waived)を含む。内訳はget_goalの条件で読む。次の一手の規則11が束縛した子について「進める」と返したら、orchでは「振る、または振った子の様子を見る」と読む。
報告済みで次の指示を待っているbgは、要らなければsync-memory --minimalを済ませていることを確かめて止める。
search(keyword="orch", tags=["orch"], entity_type="activity")で引き、get_by_idsで状態と説明を読んで未完了だけを残すorchはorchの目印専用のタグなので、その場で外し、内容に合う素タグに付け替える。CALMのorchの運用を話題にしているものはorchestration、別の意味(プロダクトの部品名など)なら、その意味が分かる別の語(例: プロダクト名を前に付けた語)にする。別の語は、先にsearch_tagsで近い既存のタグを探し、あればそれを使う。update_activityのtagsは全置換なので、今のタグを読んでから渡す。付け替えはユーザーに確かめず、他の窓口のアクティビティでも行い、付け替えたことを一覧に1行添える。orchにしたいまとめ役だったなら、既存のまとめ役をorchにするの手順で付け直すclaude agents --jsonで、担い手欄のsessionIdが一致しpidがある行があるかを見る(生死の見方は追う節の窓口の生死の規則による)get_goalのchildrenと状態節のbg表を添える「各orchに○○して」と頼まれたら、この一覧の生きた担い手(その行の今のname)を宛先にし(担当確認・作業依頼はpeer-nudge skill経由)、空席のorchにはログを書く。
「おはよう、どうなった?」のような呼びかけに対し、上の一覧に次を添える。
get_overviewのawaiting_humanから)ユーザーが窓口を閉じると言ったとき(「閉じるから」「終わるから残して」など)に行う。
sync-memory --minimalを済ませている)sync-memoryを実行する窓口が、このorchの担い手で、ユーザーが窓口を閉じると言っているときは、sync-memoryの前に先に「空ける」を行う。閉じないsync-memory(途中の記録)では空けない。
次にこのorchに触った窓口が行う。
check_inするclaude agents --jsonでpidが$CLAUDE_PIDの行のnameとsessionIdを書く。担い手欄は、以前の値にかかわらず無条件で今の自分の値に書き直す(/resumeではsessionIdが同じまま名前とpidだけが変わるので、sessionIdが一致していても書き直しを省かない)claude agents --jsonでbgの生死を見直し、報告済みで次の指示を待つbgのうち要らないものを止めるbgへ報告先の変更を伝える手順は要らない(bgは報告のたびに担い手欄を読んで宛先を引くため)。
orch同士の約束・待ちは、宛先を相手のorchアクティビティの題で書き、送る時点で相手の担い手を引く。相手が生きていれば(追う節の窓口の生死の規則)、担当確認や作業依頼はpeer-nudge skillを通して、その行の今のnameへSendMessageする。空席なら相手のアクティビティにログを書く。
update_goalのop editで錠の条件のboundをaskにする。問い文に答え方を書く(「終えてよければ『終えてよい』。続けるなら追加の範囲を書く」)update_goalの呼び出しで、op editで錠のboundをnullに戻し、op set(state=open、noteに日付)を送る。追加の範囲を子にして束縛するsatisfiedにする前に回答の中身を読む。「続ける」ならsatisfiedにせず束縛を外す(orchタグのnotesにも同じ読み方がある)sync-memory --minimalを指示してから止めるjudge_goalで閉じる。ユーザーが終えてよいと明言したときは判定の主体を人間(judged_by="human")にする。閉じたことを、在席ならその場で、不在なら朝の一覧で一言伝える子を閉じる最後の一手(マージを確かめて人間の条件を満たし、子のgoalを判定する)は、その子を束縛するorchの担い手が持つ。マージした窓口が担い手でなければ、担い手へ知らせる。担い手が空席なら、マージした窓口がその一手だけを済ませ、orchのログに書く(代わらない)。
作業ツリーは子の持ち物とし、子を閉じるときにその子を束縛するorchの担い手が消す。auto modeに止められたらまとめてユーザーに頼む。
activity-finishでこのアクティビティを閉じようとしたら、ここ(「終える」)へ進む。
orch自身が設計の決定事項をadd_decisionsで記録する前に、隣のorchへ1回だけ検査を頼む。自分の文脈では見えない既決との衝突・前提の抜けを、別の文脈から指摘してもらうため。
ユーザーとの合意で決まる決定事項や、実装上の判断には使わない。
次はユーザーに上げる。それ以外は、在席でもorchの中で相談役との協議と実データの収集で判断して進め、決めた内容と根拠を報告する。
skill・docsだけのPRを自分でマージしてよいという私的な許可がある場合は、それに従う。許可が無いか止められたら、名指しでユーザーに頼む。
上の列挙に当たる判断待ちは、在席ならその場で聞いて決定事項にし、不在・夜間・空席ならaskにする。askは、待たせている人間の条件の束縛に張り(無ければ人間の条件を足して張る。子に束縛した条件には張らない)、待たせるアクティビティをblocksに入れる。orchの説明とログには、判断待ちの中身を書かない。
マージの承認はPRを名指しした形で頼む(見本:「PR AとPR Bをこの順でマージしてよい、と言ってくれれば続けてやる」)。ユーザー自身の文に両方のPR番号が入っていることを確かめる。短い返事で2本目が止められたら、そのPRを名指しして聞き直す。1本ごとにmainへの到達を確かめてから次へ進む。スタックPR(子のbaseが親のブランチ)なら、親をマージした後に子のbaseがmainに切り替わったことを確かめてから子をマージする。
askの回答をマージの承認として別セッションで使うことはしない。マージはorchの窓口で名指しの承認を得てから行う。askの回答後の実行は、そのaskが結びつくorchの担い手が持つ。結びつくorchが空席のときと、orchに結びつかないaskは、トリアージした窓口が実行まで持つ(代わらない)。実行できないなら、ログで手放さず、結びつくorchの預かりに書くか、新しいaskにする。
attachして自分の言葉で頼んだときだけ使う。依頼文に"ultracode"やWorkflowの実行指示を書かないorchアクティビティの説明の先頭に、次の状態節を置く。上書きで保ち、書くのは記録に無いものだけである。書かないもの: 子の状況(goalにある)、PRの番号と状態(子のgoal・bgの報告・PR本体から引く)、ユーザーの判断待ち(askにする)、他のorchの担当セッション名、運用規約の写し。
## 状態
担い手: {名前}(sessionId {sessionId})/{更新時刻}
(または 担い手: 空席/{更新時刻})
bg表:
- {子の題} / {bgの短いid} / {作業ツリー} / {起動時刻}
約束:
- {相手のorchアクティビティの題}へ{内容}
預かり:
- {内容}(1件ずつ)
反映待ち:
- {内容}
goalは起点で常設か期限付きかを選ぶ。
どちらの形も、最初に振る子を束縛してから書く(束縛条件が無いと空の条件になる)。期限付きでは、振ると分かっている子を振り出す前に全部束縛する。範囲の違う子を後から足してもよい。
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/af」「この作業完了」「クローズして」「一旦ここまで」「今日はここで止める」「いったん置いておく」など終える・中断する意図で発動。このスキルを経由せずにupdate_activityでcompleted・pending・snoozed・shelvedにしない。
中文简介正在准备中。当前显示原文说明。
【必須】新しいアクティビティを作成してcheck-inする。「/as」「新しい作業始める」「アクティビティ作って」「これやる」など新規作業の開始で発動。このスキルを経由せずにadd_activityを呼ばない(orchの起票はorch skillに従う)。
中文简介正在准备中。当前显示原文说明。
【必須】open askを1件ずつ人間に提示し、回答をanswer_askで記録する。「askに答える」「open ask消化して」「溜まってるask片付けたい」などで発動。このスキルを経由せずにanswer_askを呼ばない。
中文简介正在准备中。当前显示原文说明。
【必須】add_askでaskを起票する前に、question/contextをテンプレートで組み立てる。離席中・セッション跨ぎでしか答えられない判断が出たときや、「これ聞いといて」「判断委譲しといて」「後で確認して」などで発動。このスキルを経由せずにaskの文面を書かない(メタaskを除く)。
中文简介正在准备中。当前显示原文说明。
add_askの応答のsimilar_asksを見て、同型の問いが繰り返され裁定が一貫していると気づいたとき、判例をまとめてメタask(kind="meta")を起票する。
中文简介正在准备中。当前显示原文说明。
人間の判断待ちaskの受け箱をMonitorで監視し、判断構造が同じopen askが溜まっていればメタaskを起票する。「ask storeを監視して」「asksを見張って」「open askの滞留をチェックして」などで発動。
中文简介正在准备中。当前显示原文说明。