본문으로 건너뛰기
cccskills
무료GitHub에 공개

org-down

組織を中断し、broker daemon まで含めて完全に停止する。「完全に止める」「daemon ごと落とす」「org down して」「全部終了」と言われたときに使う。suspend(状態保存 + ja 管理プロセス / ペイン停止)を完走してから `claude-org-runtime org down` を呼ぶ統合終了。

単に「中断」「今日は終わり」なら daemon を残す /org-suspend を使う。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md11.3 KB
  • references/rationale.md1.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

org-down: 組織の完全停止(broker daemon まで)

/org-down は /org-suspend を完走してから claude-org-runtime org down を呼び、broker daemon まで含めて組織を完全に停止する統合終了スキルである。

責務境界(最重要): claude-org-runtime org down(broker daemon 停止)を呼ぶのは 本スキルだけである。/org-suspend は「状態保存 + ja 管理下の補助 プロセス(dashboard / secretary_queue_watcher / context-handover watcher / attention watcher)とペインの停止」までで 止まり、daemon は走らせたまま(/org-start で再開する前提の中断)にする。/org-down は suspend の成功を確認できたときにのみ daemon 停止へ進む。順序を守るのは、未保存の状態を 残したまま daemon を落とすと復旧経路(check_messages での drain 等)ごと失われるため。 本スキルは runtime の org down を 呼ぶだけ(runtime 側 pre-flight との分担は .claude/skills/org-down/references/rationale.md)。

輸送層の前提: claude-org-runtime org down は broker daemon を落とすコマンドで、broker transport(ORG_TRANSPORT 無設定=コード既定 broker、または明示 broker)でのみ意味を持つ。 renga フォールバック(ORG_TRANSPORT=renga で renga --layout ops 起動)では daemon の概念が 無いので、Step 3 は skip して「renga では daemon 停止は不要」と案内する。判断は Step 3 の transport 確認で行う。

Step 1: /org-suspend を完走する

/org-suspend の全 Phase を順に実行する(Phase 1 状態収集 → Phase 2 未応答スクレイプ → Phase 3 状態書き込み → Phase 3.6 secretary_queue_watcher 停止 → Phase 3.65 context-handover watcher 停止 → Phase 3.7 attention watcher 停止(ペイン teardown 前)→ Phase 4 全ペイン停止)。

ただし Phase 3.5 の dashboard blind kill は本スキル Step 2 の stale-pid-safe 停止に差し替える (org down 直前の完全停止では、pid recycle された stale な dashboard.pid を無検証 kill すると 無関係プロセスを撃つため。誤 kill 防止)。他の Phase はそのまま実行する。

suspend 成功の確認(gate) — 次を満たしたときのみ Step 2 / Step 3 へ進む:

  • .state/state.db の session.status が SUSPENDED になっている(Phase 3 の DB write が成立)
  • .claude/skills/org-suspend/SKILL.md Phase 4 手順 7 の最終報告が、 pending と unresolved が両方空で「組織を中断しました」と言い切れた形になっている。生死の判定は Phase 4 が F-1(同 Phase 1 手順 1 の「フォーカス前提(F)」)に従って出した結論だけを読み、 本 gate のために org-down 側で list_panes を引き直して判定し直さない(Phase 4 自身の再列挙は org-suspend の手順としてそのまま実行する)
  • 最後の窓口ペインが残っているのは gate の妨げにならない(窓口は自分自身を close できない。同 Phase 4 「最後のペイン (窓口) の扱い」)

gate 不成立なら org down に進まず STOP する。suspend が abort / 失敗した、Phase 4 が「組織を部分的に 中断しました」を出した(停止できなかったワーカー / role が判定できず対象外にしたピア / 他タブに見えたが 自組織と確認できず対象外にしたピアが残る)、生死を判定できないピアが pending に残った、のいずれも該当する。状況を人間に報告し、「状態が保存し切れていない / ペインの停止を確認し切れていないため daemon は落とさなかった。原因解消後に /org-down を再実行するか、 /org-suspend でいったん中断してください」と案内する(生死を判定できなかったピアが残っている場合は、 Phase 4 手順 7 が列挙したその一覧もそのまま渡す)。判定不能を worker 監視と逆向きに STOP へ倒す 理由は .claude/skills/org-down/references/rationale.md。

Step 2: ダッシュボードの停止(stale-pid-safe)

