## 背景 #1455 の実装(スプリント m1426)で、構造チェック `require-groups` を「エントリポイントから import をたどって届く外部パッケージの依存グループを、`deps.require` で宣言しているか」へ広げた。違反 33 本・61 件のうち 22 本は直したが、次の 11 本・21 件は直さずに例外リスト(`scripts/script-structure-allow/` の `require-groups`)へ載せた。 載せた理由は、設計の不変条件 I5(関数の中で起動し直しうる `require` は、そのプロセスが外へ書く前に呼ぶ)を、呼ぶ位置と呼び出し元の手前まで読んで確かめていないためである。確かめずに `require` を足すと、起動し直した後に同じ書き込みが 2 度起きうる。 ## 対象(11 本・21 件) | ファイル | 足りない依存グループ | | --- | --- | | `plugins/ndf/scripts/experimental/hook-trial/ht_hook.py` | shparse(hook の試行) | | `plugins/ndf/scripts/experimental/phase_cost.py` | mdtable | | `plugins/ndf/scripts/lib/post_queue.py` | durable・locks・waits | | `plugins/ndf/scripts/lib/transcript_agents.py` | mdtable | | `plugins/ndf/scripts/project-decl.py` | locks・mdtable | | `plugins/ndf/scripts/relay.py` | locks・md・procs・terminal・versions | | `plugins/ndf/scripts/test-run.py` | waits | | `plugins/ndf/scripts/training-optout.py` | locks・procs | | `plugins/ndf/scripts/usage-report.py` | mdtable | | `plugins/ndf/scripts/wait-notify.py` | locks・notify(hook の環境を確かめてから読む) | | `plugins/ndf/skills/external-ai/scripts/external-ai.py` | locks・procs | ## 受け入れ条件 1. 11 本それぞれで、I5 を満たす位置に `require` を置くか、置けない理由(hook の経路など)を例外リストの `reason` に残す 2. 直した項目は例外リストから消え、構造チェックが `unused-allow` を出さない 3. 依存の無い python3 で各エントリポイントを起動したとき、`ModuleNotFoundError` で落ちずに依存の導入へ進む(hook の経路を除く) ## 関連 - #1455(元の課題。確定仕様は `docs/specifications/ndf-deps-require-groups-check.md` の常に成り立つ条件 I5・I8) - #1142(スクリプト全体の設計のやり直し)
Activity