Skip to content

Release: ndf v10.16.0-dev.1 - #807

Merged
takemi-ohama merged 1 commit into
developfrom
release/v10.16.0-dev.1
Sep 22, 2026
Merged

takemi-ohama merged 1 commit into
developfrom
release/v10.16.0-dev.1

Conversation

@takemi-ohama

@takemi-ohama takemi-ohama commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Summary

ndf の開発版 10.16.0-dev.1 を出す。マイルストーン 13「agy の打ち切りと止まらない収束ループ」(#478 #553 #583 #584 #592 #619 #624 #647 #648 #664 #678 #687 #706 #727 #728 #729 #730 #732 #736)の実装 7 本と確定仕様を develop のチャネルへ載せる版である。正式版(main)へは出さない。 そちらは利用者の承認を得てから進行側が行う。

変えたもの 中身
版数を持つ 15 箇所 3 つの plugin.jsonversion / description)、marketplace.jsonREADME.md の概要と一覧表、AGENTS.mdplugins/ndf/README.md の見出しと Kiro / Codex の確認例を 10.16.0-dev.1 へ上げた
docs/versioning-and-distribution.md の「版の付け方と開発版の配布」章 検査の規則に合わせて繰り上げた(正式版 10.16.0 / 開発版 10.17.0-dev.1 / 確認版 10.17.0-rc.1、「10.16.0 の次を開発するなら 10.17.0-dev.1」、10.17.0-dev.3 の次は 10.17.0、順序の例)
plugins/ndf/README.md の更新案内 見出しを ## v10.16.0-dev.1 へ更新するとき にし、本文を開発版であること・cross-refactoring の既定の参加者から agy が外れること・8 行の変更の表・確かめ方 3 コマンドへ書き直した
CHANGELOG.md ndf 10.16.0 の節を足した(追加 5 件 / 変更 9 件 / 修正 2 件 / 削除 2 件。見出しに接尾辞を付けない規約に従う)
docs/ndf-version-decisions.md v10.16.0 の判断(根本原因の場所 5 つへ寄せた分け方・結末の共通層・使える者だけで始める・席の埋め方・既定の参加者・再開の反映・数えない区分・書き込みの担い手・開き直しの上限・テストの環境変数)を足し、見出しの範囲を v10.12.0〜v10.16.0 にした。240 行で分割は不要
  • 大小は MINOR。 引数(--exclude / --include / --require-all)・共通層のスクリプト(lib/result_posts.py / refactor_lib/intake.py / classifications.py)の追加と、既定の振る舞いの変更である。refactor.py / state.py の副コマンドと既存の引数は 1 つも消えていない(ndf--v10.15.1 と先端で全副コマンドの --help を突き合わせた)。既定が変わるのは 3 つ: 認証の確認を通らない者を外して続ける(従来の関門は --require-all)、cross-refactoring の既定の参加者が codex / kiro とホストになる(agy は --include agy)、/ndf:fix の担当が送信・返信をしない(単独で使うときは lib/result_posts.py fix の 1 行で行う)。前の版で始めた状態ファイルはそのまま読める
  • 消した共通層の関数 check_auth / impl_pool / review_assign / assignscripts/lib/ の内部の関数で、利用者の手順からは呼ばれない
  • CLAUDE.md に「の次の版で」で書き出す段落は無く、退避するものは無い(instructions-check.py --root . が exit=0)
  • plugins/ 配下で差分があるのは ndf だけ(git diff --stat ndf--v10.15.1..HEAD -- plugins/ndf/ → 115 files changed)のため、他のプラグインの版は上げない
  • 形は前例 PR Release: ndf v10.15.0-dev.1 #766 / Release: ndf v10.15.1-dev.1 #777 の 10 ファイルと同じである

配布の記録