dashboard.pid は bare pid のみを持つため、recycle された pid を無検証 kill すると無関係プロセスを 撃つ。pid の生存だけでなく、その cmdline が dashboard/server.py であることを照合してから kill し、 照合が外れたら kill せず stale pid file を削除する。

sandbox 注記: ホストのプロセス確認・kill は Claude Code の Bash sandbox 内では観測できない (process namespace 隔離)。本 Step は dangerouslyDisableSandbox: true を付けてホスト実行する (org-start Block C のダッシュボード起動と同じ理由)。

identity 照合ロジックは helper(tools/stop_dashboard.py)に入っているので、POSIX では 1 行呼ぶ だけでよい。helper は pid の生存に加え、その live argv(Linux/WSL は /proc、macOS/BSD は ps フォールバック)が dashboard/server.py を含むことを照合できたときだけ SIGTERM し、外れたら kill せず pid file を stale として削除する。

Mac / Linux / WSL:

python3 tools/stop_dashboard.py   # Windows native は py -3 tools/stop_dashboard.py

標準出力の 1 行([stop-dashboard] dashboard (pid=N) stopped / ... 消滅(stale)... / ... 起動していない ...)を Step 4 の報告にそのまま転記する(実際に停止したか stale だったかを 人間に正しく伝えるため)。exit 0 が正常系。exit 2(identity 未確認)は /proc も ps も無い環境 (Windows native)でのみ出るシグナルで、その場合は次の PowerShell 手順を使う。

Windows native(PowerShell) — Get-CimInstance Win32_Process の CommandLine で identity を 照合してから Stop-Process する:

$pf = ".state\dashboard.pid"
if (Test-Path $pf) {
  $dpid = [int]((Get-Content $pf -Raw).Trim())
  $proc = Get-CimInstance Win32_Process -Filter "ProcessId=$dpid" -ErrorAction SilentlyContinue
  if ($proc -and ($proc.CommandLine -match 'dashboard[\\/]server\.py')) {
    Stop-Process -Id $dpid -Force
    Write-Output "dashboard (pid=$dpid) stopped"
  } else {
    Write-Output "dashboard pid stale or not running; removing stale pidfile (no kill)"
  }
  Remove-Item $pf -ErrorAction SilentlyContinue
}

Step 3: broker daemon の停止(org down)

Step 1 の suspend gate を満たしたときのみ実行する。

  1. transport を確認する:

    echo "${ORG_TRANSPORT:-broker}"
    
    • renga: daemon の概念が無いので 本 Step は skip。Step 4 で「renga フォールバックのため daemon 停止は不要」と案内する
    • broker(無設定を含む): 次へ
  2. broker daemon を停止する(この呼び出しで現在の broker セッション=窓口ペインを含む tmux も 終了する。必ず最後に実行する):

    claude-org-runtime org down          # Mac / Linux / WSL
    python3 -m claude_org_runtime.cli org down # Mac / Linux / WSL で console script が PATH に無い場合
    py -3 -m claude_org_runtime.cli org down   # Windows で console script が PATH に無い場合
    
    • 正常終了で broker daemon が停止し、以後 claude-org-runtime org up → /org-start で再起動する
    • 失敗(non-zero exit / エラー出力)した場合は、そのまま人間に報告する。状態保存(Step 1)は 既に完了しているので、daemon が残っていても /org-start 再開には支障しない

注: org down 実行後は broker daemon と窓口ペインが落ちるため、本スキルの続き(Step 4 の 報告)は org down の前に準備し、org down を最後の操作にする。あるいは org down の stdout/exit を受けてから最終報告する場合は、端末が閉じる前に人間が読めるよう 1 行で簡潔に出す。

Step 4: 報告

broker で daemon まで停止した場合(org down 実行直前に提示。dashboard の行は Step 2 の 標準出力を転記し、stopped か stale(元々動いていなかった)かを実態どおりに書く — 未確認で 「停止済み」と断定しない):

組織を完全に停止します。
- 状態保存: 完了(.state/state.db = SUSPENDED)
- dashboard: {Step 2 の出力(stopped / stale)}
- 停止済み: secretary_queue_watcher / context-handover watcher / attention watcher / 全ワーカー・ディスパッチャーペイン
- これから broker daemon を停止します(claude-org-runtime org down)。
再開するときは `claude-org-runtime org up` → `/org-start` を実行してください。

renga フォールバックで daemon 停止を skip した場合:

組織を中断しました(renga フォールバックのため broker daemon 停止は不要です)。
- 状態保存: 完了(.state/state.db = SUSPENDED)
- 停止済み: dashboard / context-handover watcher / attention watcher / 全ワーカー・ディスパッチャーペイン
  (secretary_queue_watcher は broker 専用のため renga では非該当)
