Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -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` を生成し、暗黙起動を抑止します。`$<skill 名>` での明示起動は従来どおり動きます
- **Codex**: 明示指示専用の Skill に `agents/openai.yaml` を生成し、暗黙起動を抑止します。プラグイン配布の Skill は抑止すると `$<skill 名>` も効かないため、起動するには SKILL.md のパスを示します(`plugins/ndf-codex/README.md`)

### NDF v4.20.1 の主な変更

Expand Down
5 changes: 3 additions & 2 deletions plugins/ndf-claude/skills/ndf-policies/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し
- `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。
取り消しの難しい手順の前には確認を取る
- Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$<skill 名>` で
明示起動する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の
Skill は抑止すると `$<skill 名>` も効かないため、SKILL.md のパスを示して読ませる
(`plugins/ndf-codex/README.md`)

42 changes: 28 additions & 14 deletions plugins/ndf-codex/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -33,30 +33,33 @@ Claude Code 専用の agents、statusline 自動設定、transcript retention

### 利用者への影響と起動方法

抑止されるのは **暗黙起動だけ**です。`$<skill 名>` による明示起動は抑止後も従来どおり動きます。
**プラグイン Skill では、抑止すると `$<skill 名>` による明示起動も効かなくなります。**
起動する手段は SKILL.md のパスを示して読ませることだけです。

| 起動経路 | 抑止後の挙動 |
|----------|-------------|
| 暗黙起動 (モデルが自分で選ぶ) | **起動しない**。セッションの skill 一覧 (`## Skills` の `### Available skills`) に載らない |
| 明示起動 `$deploy` | **起動する**。Codex CLI が `$<名前>` を展開し、SKILL.md 本文を `<skill>` ブロックとして注入する |
| 明示起動 `$deploy` | **展開されない**。抑止していない Skill (`$markdown-writing` 等) は展開されるが、抑止した Skill は `$` を書いても本文が注入されない |
Comment thread
takemi-ohama marked this conversation as resolved.
| 名前だけの自然文依頼 (`deploy skill を実行して`) | **起動しない**。一覧に無いため拒否され、別の Skill で代替されることがある |
| SKILL.md の絶対パスを示す | 通常のファイル読み取りとして読み込まれ、本文どおり実行される |

推奨は `$<skill 名>` です。対話モード / 非対話モード (`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` のスラッシュコマンドで同じ役割を果たす。

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[minor / ドキュメントの一貫性]
周辺の文体(です・ます調)と揃えるため、および利用者向けドキュメントとしての視点を整理するため、以下の修正を提案します。

パスを打つ手間はありますが、`deploy``cherry-pick-pr` は環境ブランチへ書き込む取り消しの難しい操作であるため、この摩擦は安全のための意図した設計です。Claude Code では `disable-model-invocation: true` + `/ndf:deploy` のスラッシュコマンドが同じ役割を果たします。


### プラグイン Skill のファイル探索に関する注意

marketplace 経由でインストールした場合、Skill の実体は **ワークスペース外**の Codex プラグインキャッシュに置かれます。
Expand All@@ -67,19 +70,30 @@ $CODEX_HOME/plugins/cache/<marketplace>/<plugin>/<version>/skills/<skill>/SKILL.
# ~/.codex/plugins/cache/ai-plugins/ndf/5.0.0/skills/deploy/SKILL.md
```

そのため「`deploy` の SKILL.md を探して読んで」のような曖昧な依頼は、Codex のファイル探索がワークスペース内に限られる状況では失敗しえます。`$<skill 名>` はキャッシュ配下の Skill も skill roots から解決するため、まず `$` 起動を使ってください。パスで指示したい場合は `codex plugin list` で実体パスを確認し、絶対パスを渡します。
そのため「`deploy` の SKILL.md を探して読んで」のような曖昧な依頼は、Codex のファイル探索がワークスペース内に限られる状況では失敗しえます。**抑止した Skill は `$<skill 名>` が展開されない**ので、`codex plugin list` で実体パスを確認し、絶対パスを渡してください。

```bash
codex plugin list | grep 'ndf@ai-plugins'
# => ndf@ai-plugins installed, enabled 5.0.0 <path>
```

抑止していない Skill(`markdown-writing` など)はキャッシュ配下でも `$<skill 名>` で解決するため、そちらは `$` 起動が使えます。

### 実機検証結果 (codex-cli 0.146.1 / gpt-5.5)

`.agents/skills/` 配下に検証用 Skill (`probe-explicit` = 本プラグインと同じ `openai.yaml` を配置 / `probe-open` = 抑止なし) を置き、`codex exec` で確認した結果です。表中のパスは検証時点 (プラグイン v4.20.1) の実測値をそのまま載せています。

| 検証 | 内容 | 結果 |
|------|------|------|
| 暗黙起動の抑止 | 「Available skills のうち probe で始まるものを列挙」と依頼 | `probe-open` のみ。`probe-explicit` は **載らない**。エラー・警告は出ない |
| 明示起動 | `codex exec '$probe-explicit'` | **起動した**。セッションログに `<skill><name>probe-explicit</name><path>…</path>` + 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'` | **起動した**。セッションログに `<skill><name>probe-explicit</name><path>…</path>` + 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 通知

Expand Down
5 changes: 3 additions & 2 deletions plugins/ndf-codex/skills/ndf-policies/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し
- `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。
取り消しの難しい手順の前には確認を取る
- Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$<skill 名>` で
明示起動する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の
Skill は抑止すると `$<skill 名>` も効かないため、SKILL.md のパスを示して読ませる
(`plugins/ndf-codex/README.md`)

5 changes: 3 additions & 2 deletions plugins/ndf-kiro/skills/ndf-policies/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し
- `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。
取り消しの難しい手順の前には確認を取る
- Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$<skill 名>` で
明示起動する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の
Skill は抑止すると `$<skill 名>` も効かないため、SKILL.md のパスを示して読ませる
(`plugins/ndf-codex/README.md`)

5 changes: 3 additions & 2 deletions plugins/ndf-shared/skills/ndf-policies/SKILL.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -50,6 +50,7 @@ Skill の棚卸で 49 個を 29 個へ整理した。旧コマンドは存在し
- `merged` / `pr` / `review` / `pr-tests` が自然文の依頼でも起動するようになった。
取り消しの難しい手順の前には確認を取る
- Kiro はエージェント名が `default` → `ndf` に変わった。`install.sh` を再実行する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。`$<skill 名>` で
明示起動する
- Codex では `deploy` / `cherry-pick-pr` が暗黙起動の一覧から外れる。プラグイン配布の
Skill は抑止すると `$<skill 名>` も効かないため、SKILL.md のパスを示して読ませる
(`plugins/ndf-codex/README.md`)

Loading