段階: 検証(2026-09-22 に提示して進めた。本番への配布は承認待ち)
版: 10.15.1 → 10.16.0-dev.1(MINOR: 引数 --exclude / --include / --require-all と共通層のスクリプトの追加、既定の振る舞いの変更。削除・改名は無い)
まとまり: PR #781 / #782 / #783 / #784 / #790 / #791 / #793 / #794 / #795 / #796 / #797 / #798 / #800 / #801 / #803 / #805

Test plan

  • bash scripts/build-runtime-plugins.sh → exit=0(--check も exit=0、生成物に差分なし)
  • python3 scripts/check-doc-staleness.py --root . → exit=0
  • bash scripts/validate-runtime-plugins.sh → exit=0
  • python3 scripts/check-doc-line-limit.py --root . → exit=0(ndf-version-decisions.md 240 行)
  • python3 scripts/check-markdown-links.py → exit=0
  • python3 scripts/check-skill-frontmatter.py / check-cross-skill-refs.py / check-skill-repo-assumptions.py / check-skill-shell-vars.py → すべて exit=0
  • python3 plugins/ndf/scripts/instructions-check.py --root . → exit=0
  • claude plugin validate . → exit=0
  • uv run --with pytest pytest scripts/tests plugins/ndf -q → exit=0(4937 passed)
  • 更新案内の「手元で確かめる」の 3 コマンドを実行 → この版の scripts/ で 3 つとも exit=0。ndf--v10.15.1scripts/ では exit=2 / 1 / 1 で、前の版と見分けられる
  • 更新案内の更新コマンドを隔離した設定ディレクトリ($HOME の下に mktemp -d した CLAUDE_CONFIG_DIR / CODEX_HOME)で、develop の ref で登録して実行 → claude plugin marketplace update ai-plugins exit=0 / claude plugin update ndf@ai-plugins exit=0 / codex plugin marketplace upgrade ai-plugins exit=0 / codex plugin add ndf@ai-plugins exit=0(develop にまだ新しい版が無いため、取得された版は 10.15.1。新しい版への入れ替わりはマージ後に確かめる)
  • bash plugins/ndf/dev.kiro/install.sh --project <一時ディレクトリ> --yes → exit=0。.kiro/agents/ndf.jsondescription が README の確認例(v10.16.0-dev.1)と一致

本番への配布の承認に使うもの(ndf v10.16.0)

目的

マイルストーン 13「agy の打ち切りと止まらない収束ループ」を、正式版 ndf v10.16.0 として main へ出してよいかを決める。
開発版 v10.16.0-dev.1 は develop へ載せ、隔離した設定で Claude Code と Codex が取得できることを確かめた。
承認後に行うのは、接尾辞を外す版上げ(develop 宛の PR)→ develop から main への PR のマージ → タグ ndf--v10.16.0 の打刻である。

1. 対象を開くためのもの

項目
版の比較 ndf--v10.15.1...ed675ec (前の正式版のタグ → 開発版を載せた develop の先端)
main へ入る差分 main...develop (235 コミット)
版数 10.15.1 → 10.16.0-dev.1(開発版。配布済み)→ 10.16.0(正式版。承認待ち)
大小 MINOR。引数 --exclude / --include / --require-all と共通層のスクリプトを足し、既定の振る舞いを変えた。副コマンドと既存の引数の削除・改名は無い(前の版と先端で --help を突き合わせた)
配布物の差分 plugins/ndf/ 119 ファイル(+12,425 / −2,779)。リポジトリ全体は 147 ファイル(確定仕様 8、テスト 3、pytest.ini、作業文書の削除など)。ndf 以外のプラグインは変わらない
開発版の配布の PR #807developrelease/v10.16.0-dev.1、マージ済み ed675ec9
まとまりの PR 設計 #781 #782 #783 #784 #794 / 実装 #790 #791 #793 #796 #797 #800 #801 / 確定仕様 #795 #798 #803 #805 / 版上げ #807

2. 承認の判断に使うもの

配る中身(束ごとに「今起きている問題 → 直すと成り立つこと」)