再開するときは `renga --layout ops` → `/org-start` を実行してください。

suspend gate を満たせず STOP した場合(Step 1 で分岐済み): org down は実行せず、未保存の原因、 または停止を確定できなかった(indeterminate の)ピアの一覧と、復旧手順(再実行 or /org-suspend)を 人間に報告する。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

ディスパッチャーのコンテキストを圧迫したまま session を続けるのを避けるため、 monitoring 状態(active workers / 直近 polling cursor / pending escalations)を handover ファイルに書き出し、secretary の指示で /clear → /dispatcher-resume の 流れで新しいディスパッチャー session を開始する準備をする。 Secretary から DISPATCHER_HANDOVER peer message を受領したとき、または ディスパッチャー自身が context が長くなったと判断したときに使う。 context-handover watcher が `/dispatcher-handover auto op=<OP>` を打鍵したときも使う。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

/dispatcher-handover で書き出した handover ファイルを読み込み、 ディスパッチャーを新しい session で復帰させる。/clear 直後の最初のターンで使う。 state.db の dispatcher_pane_id / dispatcher_peer_id を atomic に更新し、 worker monitoring の /loop 3m を再開する。 secretary が /clear の後にディスパッチャーペインへ /dispatcher-resume を打鍵したときに使う。 context-handover watcher が `/dispatcher-resume auto op=<OP>` を打鍵したときも使う。 /org-start ではない(ワーカー・窓口は生きている前提。キュレーターは常駐しない)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

プロジェクトのゴール台帳(registry/goals/<owner>/<repo>.md)を人間と対話して新規作成・改訂する。 README と open Issue からゴール候補を推定して提示し、「何を目指すか」「何が起きていたら未達か」を 短く質問して条項を固め、書式検証(tools/work_discovery_goals.py validate)を通してから保存する。 「ゴール台帳を書きたい」「ゴールを設定して」「ゴール未設定と出た」「台帳エラーを直して」 「このプロジェクトの目標を決めたい」等や、/work-discovery の「ゴール未設定」「ゴール台帳エラー」案内を 受けて窓口が起動する。候補の提示そのものは /work-discovery の役目で本スキルではない。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

組織の生きているペイン(secretary / dispatcher / worker)へ tmux で**直接入る** ための **コマンドを出力するだけ** の read-only スキル。`mcp__org-broker__list_panes`(論理ペイン) と `/usr/bin/tmux -L claude-org-broker list-panes -a`(pane_id ↔ session マッピング)を pane_id(%N)で突き合わせ、各ペインに role + name(task_id) ラベル付きの attach コマンドを 生成する(既定は読取書込 = `-r` 無し / 読取専用 `-r` はオプション / デタッチは `Ctrl-b d`)。 外側が tmux のときに今の tmux を分割してワーカー(と dispatcher)を並べる `split-window` コマンドも出す。 特定のペインの画面を直接見たい・入りたい・並べて見たい、attach コマンドを知りたいという依頼で発動。 自分で attach / split はせず・ペインも一切変更しない(コマンド文字列とペイン一覧表を表示するのみ)。 作業委譲(org-delegate)・ダッシュボードで状況一覧(org-dashboard)・watcher 停止(org-attention-stop) には発動しない。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

attention notification watcher(承認待ち / 判断待ち / CI 失敗等を OS 通知 + 音で能動通知)を dispatcher ペインの右側に split で常駐起動する。`.state/attention.json` が未配置なら ja 既定テンプレートを `tools/templates/attention.example.json` から自動コピーする。 起動後のペイン id は `.state/attention_pane.json` に記録し、`/org-attention-stop` から参照する。 「attention 起動」「通知監視を始めて」「watcher を立てて」等で発動。 `/org-start` からの auto-start はしない(明示起動推奨ポリシー)。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

`/org-attention-start` で起動した attention watcher ペインを停止する。 `.state/attention_pane.json` に記録された pane_id を `list_panes` の name/role で identity 確認し、いまも attention watcher を指している場合だけ `close_pane`(pane 破棄)で 破棄する(pane_id が別ペインへ再割当て済みなら close せず stale sidecar として削除)。 「attention 止めて」「通知監視を停止」「watcher 落として」等で発動。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

suisya-systems/claude-org-ja52026년 10월 19일 업데이트

suisya-systems의 스킬 모두 보기

이 스킬의 문제 신고