From 8e91c27b5ca3f7dbc1753a6ebd0210684cc9097d Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 8 Aug 2026 08:24:05 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Fix:=20Codex=20=E3=81=AE=E6=98=8E=E7=A4=BA?= =?UTF-8?q?=E8=B5=B7=E5=8B=95=E3=81=AB=E9=96=A2=E3=81=99=E3=82=8B=E8=A8=98?= =?UTF-8?q?=E8=BF=B0=E3=82=92=E5=AE=9F=E6=B8=AC=E3=81=B8=E8=A8=82=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v5.0.0 を main へマージしたあとの 3 ランタイム動作確認で、ドキュメントの記載 と実際の挙動が食い違うことが分かった。 これまで「抑止されるのは暗黙起動だけで、$ の明示起動は従来どおり 動く」と書いていたが、**プラグインとして配布した Skill は抑止すると $ も 効かない**。 codex-cli 0.146.1 での実測: | 検証 | 結果 | | --- | --- | | $markdown-writing(プラグイン・抑止なし) | 展開された | | $deploy(プラグイン・抑止あり) | 展開されない | | $cherry-pick-pr(プラグイン・抑止あり) | 展開されない | | $probe-explicit(.agents/skills・抑止あり) | 展開された | `.agents/skills/` に置いた Skill は抑止しても $ で起動できるが、プラグイン 配布分は効かない。当初の結論は前者だけを見て出したもので、後者を確かめて いなかった。 plugins/ndf-codex/README.md / README.md / ndf-policies の記述を訂正し、 起動手段は SKILL.md のパスを示すことだけである旨と、破壊的操作なので この摩擦を意図した設計として受け入れる旨を明記した。 --- README.md | 2 +- .../ndf-claude/skills/ndf-policies/SKILL.md | 5 +-- plugins/ndf-codex/README.md | 33 +++++++++++-------- .../ndf-codex/skills/ndf-policies/SKILL.md | 5 +-- plugins/ndf-kiro/skills/ndf-policies/SKILL.md | 5 +-- .../ndf-shared/skills/ndf-policies/SKILL.md | 5 +-- 6 files changed, 33 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index de93389d..8044acdb 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ Skill を利用実績にもとづいて棚卸し、**49 個から 29 個へ整 - **自然文で発動するようになりました**: `merged` / `pr` / `review` / `pr-tests` から明示指示専用の設定を外しました。取り消しの難しい手順の前には対象を提示して確認を取ります。 - **frontmatter 規約と機械検査**: 発動判定に必要な情報を `description` へ集約し、`scripts/check-skill-frontmatter.py` で CI 検査します(規約は `plugins/ndf-shared/skills/README.md`)。 - **Kiro CLI**: エージェント名が `default` → `ndf` に変わりました。`install.sh` の再実行が必要です。`--set-default` と `--scope workspace|global` を追加し、常時指示を `.kiro/steering/` へ移しました。 -- **Codex**: 明示指示専用の Skill に `agents/openai.yaml` を生成し、暗黙起動を抑止します。`$` での明示起動は従来どおり動きます。 +- **Codex**: 明示指示専用の Skill に `agents/openai.yaml` を生成し、暗黙起動を抑止します。プラグイン配布の Skill は抑止すると `$` も効かないため、起動するには SKILL.md のパスを示します(`plugins/ndf-codex/README.md`)。 ### NDF v4.20.1 の主な変更 diff --git a/plugins/ndf-claude/skills/ndf-policies/SKILL.md b/plugins/ndf-claude/skills/ndf-policies/SKILL.md index 176736e2..8e398436 100644 --- a/plugins/ndf-claude/skills/ndf-policies/SKILL.md +++ b/plugins/ndf-claude/skills/ndf-policies/SKILL.md @@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し - `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。 取り消しの難しい手順の前には確認を取る - Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する -- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$` で - 明示起動する +- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の + Skill は抑止すると `$` も効かないため、SKILL.md のパスを示して読ませる + (`plugins/ndf-codex/README.md`) diff --git a/plugins/ndf-codex/README.md b/plugins/ndf-codex/README.md index 8b031502..0141eb91 100644 --- a/plugins/ndf-codex/README.md +++ b/plugins/ndf-codex/README.md @@ -33,30 +33,33 @@ Claude Code 専用の agents、statusline 自動設定、transcript retention ### 利用者への影響と起動方法 -抑止されるのは **暗黙起動だけ**です。`$` による明示起動は抑止後も従来どおり動きます。 +**プラグイン Skill では、抑止すると `$` による明示起動も効かなくなります。** +起動する手段は SKILL.md のパスを示して読ませることだけです。 | 起動経路 | 抑止後の挙動 | |----------|-------------| | 暗黙起動 (モデルが自分で選ぶ) | **起動しない**。セッションの skill 一覧 (`## Skills` の `### Available skills`) に載らない | -| 明示起動 `$deploy` | **起動する**。Codex CLI が `$<名前>` を展開し、SKILL.md 本文を `` ブロックとして注入する | +| 明示起動 `$deploy` | **展開されない**。抑止していない Skill (`$markdown-writing` 等) は展開されるが、抑止した Skill は `$` を書いても本文が注入されない | | 名前だけの自然文依頼 (`deploy skill を実行して`) | **起動しない**。一覧に無いため拒否され、別の Skill で代替されることがある | -| SKILL.md の絶対パスを示す | 通常のファイル読み取りとして読み込まれ、本文どおり実行される | - -推奨は `$` です。対話モード / 非対話モード (`codex exec`) のどちらでも同じ展開が行われます。 +| SKILL.md の絶対パスを示す | **起動する**。通常のファイル読み取りとして読み込まれ、本文どおり実行される | ```text -# 動く: 明示起動 (推奨) -$deploy qa/staging - # 動く: 実体パスを示して読ませる ~/.codex/plugins/cache/ai-plugins/ndf/5.0.0/skills/deploy/SKILL.md を読んで、その手順どおりに qa/staging へ deploy PR を作成してください。 +# 動かない: 明示起動 ($ は展開されない) +$deploy qa/staging + # 動かない: 名前だけで起動を依頼する deploy skill を実行してください。 ``` 対話モード (`codex` を引数なしで起動) では `/skills` で Skill 一覧と有効・無効を確認できます。 +パスを打つ手間はあるが、`deploy` と `cherry-pick-pr` は環境ブランチへ書き込む取り消しの +難しい操作なので、この摩擦は意図した設計として受け入れる。Claude Code では +`disable-model-invocation: true` + `/ndf:deploy` のスラッシュコマンドで同じ役割を果たす。 + ### プラグイン Skill のファイル探索に関する注意 marketplace 経由でインストールした場合、Skill の実体は **ワークスペース外**の Codex プラグインキャッシュに置かれます。 @@ -75,11 +78,15 @@ $CODEX_HOME/plugins/cache////skills//SKILL. | 検証 | 内容 | 結果 | |------|------|------| -| 暗黙起動の抑止 | 「Available skills のうち probe で始まるものを列挙」と依頼 | `probe-open` のみ。`probe-explicit` は **載らない**。エラー・警告は出ない | -| 明示起動 | `codex exec '$probe-explicit'` | **起動した**。セッションログに `probe-explicit` + SKILL.md 本文が注入される | -| プラグイン Skill の明示起動 | ワークスペース外にインストール済みの `ndf` に対し、無関係な作業ディレクトリで `codex exec '$deploy'` | **解決した**。`~/.codex/plugins/cache/ai-plugins/ndf/4.20.1/skills/deploy/SKILL.md` を読み込んで実行 | - -暗黙起動の抑止と明示起動の可否は独立しており、抑止した Skill も `$` で起動できることを確認しています。 +| 暗黙起動の抑止 (ワークスペース) | `.agents/skills/` の probe に対し「Available skills のうち probe で始まるものを列挙」と依頼 | `probe-open` のみ。`probe-explicit` は **載らない**。エラー・警告は出ない | +| 明示起動 (ワークスペース) | `codex exec '$probe-explicit'` | **起動した**。セッションログに `probe-explicit` + SKILL.md 本文が注入される | +| 暗黙起動の抑止 (プラグイン) | v5.0.0 インストール後に skill 一覧を列挙 | 配布 23 個のうち **21 個**。`deploy` / `cherry-pick-pr` は載らない | +| 明示起動 (プラグイン・抑止なし) | `codex exec '$markdown-writing'` | **展開された**。SKILL.md 本文が注入される | +| 明示起動 (プラグイン・抑止あり) | `codex exec '$deploy'` / `codex exec '$cherry-pick-pr'` | **展開されない**。「利用可能 skill 一覧に見当たらない」と返る | + +`.agents/skills/` に置いた Skill は抑止しても `$` で起動できますが、**プラグインとして +配布した Skill は抑止すると `$` も効きません**。この差は codex-cli 0.146.1 で実測した +もので、公式ドキュメントには記載がありません。 ## Slack 通知 diff --git a/plugins/ndf-codex/skills/ndf-policies/SKILL.md b/plugins/ndf-codex/skills/ndf-policies/SKILL.md index 176736e2..8e398436 100644 --- a/plugins/ndf-codex/skills/ndf-policies/SKILL.md +++ b/plugins/ndf-codex/skills/ndf-policies/SKILL.md @@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し - `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。 取り消しの難しい手順の前には確認を取る - Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する -- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$` で - 明示起動する +- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の + Skill は抑止すると `$` も効かないため、SKILL.md のパスを示して読ませる + (`plugins/ndf-codex/README.md`) diff --git a/plugins/ndf-kiro/skills/ndf-policies/SKILL.md b/plugins/ndf-kiro/skills/ndf-policies/SKILL.md index 176736e2..8e398436 100644 --- a/plugins/ndf-kiro/skills/ndf-policies/SKILL.md +++ b/plugins/ndf-kiro/skills/ndf-policies/SKILL.md @@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し - `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。 取り消しの難しい手順の前には確認を取る - Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する -- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$` で - 明示起動する +- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の + Skill は抑止すると `$` も効かないため、SKILL.md のパスを示して読ませる + (`plugins/ndf-codex/README.md`) diff --git a/plugins/ndf-shared/skills/ndf-policies/SKILL.md b/plugins/ndf-shared/skills/ndf-policies/SKILL.md index 176736e2..8e398436 100644 --- a/plugins/ndf-shared/skills/ndf-policies/SKILL.md +++ b/plugins/ndf-shared/skills/ndf-policies/SKILL.md @@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し - `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。 取り消しの難しい手順の前には確認を取る - Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する -- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$` で - 明示起動する +- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の + Skill は抑止すると `$` も効かないため、SKILL.md のパスを示して読ませる + (`plugins/ndf-codex/README.md`) From 1bf073fad1b756a682a7ebf20bf5232a9fef507e Mon Sep 17 00:00:00 2001 From: "takemi.ohama" Date: Sat, 8 Aug 2026 08:27:16 +0000 Subject: [PATCH 2/2] =?UTF-8?q?Fix:=20=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E6=8E=A2=E7=B4=A2=E3=81=AE=E7=AF=80=E3=81=AE=E6=A1=88=E5=86=85?= =?UTF-8?q?=E3=82=82=E6=8A=91=E6=AD=A2=E5=BE=8C=E3=81=AE=E6=8C=99=E5=8B=95?= =?UTF-8?q?=E3=81=B8=E5=90=88=E3=82=8F=E3=81=9B=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 「まず $ 起動を使ってください」という案内が、同じ README で訂正した 「抑止した Skill は $ が展開されない」と矛盾していた。抑止した Skill は codex plugin list で実体パスを確認して絶対パスを渡す案内へ変え、抑止して いない Skill では $ 起動が使える旨を分けて書いた。 --- plugins/ndf-codex/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/ndf-codex/README.md b/plugins/ndf-codex/README.md index 0141eb91..d4b36330 100644 --- a/plugins/ndf-codex/README.md +++ b/plugins/ndf-codex/README.md @@ -70,7 +70,14 @@ $CODEX_HOME/plugins/cache////skills//SKILL. # ~/.codex/plugins/cache/ai-plugins/ndf/5.0.0/skills/deploy/SKILL.md ``` -そのため「`deploy` の SKILL.md を探して読んで」のような曖昧な依頼は、Codex のファイル探索がワークスペース内に限られる状況では失敗しえます。`$` はキャッシュ配下の Skill も skill roots から解決するため、まず `$` 起動を使ってください。パスで指示したい場合は `codex plugin list` で実体パスを確認し、絶対パスを渡します。 +そのため「`deploy` の SKILL.md を探して読んで」のような曖昧な依頼は、Codex のファイル探索がワークスペース内に限られる状況では失敗しえます。**抑止した Skill は `$` が展開されない**ので、`codex plugin list` で実体パスを確認し、絶対パスを渡してください。 + +```bash +codex plugin list | grep 'ndf@ai-plugins' +# => ndf@ai-plugins installed, enabled 5.0.0 +``` + +抑止していない Skill(`markdown-writing` など)はキャッシュ配下でも `$` で解決するため、そちらは `$` 起動が使えます。 ### 実機検証結果 (codex-cli 0.146.1 / gpt-5.5)