課題 今起きている問題 → 直すと成り立つこと
G1 #727 #687 #478 #664 #648 #736 担当が 1 者でも認証を通らないと収束ループが初期化ごと止まる → 使える者だけで始まり、cross-review は毎ラウンド 2 席を埋める(足りなければホスト、次に同じランタイムの 2 つ目)。--exclude / --include で参加者を名指しで変えられ、--require-all で従来の止まり方を選べる。cross-refactoring の既定の参加者は codex / kiro とホスト(agy は --include agy)。再開で渡した引数が黙って捨てられない
G2 #732 #624 #706 反証の担当がいない・実行検証が無いだけで重大な指摘が数えられず、未解決のまま承認で終わる → 数えないのは棄却した指摘と minor 以下だけになり、誤りを示されていない major 以上は残る指摘として数える
G3 #729 #619 #584 利用上限で止まった担当が「結果なし」として起動し直され、理由が出ないまま error で終わる → 起動 1 回の結末を共通の語彙で残し、利用上限は理由として報告して起動し直さない。監視が止めた担当の子プロセスは後から結果を書かない
G4 #728 #647 #592 #553 実装担当が結果を残さないと同じ適用ラウンドが上限なしに開き直され、未検証のコミットが残る → 結果なしを取り込みの 1 か所で受けて取り消し、開き直しは 2 回まで。採用 0 件のラウンドでは担当を起動しない。帰属の段落の後ろからも必須の記名を読む
G5 #730 #583 担当が GitHub へ直接投稿し、止まると PR にある指摘が記録に無く、起動し直すと同じ論点が 2 スレッドに分かれる → GitHub と git へ書くのはレビューを回す側だけになり、途中で止まってもやり直しで二度書かない。/ndf:fix を単独で使うときは、最後に lib/result_posts.py fix の 1 行で送信と返信を行う(利用者の手順が 1 行増える)
G6 #678 監視の上限を環境変数で延ばしたシェルでは既定値前提のテストが落ち、cross-refactoring の初期化が止まる → テストの実行中は監視の環境変数を共通の前提で外し、どのシェルからでも同じ結果になる

利用者から見て既定が変わるもの(3 つ): 認証を通らない者を外して続ける / cross-refactoring の既定から agy が外れる / /ndf:fix の担当が送信・返信をしない。いずれも更新案内(plugins/ndf/README.md の「v10.16.0-dev.1 へ更新するとき」)に書いてある。

取り消しの手段とその限界

手段 内容 限界
取得元ごとタグへ固定 claude plugin marketplace add devbasex/ai-plugins@ndf--v10.15.1 で前の正式版へ戻す 同じ取得元の他のプラグイン(playwright-kit / mcp-*)も同じ時点へ戻る
対象だけを固定 別名のマーケットプレイスを作り、git-subdirplugins/ndfref: ndf--v10.15.1 を指す 利用者が定義ファイルを持つ必要がある。固定した版と最新版を同時に有効にしない
配布する側の取り消し 無い。 main を戻しても、既に更新した利用者の手元は戻らない(取り消しは利用者の側の操作)。直すなら新しい版(10.16.1)を出す サードパーティのマーケットプレイスは自動更新が既定で無効なので、marketplace update を実行した利用者にだけ届く。届く範囲は更新した利用者に限られる

前の版で始めた状態ファイル(.cross_review/ / .cross_refactoring/)はそのまま読めるため、版を戻しても記録の移行は要らない。

検証への配布で確かめたこと

