Skip to content

NDF を開発ワークフローに特化させ、範囲外の Skill を toolbox プラグインへ移す #115

Description

@takemi-ohama

何のために

NDF を開発ワークフローに特化させ、範囲外の Skill を新プラグイン toolbox へ移す。
Skill 一覧の総量を減らして発動精度を上げ、cross-refactoring#113)の追加余地を作る。

関連: #113

前提の確認: 予算の実体

先に、逼迫していると言われている frontmatter 予算の中身を確認した。ハード制約には
達していない。

指標現在上限出典
Claude Code の初期一覧5,8558,000ランタイム公式(コンテキスト長不明時)
Codex の初期一覧5,4438,000ランタイム公式(コンテキスト長不明時)
全 Skill の frontmatter 合計10,61211,200本リポジトリの運用値

3 番目の 11,200 は外部仕様ではない。scripts/check-skill-frontmatter.py のコメントにある
とおり、v7.0.0 時点の実測 10,559 文字に約 6% の余裕を足した数字で、
**「Skill を増やすときは実測しなおして更新する」**前提の歯止めである。

# v7.0.0 時点の実測 10,559 文字(ndf 30 個 + playwright-kit 4 個、2026-08-14)を基準に、# 約 6% の余裕を足して 11,200 とした。Skill を増やすときは実測しなおして更新する。FRONTMATTER_TOTAL_MAX=11200

つまり cross-refactoring を追加するだけなら、この値を上げれば通る。それでも本 issue を
先に検討する理由は、予算ではなく焦点にある。

  • 一覧が長いほど、依頼文とトリガ語の突き合わせが薄まり発動精度が落ちる
  • NDF を導入する利用者の大半は開発ワークフローが目的で、Google Drive 連携や Skill 自体の
    計測ツールまで常に一覧へ載せる必要がない
  • v7.0.0 でブラウザ自動テスト 4 個を playwright-kit へ分離した前例がある

現状

plugins/ndf-shared/skills/ に 30 個。配布は Claude Code 26 / Codex 24 / Kiro 25。
利用実績は docs/specifications/ndf-skill-inventory.md
の台帳(2026-05-20 〜 2026-08-07 の 1,943 セッション)による。

移動対象(8 個 → toolbox

開発ワークフローから外れる 8 個を、1 つのプラグインにまとめて移す。
**いずれも「削除」ではなく「移動」**なので、台帳の維持判定とは矛盾しない。

Skill役割起動機会配布frontmatter
google-authGoogle 認証情報の取り回し4157未配布230
google-driveDrive API 操作1104未配布250
docker-container-accessコンテナ内での作業633CXK233
deploy環境ブランチへのデプロイ0測定不能CXK288
skill-statsSkill 利用実績の測定01未配布225
official-skills-autoloader公式 Skill の取り込み097C380
statuslineClaude Code の表示設定316CK275
ml-model-structure分析リポジトリのモデル構造規約294未配布264
合計2,145

分類すると 4 系統になるが、いずれも「開発の手順そのものではない」点で共通する。

  • 外部サービス連携google-auth / google-drive
  • 実行環境の操作docker-container-access / deploy
  • AI ツール自体の管理skill-stats / official-skills-autoloader / statusline
  • 特定リポジトリの規約ml-model-structure

8 個のうち 4 個は現在どこにも配布されていないgoogle-auth / google-drive /
skill-stats / ml-model-structure)ため、移動しても既存の利用者に影響がない。

移動しないと判断したもの

Skill理由
qa-security-scanセキュリティレビューは開発ワークフローの一部。pr-review との統合を別途検討する
logging-guidelines実装時のガイドラインであり開発ワークフローに属する

効果

frontmatter の合計は変わらない

check-skill-frontmatter.pyplugin family を跨いで合計する(利用者の環境には複数の
プラグインが同時に入るため)。toolbox も同じ構造で作る以上、検査の合計値は 10,612 のまま
減らないcross-refactoring の追加はこの運用値を実測しなおして更新することで通す。

効くのは「開発ワークフローだけ欲しい利用者」の一覧

初期一覧は導入したプラグインの分だけ積み上がる。未配布 4 個も配布するため、両方を入れる
利用者では増える

利用者の構成Claude Code の初期一覧
現在(NDF のみ。未配布 4 個は使えない)5,855
移動後・NDF のみ約 5,140
移動後・NDF + toolbox約 6,420

この分離で得られるのは「必要なものだけを入れられる」ことであり、全部入れる利用者の
総量削減ではない。
開発ワークフローだけが目的の利用者は、Google Drive 連携や表示設定を
一覧に載せずに済む。あわせて、これまでどこにも配布されず使えなかった 4 個が使えるように
なる

指標現在移動後
NDF の Skill 数3022
toolbox の Skill 数8
配布されている Skill の総数(Claude Code)2622 + 8 = 30

決めたこと

プラグイン名は toolbox

中身が 4 系統にまたがるため機能名では括れない。「開発ワークフロー本体ではない道具箱」
という位置づけをそのまま名前にする。

plugins/toolbox-shared/ # 共通編集元(skills + manifests)
plugins/toolbox-claude/ # Claude Code 版
plugins/toolbox-codex/ # Codex 版
plugins/toolbox-kiro/ # Kiro CLI 版 installer

配布先

未配布だった 4 個を含め、原則 3 ランタイムすべてに配布する。
ランタイム依存の実装を持つ 2 個だけ例外とする。

Skill現在toolbox での配布備考
google-auth未配布CXKランタイム非依存
google-drive未配布CXKランタイム非依存
ml-model-structure未配布CXKランタイム非依存
skill-stats未配布CXK解析対象は Claude Code のログのみ(下記)
docker-container-accessCXKCXK現状維持
deployCXKCXK現状維持
official-skills-autoloaderCC~/.claude/skills/ を読むため Claude Code 限定
statuslineCKCK現状維持

skill-stats は Claude Code の会話ログに依存する。
~/.claude/projects/**/*.jsonl を走査する実装であり、Codex / Kiro では解析対象が存在
しない。3 ランタイムへ配布した場合、Codex / Kiro から起動しても結果が得られない。
次のどちらかを決める必要がある。

  1. Claude Code 限定の配布にする(official-skills-autoloader と同じ扱い)
  2. 3 ランタイムへ配布し、description と本文に「解析できるのは Claude Code のログのみ」
    と明記する。Codex / Kiro のログ形式への対応は別 issue とする

決めたいこと

実施順序

#113 に先立って実施するか、cross-refactoring の追加と同時に行うか。

作業の見込み

playwright-kit の分離(v7.0.0)と同じ手順になる。

  • plugins/toolbox-shared/(skills + manifests)とランタイム別配布物
    plugins/toolbox-{claude,codex,kiro}/ を作る
  • .claude-plugin/marketplace.json へ登録する
  • NDF の 3 つの manifest から移動対象を外し、bash scripts/build-runtime-plugins.sh で同期
  • check-skill-frontmatter.py の運用値を実測しなおして更新
  • README / docs/ndf-plugin-reference.md / 棚卸台帳を更新
  • NDF のバージョンを上げる(Skill 数が変わるため破壊的変更として扱う)

移行期間の扱い(旧プラグインに対応表を残すか、即時削除か)も v8.0.0 の前例に合わせて決める。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions