Repository navigation
Description
親: #715
何を見つけたか
このリポジトリ自身の開発では、直した hook / スクリプトはリリースされるまで効かない。 そのため、その不具合を直している間も同じ実害を踏み続ける。影響と、その間の回避を書く場所がどこにも無い。
マイルストーン「04 worktree 運用の残課題」では #610(worktree-session.sh の追従が並列のエージェントの開始・再開のたびにメインディレクトリの HEAD を動かす)を直したが、直している間にメインディレクトリの HEAD が 3 回動いた。 オーケストレーターが都度 develop へ戻した。リリース(v10.12.0)の後も、走っているセッションの NDF はインストール済みの版のままである。
$ ls -d ~/.claude/plugins/cache/ai-plugins/ndf/10.1[12]* 2>/dev/null; echo "exit=$?"
exit=2
(10.12.0 をリリースした後も、このセッションが読むのは 10.10.1)版数はこの観測をした 2026-09-15 時点(v10.12.0 のリリース直後)の値である。
同じ形の課題
| 課題 | 状態 | 形 |
|---|---|---|
| #459 | open | 開発中の版で工程名を記録すると、hook が使うリリース済みの版に無い名前は黙って捨てられる |
| #534 | closed(#847) | 開発中のリポジトリで cross-refactoring を回すと、スケルトンが指すのはリリース済みの版である |
| #590 | closed(#847) | Claude Code で $SCRIPTS を決めると、参照ファイルの ${CLAUDE_PLUGIN_ROOT} が置き換わらず Codex の古い控えを採る |
| これ | open | 開発中に直した hook はリリースまで効かず、直している間ずっと同じ実害を踏む |
Skill から呼ぶスクリプトの系統は #847 で 1 本のコマンドになった。hook の系統には規則として書かれた場所が無い
(git grep -n -i '配布まで効かない\|配布済みの版\|開発中の版\|導入済みの版' origin/develop -- plugins/ndf/skills docs AGENTS.md CLAUDE.md は、docs/specifications/ndf-issue-upkeep-root-cause.md のクラスタの表の 1 行だけに当たる)。
直さないと何が起きる
- 自分が直している不具合を、直している間ずっと踏む。踏んだことを毎回その場で判断して回避する
- 回避のやり方が担当ごとに違う。開発中のリポジトリで cross-refactoring を回すと、骨組みが指すのは配布済みの版である #534 は状態ファイルから値を読む回避、worktree-session.sh のブランチ追従が、並列のエージェントの開始・再開のたびに主ディレクトリの HEAD を動かす #610 は HEAD を手で戻す回避で、どちらも記録に残っていない
- 「直したのに再現する」を不具合として二重に起票しうる
修正レイヤー
実行する版を解決する層の hook の系統(#715)。hook の frontmatter と hooks/claude.json がプラグインの実体を選ぶ規則で、
開発中の版へ向ける手段と、向けられない間の回避は、その規則と同じ場所に書く。
直し方の候補
- 実行する版を解決する層を 1 つにし、開発中の版と配布済みの版の食い違いを根本原因の場所で直す #715 の規則と同じ場所へ 1 節を足す。開発中のリポジトリで NDF 自身を直すときにリリース済みの版が動く対象(hook・
scripts/・Skill の本文)と、リリースまで効かないこと、その間の回避(HEAD を戻す・状態ファイルから読む・PLUGIN_ROOTを開発中の版へ向ける等、実測できたものだけ)を書く - 書いた後、開発中の版で工程名を記録すると、hook が使う配布済みの版に無い名前は黙って捨てられる #459 の本文から重複する説明を削り、この節を指す形にする
- 開発中の版を実行へ向ける手立てが取れるなら、その手順を同じ節に書く(取れないなら、取れないことを書く)
#1142 の決定 20(ミッション 2b の移行ステップ D5)は hook を 1 本の Python のエントリポイントへまとめ、hooks/*.json を触る。
hook の実体を選ぶ規則はこの置き換えの後の形で書く。
由来
マイルストーン「04 worktree 運用の残課題」の振り返り。#610 の直しの最中にメインディレクトリの HEAD が 3 回動いた。
やらないと判断した(2026-09-26)
- 理由: 開発中に直した hook が配布まで効かないことを 1 節書く課題で、書いても踏む実害は減らない。hook の実体を選ぶ仕組みはスクリプト整理の課題で 1 本の入口へまとめる。
- 実害: このリポジトリの開発中、hook を直している間だけ回避の判断が数回要る(観測は worktree-session.sh のブランチ追従が、並列のエージェントの開始・再開のたびに主ディレクトリの HEAD を動かす #610 の HEAD が 3 回動いた 1 件)
- 費用の見積り: 1〜2 ファイル(hook の規則の文書と 開発中の版で工程名を記録すると、hook が使う配布済みの版に無い名前は黙って捨てられる #459 の本文)
- 再び考える条件: hook を直している間に同じ不具合を踏んで作業が止まった記録が 1 件出たとき、または hook の入口を 1 本にまとめた後
Activity