Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
{
"name": "ndf",
"source": "./plugins/ndf",
"description": "Claude Code plugin (v10.15.1): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"description": "Claude Code plugin (v10.16.0-dev.1): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ ai-plugins/

## NDFプラグインについて

**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v10.15.1)。plugin 名は全ランタイムで `ndf` を維持し、配布物は `plugins/ndf/` の1ディレクトリにまとまっています。
**NDFプラグイン**は、このマーケットプレイスの主要プラグインです(v10.16.0-dev.1)。plugin 名は全ランタイムで `ndf` を維持し、配布物は `plugins/ndf/` の1ディレクトリにまとまっています。
- Skill の実体は `plugins/ndf/skills/` の1箇所。配布先は `plugins/ndf/manifests/*-skills.txt` が決める
- Claude Code版は 8個の専門サブエージェント、公開Skills、PreToolUse/SessionStart/Stopフックを提供
- Codex版は Codex向け公開Skillsと任意Slack通知hookを提供
Expand Down
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,56 @@
**開発版(接尾辞の付いた版)は載せない。** `9.8.0` は `9.8.0-dev.1` までしか出ておらず、
その内容は `10.0.0` で届いている。

## [ndf 10.16.0] - 2026-09-22

### 追加

- **`cross-review` と `cross-refactoring` の `init` に `--exclude` / `--include` / `--require-all` を足した**(#664 #727)。
参加者を名指しで足し引きでき(カンマ区切り・繰り返し可・再開で `none` を渡すと空へ戻す)、`--require-all` を
付けたときだけ確認を通らない者が 1 者でもいれば止まる
- **`scripts/lib/result_posts.py` を新設した**(#730 #583)。結果ファイルからレビュー・返信・スレッドの決着・
まとめを組み立てて待ち行列から送る共通層で、部分命令 `fix` が `/ndf:fix` を単独で使うときの送信と投稿を行う
- **`cross-refactoring/scripts/refactor_lib/intake.py` を新設した**(#728)。適用・修正・最終ゲートの修正の
3 つの取り込みが、範囲の確定・未検証のコミットの取り消し・結末の記録を共有する
- `cross-review/scripts/classifications.py` を新設し、指摘の区分の語彙を 1 か所に置いた(#732)
- 状態ファイルに参加者の記録(`participants`)と再開で変えた値の記録(`resume_changes`)を足し、完了報告に
参加した者の節を足した(#727 #648 #664)

### 変更

- **認証の確認を関門から外した**(#478 #727 #664)。確認を通らない CLI があっても `init` はその者を外して
続け、外した者と理由を状態ファイルと完了報告へ残す。使える者が 0 者なら止まる
- **`cross-review` が毎ラウンド 2 席を確保する**(#687 #727)。使える者が足りなければホスト、次に同じ
ランタイムの 2 つ目(`codex-2` など)で埋める。`--only` のときは埋め合わせをしない
- **`cross-refactoring` の既定の参加者を codex / kiro とホストにした**(#664)。agy は `--include agy` で戻す。
提案と適用を同じ参加者で回し、レビュー担当の役を無くした
- **再開で渡した引数を反映するか、反映しないと知らせる**(#648)。上限の引数の既定を未指定にし、既定値は
状態の側で補う
- **担当 1 回の起動の結末を共通の語彙で読む**(#729 #619 #584)。利用上限は理由「利用上限」として残り、
同じラウンドで同じ担当を起動し直さない。監視は CLI を独立したプロセスグループで起動し、止めた後に子
プロセスが結果を書かない
- **収束の判定で数えない指摘を、棄却と `minor` 以下に限った**(#732 #624 #706)。誤りを示されていない
`major` 以上は `unrefuted` として数える
- **GitHub と git へ書くのをレビューを回す側だけにした**(#730 #583)。レビューの担当は指摘の控えと
結果ファイルを書いて終わり、`/ndf:fix` の担当はコミットまでで止まる。投稿は `state.py read-result`、
送信・返信・決着・まとめは `state.py merge-fix` が行い、4 種別すべてで二度書かない照合を掛ける
- **同じ適用ラウンドを開き直すのを 2 回までにした**(#728 #647 #592)。2 回目は別の担当が試し、2 回とも
結果が残らなければ取り消して見送る。採用 0 件の提案ラウンドと項目の無い適用ラウンドでは担当を起動しない
- `launch-reviewer.sh` / `critique.sh` の第 1 引数をランタイム名から席の名前にした(ランタイム名は
そのまま受け付ける)(#727)

### 修正

- 帰属の段落がコミットの後ろに足されても、必須の記名を末尾の段落から読むようにした(#553)
- テストの実行中は `MONITOR_` で始まる環境変数を外し、監視の上限を延ばしたシェルでも同じ件数が通るように
した(#678)

### 削除

- 共通層の `check_auth` / `impl_pool` / `review_assign` / `assign` を消した(#664)。置き換え先は
`probe_auth` / 参加者の一覧 / `review_seats` / `impl_assign`
- `cross-review` の担当の申告件数と GitHub の実数の突き合わせをやめた(#730)

## [ndf 10.15.1] - 2026-09-19

### 修正
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Claude Code / Codex / Kiro CLI / agy 向けのスキル・MCP設定を共有す

このマーケットプレイスは、チーム全体でAI開発ツール(Claude Code / Codex / Kiro CLI / agy)の導入を加速するための事前設定されたプラグインを提供します。

**NDFプラグイン v10.15.1** は、同じ `ndf@ai-plugins` という名前で Claude Code / Codex / Kiro CLI / agy へ配布されるプラグインです。配布物は `plugins/ndf/` の1ディレクトリにまとまっており、Skill の実体は `plugins/ndf/skills/` の1箇所だけです。どのランタイムへ配るかは `plugins/ndf/manifests/*-skills.txt` が決めます。
**NDFプラグイン v10.16.0-dev.1** は、同じ `ndf@ai-plugins` という名前で Claude Code / Codex / Kiro CLI / agy へ配布されるプラグインです。配布物は `plugins/ndf/` の1ディレクトリにまとまっており、Skill の実体は `plugins/ndf/skills/` の1箇所だけです。どのランタイムへ配るかは `plugins/ndf/manifests/*-skills.txt` が決めます。

- **公開Skills**: Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個に分離。
- **元Skills(45個)**:
Expand Down Expand Up @@ -110,7 +110,7 @@ hook を効かせる手順と、新しい版へ入れ替える手順は

| プラグイン名 | バージョン | 説明 | 詳細 |
|------------|----------|------|------|
| **ndf** | 10.15.1 | Claude Code / Codex / Kiro CLI / agy へ 1 ディレクトリから配布する NDF プラグイン。8個の専門エージェント(Claude版)、公開Skills(Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個)、4ランタイム共通の作業ツリー運用フック(PreToolUse / SessionStart / userPromptSubmit / agentSpawn / PreInvocation)、Claude Stopフック、Codex/Kiro向け通知・実行補助を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:external-ai` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) |
| **ndf** | 10.16.0-dev.1 | Claude Code / Codex / Kiro CLI / agy へ 1 ディレクトリから配布する NDF プラグイン。8個の専門エージェント(Claude版)、公開Skills(Claude Code向け core 45個、Kiro向け core 44個、Codex向け core 43個、agy向け core 43個)、4ランタイム共通の作業ツリー運用フック(PreToolUse / SessionStart / userPromptSubmit / agentSpawn / PreInvocation)、Claude Stopフック、Codex/Kiro向け通知・実行補助を提供。v4.0.0 で Codex MCP サーバを廃止し、`/ndf:external-ai` skill + `corder` エージェント経由の CLI 直接実行に一本化。 | [README](./plugins/ndf/README.md) |
| **playwright-kit** | 2.0.3 | Playwright による E2E テストの計画・実装・証跡管理を提供するプラグイン。ページ役割からのテスト計画、動画 / trace 付きスクリプト実装、レポート生成と Drive 保管、playwright_kit ランタイム(init、a11y / CWV スキャン)の 4 Skill。NDF v7.0.0 で分離。 | [README](./plugins/playwright-kit/README.md) |

### 変更履歴
Expand Down
55 changes: 54 additions & 1 deletion docs/ndf-version-decisions.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# NDF の版ごとの決定と理由(v10.12.0〜v10.15.0)
# NDF の版ごとの決定と理由(v10.12.0〜v10.16.0)

`CLAUDE.md` から移した、出た版の記録である。**その版で何を決め、なぜそう決めたか**を残す。
変更点の列挙は `CHANGELOG.md` にあり、こちらは判断の理由を持つ。**`CLAUDE.md` へ書くのは
Expand Down Expand Up @@ -185,3 +185,56 @@ Pull Request を通すと、計画の更新がマージを待って進み具合
Claude Code 2.1.274 の実測 8 通りのうち読み込まれた 2 通り(行頭・空白の直後、強調の中)に合わせた。
観点は根拠を出典として残して値そのものは持たず、調べ直しは自動で書き換えない(外部の記述の読み違いが
そのまま検査の基準になる)。**この配布が、退避の検査を配布の工程で通した最初の版である。**

v10.16.0 で収束ループを、担当が揃わない・上限で止まる・結果を残さないときにも止まらず終わる形にした
(マイルストーン 13「agy の打ち切りと止まらない収束ループ」、#478 #553 #583 #584 #592 #619 #624 #647
#648 #664 #678 #687 #706 #727 #728 #729 #730 #732 #736)。**19 件の課題を、根本原因の場所 5 つ
(#727 #728 #729 #730 #732)へ寄せてから設計した。** 現れ方ごとに直すと、同じ判断が cross-review と
cross-refactoring の 2 か所に書かれ、片方だけが古くなる。設計の Pull Request(#781〜#784 #794)を
先に通し、実装(#790 #791 #793 #796 #797 #800 #801)は共通層を触る順に並べた。

**結果なしの判断と起動し直しの可否は、結末の共通層の 1 つの真偽値が持つ**(#729)。偽にするのは
利用上限だけにした ── 利用上限は起動し直しても解けず、起動のたびに待ちと相手の枠を使う。他の理由は
対象や負荷で変わるため 1 度は起動し直してよい。偽のときに何をするか(担当を替えるか、誤りで終えるか)は
担当の集合を知る Skill が決める。**利用上限は早期の致命の状態のまま理由だけを分けた** ── 終了コードで
分岐する骨組みと文書を変えずに、読む側が区別できる。

**認証の確認を関門から外し、使える者だけで始める**(#478 #727)。確認と中断が 1 つの関数にあると、
使える者で回す経路から呼べない。止めるかどうかは `--require-all` が決め、全員が揃わないなら始めたくない
運用を残した。**席は 2 つとし、使える者 → ホスト → 同じランタイムの 2 つ目の順で埋める**(#687)──
同じ言語モデルの 2 つの文脈より、違う言語モデルの 2 つの文脈のほうが観点が分かれる。1 つ目の席の
名前をランタイム名そのままにしたのは、埋め合わせの要らない実行で従来と同じ名前しか現れないためである。
**起動した後に分かる使えなさで担当を自動で外す仕組みは作らない** ── 一時的な打ち切りでも、以後の
ラウンドから恒久的に外れる。

**cross-refactoring の既定の参加者を codex / kiro とホストにした**(#664)。起動 199 回のうち失敗は
agy の 7 回だけで、提案の所要の中央値も agy が最も長かった(5 分。codex 3 分、kiro 2 分)。提案は最も
遅い者を待つため、所要はほぼ agy で決まっていた。既定にホストを含めると提案と適用の集合が一致し、
適用専用の母集合を持つ理由が無くなる。構造改善のレビュー工程は既に無く、記録だけに残っていた
レビュー担当の役は消した ── 残すと読み手が「この 2 者がレビューした」と読む。

**再開で渡した引数は、反映するか知らせるかのどちらかの表に必ず載せる**(#648)。引数の既定を未指定に
したのは、既定値と同じ値を「渡していない」とみなす形では、上限を既定値へ戻す操作を区別できないため
である。担当に関わる引数を渡した再開でだけ参加者を作り直す ── 途中で担当が入れ替わると、前の
ラウンドの記録と突き合わせられなくなる。

**収束の判定で数えないのは、棄却と `minor` 以下だけにした**(#732 #624 #706)。反証する相手がいない
構成(`--only` の 1 者)で、誤りを示されていない `major` が立証不足の区分へ落ち、未解決のまま承認で
終わっていた。立証不足の区分の名前は変えず軽微な指摘の残余だけに当てた ── 改名すると旧い状態
ファイルの値・測定の読み方・語彙を同時に付け替えることになり、変更の前後を測定で比べられなくなる。

**GitHub と git へ書くのは、レビューを回す側だけにした**(#730 #583)。担当が投稿してから結果ファイルを
書く形では、その間で止まると投稿は残り記録は残らず、起動し直した担当が同じ論点を重ねて投稿した
(PR #578)。担当の投稿の後に実物と照合して記録を補う形は採らない ── 照合の問い合わせが上限で
失敗すると同じ食い違いが残る。修正は現在の頭を指定して送り、送った後に照合する ── ブランチ名だけの
送信は、切り離された頭で何も送らずに終了コード 0 で終わる。単独の `/ndf:fix` の口は新しい入口の
スクリプトにせず共通層の部分命令にした ── 手順に書く行が 1 本で済み、実装が 1 つになる。

**同じ適用ラウンドを開き直すのは 2 回までの固定値とし、引数を足さない**(#728 #647 #592)。2 回目は
別の担当が試すため、2 回とも残らなければ担当ではなく適用ラウンドの側を疑える。上限を引数にして 2 つ
置くと、どちらで止まったかを読み解く必要が出る。**進行側は取り込みでコミットを書き換えない**(#553)
── 識別子が変わり申告と実体の対応が切れるため、必須の記名は末尾の段落から前へ git の判定に掛けて読む。

**テストの実行中は `MONITOR_` で始まる環境変数を、根の `conftest.py` の 1 か所で外す**(#678)。
名前を並べずに接頭辞で一致させるのは、上限の種類が増えるたびに一覧へ足し忘れる形を作らないためで、
収集より前に外すのは、テストの本体を読み込む時点で上限を決める実装があるためである。
12 changes: 6 additions & 6 deletions docs/versioning-and-distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,15 @@ semver の順序で除外されるのは、プラグイン間の依存解決(`

| 版 | 形 | 意味 |
| --- | --- | --- |
| 正式版 | `10.15.1` | 利用者が常用してよい |
| 開発版 | `10.16.0-dev.1` | 検証中。入れたくない利用者は取得を控えられる |
| 公開前の確認版 | `10.16.0-rc.1` | 正式版の候補。残るのは確認だけ |
| 正式版 | `10.16.0` | 利用者が常用してよい |
| 開発版 | `10.17.0-dev.1` | 検証中。入れたくない利用者は取得を控えられる |
| 公開前の確認版 | `10.17.0-rc.1` | 正式版の候補。残るのは確認だけ |

- 接尾辞は**次に出す正式版の版数へ付ける**。`10.15.1` の次を開発するなら `10.16.0-dev.1`
- 接尾辞は**次に出す正式版の版数へ付ける**。`10.16.0` の次を開発するなら `10.17.0-dev.1`
- 連番は開発版を出すたびに増やす。**同じ版数で中身を差し替えない**。差し替えると、利用者の
手元にある版と `main` の版が同じ番号で別物になり、何を確かめたのかが分からなくなる
- **正式版を出すときは接尾辞を外す。** `10.16.0-dev.3` の次は `10.16.0`
- 順序は semver に従い `10.16.0-dev.1` < `10.16.0-rc.1` < `10.16.0` になる
- **正式版を出すときは接尾辞を外す。** `10.17.0-dev.3` の次は `10.17.0`
- 順序は semver に従い `10.17.0-dev.1` < `10.17.0-rc.1` < `10.17.0` になる

## ランタイムごとの取得と導入

Expand Down
4 changes: 2 additions & 2 deletions plugins/ndf/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ndf",
"version": "10.15.1",
"description": "Claude Code plugin (v10.15.1): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"version": "10.16.0-dev.1",
"description": "Claude Code plugin (v10.16.0-dev.1): 8 specialized agents and 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.",
"author": {
"name": "takemi-ohama",
"url": "https://github.com/takemi-ohama"
Expand Down
4 changes: 2 additions & 2 deletions plugins/ndf/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ndf",
"version": "10.15.1",
"description": "Codex plugin (v10.15.1): 43 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, external AI delegation (Codex/agy), and optional Slack completion notifications.",
"version": "10.16.0-dev.1",
"description": "Codex plugin (v10.16.0-dev.1): 43 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, external AI delegation (Codex/agy), and optional Slack completion notifications.",
"skills": [
"./skills/cherry-pick-pr",
"./skills/cross-refactoring",
Expand Down
Loading
Loading