Skip to content

実行する版を解決する層を 1 つにし、開発中の版と配布済みの版の食い違いを根本原因の場所で直す #715

Description

@takemi-ohama

同じ根本原因を持つ課題(子 issue)を、現れている場所ではなく根本原因の場所で直すための親 issue である(issue-upkeep の判定「ルートコーズ」)。再現手順と観測は各子 issue にある。

修正レイヤー

プラグインの実体(どのランタイムの、どの版の scripts/skills/)を選ぶ規則。 規則が 2 系統に分かれ、それぞれが別の実体を選ぶ。

系統 場所 選び方
Skill から呼ぶスクリプト plugins/ndf/skills/development-workflow/references/scripts-lookup.md と、その写し 4 か所(cross-refactoring/SKILL.mdcross-review/docs/01-state-and-review.mdfix/SKILL.mdstatusline/SKILL.md 開発中のリポジトリを先に見る候補を持つのは scripts-lookup.md だけで、写しは ${CLAUDE_PLUGIN_ROOT} → この Skill のディレクトリ → .kiro の順。参照ファイルの中では ${CLAUDE_PLUGIN_ROOT} が置き換わらず、Bash の実行環境にも無いため、別ランタイムの控えへ落ちる
hook plugins/ndf/skills/development-workflow/SKILL.md の frontmatter(9 行)と plugins/ndf/hooks/claude.json frontmatter は ${CLAUDE_PLUGIN_ROOT} だけ、hooks/claude.json${PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}(9・24・31・38 行)。51 行(Stop)だけ ${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-}} と順序が逆である。PLUGIN_ROOT で開発中の版へ向ける経路はあるが、文書に無い

開発中のリポジトリでは、記録のスクリプトが開発中の版から、hook が配布済みの版から動く。利用者の環境でも、Claude Code で scripts-lookup.md を実行すると Codex の古い版の scripts/ を選ぶ。

この issue が持つ範囲

Skill から呼ぶスクリプトの系統は #847 が持つ。 #847(マイルストーン「20 置き場所と起点の解決」)が scripts-lookup.md を正本にして解決を 1 本のコマンドにまとめ、写しを消す。子 #590 #534#847 の受け入れ条件で閉じる。

この issue に残るのは hook の系統である。

  • frontmatter と hooks/claude.json の選び方の食い違い(Stop 行の順序の逆転を含む)
  • 開発中のリポジトリで hook と Skill が同じ版を選ぶことを確かめる検査
  • 開発中の版へ向ける手段と、向けられない間の回避

PR #844#829 / #830 の実装)が hook を足すので、この規則の対象が増える。着手は #847 の後。

採る手

子 issue

子 issue 現象レイヤー 観測
#459 工程名を記録する hook 開発中の版で記録した工程名が、配布済みの版の hook に無く捨てられる
#590 Claude Code での $SCRIPTS の決め方 ${CLAUDE_PLUGIN_ROOT} が置き換わらず、Codex の古い控えを採る(#847 で閉じる)
#658 hook の反映 開発中に直した hook が配布まで効かず、直している間も同じ実害を踏む
#534 cross-refactoring の骨組み 開発中のリポジトリで回しても、骨組みが配布済みの版を指す(#847 で閉じる)

完了条件

  • Skill から呼ぶスクリプトの位置を決める処理が 1 か所にあり、写しが残らない(基盤: スクリプトの置き場所($SCRIPTS / SKILL_DIR)の解決を 1 本のコマンドにする #847
  • hook の frontmatter と hooks/claude.json が同じ規則で実体を選ぶ
  • 開発中のリポジトリでは hook と Skill 側の両方が開発中の版を、利用者の環境では両方が自分のランタイムの版を選ぶことを、検査が確かめる
  • 開発中の版へ向ける手段と、向けられない間の回避が、規則と同じ場所に書かれている
  • 各子 issue の再現手順を実行し、現象が出ないことを確かめる(子 issue はその時点の棚卸が「閉じてよい」で閉じる)

関連

Activity

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 本体priority: high実害・安全機構の欠落など、優先して対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions