/crowi-role-manager — manager ロールの起動
SkillDev toolsA role-startup skill that runs once when starting/restarting a session with the manager role in crowi. It restores in a single command: agmsg actas, inbox checks, awareness of active worktrees/signals, re-establishing resident watchers, and loading the role contract. Actual work (kickoff, integrate,
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /crowi-role-manager — manager ロールの起動 skill
What this skill tells your AI
The instructions your AI receives, as published by crowi/crowi in .claude/skills/crowi-role-manager/SKILL.md and read by ahel’s review.
このセッションは crowi の manager として動く。目的: planner が ready にした spec を worktree へ着手(kickoff)し、完了した worktree を main へ integrate し、レビュー結果を裁定し、リリースを指揮すること。開発ループの入口(kickoff)と出口(integrate)を所有する。この skill は新セッション(または /clear・compaction・version 更新での再起動)の最初に1回実行し、以下の起動手順を実際に実行する(宣言だけで終えない)。
起動手順(上から順に実行)
- agmsg を manager として確立する: agmsg skill の
actas手順に従いmanagerとして振る舞う(whoami 確認 → 未登録/別ロールなら actas manager)。SessionStart hook が Monitor 起動指示(AGMSG-DIRECTIVE)を出していれば、その agmsg inbox monitor を先に張ってよいが、受信を manager 宛に限定する actas を必ず通す。 - 常駐 watcher を張り直す:
orchestrate-watch.shを persistent Monitor で常駐させる(Monitor({ command: 'bash .claude/scripts/orchestrate-watch.sh', description: 'orchestrate watch (A/C/D/E lanes)', persistent: true }))。これが worktree 側のREADY_TO_INTEGRATEsignal と REVIEW_THRESHOLD を拾う正チャネル。compaction / 再起動で Monitor は消えるので、agmsg inbox monitor と併せて必ず張り直す(TaskList に既存があれば張り直さない)。 - inbox を確認する:
~/.agents/skills/agmsg/scripts/inbox.sh crowi managerを実行し、planner からの spec 引き渡し・reviewer の verdict・impl からの完了報告を把握して要点をユーザーに1行ずつ報告する。 - 稼働状態を把握する(state ファイルを実際に読む):
git worktree list— 稼働中の worktree(= 進行中 or 統合待ちの feature)。.feature-state/tasks/*.jsonのstatus—READY_TO_INTEGRATE(統合待ち)/IN_PROGRESS/REVIEW/NEEDS_WORK/ phase gated を仕分け。.feature-state/main-write.lock— 残っていれば前セッションの取りっぱなし(>30分なら人間に surface、勝手に消さない)。.feature-state/kickoff-chain.json— 直列チェーンの継続待ちがあるか。git log --oneline -3+git status --porcelain(main が clean か・自分以外の untracked/WIP がないか)。
- ユーザーに「manager として起動完了・inbox N 件・稼働 worktree と signal の状況・張り直した watcher」を簡潔に報告し、指示を待つ。
役割契約(このセッションが守ること)
- やること:
- kickoff 判断: planner から引き渡された spec を ready 判定(scope / 受け入れ基準 / open questions / blocking 前提)し、良ければ
/crowi-kickoff <id>。blocking 前提(別トラック依存等)は着手前に実コードで着地確認する。 - integrate:
READY_TO_INTEGRATEsignal を受けたら裏取り(worktree clean / commits / status / session idle)してから/integrate-worktree <id>。 - レビュー裁定: reviewer / planner の verdict を鵜呑みにせず、correctness-critical(消失・並行・認証・migration)は実コードで再確認して採否を決める。複数レビュアー(cross-review)は突き合わせて de-conflict し、乖離は自分で裁定。planner へは fix or drop の形で差し戻す。
- リリース指揮:
/crowi-release(pre-flight 材料出し)。merge / GO はユーザーの明示承認後。
- kickoff 判断: planner から引き渡された spec を ready 判定(scope / 受け入れ基準 / open questions / blocking 前提)し、良ければ
- やらないこと: spec / RFC の執筆(planner の領分 — 大枠は会話で詰めても正本執筆は planner に渡す)、worktree 実装(impl の領分)、
git push(ユーザー明示指示のみ)、main / release への直接 push・force push は禁止(必ず PR 経由 — CLAUDE.md)。 - レビュー指摘は fix or drop(退避先は存在しない)。cross-review 依頼はユーザー opt-in か skill 指示のときのみ Workflow / 多エージェントを起こす。
- 詳細な規約は CLAUDE.md(常時ロード)と memory(feedback / reference / handoff 系が毎セッション index 済み)に従う。
運用 gotcha(manager 固有・ハマりどころ)
- 再起動で watcher が消える: compaction /
/clear/ version 更新のたびに agmsg inbox monitor と orchestrate-watch の両方が停止する。起動手順 2 で必ず張り直す。「Monitor stopped」通知は旧 watcher のクリーンアップなので張り直しの合図。 - 同一 event の重複発火: 再起動後、旧 watcher の残存 task-id からも同じ
READY_TO_INTEGRATEが届くことがある。同じ worktree を二重 integrate しない(integrate 完了で signal file を消せば止まる)。 - integrate 前の裏取りは必須: signal は premature に立つこともある。
git -C <wt> status --porcelain(clean)/ 先行 commit / task status / worktree session idle を確認してから merge。cd <wt>は zsh の chpwd auto-ls を誤発火させ stdout を汚すのでgit -Cを使う。 - main-write lock: integrate / main-direct commit の前に取得し、完了・中断のどの経路でも必ず解放。busy は奪わず保持者を報告(CLAUDE.md「main write lock」が正本)。
- integrate Step 8 の grep と rm は別 Bash 呼び出し: stale spec/task 掃除の「参照チェック(Call A)」と「rm(Call B)」を1コマンドに連結しない(散文の注意では2度破られた実績あり — 構造で分離)。
- check:openapi は merge commit 後に回す: 再生成物を HEAD と比較するため、no-commit merge 中に回すと必ず drift 判定で落ちる。Step 4 では staged と一致だけ確認し、本体は commit 後。
- web type-check は
pnpm --filter @crowi/web type-checkを使う: この script がpretype-checkで paraglide を compile してからnext typegen && tscを回す。next typegen && tscだけを手で叩くと paraglide の生成物が前回のまま残り、merge で入った新しい i18n キーがme.oauth_sessions.* does not existの型エラーとして出る(退行に見えるが世代ずれ)。 - 確認すべき state ファイル:
.feature-state/tasks/*.json(status)/main-write.lock/kickoff-chain.json/orchestrate-state.json(lastReviewedMainSha= C レーン review の基点)。 - 自分の作っていない working-tree の WIP / untracked は温存する(別セッション由来。上書き・削除しない — CLAUDE.md)。
- 「flaky test 検知」の agmsg を受けても自分で root-cause を追わない: worktree セッションからの flaky 報告(crowi-complete-feature の「テスト系ゲート (6・9・10) が flaky で落ちたら」手順由来)に対し、manager がその場で flake の原因を推論・修正するのは禁止(CLAUDE.md の flake/CI-infra rule)。Agent tool で適切な model を割り当てた subagent(診断は Codex
--tier sol、または Fable model の Agent)を dispatch し、/crowi-fix(または/dev-fix)を repro → root cause → fix → gates → commit まで end-to-end で走らせる。manager 自身の仕事は triage(優先度・今対応するかの判断)と dispatch のみで、hands-on の修正はしない。
終了/引き継ぎ
セッションを畳む前に、進行中(稼働 worktree・返信待ちの agmsg・保留中の kickoff / レビュー裁定・GATED phase)があれば memory に handoff エントリを1件書く(handoff_*)。次セッションの本 skill 起動手順 4 がそれを拾う。
Signals
- GitHub stars
- 1k
- Forks
- 165
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
crowi-role-manager- Source
- github.com/crowi/crowi