Skip to content

release: plugin_dir と changed-plugins がプラグインの置き場を ndf・playwright-kit の名前で決め打ち、他のリポジトリで package-plugin の手順が止まる #1756

Open

Description

@takemi-ohama

何を見つけたか

プラグインの置き場を、プラグインの名前で決め打っている。ndf と playwright-kit だけを plugins/<名前>/、それ以外を plugins/mcp/<名前>/ とみなす。

  • plugins/ndf/scripts/lib/step_result.py の plugin_dir(333〜337 行)
  • plugins/ndf/scripts/release-steps.py の other_plugins(279〜293 行。cmd_changed_plugins(296 行)が呼ぶ)。差分のパスを正規表現 plugins/(?:mcp/)?([^/]+)/ でプラグインへ対応付け、置き場を plugin_dir と同じ名前の決め打ちで組み直す(287 行)

同じ決め打ちが plugin_dir と other_plugins の 2 か所に分かれて重複している。

配布の形 package-plugin を使う別のリポジトリで plugins/<名前>/ にプラグインを置くと、plugins/mcp/<名前>/ を探して「プラグインが無い」で止まる(plugin_dir)か、変更のあったプラグインを already にも載せず「0 件」で黙って落とす(changed-plugins)。

どこで見つけたか

issue #1752 の設計で changed-plugins を読んだとき。

なぜこの変更の範囲外なのか

#1752 は他のプラグインの範囲の決め方を変えない(要求の前提 1)。置き場の解決は bump・changelog・notes も使う共通の処理で、直す場所は plugin_dir と配布の宣言の側である。根拠: Value 5 / Value 6(MVV 版 2)

直さないと何が起きるか

ai-plugins 以外のリポジトリで、package-plugin の配布の決まった手順が使えない。

直す場所

  • 現象レイヤー: 他のリポジトリで release の bump・changed-plugins(package-plugin の手順)が止まる/黙って 0 件になる
  • 修正レイヤー: プラグインの置き場の解決。.claude-plugin/marketplace.json の source (例 ./plugins/mcp/mcp-playwright )を引く 1 つの関数を、plugin_dir と other_plugins が共有する
  • 修正方針: 統合と向きの修正。plugin_dir(lib/step_result.py )を marketplace.json の source から引く 1 つの関数にし、other_plugins が差分のパスをプラグインへ対応付けるときも同じ表を使って 2 か所の決め打ちを 1 つにする。表が無いリポジトリでは今の規則を既定として残す

由来

issue #1752

再確認(ndf 10.17.69、2026-10-10)

  • plugins/<名前>/ に置いた仮のリポジトリで、bump --plugin foo は exit 3(「プラグインが無い: foo(plugins/mcp/foo/…)」)で止まる。changed-plugins は変更のあった bar を already にも載せず、「0 件」で黙って落とす
  • 決め打ちは lib/step_result.py の plugin_dir、release-steps.py の other_plugins(changed-plugins が呼ぶ)の正規表現 plugins/(?:mcp/)? とその直後の置き場の組み立てにある。plugin_dir は release_lib/bump.py と release-verification-steps.py (verify-install)からも呼ばれる
  • 関連: verify-install の Kiro は --plugins を見ず ndf の版を読むため、ndf 以外のプラグインで必ず version_mismatch になる #1889(verify-install の Kiro が --plugins を見ない)

Value 6 の棚卸しから足す範囲(#2624)

リリースの形 package-plugin の部品に、プラグインの置き場の決め打ちのほかにも ai-plugins の配置が入っている。別の配置のプラグインのリポジトリで版上げが止まるか、前のタグを見つけられない。

中身 場所
README とマーケットプレイスの書き換え(/plugins/cache/ai-plugins/ndf/・ndf@ai-plugins) plugins/ndf/scripts/release-steps.py:192・:193
タグの形 <プラグイン>--v<版> plugins/ndf/scripts/release-steps.py・plugins/ndf/scripts/release_lib/bump.py
根の CHANGELOG.md・docs/versioning-and-distribution.md plugins/ndf/scripts/release-steps.py・plugins/ndf/scripts/release_lib/bump.py

リポジトリ前提の検査の例外リスト scripts/repo-assumptions-allow/ は、この課題を行き先に書いた項目を持つ。直したら同じ変更で項目を消す。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions