依頼内容(ユーザー原文)
agmsg/agguild/agguild_pool/codex_monitor_agents 分離と移行の計画
上記には以下を含めてください。
アーキテクチャー
成果物
スキルまたはコマンドの詳細と利用具体例
移行への作業(issue)表。左の列は「完了」とし、作業が完了する毎にチェックを付ける。表はいつでも見れるように場所を固定したいのでissue※1の説明に記載してください。
また、すでにopenなissueもissue※1の表に記載してください。
issue※1に関連して新しく作る issue は随時表へ追加してください。
その後の追加指示: 「新たに作成するissueは既存のものをすべて解決したものだという認識です。既存のissueを解決した後に分離できないのならば、解決の優先順位を計画に組み込んでください。」(ただしrecord-only issueは対象外、とユーザー確認済み)
背景
Issue #222 (検討: agmsg/agguild/agguild_pool の三分割によるフォーク独自拡張の分離)はPR #372の監査でclose済み(「検討・受入済み分離計画」の完了)。実際の物理分離はこのIssue #373で計画・実行する。
確定済みの制約(ユーザー決定、2026-09-09) : 公式agmsg(fujibee/agmsg)へは絶対にPRを提出しない。案・パッチはkappaseijin/agmsg(または新設したkappaseijin/agguild)フォーク内に留める。この制約はagmsgスキル本体のguard(gh-write-owner-guard.sh/git-push-owner-guard.sh、ALLOWED_OWNERS=kappaseijin/kappaseijinjp)により技術的にも強制されている。
当初の設計はPR #374 (docs/decisions/2026-09-09T205500_issue-373-separation-migration-plan.md、merge commit 5cd527a9ef1df4132c0e597fa1f87c694294e52a)でformal review APPROVED・CI全件PASS済み。この設計はG0ゲート方式(後述)を採っていたが、2026-09-13の方針転換により撤回した。
方針転換(2026-09-13、ユーザー決定)
G0ゲート方式(前提8件が全てCLOSEDになるまで物理分離に着手しない)で進めた結果、G0前提の2番目(Issue #236 、manager自己実施防止機能)自体がG1〜G4の4段階・複数の子issueに分岐し、G4統合受入ゲート(Issue #395 /#407 )の実行だけで3回の再実行を要するなど、時間とトークンの消費が過大で完了時期が見通せない状態になった。
ユーザーからの指摘(原文要旨):
自家版agmsgの分離が停滞していたので、計画をやり直し、素早く一から作るのが
今回の趣旨と目的です。
これを受け、一旦全作業を停止し、現行フロー維持か代替手法かをbreakerに比較判断させた。breaker断定(2026-09-13T08:36:53Z)は「切り替える。ただし修正3点つき」:
G0前提2番目(Issue manager(PM)の実作業自己実施を仕組みで防止する #236 )とその子孫(G4連鎖: P2: native launcher・broker adapter・独立collectorを接続する(G4) #385 /G4統合受入ゲート: 実native CLIでのfault injection・pilot起動判断 #395 /G4統合受入ゲートの再実行(G4-D・harness是正後) #407 /gate: N1のtranscript観測が無送信では成立しない(識別用プロンプト送信への設計変更) #434 /gate: N1のprocess-command検証がexec前のlauncherコマンドラインを確定failにする(三値化が必要) #448 /gate: N1_READY_VERIFIED_CLI_VERSIONSが2.1.270に未対応(インストール済み版と不一致) #450 、PR fix(g4): judge N1 argv only after the launcher has exec'ed claude #451 /docs: state pty precondition for issue 434 n1 marker design #437 )を凍結 する(closeせず、完了もさせない)
forkのアンインストールはagguildの日常導線smoke合格後に行う(fork skillは退避してrollback可能に保つ)
formal reviewとverifierは一時的に外すが、CI+breaker自身の負の対照+ユーザーsmokeは残す
ユーザーはこの断定を全て承認し、G0ゲート方式は撤回、breakerが直接agguild/agguild_pool/cutoverを実装する運用(クロスレビュー必須原則への一時例外、期間: agguild構築期間、終了条件: 新環境で1週間運用)へ切り替えた。
この方針転換により、以下「実施結果」節に記載する物理分離の主要作業は、G0の完了を待たずに完了している。 旧・G0ゲート方式の記述は本文末尾に履歴として残す。
アーキテクチャー
三層を別repositoryとして扱う。(実装済み。以下は設計時の記述で、実態と一致している)
agmsg(kappaseijin/agmsg): 固定した公式providerを利用する通信基盤
agguild(kappaseijin/agguild、新設済み): 独自運用の共有実行層
agguild_pool(kappaseijin/agguild_pool、新設済み): personaと管理manifestを保持するデータ層
flowchart LR
U[利用者又はagent] --> G[agguild CLIとskills]
G --> M[互換性manifest]
G --> A[固定provider agmsg]
G --> P[agguild_pool]
A --> S[通信と登録のstore]
P --> D[personaとproject差分]
G --> O[guard、launcher、broker、collector]
O --> A
O --> D
Loading
agguildはmanifestに固定したprovider rootとcommit、公開command、schema、exit statusだけを使う。agguild_poolはagmsg store、runtime claim、共有PATH、共有skillを保持しない。codex_monitor_agentsは移行元だった(人格dir135件は移行・削除済み。作業クローン67件は移していない)。各作業cloneのGit rootとagmsg registrationのprojectpathは移していない(personaをpoolへ配置してもregistration pathが変わらないため、移行前のagent identityを壊していない。実測で確認済み)。
repositoryとディレクトリ
repository
目標root
保持するもの
保持しないもの
kappaseijin/agmsg
scripts/、docs/、公式互換試験
-
独自運用の共有runtime、persona data、pool data
kappaseijin/agguild
bin/agguild、skills/、lib/、manifests/、tests/、docs/
role運用、launcher、guard、broker、collector、provider compatibility
agmsg private storeの外側reader、personaの認可正本
kappaseijin/agguild_pool
personas/、projects/、manifests/
persona、project差分、明示されたpersona固有設定
shared executable、shared PATH、live DB、runtime claim、作業clone
data flow
agentはagguildのskill又はCLIを起点にする
agguildは互換性manifestを読み、provider root、固定commit、要求capabilityを検査する
capabilityが一致したときだけ、agmsgの公開commandを固定argvで呼ぶ
persona固有の設定が必要なときだけ、pool manifestで解決した当該personaのlocal/を読む
provider、manifest、identity、停止点のいずれかが不明なら、agguildは副作用を起こさず停止する
成果物
層
成果物
状態
agmsg
公式互換のprovider checkout(fujibee/agmsg v1.2.3-31-g3ab9e31)、公開CLI仕様
完了 。cutover実施済み(2026-09-13T18:19+09:00、rollback不要と判定)
agguild
CLI、skills、compatibility manifest schema、guard/launcher/broker/collector modules
完了
agguild_pool
persona manifest schema、persona data(135件)
完了 。個人情報・実データ279件の混入を発見しgit履歴ごと除去済み
移行証跡
退避tar、削除前後のvalidate結果、正負の対照記録
完了 。Issue本文コメント群に記録
各repositoryのREADMEは実装時に追加・更新済み。
スキルまたはコマンドの詳細と利用具体例
実装済み。 kappaseijin/agguildのbin/agguildから利用する。
command
引数
成功時の出力
fail-closed条件
agguild provider check
--manifest <file> [--provider-root <path>]
fixed commit、capability、schemaの検証結果
root、commit、schema、capabilityのいずれかが不一致又は不明
agguild pool validate
--pool <dir> --manifest <pool.json>
persona entriesの検証結果(0 pass / 1 fail / 2 unknown)
shared executable、secret、必須field欠落、digest不一致
agguild spawn <type> <name>
[spawn options]
role別overlay(model/effort)を合成し公式agmsgのspawnを実行
provider未検証時は拒否
agguild despawn <team> <from> <name>
[--force]
herdr pane close込みの解体
-
agguild send <team> <from> <to> <body-file>
-
本文ファイル経由の送信
ファイル不在時は拒否
利用例:
AGGUILD=/Users/kappa/Dropbox/data/dev/agguild/bin/agguild
$AGGUILD provider check --manifest manifests/providers/agmsg.json
$AGGUILD pool validate --pool agguild_pool --manifest agguild_pool/manifests/pool.json
$AGGUILD spawn claude-code agmsg_breaker_claude --project < path> --team agmsg [--fresh]
重要 : ~/.agents/skills/agmsg/scripts/spawn.shを直接呼ぶとrole別overlay(model/effort)が適用されない(cutoverでこの機能はagguild側に移設されたため)。席の起動・再起動は必ずagguild spawnを使う(Issue #452で恒久対応を追跡)。
実施結果(2026-09-13完了)
作業
結果
kappaseijin/agguild新設・provider manifest
完了
kappaseijin/agguild_pool新設・persona manifest schema
完了
provider check・pool validateの実装(隔離fixture)
完了、正負の対照確認済み
guard(gh/git owner guard)のagguild切り出し
完了
spawn/actas/send/watch/despawn wrapperの実装
完了
fork→公式agmsg切替(cutover)
完了(2026-09-13T18:19+09:00、rollback不要)
codex_monitor_agents→agguild_poolデータ移行
完了(135件、個人情報279件の除去・履歴書き換え込み)
独自拡張(37本のスクリプト改変等)の残存台帳対応付け
完了(moved 42 / kept 250 / dropped 595 / official 8)
起動規約4ファイル・振り返り検査ツールの参照先切替(codex_monitor_agents→agguild_pool)
完了(全28チーム分、正負の対照つき)
旧root(人格dir135件)の削除
完了
forkリポジトリ本体・codex_monitor_agents自体の削除
不可・保持継続 (kept 250件の唯一の置き場、作業クローン67件が同居)
上記により、「アーキテクチャー」「成果物」節に記載した三層分離は物理的に完了している。
G4連鎖(凍結中、旧G0前提の残骸)
方針転換前に着手していたIssue群。closeせず、完了もさせず凍結。 2026-09-20(移行完了から1週間後)に、新環境で問題が無ければクローズする(ユーザー決定)。ラベルclose-scheduled-2026-09-20を付与済み。
Issue/PR
内容
#236
manager(PM)の実作業自己実施を仕組みで防止する(P0〜P4段階展開)
#385
G4: native launcher・broker adapter・独立collectorを接続する
#395
G4統合受入ゲート
#407
G4統合受入ゲートの再実行
#434
gate: N1のtranscript観測設計
#448
gate: N1のprocess-command検証の三値化
#450
gate: N1_READY_VERIFIED_CLI_VERSIONS不整合
PR #451
fix(g4): N1 argv判定修正
PR #437
docs: PTY前提追記
独自拡張(kept 250件)の扱い
新環境(agguild)に移設されず、forkリポジトリ本体にのみ残る4系統: delivery gate(旧Issue #164のTOCTOU修正含む)、全チームのpair解決、runtime DBの堅牢化、公式未取込みの不具合修正。forkリポジトリ本体は削除しないため保持され続ける。新環境の運用で欠落による問題が顕在化したら、最小パッチproviderとして当てる(manifestのpatches配列に口を用意済み)。
record-only(分離の前提から除外・ユーザー決定)
Issue
内容
扱い
#358
ci: watch ctrl:despawn HERDR_ENV未設定試験がubuntu shardで失敗する
record-only、着手しない
#355
ci: windows driver-input(fujibee#817 )ジョブがテストPASS後にexit1でcancelledになる
record-only、着手しない
#308
独立実装の一致は仕様の正しさを保証しない
record-only、着手しない
#304
ci: codex-bridge の websocket 試験が macOS 10 分割で再現的に落ちる
record-only、着手しない
#296
docs: #279既知の穴がPR #295で実際に顕在化した記録
record-only、着手しない
受入対照(実施済み)
対象
正の対照
負の対照
結果
provider
固定commitの公開commandがmanifestどおりに応答する
commit、schema、capabilityの不一致を成功にしない
pass
pool
一つのpersona manifestとlocal例外が解決する
shared script、secret、別persona参照を受け入れない
pass
identity
作業clone pathで一意にseatを解決する
persona path移動をregistration path変更と誤認しない
pass(他4チームでサンプル確認)
destination
kappaseijin/*内の設計PRが通る
fujibee/agmsgへのPR又はpushを拒否する
pass
個人情報
pool内のpersonaデータが読める
証跡・実データ(279件)を追跡・履歴に残さない
pass(履歴書き換え・fresh clone再検証済み)
受入条件(更新後)
上記4項目(アーキテクチャー・成果物・スキル/コマンド詳細・移行issue表)がこのIssue本文に記載されている ✅ 達成
移行issue表が実際の作業進捗を反映する ✅ 本更新で達成(G0ゲート方式は撤回し実施結果を記載)
公式agmsg(fujibee/agmsg)へのPR提出が一切発生していない ✅ 継続監視、違反なし
G0(前提8件)が全てCLOSED又は明示NOT_PLANNEDになる 撤回 (2026-09-13方針転換によりG0ゲート方式自体を廃止。G4連鎖は個別に凍結・2026-09-20判断へ切替)
実際の物理分離(agguild/agguild_pool新設、codex_monitor_agentsからのデータ移行)が完了する ✅ 達成 (本文「実施結果」節参照)
残る作業は、G4連鎖9件の2026-09-20判断のみ。 それが完了(クローズまたは継続判断)した時点で、このIssue #373自体もクローズする。
旧・G0ゲート方式の記述(2026-09-09〜2026-09-13、方針転換前。履歴として保持)
物理移行(repository skeleton、コード切出し、persona/data移行、現役切替)は、以下8件が全てCLOSED又は明示NOT_PLANNEDになるまで着手しない、という設計だった(breaker指定の解決順、2026-09-09T12:02:38Z断定)。
Issue
内容
状態(方針転換時点)
#300
ci: macOS shard test 452ハング
CLOSED
#236
manager(PM)自己実施防止
OPEN→G4連鎖として凍結
#341
ci: launcher系テスト断続失敗
CLOSED(PR #375診断・PR #376 revert)
#294
ci: watch consume failure間欠失敗
CLOSED(診断格上げ)
#273
ci: base branch変更でCI起動せず
CLOSED(PR #418 /#421 )
#272
test: 変異検査被覆漏れ
CLOSED(PR #417 )
#268
test: bounded watcher対照追加
CLOSED(PR #419 )
#362
ci: despawn broad watcherハング
OPEN(凍結対象外、再現条件待ち、緊急性低)
設計根拠(当初): PR #374 (docs/decisions/2026-09-09T205500_issue-373-separation-migration-plan.md)。方針転換の根拠: breaker断定2026-09-13T08:36:53Zおよびユーザー承認(本Issueコメント参照)。
依頼内容(ユーザー原文)
その後の追加指示: 「新たに作成するissueは既存のものをすべて解決したものだという認識です。既存のissueを解決した後に分離できないのならば、解決の優先順位を計画に組み込んでください。」(ただしrecord-only issueは対象外、とユーザー確認済み)
背景
Issue #222(検討: agmsg/agguild/agguild_pool の三分割によるフォーク独自拡張の分離)はPR #372の監査でclose済み(「検討・受入済み分離計画」の完了)。実際の物理分離はこのIssue #373で計画・実行する。
確定済みの制約(ユーザー決定、2026-09-09): 公式agmsg(
fujibee/agmsg)へは絶対にPRを提出しない。案・パッチはkappaseijin/agmsg(または新設したkappaseijin/agguild)フォーク内に留める。この制約はagmsgスキル本体のguard(gh-write-owner-guard.sh/git-push-owner-guard.sh、ALLOWED_OWNERS=kappaseijin/kappaseijinjp)により技術的にも強制されている。当初の設計はPR #374(
docs/decisions/2026-09-09T205500_issue-373-separation-migration-plan.md、merge commit5cd527a9ef1df4132c0e597fa1f87c694294e52a)でformal review APPROVED・CI全件PASS済み。この設計はG0ゲート方式(後述)を採っていたが、2026-09-13の方針転換により撤回した。方針転換(2026-09-13、ユーザー決定)
G0ゲート方式(前提8件が全てCLOSEDになるまで物理分離に着手しない)で進めた結果、G0前提の2番目(Issue #236、manager自己実施防止機能)自体がG1〜G4の4段階・複数の子issueに分岐し、G4統合受入ゲート(Issue #395/#407)の実行だけで3回の再実行を要するなど、時間とトークンの消費が過大で完了時期が見通せない状態になった。
ユーザーからの指摘(原文要旨):
これを受け、一旦全作業を停止し、現行フロー維持か代替手法かをbreakerに比較判断させた。breaker断定(2026-09-13T08:36:53Z)は「切り替える。ただし修正3点つき」:
ユーザーはこの断定を全て承認し、G0ゲート方式は撤回、breakerが直接agguild/agguild_pool/cutoverを実装する運用(クロスレビュー必須原則への一時例外、期間: agguild構築期間、終了条件: 新環境で1週間運用)へ切り替えた。
この方針転換により、以下「実施結果」節に記載する物理分離の主要作業は、G0の完了を待たずに完了している。 旧・G0ゲート方式の記述は本文末尾に履歴として残す。
アーキテクチャー
三層を別repositoryとして扱う。(実装済み。以下は設計時の記述で、実態と一致している)
agmsg(kappaseijin/agmsg): 固定した公式providerを利用する通信基盤agguild(kappaseijin/agguild、新設済み): 独自運用の共有実行層agguild_pool(kappaseijin/agguild_pool、新設済み): personaと管理manifestを保持するデータ層agguildはmanifestに固定したprovider rootとcommit、公開command、schema、exit statusだけを使う。agguild_poolはagmsg store、runtime claim、共有PATH、共有skillを保持しない。codex_monitor_agentsは移行元だった(人格dir135件は移行・削除済み。作業クローン67件は移していない)。各作業cloneのGit rootとagmsg registrationのprojectpathは移していない(personaをpoolへ配置してもregistration pathが変わらないため、移行前のagent identityを壊していない。実測で確認済み)。repositoryとディレクトリ
kappaseijin/agmsgscripts/、docs/、公式互換試験kappaseijin/agguildbin/agguild、skills/、lib/、manifests/、tests/、docs/kappaseijin/agguild_poolpersonas/、projects/、manifests/data flow
agguildのskill又はCLIを起点にするagguildは互換性manifestを読み、provider root、固定commit、要求capabilityを検査するlocal/を読む成果物
fujibee/agmsgv1.2.3-31-g3ab9e31)、公開CLI仕様各repositoryのREADMEは実装時に追加・更新済み。
スキルまたはコマンドの詳細と利用具体例
実装済み。
kappaseijin/agguildのbin/agguildから利用する。agguild provider check--manifest <file> [--provider-root <path>]agguild pool validate--pool <dir> --manifest <pool.json>agguild spawn <type> <name>[spawn options]agguild despawn <team> <from> <name>[--force]agguild send <team> <from> <to> <body-file>利用例:
重要:
~/.agents/skills/agmsg/scripts/spawn.shを直接呼ぶとrole別overlay(model/effort)が適用されない(cutoverでこの機能はagguild側に移設されたため)。席の起動・再起動は必ずagguild spawnを使う(Issue #452で恒久対応を追跡)。実施結果(2026-09-13完了)
kappaseijin/agguild新設・provider manifestkappaseijin/agguild_pool新設・persona manifest schemacodex_monitor_agents→agguild_poolデータ移行codex_monitor_agents→agguild_pool)codex_monitor_agents自体の削除上記により、「アーキテクチャー」「成果物」節に記載した三層分離は物理的に完了している。
G4連鎖(凍結中、旧G0前提の残骸)
方針転換前に着手していたIssue群。closeせず、完了もさせず凍結。 2026-09-20(移行完了から1週間後)に、新環境で問題が無ければクローズする(ユーザー決定)。ラベル
close-scheduled-2026-09-20を付与済み。独自拡張(kept 250件)の扱い
新環境(agguild)に移設されず、forkリポジトリ本体にのみ残る4系統: delivery gate(旧Issue #164のTOCTOU修正含む)、全チームのpair解決、runtime DBの堅牢化、公式未取込みの不具合修正。forkリポジトリ本体は削除しないため保持され続ける。新環境の運用で欠落による問題が顕在化したら、最小パッチproviderとして当てる(manifestの
patches配列に口を用意済み)。record-only(分離の前提から除外・ユーザー決定)
受入対照(実施済み)
kappaseijin/*内の設計PRが通るfujibee/agmsgへのPR又はpushを拒否する受入条件(更新後)
上記4項目(アーキテクチャー・成果物・スキル/コマンド詳細・移行issue表)がこのIssue本文に記載されている✅ 達成移行issue表が実際の作業進捗を反映する✅ 本更新で達成(G0ゲート方式は撤回し実施結果を記載)fujibee/agmsg)へのPR提出が一切発生していない ✅ 継続監視、違反なしG0(前提8件)が全てCLOSED又は明示NOT_PLANNEDになる撤回(2026-09-13方針転換によりG0ゲート方式自体を廃止。G4連鎖は個別に凍結・2026-09-20判断へ切替)残る作業は、G4連鎖9件の2026-09-20判断のみ。 それが完了(クローズまたは継続判断)した時点で、このIssue #373自体もクローズする。
旧・G0ゲート方式の記述(2026-09-09〜2026-09-13、方針転換前。履歴として保持)
物理移行(repository skeleton、コード切出し、persona/data移行、現役切替)は、以下8件が全てCLOSED又は明示NOT_PLANNEDになるまで着手しない、という設計だった(breaker指定の解決順、2026-09-09T12:02:38Z断定)。
設計根拠(当初): PR #374(
docs/decisions/2026-09-09T205500_issue-373-separation-migration-plan.md)。方針転換の根拠: breaker断定2026-09-13T08:36:53Zおよびユーザー承認(本Issueコメント参照)。