Uh oh!
There was an error while loading. Please reload this page.
release: Skill 棚卸 (v5.0.0) - #66
Conversation
* chore: feature/inventory-delete の Draft PR 作成 * Refactor: 利用実績のない Skill 8 個を削除し 4 個の発動条件を改善 棚卸台帳の判断基準(issues/ndf-development-skills/02-skill-inventory.md)に従い、 起動ゼロまたは代替可能な Skill 8 個を削除する。sync-main は Task 0-4 の担当のため対象外。 削除: git-gh-operations / knowledge-reorg / google-chat / mcp-builder / data-analyst-sql-optimization / python-execution / data-analyst-export / deepwiki-transfer - data-analyst-export と data-analyst-sql-optimization の内容は plugins/ndf-claude/agents/data-analyst.md へ移設した - manifest 3 種、plugin.json、README、docs の参照を更新した 発動改善(削除しない): - deploy: disable-model-invocation は維持し description に用途とトリガを明記 - qa-security-scan: description に発動条件を含めて自動発動できるようにした - official-skills-autoloader: Claude Code 専用である旨と対応ランタイムを明記 - logging-guidelines: paths でコード変更時に限定 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-merge-playwright の Draft PR 作成 * Refactor: ブラウザ自動テスト Skill 9 個を工程単位の 4 個へ統合 Task 0-5。ブラウザ自動テスト関連の 9 Skill を工程単位で 4 個に集約する。 - playwright-planning ← playwright-test-planning + playwright-scenario-test - playwright-authoring ← playwright-script-creation + playwright-execution + browser-test + playwright-browser-connect - playwright-evidence ← playwright-report + playwright-evidence-drive - playwright-kit-ops は実行環境ディレクトリを持つため単独で維持 単純連結ではなく重複記述を落として再構成し、SKILL.md 合計は 1,381 行から 662 行へ削減した。playwright-browser-connect の CDP 接続手順は playwright-authoring/references/browser-connection.md へ分割し、 全 SKILL.md を 500 行以内に収めた。 manifest は claude / kiro の browser-test を playwright-authoring に置換し、 codex の playwright 系 5 個を統合後の 4 個へ置換した。 旧 Skill 名への参照 (README / plugin.json / issue-plan-strategy / playwright_kit の docstring とテンプレート) をすべて更新した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-merge-review の Draft PR 作成 * Refactor: レビューと PR コメント対応の Skill を統合 review + review-branch → review (466 → 329 行) - --branch でローカル差分のセルフレビューへ切り替える 2 モード構成にする - review-branch 側にしかなかったセキュリティ・エラーハンドリングの観点を 共通の「観点」へ取り込み、review 側と重複していた品質観点を 1 本化する review-pr-comments + fix + resolve-pr-comments → fix (559 → 324 行) - --classify-only で分類のみの読み取り専用モードを提供する - 返信の書き分けと Resolve 手順を fix の手順に統合し、3 Skill に分散していた コメント取得・重要度判定・Resolve の記述を 1 本化する - コメント ID から thread node_id を引く手順を残す あわせて manifest 3 種、plugin.json の skills 配列、build-runtime-plugins.sh の パス書き換え対象、および他 Skill・文書からの参照を更新した。 * Fix: review Skill の外部AI委譲先を既存 Skill に戻し README の Skill 数を更新 - review Skill が参照していた `/ndf:external-ai` は Task 0-3 で統合予定であり 本 PR 時点では存在しないため、`/ndf:codex` / `/ndf:gemini` 参照に戻した - README の公開 Skill 数(Claude 26 / Kiro 25 / Codex 27)と元 Skill 数(46)を 本 PR 後の実態に合わせて更新した Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: review Skill の外部AI委譲手順を runtime 自己完結に戻す codex / kiro runtime の manifest には `codex` / `gemini` Skill が含まれない ため、`/ndf:codex` / `/ndf:gemini` への無条件参照ではインストール後に 呼び出し手順を解決できなかった。ベースブランチと同じく「同梱されている 場合はその skill に従う」条件付き記述に戻し、非同梱 runtime 向けの要点 (起動コマンド・完了検知・成果物回収・サンドボックスに関する警告)を インラインで復元した。「関連」節のリンクにも同梱 runtime 限定である旨を 注記した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: fix Skill の引数解釈と Resolve 用 thread ID 取得手順を修正 - PR 番号とオプションを分離して解釈する手順に修正(`--classify-only` / `--defer-nit` / `--severity-min` 付き実行で PR 番号が壊れていた) - Resolve Conversation で使う ID を review thread ID (PRRT_) と明記し、 レビューコメントの node_id (PRRC_) を引くショートカットを削除 - reviewThreads query に databaseId を追加し、コメント ID と thread の 対応付けができるようにした Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-measure の Draft PR 作成 * Docs: Skill 棚卸台帳の作成と frontmatter 規約の明文化 - docs/specifications/ndf-skill-inventory.md を新規作成し、全 49 Skill の 行数 / frontmatter 設定 / 起動数 / 機会数 / 判定 / 判定根拠を記録 - plugins/ndf-shared/skills/README.md に frontmatter 規約を明文化。 description を発動判定の単一の真実とする方針、トリガ語の一意性ルール、 広すぎるトリガの禁止例、上限値、項目の使い分けを規定 - 台帳と規約を docs/specifications/README.md と ndf-shared/README.md から参照 測定は修正済みの skill-stats へ一本化した。初期実測との差異(git-gh-operations の機会 0 → 1,840 など)は台帳に「初期実測との差異」として記録し、削除の判定に 適用する条件を既定から例外へ改めた。 * Fix: 棚卸台帳と frontmatter 規約の事実誤りを修正 cross-review round 1 の指摘に対応。 台帳 (docs/specifications/ndf-skill-inventory.md): - qa-security-scan はトリガ語を宣言しており機会 0 と測定できているため、 「測定できない」とする記述を削除し、宣言トリガ語と実際の発話の乖離を 発動改善の根拠として明記 - sync-main の判定根拠を実測値どおり「既定(起動 0 / 機会 0)」へ修正 - logging-guidelines の改善方針を、Claude Code 専用の paths ではなく 3 ランタイムで効く description のトリガ具体化へ変更 規約 (plugins/ndf-shared/skills/README.md): - 未実装の check-skill-frontmatter.py を既存の CI 内容と Task 0-7 の予定へ差し替え - Codex の agents/openai.yaml は未生成のため現状「制御手段なし」と明記し、 生成処理の追加は Task 0-8 で行うことを補足 - 明示指示専用の argument-hint を必須条件から外す - 未引用 description の問題を YAML 構文エラーとして説明 - name と親ディレクトリ名の一致をプロジェクト規約として仕様と分離 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 測定不能な機会の判定根拠とランタイム差の記述を修正 cross-review round 2 の指摘に対応。 - 台帳: 機会が `—`(トリガ語未宣言で測定不能)の Skill について「機会 0」と 断定していた判定根拠を「既定を準用(起動 0 / 機会は測定不能)」へ修正し、 判断基準の節に測定不能時の扱いを明記 - frontmatter 規約: Agent Skills 仕様 6 項目を「共通に解釈される項目」と 「実装差がある項目(`allowed-tools` は experimental)」へ分割 - frontmatter 規約: `disable-model-invocation` による description 非掲載が Claude Code の挙動である旨を明記し、Codex/Kiro での代替手段を併記 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 初期一覧予算のランタイム差と超過分の逃がし先を明確化 - Claude Code の初期 Skill 一覧予算(1% / 8,000 文字 / 1 項目 250 文字)を上限値表に追加 - トリガ語を先頭へ置く根拠を Codex だけでなく Claude Code の切り詰めも含めて記載 - 予算超過分の逃がし先を配布先ごとに分け、CXK 配布の Skill でトリガ語を `when_to_use` へ移すと Codex/Kiro で暗黙起動に効かなくなる点を明記 - `plan-to-spec` の発動改善方針を、配布 `CXK` に合わせて `description` 内での要約へ修正 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: プラン側のトリガ語逃がし先を frontmatter 規約に合わせる 3 ランタイムへ配布する Skill のトリガ語は description に残す方針へ plan-to-spec の改善方針と超過分の逃がし先の記述を更新した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 判定を覆す例外の明文化と常時注入分類のランタイム制約を追記 - 判断基準表の列を「例外として判定を覆す条件」に改め、起動 0 / 機会 0 でも 別の測定で需要が確認できるものは削除せず発動改善とする例外を明記 - 機会が測定不能で既定を準用する場合にも同じ例外が適用されることを追記 - qa-security-scan と deploy の判定根拠に、例外を適用した旨と根拠を記載 - Skill 執筆規約に、Codex / Kiro には「常時注入のみ」の相当機能がなく ndf-policies が通常の Skill として扱われる制約と回避策を追記 - 07-tasks.md Task 0-10 に ndf-policies の description 追記を追加 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 常時注入分類の判定根拠にランタイム差分を明記 台帳の ndf-policies は user-invocable: false のみを根拠に判定対象外として いたが、frontmatter 規約に追記した「Codex / Kiro は同項目を解釈せず通常の Skill として扱う」制約と食い違っていた。配布が CXK である実態に合わせ、 Kiro は Task 0-9 の .kiro/steering/ 移設、Codex は Task 0-10 の description 追記で回避する旨を判定根拠へ含めた。 skill-stats は配布先がなく常時注入分類でもないためランタイム差分は生じない ことを、あわせて判定根拠へ明記した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-merge-git の Draft PR 作成 * Refactor: マージ後処理と cherry-pick の Skill を統合 (0-4) - `merged` へ `clean` / `sync-main` を吸収(97 行 → 58 行)。改名しない - `cherry-pick-pr` へ `branch-fix-strategy` を吸収(207 行 → 130 行) - manifest 3 種と `plugins/ndf-claude/.claude-plugin/plugin.json` から統合元を削除 - `pr` / `issue-plan-strategy` / `deploy` / `problem-solving` / `docs` / `README.md` の参照を更新 - `build-runtime-plugins.sh` で 3 ランタイムの生成物を同期 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 削除済み clean Skill を参照する Kiro プロンプトを削除 (0-4) clean Skill は merged へ統合済みだが、plugins/ndf-kiro/prompts/clean.md が 残存していた。install.sh は prompts 配下の md を無条件に .kiro/prompts へ コピーするため、削除済み Skill への導線が残ってしまう。 merged.md が「main更新、ブランチ削除」を包含するため clean.md を削除する。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: merged の用途分岐を明示し廃止 prompt の除去と Skill 数表記を修正 (0-4) - `merged` に「用途の切り分け」を追加。クリーンアップ目的と main 取り込み 目的で手順が分岐することを明示し、未マージ時に main 取り込みが打ち切られ る誤読を防ぐ - `plugins/ndf-kiro/prompts/merged.md` を main 取り込みにも対応した内容へ更新 - `install.sh` に廃止 prompt の除去を追加。過去のインストールで `.kiro/prompts/clean.md` が残り続ける問題を解消 - README のプラグイン一覧の公開 Skill 数を 26 / 25 / 27 に修正(冒頭の記載と 不一致だった) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Docs: Task 0-7 に核心ルールの ndf-policies 移譲を追記 (0-4) 0-4 で `cherry-pick-pr` へ統合した `branch-fix-strategy` 由来の核心ルールは、 `disable-model-invocation: true` の Skill 内にあるため自然文の質問から参照できない。 Task 0-7 の変更内容に、常時読み込まれる `ndf-policies` への移譲を明記する。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: merged Skill に「マージ済みブランチの整理のみ」の分岐を追加 (0-4) clean を merged へ統合した際、PR のマージ状態に依存せず単独実行できた 「マージ済みブランチの整理のみ」の導線が失われていた(機能の退行)。 - 用途の切り分け表に「マージ済みブランチの整理のみ」の行を追加 - 「マージ済みブランチの整理」節が単独で実行可能であり、 手順 1(PR のマージ確認)を前提にしないことを本文で明記 - build-runtime-plugins.sh で 3 ランタイムの生成物へ反映 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: stash 復元先の誤りを修正しブランチ運用の原則を ndf-policies へ移譲 (0-4) - merged Skill: main へ checkout したまま stash pop すると元ブランチの 未コミット変更が main に展開される問題を修正。退避元ブランチを記録し、 残っていれば checkout してから pop、削除済みなら pop せず報告する - branch-fix-strategy 由来の核心ルール(環境ブランチ適用の原則、 ブランチ汚染回避、revert の扱い)を ndf-policies へ移譲 - cherry-pick-pr は実行手順を残し、原則は ndf-policies を参照する形へ - 07-tasks.md: Task 0-7 の ndf-policies 移譲項目を削除し 0-4 の注意点へ移動 * Fix: README のプラグイン一覧表の公開 Skill 数を実数へ更新 冒頭 (L11) は 21/20/21 へ更新済みだったが、プラグイン一覧表 (L103) に 旧値 26/25/27 が残っており、同一ファイル内で異なる配布数を示していた。 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-merge-external-ai の Draft PR 作成 * Refactor: codex / gemini Skill を external-ai へ統合 - `plugins/ndf-shared/skills/external-ai/` を新設し、外部 AI 委譲の共通手順を集約 - CLI 固有の差分を `references/cli-codex.md` / `references/cli-gemini.md` へ分離 - `plugins/ndf-shared/skills/codex/` と `plugins/ndf-shared/skills/gemini/` を削除 - manifest 3 種から codex / gemini を除き external-ai を追加(claude / codex / kiro すべて) - cross-review / review / qa-security-scan / 各エージェント定義 / 文書の参照を更新 - 生成物を build-runtime-plugins.sh で同期 統合前 917 行(codex 473 + gemini 444)→ 統合後 696 行(SKILL 285 + references 411)で -221 行。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: Kiro の codex プロンプトを external-ai スキル参照へ更新 plugins/ndf-kiro/skills/codex/ 削除に伴い、--with-codex で配置される prompts/codex.md が存在しない Skill 名を案内していた問題を修正。 external-ai スキルと references/cli-codex.md を参照するよう変更。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: corder の Codex 実行例を sentinel 待機 + 三段フォールバック回収へ差し替え `corder` エージェントの Codex CLI 実行例が `ps -p <PID>` による終了確認を案内していたが、 Codex は zombie (defunct) 化して `ps -p` が 0 を返し続けるため完了判定を誤る。 `skills/external-ai/references/cli-codex.md` と同じ運用へ揃える。 - 完了検知を stderr 末尾の `^tokens used$` sentinel 待機へ変更 - プロンプトに最終出力ファイル (`apply_patch` 書き出し) を明示する例を追加 - 成果物回収をファイル → stdout → stderr の三段フォールバックへ変更 - `--config reasoning.effort=medium` を起動例に追加 - `ps -p` を使わない旨を注意書きとして明記 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: qa-security-scan の Codex 実行例を external-ai 規約へ同期 `plugins/ndf-shared/skills/qa-security-scan/03-report-template.md` の Codex CLI 呼び出し例が `external-ai/references/cli-codex.md` の規約と 矛盾していたため、corder.md と同じ形へ揃えた。 - プロンプトに `apply_patch` での出力ファイル書き出し指示を追加 - 起動時に `--config reasoning.effort=medium` を指定 - 完了検知を `^tokens used$` sentinel 待機に変更 - 回収をファイル → stdout → stderr の三段フォールバックに変更 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: Gemini 起動例に trusted directory 解除を追加し README の Skill 個数を実体へ合わせる - cli-gemini.md の headless 起動例をすべて `GEMINI_CLI_TRUST_WORKSPACE=true` + `--skip-trust` 併用へ揃えた。 未登録パス (worktree 等) は untrusted 判定で `--yolo` が `default` へ降格し、 非対話では承認待ちのままハングするため、環境変数とフラグの両方が要る。 実装根拠は cross-review の scripts/launch-gemini.sh の起動行。 - 承認モード節・Q1 / Q3 / Q4 のトラブルシューティングも同じ前提へ更新。 - external-ai/SKILL.md の CLI 比較表から「Gemini は追加フラグ不要」の記述を外した。 - README.md の元Skills 個数を plugins/ndf-shared/skills/ の実体 32 個、 runtime 別 core 個数を manifest の実数 (Claude 23 / Kiro 23 / Codex 25) に合わせた。 * Fix: Kiro の codex prompt が示す参照パスを配置に合わせる Kiro では Skill はワークスペース直下ではなく .kiro/skills/ に配置されるため、 skills/external-ai/... と書くと参照に失敗しうる。Skill 名からの相対参照と Kiro での実配置パスの両方を示す形へ改めた。 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-codex-conformance の Draft PR 作成 * Feat: Codex 配布物へ暗黙起動を抑止する openai.yaml を生成 (0-8) Codex は Skill ごとの `<Skill 名>/agents/openai.yaml` の `policy.allow_implicit_invocation` で暗黙起動を制御する。配布物に このファイルがなく、`deploy` を含む全 Skill が暗黙起動できる状態だった。 `scripts/build-runtime-plugins.sh` に `write_codex_skill_policies` を追加し、 共有 Skill の frontmatter に `disable-model-invocation: true` を持つものだけへ `agents/openai.yaml` を生成する。`argument-hint` を持つ場合は `interface.default_prompt` へ対応付ける。 生成は Codex 配布物の同期処理内(`sync_skills` の codex-runtime 分岐)で 一時ディレクトリに対して行うため、対象から外れた Skill の生成物は 配布ディレクトリごと差し替えられて残らない。`--check` でも差異を検出できる。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Docs: Codex の暗黙起動抑止による利用者への影響と起動方法を追記 `disable-model-invocation: true` の Skill 8 個は Codex の skill 一覧に 載らなくなるが、Codex には Claude Code の slash command に相当する 明示起動口がないため、起動方法が利用者に伝わらない状態だった。 `plugins/ndf-codex/README.md` に以下を追記する。 - 抑止対象の Skill 一覧 - 暗黙起動されなくなること - 起動するには SKILL.md のパスまたは Skill 名を示して読ませること - codex-cli 0.146.1 での実機検証結果 (抑止 / 対照 / 名前起動 / パス起動) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Docs: Codex の明示起動 ($skill) の挙動を実機検証結果に基づき修正 - `allow_implicit_invocation: false` でも `$<skill 名>` の明示起動は動作することを 実機検証 (codex-cli 0.146.1) で確認し、README を「暗黙起動のみ抑止」へ修正 - 起動経路ごとの挙動を表で整理し、推奨を `$<skill 名>` に変更 - プラグイン Skill はワークスペース外のキャッシュに置かれるため、曖昧な ファイル探索依頼は失敗しうる点を注意喚起として追記し、実体パスの形式を明記 - base ブランチ取り込みで削除された clean / sync-main の openai.yaml を再生成で除去 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-frontmatter の Draft PR 作成 * Feat: Skill frontmatter の規約検査スクリプトを追加 scripts/check-skill-frontmatter.py を新規作成した。検査は 3 種類に分かれる。 - individual: 仕様準拠 (name / description / compatibility)、安全性 (< >)、 可搬性 (発動条件の有無 / 二重引用符 / 先頭のトリガ語)、運用 (長さ / 行数 / 発動制御の組み合わせ / 未知の項目名) - aggregate: Codex の初期一覧予算と frontmatter 総量 - cross: Skill 間のトリガ語重複 判定が本質的に近似になる項目 (description 先頭のトリガ語、when_to_use の追加 トリガ、argument-hint の有無) は警告にとどめ、--strict で失敗させる。 現状の 33 Skill に対して 30 件のエラーを検出する。これらは本 PR の frontmatter 一括見直しで解消する。 * Feat: 検査スクリプトを規約の最終形へ合わせる - 初期一覧の予算を配布先ごとに manifest から計算する。Claude Code は 1 項目 250 文字で切り詰めてから積む仕様を反映した - Codex / Kiro は disable-model-invocation と user-invocable を解釈しないため、 明示指示専用と常時注入の Skill は description 自体に意図を書き残す必要がある。 これを portability/explicit-only と portability/inject-only として検査する - description 先頭のトリガ語判定を「最初の 1 文」から「先頭 160 文字」に緩めた * Feat: 全 Skill の frontmatter を規約へ揃え検査を CI へ組み込む (0-7) `plugins/ndf-shared/skills/README.md` の frontmatter 規約に対し、全 29 Skill を `scripts/check-skill-frontmatter.py` がエラー 0 件 / 警告 0 件で通る状態へ揃えた。 - 発動制御: `merged` / `pr` / `review` / `pr-tests` から `disable-model-invocation` を外した。いずれも日常的に自然文で依頼されるため。`deploy` / `cherry-pick-pr` / `statusline` は書き込みを伴うため明示指示専用を維持し、Codex / Kiro が同キーを 解釈しないことを踏まえて `description` に明示指示専用である旨を書いた - `description`: 全 Skill を「何をするか + Use when + Triggers」の形へ書き直し、 用途とトリガ語を先頭 160 文字へ置いた。`when_to_use` は Claude Code 限定配布の `official-skills-autoloader` だけに残した。3 ランタイムへ配る Skill のトリガ語を `when_to_use` へ置くと Codex / Kiro で発動判定に効かないため - トリガ語: `investigation-rules` の `調査` などの広すぎる語を具体化し、 `playwright-evidence` と `playwright-kit-ops` の `upload_evidence` 重複を解消した - `paths` を `ml-model-structure`(`analysis/**`)へ、`effort: high` を `review` へ付与 - `deploy` / `cherry-pick-pr` の `argument-hint` から `<` `>` を除去した - 配布されていなかった `qa-security-scan` を 3 ランタイムへ、 `official-skills-autoloader` を Claude Code へ配布対象として追加した。台帳の 発動改善判定は配布されていない状態では効かないため - `FRONTMATTER_TOTAL_MAX` を実測 12,145 文字に約 7% の余裕を足した 13,000 で確定した - `.github/workflows/runtime-plugin-validate.yml` へ検査ジョブを追加した 検査スクリプトの変更(理由つき): - `ops/argument-hint` を警告から失敗へ変更した。近似判定ではなく機械的に判定でき、 計画(Task 0-7 の検査項目表)でも失敗条件として挙げられているため - manifest の読み取りで行末の `#` 以降をコメントとして落とすようにした。 `scripts/build-runtime-plugins.sh` の解釈と揃っておらず、コメント付き manifest では 配布先の判定が実際のビルド結果とずれるため Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Merge release/skill-inventory into feature/inventory-frontmatter Task 0-8 (PR #74) の Codex 向け agents/openai.yaml 生成処理を取り込んだ。 本 PR が merged / pr / review / pr-tests から disable-model-invocation を 外したため、再ビルドでこの 4 個の openai.yaml が削除され、生成対象は 明示指示専用を維持する cherry-pick-pr と deploy の 2 個になった。 * fix: merged / pr に実行前確認を必須化し argument-hint 判定を条件化 cross-review round 1 (codex) の指摘 3 件に対応する。 - merged / pr: disable-model-invocation を戻す代わりに、取り消しの難しい 操作(worktree 削除・ブランチ削除・push・PR 作成)の直前に対象を一覧提示 して利用者の同意を得る手順を SKILL.md と description へ固定した。 Codex / Kiro は disable-model-invocation を解釈しないため、安全性の担保を frontmatter ではなく本文と description に置く - skills/README.md: 「明示指示専用」の対象を「取り消しが難しく、かつ明示起動が 定着している操作」に限定し、自然文で日常的に依頼される破壊的操作は 「自動発動 + 実行前確認」で守るという選択肢と使い分けの基準を明文化した。 Codex の openai.yaml がビルドで自動生成される旨(Task 0-8 完了)も反映 - check-skill-frontmatter.py: argument-hint の要求を「引数を取る Skill」に 条件化した。判定は frontmatter の arguments / 本文の $ARGUMENTS / 本文の 「引数」への言及のいずれか。根拠はスクリプトのコメントに記載 - ndf-skill-inventory.md: 発動制御の変更表に実行前確認の行を追加 検査: エラー 0 / 警告 0、build --check / markdown links / validate すべて通過 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: official-skills-autoloader にインストール前の同意取得を必須化しパスを配布物基準へ修正 cross-review round 2 の指摘 3 件に対応。 - official-skills-autoloader に「インストール前の同意取得(必須)」節を新設。 クローン元 URL / クローン先 / symlink を張る先 / 対象 Skill 名の 4 点を一覧提示して 同意を得てからステップ3 を実行することを必須手順として固定。description と when_to_use にも確認を取る旨を追記 - 手動管理コマンドとプロジェクト配置の案内を ${CLAUDE_PLUGIN_ROOT}/scripts/install-official-skills.sh へ置き換え。 playwright-authoring / playwright-kit-ops に残っていた配布物で解決できない plugins/ndf-shared/... の案内も修正 - 規約 (skills/README.md) の「取り消しの難しい操作をどちらで守るか」の適用先を表に整理し、 official-skills-autoloader を「自動発動 + 実行前確認」として追加 - 棚卸台帳の発動制御表に判断理由を追記し、実測値を再計測結果へ更新 (description 最大 296 / Claude 6,036 / Codex 6,473 / frontmatter 12,211) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-kiro-delivery の Draft PR 作成 * Fix: Kiro の導入方式を修正しエージェントを有効化する install.sh が生成していた .kiro/agents/default.json は Kiro の既定エージェント にならず、組み込みの kiro_default が使われ続けていた。結果として起動時フック、 終了通知フック、外部 AI 連携設定、resources の明示読み込みがすべて無効だった。 - エージェント名を ndf にし、完了メッセージを kiro-cli chat --agent ndf に修正 - --set-default オプトインを追加。現在の既定を表示し確認を取ってから切り替える - resources から skill://.kiro/skills/**/SKILL.md を削除(組み込みと二重登録) - 常時指示を .kiro/steering/ndf-policies.md へ移し、resources から file://.kiro/skills/ndf-policies/SKILL.md を削除 - --scope workspace|global(既定 workspace)を追加 - 既存の .kiro/agents/default.json を検出したらバックアップし移行手順を案内 - README に allowed-tools が事前承認にならないこと(kirodotdev/Kiro#6055)と kiro-cli 2.16.1 での実機検証結果・占有率の実測値を記録 - runtime smoke に assert-kiro-agent.sh を追加。agent list への ndf の出現、 --set-default による既定の切り替え、文脈ファイルの合計量を検査する Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: Kiro installer の set-default 実行位置と ndf-policies の二重注入を修正 cross-review round 1 の指摘 2 件に対応する。 - `--set-default` の `kiro-cli` 呼び出しを導入先で実行する。`kiro-cli` は workspace agent を cwd 配下の `.kiro/agents/` からのみ検出するため、 `--project` で別ディレクトリへ導入すると `agent list` / `set-default` が 対象を見つけられなかった。`workspace` は `--project` のパス、`global` は `$HOME` を実行ディレクトリにする。 - `set-default` は agent 未検出でも終了コード 0 を返すため、実行後に `agent list` で反映を検証し、切り替わっていなければ失敗させる。 - `ndf-policies` を `.kiro/skills/` へ symlink しない。Kiro は `.kiro/skills/*/SKILL.md` と `.kiro/steering/**/*.md` の両方を読み込むため 二重注入になっていた。manifest には steering の生成元として残す。 - `assert-kiro-agent.sh` に回帰検査を追加。`.kiro/skills/ndf-policies` の 不在を検査し、`--set-default` の検査は `PROJECT_DIR` 以外の cwd から実行する。 - 占有率を同一プロジェクトで 4 構成測り直し、README を更新する。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: Kiro installer が利用者管理の設定を保持し、テストが既定エージェントを確実に復旧する cross-review round 2 の指摘 2 件に対応する。 - install.sh は .kiro/agents/ndf.json をテンプレートから再生成する際に、 既存ファイルの利用者管理の設定(mcpServers エントリ、独自フック、独自 トップレベルキー)をマージして引き継ぐ。上書きするのはテンプレート由来の キーと、フラグで切り替える hooks.stop / mcpServers.codex だけにする。 - assert-kiro-agent.sh の既定エージェント復旧を PROJECT_DIR から実行し、 復旧できたことを agent list で検証する。途中の検査が落ちても復旧するよう trap EXIT で実行する。 - 再インストールで利用者管理の設定が失われないことの回帰検査を追加する。 kiro-cli に依存しないため CI のコンテナでも実行される。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Docs: Kiro の確認観点から mcpServers を必須扱いから外す mcpServers はテンプレートに無く、--with-codex 指定時または既存の利用者管理設定を 引き継いだ場合にだけ .kiro/agents/ndf.json に現れる。必須のテスト観点にすると 通常インストールと矛盾するため、条件付きの記述へ改めた。 * Fix: Kiro installer の旧 ndf-policies リンク掃除と入力/JSON の異常系を修正 - install.sh: 旧 installer が別 checkout から張った .kiro/skills/ndf-policies の symlink / 実体を、リンク先に関係なく削除してから skip する。旧導入済みプロジェクト でも steering との二重注入が再インストール 1 回で解消される - install.sh: 旧 default.json が JSON 配列でも AttributeError にせず、壊れた JSON と 同じ「NDF 生成物ではない」扱いへ倒す - install.sh: set -e 下で read が EOF を受けてもクラッシュせず [y/N] の N へ倒す - assert-kiro-agent.sh: global scope でも agent list と --scope global --set-default --yes 後の既定切替を検査する(復旧は既存の trap に載せる) - assert-kiro-agent.sh: 旧 ndf-policies symlink が再インストールで消えることを workspace / global 両方で検査する(kiro-cli 非依存なので CI でも動く) - README: 旧 symlink の掃除挙動を移行手順に追記 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: ndf-policies の掃除を symlink に限定し実体は消さない rm -rf は .kiro/skills/ndf-policies が実体のディレクトリやファイルだった場合に 中身ごと消してしまい、README の「削除するのはリンク自体だけ」とも矛盾していた。 - 削除対象を [ -L ] のシンボリックリンクだけに限り rm -f で外す - 実体だった場合は削除せず、二重注入の理由と手動対応を促す警告を出す - README に実体だった場合の扱いを追記 * Fix: 旧 default.json を安全な場合に限り ndf.json へ自動移行する 旧版 installer が生成した .kiro/agents/default.json の移行を利用者の手作業に 委ねていたため、移行漏れが起きうる状態だった。NDF 生成物と判定でき、かつ 移行先が未作成のときに限り ndf.json へ移動し、Step 5 の既存マージ処理へ渡す。 - NDF 生成物 + ndf.json なし: default.json を ndf.json へ mv(.bak は残す)。 利用者が追記した mcpServers / hooks / 独自キーは Step 5 のマージで保持される - NDF 生成物 + ndf.json あり: 上書きになるため移行しない - NDF 生成物と判定できない default.json: 利用者の設定を壊すため移行しない - --dry-run: 従来どおり書き込みなし。旧設定を検出したことだけ表示する 移行直後は default.json.bak が同内容のバックアップになるため、ndf.json.bak は 作らない。 回帰テストは kiro-cli 非依存の形で assert-kiro-agent.sh に追加した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGejnYyYFuSkQjBhW2KQNy * Fix: 旧 default.json の案内で .bak も削除対象に含める 移行しない分岐の案内が default.json だけを消す形になっており、NDF 生成物と 判定できない場合の案内 (.bak も含めて削除) と揃っていなかった。利用者の環境に 不要なバックアップが残り続けるのを防ぐため、両方を挙げる形へ統一した。 * Fix: 旧設定の自動移行を厳密化し、引き継ぎ時の型検証を追加 - 旧 NDF 生成物の判定を description の部分一致から、旧テンプレート固有の description 完全一致 + (resources の skill:// 指定 または agentSpawn フックの CLAUDE.ndf.md 検査) の組み合わせへ変えた。NDF 用に自作した default エージェントをテンプレートで上書きしてしまう問題を防ぐ - 既存 ndf.json の hooks / mcpServers が dict 以外だと .items() で installer が 例外終了していた。壊れた JSON と同じく警告して引き継ぎ対象から外す * Test: 自動移行の fixture と README を実装の判定条件に合わせる 旧 NDF 生成物の判定を厳密化した際に、動作確認テストの fixture と README の 説明が追随していなかった。 - fixture を旧 default.json.template と同じ description / resources / agentSpawn フックを持つ形にし、NDF 生成物ケースと利用者自作ケースを 引数で切り替える。both / dry-run のケースも NDF 生成物側へ揃えた - README の自動移行の条件を実装(description 完全一致 + 旧 resources または 旧 agentSpawn フック)と一致させた fixture を利用者自作側へ差し替えると runtime-smoke-test.sh --runtime kiro が exit 1 になることを確認済み(検査が実際に効いている)。 --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
* chore: feature/inventory-finalize の Draft PR 作成 * Chore: 棚卸結果を配布物と文書へ反映し v5.0.0 へ - ndf-policies に旧コマンド名 → 新コマンド名の対応表を追加(v6.0.0 で削除する 旨も併記)。統合 16 件、移行先なしの削除 8 件、自動発動・Kiro・Codex の 非互換な変更もあわせて記載 - plugin.json の skills 配列を claude manifest と一致させた。Task 0-7 が manifest へ追加した qa-security-scan / official-skills-autoloader が 配列に入っておらず、Claude Code から使えない状態だった - 版数を 4.20.1 → 5.0.0 へ更新(plugin.json 2 種、marketplace.json、 AGENTS.md、README.md、プレゼン資料 2 件) - README に v5.0.0 の非互換な変更の節を追加し、公開 Skill 数を実数 (Claude Code 22 / Codex 23 / Kiro 21、共通 29)へ揃えた - CLAUDE.md の Skill 構成の節を現状へ書き直した - プレゼン資料の Kiro 導入手順を ndf.json / steering / --agent ndf へ更新し、 HTML と PDF を再生成した - ndf-codex/README.md の利用者向けパス例を 5.0.0 へ更新(実機検証結果の表は 検証時点の記録として版数をそのまま残し、その旨を明記) * Docs: 公開資料の版数と図版を v5.0.0 / 29 個へ揃える - docs/presentations/index.html の公開入口に残っていた NDF v4.20.1 を更新 - diagrams/overview.mmd の「skills 49 個」を 29 個へ直し overview.png を再生成 - スライドの HTML と PDF を再生成 - README の「削除(-9)」に、sync-main は merged へ内容を吸収しており移行先が あること、移行先を用意せず消したのは 8 件であることを補足した (ndf-policies の対応表に載る 8 件と数が合わない点の指摘に対応)
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | APPROVE
結合観点で追加の修正提案はありません。確認: build-runtime, frontmatter, markdown links, validate-runtime, runtime-smoke passed.
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 1 | gemini | REQUEST_CHANGES
3 ランタイム間の記述の食い違い(plugin.json と marketplace.json の説明文の不一致)および、Kiro のインストールスクリプトの挙動とスライドの記述内容の齟齬についてインラインで修正を提案しています。
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
release ブランチ全体の cross-review で、個別 PR では見えなかった不整合が 3 件見つかった。 - plugins/ndf-claude/.claude-plugin/plugin.json の description を .claude-plugin/marketplace.json と一致させた。0-10 で marketplace 側だけ 更新しており、同じプラグインの説明が 2 通り存在していた - plugins/ndf-codex/.codex-plugin/plugin.json の description も版数と Skill 数を含む形へ揃え、Playwright testing → browser automation の表現を 統一した - プレゼン資料の Kiro 導入結果を 21 個 → 20 個へ修正。ndf-policies は .kiro/skills/ へリンクせず .kiro/steering/ へ配置するため、実際に張られる リンクは 20 個になる(install.sh を一時ディレクトリで実行して実測)
Codex 版には記載がある cross-review と Docker container access が Claude 版の description に列挙されていなかった。両者とも Claude Code へ配布している Skill なので、ランタイム間で粒度を揃えた。marketplace.json も同じ文言へ更新した。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | codex | REQUEST_CHANGES
Codex観点では、配布物の実態と利用者向け説明に不整合があるため修正してください。
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 2 | gemini | APPROVE
3ランタイム間のマニフェスト、削除対象の依存関係、フロントマターの検証スクリプトを確認しました。統合と削除の意図が正しく各ランタイムの配布物に反映されており、堅牢な構成になっています。
ただし、共通ポリシーとして全ランタイムに展開される ndf-policies/SKILL.md 内に、Codex 向けにしか配布されない統合後 Skill への案内が混入しています。Claude / Kiro 環境での誤発動(Skill not found)を防ぐため、1点だけ修正を提案します。
Uh oh!
There was an error while loading. Please reload this page.
release ブランチ全体の cross-review で、個別 PR のマージ順に起因する記述の 古さが 3 件見つかった。 - plugins/ndf-codex/README.md: 暗黙起動を抑止する Skill を 6 個と書いていたが、 Task 0-7 で merged / pr / pr-tests / review から disable-model-invocation を 外したため、実際の生成対象は cherry-pick-pr と deploy の 2 個。4 個を許可へ 変えた理由と、代わりに実行前確認を必須化したことも明記した - plugins/ndf-kiro/README.md: 占有率の測定条件を「Skill 23 個」から、Kiro manifest の 21 個のうち .kiro/skills/ に並ぶのは 20 個(ndf-policies は steering へ回す)へ修正した - ndf-policies の移行対応表: playwright-planning と playwright-evidence は Codex にのみ配布しているため、その旨を注記した。ndf-policies は 3 ランタイム 共通なので、Claude / Kiro で存在しない Skill を起動しようとするのを防ぐ
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | gemini | APPROVE
全体的なSkill棚卸しと各ランタイムの最適化が堅牢に実装されています。
一部のオプション説明について、実際の挙動(MCPサーバ追加)との乖離を防ぐための修正提案をインラインで残しました。
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 3 | codex | REQUEST_CHANGES
修正が必要な結合不整合を2件確認しました。
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
* Fix: ランタイムごとの配布範囲に合わせて共有 Skill と資料を直す release ブランチ全体の cross-review で見つかった 4 件。 - issue-plan-strategy が Codex にしか配布していない /ndf:playwright-planning を 案内していた。3 ランタイム共通の /ndf:playwright-authoring へ置き換えた。 共有 Skill から Codex 限定 Skill を参照すると Claude / Kiro で存在しない コマンドを起動しようとする - plugins/ndf-kiro/README.md と install.sh の --with-codex の説明が、実際には 行っている ndf.json への Codex MCP サーバ設定の追加に触れていなかった - プレゼン資料に旧配布数(Claude 29 / Codex 30 / Playwright 系 5 個)が残って いた。現行 manifest(Claude 22 / Codex 23)へ直し、HTML と PDF を再生成した * Fix: ブラウザ自動テスト 4 個を 3 ランタイムへ揃えて配布する 共有 Skill から、そのランタイムに配布していない Skill を案内している箇所が 残っていた。issue-plan-strategy → playwright-planning だけでなく、 playwright-authoring 自身が playwright-planning / evidence / kit-ops を 前提にしており、Claude / Kiro では前段・後段が存在しない状態だった。 4 個で 1 つのワークフローを構成しているため、配布範囲を揃えて解消する。 - manifests の claude と kiro に playwright-planning / evidence / kit-ops を 追加(claude 22 → 25、kiro 21 → 24)。plugin.json と marketplace.json の description も追随 - 初期一覧の予算内であることを確認(Claude 6,911 / Codex 6,473、上限 8,000) - ndf-policies の「Codex のみ配布」注記が不要になったので削除 - playwright-evidence が参照する google-auth / google-drive は、どの manifest にも載せていない任意導入の Skill なので、コマンド形式の案内をやめ、導入が 必要な旨と GOOGLE_AUTH_SCRIPTS による代替を明記した - README / CLAUDE.md / プレゼン資料の個数を実数へ更新し、HTML と PDF を再生成 検査: 共有 Skill 内の /ndf:<name> 参照のうち、参照元が配布されているランタイム で参照先が配布されていないものが 0 件になった。 * Docs: playwright-authoring の配布に関する注記を 3 ランタイム同梱へ更新 playwright-planning / evidence / kit-ops を 3 ランタイムへ配布する変更に対し、 本文末尾の「Codex 公開セットにのみ同梱される」という注記が追随していなかった。 * Fix: Drive 連携の optional dependency 説明を配布実態に合わせる google-auth はどの公開セットにも含めていないが、実行時エラーと docstring が 「Codex 公開セットには同梱していない」と書いており、3 ランタイム配布後の 実態と食い違っていた。実行時メッセージ・docstring・SKILL.md の対応表を 「どの公開セットにも同梱していない」で揃えた。 * Docs: プレゼンの speaker notes と図版ソースを現行配布数へ揃える 可視スライドは更新済みだったが、speaker notes に旧配布数(Claude 29 / Codex 30 / Kiro 28)が、overview.mmd にも旧値が残っており、発表資料内で 情報が割れていた。両方を現行 manifest(Claude 25 / Codex 23 / Kiro 24)へ 直し、overview.png とスライドの HTML / PDF を再生成した。 Kiro のスライドは .kiro/skills/ に並ぶ実数 23 個のままとし、配布 24 個の うち ndf-policies は steering へ回る旨を併記して曖昧さをなくした。 * Docs: Drive helper の実行例を実装の argparse と一致させる playwright-kit-ops の実行例が実装と食い違っており、そのまま打つと引数不足で 失敗する状態だった。 - gdrive_upload_dir.py: 位置引数 + --folder-id → --local / --parent - upload_md_as_gdoc.py: 位置引数 → --md / --parent - build_gdoc_with_drive_links.py: 位置引数 2 つ → --md / --folder / --run-id / --name - upload_evidence.py: --parent-folder-id を例に追加(省略可である旨も明記) 各スクリプトの required=True の引数がすべて例に現れることを機械的に確認した。 * Docs: Kiro の占有率セクションを現行配布数で測り直す ブラウザ自動テスト 3 個を 3 ランタイムへ配布する変更で Kiro manifest が 21 → 24 個になったが、占有率セクションの説明は 21 個時点のままだった。 - 既存の 4 構成比較表は「manifest 21 個時点の測定値」と明記して残した (4 構成を同一プロジェクトで比較した記録として意味があるため) - 現行構成 (manifest 24 / .kiro/skills 23) を同じ手順で測り直した表を追記 (26 ファイル / 0.9% / 139,182 文字、ndf-policies の注入は 1 回のまま) - 0.6% → 0.9% の差は Skill 増加だけでなく測定用プロジェクトの AGENTS.md / README.md が大きくなったことも含む旨を明記した 測定は kiro-cli 2.16.1、既定エージェントは kiro_default のまま変更していない。 * Refactor: Drive 認証の候補探索を _drive_auth へ一本化し、誤検出を防ぐ 3 ランタイム配布に合わせた修正と、同じロジックの 3 重定義の解消。 - 候補に ~/.kiro/skills/google-auth/scripts を追加。playwright-kit-ops を Kiro へ配布するようになったため - 候補の採用条件を「ディレクトリが存在する」から「google_auth.py がある」へ 変更。init_project.sh が runtime 直下へ scripts/ を必ず置くため、 google_auth.py を含まない scripts/ を先に拾って後続候補を見ないまま import に失敗する経路があった - upload_evidence.py と playwright_kit/uploaders/__init__.py にあった _CANDIDATES / _ensure_google_auth_on_path の複製を削除し、 scripts/_drive_auth.py の drive_service() を使うようにした - 未使用になった import を整理(sys は stderr 出力で使うため残す) 検証: GOOGLE_AUTH_SCRIPTS に google_auth.py を含まないディレクトリを指定した 状態で _ensure_google_auth_on_path() を呼び、sys.path へ入るのがその候補では なく google_auth.py を持つ候補であることを確認した。
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | codex | APPROVE
追加の修正提案はありません。確認: build-runtime, frontmatter, markdown links passed.
takemi-ohama
left a comment
There was a problem hiding this comment.
🤖 cross-review | round 4 | gemini | APPROVE
PR の目的(Skill 配布範囲の均一化とドキュメントの一致)が達成され、特に Kiro への移行と --set-default 切替機能が適切に実装・検査されていることを確認しました。3 ランタイムでの検証体制も拡充されており良好です。
1 点のみ、PR の説明と SKILL.md の記述に軽微な食い違いが残っている箇所があります。
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
背景
plugins/ndf-shared/skills/の Skill は 49 個まで増え、次の問題が同時に起きていた。review/pr/merged/pr-testsにdisable-model-invocation: trueが付いており、エージェントから起動できなかった。実測ではmerged248 回・pr173 回の起動がほぼ全数、利用者のスラッシュコマンドだった。逆にpython-executionやgit-gh-operationsはトリガが広すぎ、ほぼ全セッションに一致して他 Skill の発動を埋もれさせていた。when_to_useに置いていたため、descriptionだけで判定する Codex と Kiro では発動精度が落ちていた。install.shが生成するエージェントは既定にならず、フック・外部連携・常時指示がすべて無効だった。Codex は暗黙起動を抑止する設定がなく、破壊的操作の Skill まで自動起動できた。変更内容
1. 利用実績に基づく棚卸(49 → 29 個)
1,943 セッション / 80 日の実測を
docs/specifications/ndf-skill-inventory.mdに台帳として記録し、起動数と機会数の 2 軸で維持・統合・削除・発動改善を判定した。測定ツールskill-statsの集計不具合もあわせて修正し、以降の計測はこのツールへ一本化する。external-ai/ ブラウザ自動テスト 3 個へ集約起動上位 5 個(
fix/cross-review/merged/pr/issue-plan-strategy、計 1,145 回)のコマンド名は変更していない。統合は単純連結ではなく再構成し、SKILL.mdの合計行数は統合対象で 4,300 行以上減った。2. frontmatter 規約の明文化と機械検査
plugins/ndf-shared/skills/README.mdに規約を明文化し、scripts/check-skill-frontmatter.pyで CI 検査する。発動判定に必要な情報をdescriptionへ集約し、when_to_useは Claude Code 向けの追加トリガが要る場合に限った。3. ランタイム規約への適合
agents/openai.yamlを生成し、暗黙起動を抑止するndfにして実際に有効化し、--set-default/--scope workspace|globalを追加、常時指示を.kiro/steering/へ移した非互換な変更
メジャーバージョンを 5.0.0 へ上げる。旧名から新名への対応表を
ndf-policiesに 1 リリース分だけ残す。/ndf:review-branch/ndf:review-pr-comments/ndf:resolve-pr-comments/ndf:clean/ndf:sync-main/ndf:branch-fix-strategy/ndf:codex/ndf:geminiおよびブラウザ自動テスト系 6 個/ndf:git-gh-operations/ndf:python-execution/ndf:data-analyst-export/ndf:data-analyst-sql-optimization/ndf:deepwiki-transfer/ndf:google-chat/ndf:knowledge-reorg/ndf:mcp-buildermerged/pr/review/pr-testsが自然文の依頼でも起動する。取り消しの難しい手順の前に確認を取ることを本文で必須化したdefault→ndfに変わるため、既存の.kiro/agents/default.jsonを持つプロジェクトは再インストールが必要deploy/cherry-pick-prは初期一覧から外れる。$<skill 名>での明示起動は従来どおり動く結合観点のテスト計画
bash scripts/build-runtime-plugins.sh --checkが差異を検出しないpython3 scripts/check-skill-frontmatter.pyがエラー 0 / 警告 0python3 scripts/check-markdown-links.py --root .でリンク切れがないbash scripts/validate-runtime-plugins.sh(claude plugin validate含む)が成功するbash scripts/runtime-smoke-test.shが 3 ランタイムで成功するplugin.jsonに反映されている4.20.1の記載が生成物・プレゼンの実機検証記録を除いて残っていない/ndf:<name>参照が、参照元を配布している全ランタイムで解決する(走査で 0 件)開発用: 個別 PR 進捗 (レビュー対象外)