確かめたこと 結果
develop の先端 git ls-remote origin refs/heads/developed675ec9…#807 のマージコミット)と一致
Claude Code で開発版を取得(隔離した CLAUDE_CONFIG_DIR marketplace add …#develop exit=0 / plugin install ndf@ai-plugins exit=0 / plugin listVersion: 10.16.0-dev.1。clone の fetch は +refs/heads/develop:…、HEAD は ed675ec9
Codex で開発版を取得(隔離した CODEX_HOME marketplace add --ref develop exit=0 / plugin add ndf@ai-plugins exit=0 / plugin listndf@ai-plugins installed, enabled 10.16.0-dev.1
更新案内の更新コマンド 4 つ 隔離した設定で exit=0(マージ前に実行。取得された版は 10.15.1 のため、入れ替わりそのものは上の新規取得で確かめた)
更新案内の「手元で確かめる」3 コマンド この版で 3 つとも exit=0、前の版の scripts/ では exit=2 / 1 / 1(新旧を見分けられる)
Kiro のインストーラ exit=0。生成された説明が v10.16.0-dev.1 で README の確認例と一致
検査 全体テスト 4937 passed、claude plugin validate . / 版数と文書の検査 / 指示書の検査すべて exit=0、#807 の CI 28 件 pass
G5 の実物での確認(#801 の検査) PR #801 に 1 ラウンド回し、担当が投稿しない・取り込みが 1 件投稿して URL を記録・再実行で件数が増えない、を確かめた。確定仕様 PR #805 の cross-review も #801 の版で回り、取り込みの投稿・最終スイープの送信と返信・未解決 0 件の照合が通った

リリース後テストへ引き継ぐ未検証の受け入れ条件

条件 手元で確かめられなかった理由 本番で確かめること
G1 AC45 初期化の全体が生きた PR の取得と作業ツリーの同期を伴う 実際の PR で init が使える者だけで参加者 2 者に解決して始まる
G1 AC46 中断した実行の状態と、再開が触る外部の経路が要る 中断した収束ループを 1 者指定で再開し、次のラウンドが 1 席になる
G1 AC48 「認証は通るが言語モデルを引けない CLI」を用意できない そうなった担当がそのラウンドで結果なしとして扱われ、ループが止まらない
G4 手動確認 1 件 この変更を載せた骨組みで収束リファクタリングを回したときにしか確かめられない cross-refactoring を 1 回回し、進捗の記録に作業段階が残ること、結末の記録の理由が監視の結果と一致すること
G3 #619 / #584 の再現の手動確認 再現スクリプトが実行環境の再起動で消えた(同じ経路の自動テストは通る) 利用上限で止まった担当が理由「利用上限」で報告され、起動し直されない
G2 測定(受け入れ条件ではない) 配布後の測定スクリプトの出力でしか見えない 収束までのラウンド数の増え方と、未反証が多いときの修正の担当の負荷

まだ行っていないこと(承認後の持ち場「仕上げ」で行う)

  1. release/v10.16.0 から develop 宛の PR で接尾辞を外す(前例 Release: ndf v10.15.0 #770
  2. developmain の PR を作り gh pr merge --admin --mergegit diff --stat origin/develop origin/main が空であることを確かめる
  3. claude plugin tag plugins/ndf --push でタグ ndf--v10.16.0 を打つ
  4. リリース後テスト(上の表)→ 振り返り → まとまりの課題 19 件を閉じる(閉じるのは本番への配布の後)

🤖 Generated with Claude Code

マイルストーン 13「agy の打ち切りと止まらない収束ループ」を develop のチャネルへ載せる開発版。

- 版数を持つ 15 箇所を 10.16.0-dev.1 へ上げ、版の付け方の章の例を 10.16.0 / 10.17.0-dev.1 / 10.17.0-rc.1 へ繰り上げた
- plugins/ndf/README.md の更新案内をこの版の変更(使える者だけで始める・--exclude / --include / --require-all・
  cross-refactoring の既定の参加者から agy を外す・書き込みを回す側へ移す など)と確かめ方 3 コマンドへ書き直した
- CHANGELOG.md に ndf 10.16.0 の節、docs/ndf-version-decisions.md に v10.16.0 の判断を足した

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@takemi-ohama
takemi-ohama merged commit ed675ec into develop Sep 22, 2026
28 checks passed
@takemi-ohama
takemi-ohama deleted the release/v10.16.0-dev.1 branch September 22, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant