Repository navigation
Description
方針の変更(2026-10-31 夜、承認ゲート 1 で利用者が指示)
claude とcodexのみ、すべてのpluginを配布することとします。agy、kiroは配布せず、cross系で呼ばれるだけ。
(書き手: 利用者、日付: 2026-10-31。会話の原文)
- Claude Code と codex: マーケットプレイスのすべてのプラグイン(ndf・playwright-kit・mcp-*)を、すべての Skill で配る。codex の配布は縮めない
- agy と kiro: 何も配らない(
plugins/ndf/manifests/agy-skills.txt・kiro-skills.txt、dev.agy/・各プラグインのdev.kiro/の導入物、release.runtimesの kiro を外す)。cross-review / cross-refactoring から相手役の CLI として呼ばれる経路だけを保つ - 下の「依頼(原文)」と受け入れ条件のうち、codex に配布を絞る部分はこの変更で置き換わる。プロジェクト MVV の Mission(4 ランタイム)の改訂は別の課題で扱う
受け入れ条件
- 1.
agy-skills.txt・kiro-skills.txtと agy・kiro 向けの導入物(dev.agy/、ndf・playwright-kit・mcp-* のdev.kiro/)が配布物から無くなり、releaseの対象ランタイムが claude と codex だけになる(マージ前にテストとビルドで確かめる) - 2. codex へ配る Skill とプラグインは変更前と同じ(すべて)である(マージ前に manifests とビルドで確かめる)
- 3. agy・kiro を相手役にした cross-review と cross-refactoring の起動経路(
launch-cli.sh・launch-reviewer.sh)が変わらず通る(マージ前にテスト、リリース後に実物で確かめる) - 4. AGENTS.md・CLAUDE.md・KIRO.md・README・
docs/ndf-plugin-reference.md・docs/versioning-and-distribution.md・docs/plugin-development-guide.mdが 2 ランタイム配布+相手役 2 つの構成を書く(マージ前にリンク検査と指示書のチェックで確かめる) - 5. ランタイムのスモークテストと CI から agy・kiro の導入の検査が外れ、codex の検査は残る(マージ前に CI で確かめる)
- 6. 配布をやめると直す必要が無くなる agy・kiro だけの open の課題の一覧を設計に載せる(閉じるのは棚卸し)
今の状態(2026-11-04): 設計 PR #2295 と実装 PR #2306 で入れて配った。リリース後テスト(#2328 のコメント、ndf 10.27.6 で取り直し)で条件 1・2・4・5・6 は合格した。条件 3 は kiro を相手役にした経路が合格し、agy を相手役にした起動の記録が無いため保留である。次に --include agy で cross-review か cross-refactoring を回したときに確かめる。
依頼(原文)
codex・agy・kiro へは、cross-review / cross-refactoring に要る Skill 以外を配布しない。
(書き手: 利用者(起票者が「決めたこと(2026-10-31)」として本文へ引用した文。会話の原文は確かめていない)、日付: 2026-10-31)
何が困るか
NDF は Claude Code・Codex・Kiro CLI・agy の 4 つのランタイムへ、ほぼ同じ Skill を配っている(
plugins/ndf/manifests/*-skills.txt)。同じ機能を 4 通りに保つ費用がかかり、ランタイムごとの差分を吸収する層・スモークテスト・不具合(agy の本文の切り詰め #2163 など)が増え続ける。Codex・agy・kiro が NDF の工程で担っているのは、cross-review と cross-refactoring の相手役である。工程の本体(supervise・relay・承認ゲート・hook)は Claude Code で動かす。
直すもの
plugins/ndf/manifests/codex-skills.txt・agy-skills.txt・kiro-skills.txtを、cross-review / cross-refactoring に要る Skill だけにする(要る Skill の一覧は設計で決める)dev.agy/・dev.kiro/の agents・hook・steering のうち、その 2 つに要らないものを外す- AGENTS.md の「4 ランタイム共通」の前提、各ランタイムの README、
docs/ndf-plugin-reference.md、docs/versioning-and-distribution.mdを新しい配布に合わせる- ランタイムのスモークテストを、配る Skill に合わせて絞る
受け入れ条件
- 3 つのマニフェストに、cross-review / cross-refactoring に要らない Skill が無い
- 絞った後も、codex・agy・kiro を相手役にした cross-review と cross-refactoring が通る
- 配布を絞ると直す必要が無くなる open の課題(agy・kiro・codex だけで起きる不具合)を棚卸しで閉じる
(書き手: 起票者、日付: 2026-10-31。上の引用以外は利用者の指示の原文として扱わない)
起票者の推定
| # | 条件 | 推した出所 | この要求での扱い |
|---|---|---|---|
| S1 | codex・agy・kiro が NDF の工程で担うのは cross-review / cross-refactoring の相手役だけで、工程の本体(supervise・relay・承認ゲート・hook)は Claude Code で動かす | 本文「何が困るか」の 2 段落目 | 前提 1。受け入れ条件 1・2 の「要る」の判定基準にする |
| S2 | 要る Skill の一覧は設計で決める | 本文「直すもの」の 1 行目 | 未決 1(設計で決め、承認ゲート 1 で利用者が確かめる) |
| S3 | dev.agy/・dev.kiro/ の agents・hook・steering も、2 つに要らないものを外す(利用者の文は「Skill」だけを言う) |
本文「直すもの」の 2 行目 | 受け入れ条件 3・4 |
| S4 | AGENTS.md・各ランタイムの README・docs/ndf-plugin-reference.md・docs/versioning-and-distribution.md を新しい配布に合わせる |
本文「直すもの」の 3 行目、方針メモ「4 ランタイム共通の前提(AGENTS.md)を変える」 | 受け入れ条件 6 |
| S5 | ランタイムのスモークテストを配る Skill に合わせて絞る | 本文「直すもの」の 4 行目 | 受け入れ条件 7 |
| S6 | 配布を絞ると直す必要が無くなる open の課題を棚卸しで閉じる | 本文「受け入れ条件」の 3 行目 | 受け入れ条件 9。閉じるのは棚卸しの工程で行い、実装の PR では閉じない |
| S7 | codex・agy・kiro をホストにして cross-review / cross-refactoring を起動する使い方(--host codex など)は残さない |
起票者(この要求を書いた AI)が S1 から推した。本文には書かれていない | 前提 2・未決 2。承認ゲート 1 で利用者が確かめる |
目的
- codex・agy・kiro へ配る NDF を、cross-review / cross-refactoring の相手役に要るものだけにし、同じ機能を 4 通りに保つ費用(ランタイムごとの差分を吸収する層・スモークテスト・ランタイムだけで起きる不具合)を減らす
- 絞った後も、Claude Code をホストにした cross-review / cross-refactoring で codex・agy・kiro が相手役として今と同じ結果を返す
前提
- 前提 1: Claude Code 以外のランタイムが NDF の工程で担う役割は、cross-review のレビュー担当と cross-refactoring の提案・実装の担当(相手役)だけである(S1)
- 前提 2: cross-review / cross-refactoring のホスト(収束ループを起動する CLI)は Claude Code に限る。codex・agy・kiro をホストにする使い方は、この変更の後は保証しない(S7。誤っても、配る Skill の一覧へ行を足せば戻せる)
- 前提 3: 相手役が読む手順は、ホストの側が担当のworktreeへ置くか、起動の依頼文に直接書く。今の実装では、cross-review のレビュー担当の依頼文は Skill を読まずに完結し(
plugins/ndf/skills/cross-review/scripts/launch-reviewer.shのrender_review_prompt)、cross-refactoring はrefactoring・tdd-cycle・quality-gatesをホストの導入先から担当のworktreeへ写す(plugins/ndf/skills/cross-refactoring/scripts/prepare-worktrees.sh・refactor_lib/vocabulary.pyのREQUIRED_SKILLS)。相手役のランタイムに配った Skill に頼る経路が他に無いことは、設計で確かめる - 前提 4: Claude Code へ配る Skill(
plugins/ndf/manifests/claude-skills.txt)は変えない - 前提 5: 利用者の手元に既に入っている codex・agy・kiro 向けの Skill を、こちらから消す操作はしない。配布物から消えた Skill が手元に残るかは各ランタイムの導入の振る舞いに従い、その扱いを利用者向けの文書に書く
対象範囲
含む:
plugins/ndf/manifests/codex-skills.txt・agy-skills.txt・kiro-skills.txtの中身plugins/ndf/dev.agy/・plugins/ndf/dev.kiro/のエージェント定義・hook・steering・プロンプトのうち、相手役に要らないもの- 配布物を組み立てる・確かめるスクリプトとテスト(マニフェストを読むもの、ランタイムのスモークテスト)を、新しい配布に合わせる
AGENTS.mdの「4 ランタイム共通」の記述、各ランタイムの README、docs/ndf-plugin-reference.md、docs/versioning-and-distribution.md- 配布を絞ると直す必要が無くなる open の課題の一覧(棚卸しへ渡す材料)
含まない:
- Claude Code へ配る Skill・エージェント・hook の変更
- cross-review / cross-refactoring 自体の振る舞いの変更(参加者プール・輪番・収束の規則)
- playwright-kit・mcp-* プラグインの配布
- 一覧にした open の課題を実装の PR で閉じること(閉じるのは棚卸し)
- 利用者の手元の導入済みの Skill を消す操作
ドメインイベント
| # | イベント | 引き金 | 失敗したとき | 順序の前提 |
|---|---|---|---|---|
| E1 | 相手役に要る Skill の一覧を決めた | 設計 | 一覧に漏れがあると E5・E6 で相手役が手順を読めない。受け入れ条件 2 のテストが落とす | — |
| E2 | 3 つのマニフェストを一覧に合わせて絞った | 実装 | 要らない Skill が残る・要る Skill が欠ける。受け入れ条件 1・2 のテストが落とす | E1 |
| E3 | dev.agy/・dev.kiro/ から要らないエージェント・hook・steering を外した |
実装 | 外したものを導入の手順・hook の設定が参照したまま残り、導入が失敗する。受け入れ条件 3・4・5 が落とす | E1 |
| E4 | 利用者が新しい版を codex・agy・kiro へ導入した | リリースと利用者の更新 | 導入の検証(claude plugin validate .・ランタイムのスモークテスト)が落ちる |
E2・E3 |
| E5 | Claude Code をホストにした cross-review で、codex・agy・kiro がレビュー担当として結果ファイルを返した | /ndf:cross-review |
結果ファイルが無い(NO_RESULT)。受け入れ条件 8 の確認で見る | E4 |
| E6 | Claude Code をホストにした cross-refactoring で、codex・agy・kiro が提案・実装の担当として結果を返した | /ndf:cross-refactoring |
手順書(refactoring など)がworktreeに無く、提案が語彙外で全件降格する。受け入れ条件 8 の確認で見る |
E4 |
| E7 | 直す必要が無くなった open の課題を棚卸しで閉じた | /ndf:backlog-refinement |
一覧の漏れ。受け入れ条件 9 | E4 |
用語
| 用語 | 意味 |
|---|---|
| 相手役 | cross-review のレビュー担当、cross-refactoring の提案・実装の担当として、ホストから CLI プロセスで起動されるランタイム |
| ホスト | cross-review / cross-refactoring の収束ループを起動し、修正(/ndf:fix)と記録を行う CLI |
| マニフェスト | plugins/ndf/manifests/<ランタイム>-skills.txt。ランタイムごとに配る Skill の一覧 |
旧受け入れ条件(方針の変更の前。判定に使わない)
-
plugins/ndf/manifests/codex-skills.txt・agy-skills.txt・kiro-skills.txtのどの行も、設計で決めた「相手役に要る Skill の一覧」に含まれる。一覧に無い Skill がマニフェストにあると落ちる検査が CI で動く
-
- 相手役が起動時に読む Skill(cross-refactoring の
REQUIRED_SKILLSなど、設計で洗い出したもの)が、ホストの導入先からworktreeへ写せる。欠けると落ちる検査が CI で動く
- 相手役が起動時に読む Skill(cross-refactoring の
-
plugins/ndf/dev.agy/の配布物(エージェント定義・hooks.json・skills/・scripts/)に、相手役に要らないものが無い。何を残したかと理由は設計文書に表で残る
-
plugins/ndf/dev.kiro/install.shが生成するもの(.kiro/skills/・.kiro/steering/・.kiro/agents/ndf.json)とdev.kiro/のプロンプトに、相手役に要らないものが無い
-
claude plugin validate .が終了コード 0 で終わり、python3 scripts/check-skill-frontmatter.pyとpython3 plugins/ndf/scripts/instructions-check.py --root .が通る
-
AGENTS.md・各ランタイムの README・docs/ndf-plugin-reference.md・docs/versioning-and-distribution.mdに「4 ランタイムへほぼ同じ Skill を配る」前提の記述が残らず、codex・agy・kiro が相手役だけを担うことと、配る Skill の一覧の正本(マニフェスト)を指す記述がある
-
- ランタイムのスモークテスト(
scripts/runtime-smoke-test.shと.github/workflows/runtime-plugin-smoke*.yml)が、codex・agy・kiro について配る Skill だけを確かめ、配らない Skill の存在を求めない。CI のスモークのジョブが通る
- ランタイムのスモークテスト(
-
- 新しい配布物を導入した環境で、Claude Code をホストに codex・agy・kiro を相手役にした cross-review 1 回と cross-refactoring 1 回が、各相手役の結果ファイルを返して終わる(NO_RESULT が出ない)
-
- 配布を絞ると直す必要が無くなる open の課題の一覧(番号と理由)が、実装の PR か本課題に残り、棚卸しで閉じるか残すかが決まる
-
- 退行しない: Claude Code 向けのマニフェスト(
claude-skills.txt)と Claude Code の配布物は変わらず、既存の pytest(uv run --frozen --project . --all-extras pytest . -q -n 4)が通る
- 退行しない: Claude Code 向けのマニフェスト(
非機能の条件
| 大項目 | 条件 |
|---|---|
| 運用・保守性 | codex・agy・kiro へ配る Skill の数が、変更前(codex 45・agy 45・kiro 46)から減り、減った数を実装の PR に実測で書く(Value 3)。ランタイムのスモークテストの所要(秒)を変更の前後で実装の PR に書く |
| 移行性 | 既に codex・agy・kiro へ NDF を入れた利用者が新しい版へ更新したとき、配布から外れた Skill が手元でどうなるか(消える / 残る)をランタイムごとに確かめ、残る場合の消し方を README に書く。こちらから利用者の手元を消さない(C6) |
| システム環境 | 対象のランタイムは今と同じ(Claude Code・Codex・Kiro CLI・agy)。相手役の起動に使う CLI の版の下限は変えない |
影響
| 対象 | 影響 |
|---|---|
| 公開インタフェース | 変わる。codex・agy・kiro で $ndf:<Skill> などとして呼べた Skill の大半が配布から外れる。互換の経路は持たない(互換なし)。Claude Code の公開インタフェースは変わらない |
| データ | 変わらない |
| 既存の振る舞い | codex・agy・kiro をホストにした NDF の工程(--host codex など)は保証の外になる(前提 2)。Claude Code をホストにした cross-review / cross-refactoring の振る舞いは変わらない |
検証手段
| 項目 | 手段 |
|---|---|
| 起動 | claude plugin validate .(終了コード 0)。bash plugins/ndf/dev.kiro/install.sh を一時ディレクトリで実行し、生成物を見る |
| テスト | uv run --frozen --project . --all-extras pytest . -q -n 4 |
| 静的解析・型検査 | python3 scripts/check-skill-frontmatter.py・python3 plugins/ndf/scripts/instructions-check.py --root .・CI の lint / runtime-plugin-validate / runtime-plugin-smoke |
| 手動確認 | リリース後テストで、新しい版を入れた環境から /ndf:cross-review <PR> と /ndf:cross-refactoring <PR> を 1 回ずつ回し、codex・agy(--include agy)・kiro の結果ファイルが揃うことを見る(受け入れ条件 8) |
前提とする取り決め
| 項目 | 参照先 / 決めたこと |
|---|---|
| プロジェクト構造 | 配る Skill の正本は plugins/ndf/manifests/(CLAUDE.md の「NDF の Skill 構成」)。Skill の実体は plugins/ndf/skills/ の 1 か所のまま |
| コーディング規約 | AGENTS.md の「最小限のコード実装」。.md の文言を照合するテストは書かない(AGENTS.md の DON'T) |
| テスト戦略 | マニフェストと一覧の突き合わせ・worktreeへ写す Skill の有無は単体のテストで、導入できることはスモークテストで、相手役として動くことはリリース後テストで確かめる |
境界
| 区分 | 内容 |
|---|---|
| 常に行う | 既存テスト・検査の実行、外したファイルを参照する箇所の掃除 |
| 確認してから行う(承認ゲート 1・2 で人が見る) | 配る Skill の一覧(未決 1)、ホストの役割を残すか(未決 2)、AGENTS.md の運用の節の書き換え(C7)、公開インタフェースの縮小 |
| 行わない | Claude Code の配布物の変更、cross 系の振る舞いの変更、open の課題を実装の PR で閉じること、利用者の手元の Skill を消すこと |
未決
| 項目 | 誰が決めるか | 期限 |
|---|---|---|
| 1. 相手役に要る Skill の一覧(前提 3 のとおりなら、相手役のランタイムへ配る Skill は 0 件にもなりうる。その場合にマニフェストを空にするか、cross-review・cross-refactoring だけを残すか) | 設計で案を作り、利用者が承認ゲート 1 で決める | 承認ゲート 1 |
2. codex・agy・kiro をホストにする使い方を残すか(残すなら cross-review・cross-refactoring・fix・pr-review と cross-refactoring の REQUIRED_SKILLS が要る) |
利用者(承認ゲート 1) | 承認ゲート 1 |
| 3. 配布から外れた Skill が利用者の手元に残るか(ランタイムごと) | 設計で実測して決める | 設計 PR |
4. プロジェクト MVV の Mission(「Claude Code / Codex / Kiro / agy のどれを使うチームにも、要求から本番の配布までの開発工程を…届け」)と Vision が、この変更の後の配布(codex・agy・kiro は相手役だけ)と食い違う。利用者の決定(2026-10-31)は MVV より上位なので要求は進めるが、MVV の改訂(development-workflow の references/project-mvv.md の「改訂」)を起こすか |
利用者(承認ゲート 1。改訂は利用者の承認で成立する) | 承認ゲート 1 |
進行
モード: — / 進め方: auto
- 要求と受け入れ条件 — 2026-10-31 11:33
- 作業場所の用意 — 2026-10-31 13:00
- 設計 — 2026-10-31 11:37
- 素材の収集と出典の確定
- ドキュメント再構成
- ドキュメントレビュー
- 計画 — 2026-10-31 13:00
- 実装 — 2026-10-31 13:43
- 構造改善 — 2026-10-31 18:37
- 実装レビュー — 2026-10-31 22:29
- 完了判定 — 2026-10-31 14:31
- Pull Request — 2026-10-31 14:46
- 確定仕様化 — 2026-11-01 00:29
- 後片付け — 2026-11-01 00:28
- 配布 — 2026-11-01 00:00
- 体裁レビュー
- リリース後テスト — 2026-11-01 00:28
- 振り返り — 2026-11-01 01:03
- 棚卸し — 2026-11-01 01:17
振り返り: #2320 (comment)
状況(2026-11-01、v10.27.6)
リリース後テストの記録(#2328 、01:00Z)の行は、この本文の受け入れ条件(6 件)より前の番号付け(10 件)で書かれており、番号が合わない。判定は 6 件の新しい行で行う。2026-11-01 に今の状態で確かめた結果:
| 条件 | 確かめたこと | 結果 |
|---|---|---|
| 1 | manifests は claude と codex だけ。.ndf/supervise.json の runtimes は ["claude","codex"] |
合格 |
| 2 | git diff --stat ndf--v10.27.3 HEAD -- plugins/ndf/manifests/ は agy と kiro の削除だけで、codex の差分は 0 |
合格 |
| 3 | kiro は m26-3 の cross-review のレビュー担当(PR #2348)と cross-refactoring の提案元を務めた。agy は既定で外しており、実物で回っていない | kiro は合格、agy は保留(人の判断待ち) |
| 4 | 指定の文書に「4 ランタイム」は 0 件。KIRO.md は相手役の説明 | 合格 |
| 5 | runtime-plugin-smoke.yml の matrix は [claude, codex]。develop・main で直近 success |
合格 |
| 6 | 設計の「配布を止めると要らなくなる課題」の表の #2163・#1889 は閉じ、#2058・#2115 は開いている | 合格 |
リリース後テストの取り直し(2026-11-01 17:39 JST)
記録: #2328 (comment)
- 記録の行を本文の今の受け入れ条件 6 件の番号で置き直した。条件 1・2・4・5・6: 合格。条件 3: 保留。kiro は 10.27.5 の後に相手役として通ったが、agy(
--include agy)を相手役にした起動は 10.27.5 の後に記録が無い。次に--include agyで cross-review か cross-refactoring を回したときに確かめる - 開いたままの理由: 合格でない条件が残る(
sprint-close.py --record-pr 2328 --with-verificationの結果は kept_open)
Activity
Docs: #2231 の設計の I3・I6 を実在する検査と生成物の削除に合わせる
[-]codex・agy・kiro への配布を cross-review / cross-refactoring に要る Skill だけに絞る[/-][+]配布を Claude Code と codex だけにし(すべてのプラグイン)、agy・kiro へは配らず cross 系の相手役だけにする[/+]Docs: #2231 の設計を、配布を Claude Code と codex に限り agy・kiro を相手役だけにする方針へ書き直す
Merge pull request #2295 from devbasex/design/issue-2231
Merge pull request #2306 from devbasex/feat/issue-2231-m26-2
Merge: develop を取り込み、用語集の衝突を解く