Skip to content

Claude Code で $SCRIPTS を決めると、参照ファイルの ${CLAUDE_PLUGIN_ROOT} が置き換わらず Codex の古い控えを採る #590

Closed as not planned

Description

@takemi-ohama

何を見つけたか

Claude Code で development-workflow を読み込んだエージェントが $SCRIPTS を決めると、読み込んだプラグインではなく Codex のマーケットプレイスの控え(~/.codex/.tmp/marketplaces/ai-plugins/plugins/ndf/scripts)を採ることがある。

再現した形(2026-09-13、claude 2.1.x、claude -p --plugin-dir <作業ツリー>/plugins/ndf、$HOME 配下の宣言の無い一時リポジトリ):

  1. エージェントが references/scripts-lookup.md を cat で読み、「候補の並び」の bash をそのまま実行した
  2. bash の PLUGIN_ROOT='${CLAUDE_PLUGIN_ROOT}' は置き換えられておらず、case "$PLUGIN_ROOT" in '$'*) PLUGIN_ROOT= ;; で空になった
  3. 候補 4 の Codex の控え(配布済みの古い版)が当たり、SCRIPTS=/home/ubuntu/.codex/.tmp/marketplaces/ai-plugins/plugins/ndf/scripts になった
  4. その版の worktree-setup.sh は check を持たず、使い方: worktree-setup.sh <init|status> [--force] と終了コード 1 を返した

同じ条件で 2 回目に実行したときは、エージェントが PLUGIN_ROOT へ絶対パスを自分で入れて正しく解決した。解決先がエージェントの推測に依存して揺れる。

どこで見つけたか

  • plugins/ndf/skills/development-workflow/references/scripts-lookup.md の「候補の並び」の bash(PLUGIN_ROOT='${CLAUDE_PLUGIN_ROOT}')
  • 同ファイルの表の候補 2 の手がかり「SKILL.md の ${CLAUDE_PLUGIN_ROOT} が絶対パスへ置き換わる」
  • Claude Code が置き換えるのは Skill の本文(SKILL.md)だけで、参照ファイルを cat / Read で読んだ内容は置き換えない。 bash の本体は参照ファイルにあるため、候補 2 は文書どおりには当たらない
  • 同じ形(参照ファイルに置いた解決の bash が PLUGIN_ROOT='${CLAUDE_PLUGIN_ROOT}' を持つ)は plugins/ndf/skills/cross-review/docs/01-state-and-review.md:37-55 にもある。こちらは Codex の控えを候補に持たない。<この Skill のディレクトリ> を置き換えないまま実行すると、Kiro CLI の Skill が無い環境では「この Skill のディレクトリを解決できない」で止まり、Kiro CLI の Skill がある環境では別ランタイムの実体を選ぶ

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

issue #527 の受け入れ条件は worktree-setup.sh check と development-workflow の手順 0 を対象とし、$SCRIPTS の決め方は既存の scripts-lookup.md を参照するだけと決めた(設計の「この文書が受け取る値」)。解決手順そのものの変更は、計画の「やらないこと」に含まれる。

直さないと何が起きるか

  • Claude Code の利用者が Codex も導入していると、Claude Code 側より古い版のスクリプトが実行される。新しい副コマンド(check など)が無い版では失敗し、手順 0 は「判定できない」として宣言を作らずに先へ進みうる
  • progress-record.sh / projects-sync.sh など $SCRIPTS を使うすべての Skill で、配布済みの別ランタイムの版が動く。実行しているのが古い版であることは出力からは分からない(scripts-lookup.md 自身が候補 1 の理由として挙げている状態と同じ)

由来

issue #527

Activity

  1. takemi-ohama commented on Sep 23, 2026

    @takemi-ohama
    ContributorAuthor

    #847 の重複として閉じる。

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

    area: ndf-skillNDF の Skill 本体bugSomething isn't workingduplicateThis issue or pull request already existspriority: high実害・安全機構の欠落など、優先して対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions