## 何が起きたか スプリント m1290 の実装のプラン 3 本(`5-impl-1290.json`・`5-impl-780.json`・`5-impl-1739.json`)を `supervise.py queue --max 3` で流したが、3 本とも直列になった。 キューの記録 `~/.local/state/ndf/sv/sprint-m1290/queue-5.log`: ```text supervise-queue: 重なる組 .../5-impl-1290.json と .../5-impl-780.json(plugins/ndf/scripts/tests/ ⊃ plugins/ndf/scripts/tests/test_parallel_measure.py)を同時には流さない supervise-queue: 重なる組 .../5-impl-1290.json と .../5-impl-1739.json(plugins/ndf/scripts/tests/)を同時には流さない supervise-queue: 重なる組 .../5-impl-780.json と .../5-impl-1739.json(plugins/ndf/scripts/tests/ ⊃ plugins/ndf/scripts/tests/test_parallel_measure.py)を同時には流さない ``` 所要は 2,945 秒・2,739 秒・2,197 秒で、開始 10:59 から終了 13:10(UTC)までの 2 時間 11 分はその合計に一致する。並行に流せていれば最長の 49 分で済んだ。 ## 原因の見当 重なりの判定に使う「触るファイル」は、ステージ「設計の結果」(`supervise.py design-results`)が設計文書の置き場所から取る(`~/.local/state/ndf/sv/sprint-m1290/design-results.json`)。#1290 と #1739 の設計は置き場所にテストのディレクトリ `plugins/ndf/scripts/tests/` を丸ごと書いていた。実際に足した・変えたテストのファイルは課題ごとに別だったが、ディレクトリの包含(#1248 で入れた判定)がすべての組を重なりにした。 テストのディレクトリは、ほぼすべての実装が触る。ディレクトリのまま書くと、そのスプリントの実装は常に直列になる。 ## 依頼 次のどちらか(または両方)にする。 - 設計の置き場所にテストを書くときは、ファイル単位で書く(`design` の手順と、`design-results` がディレクトリを見つけたときの扱い) - 重なりの判定で、テストのディレクトリのような共有の置き場の包含だけでは重なりとしない。ファイルの単位で同じものを触るときだけ直列にする ## 受け入れ条件(案) - [ ] 別々のテストのファイルを足す実装のプラン 2 本が、`queue --max 2` で並行に流れる - [ ] 同じファイルを触る 2 本は、これまでどおり直列になる ## どこで見つけたか スプリント m1290 の振り返り(検査 PR #1799)。 関連: #1248(ディレクトリの包含で重なりを知らせる)、#1674(直列でも他のプランのファイルを「変えない」と渡す) ## 再発(2026-10-12、スプリント m1910) #1916 の設計の置き場所が `plugins/ndf/scripts/tests/` をディレクトリのまま持ち、同時に流れた #1915・#1908 の実装の担当へ「変えない」として渡って作業前に止まった。詳細は #1674 の「再発(2026-10-12)」。直列の判定だけでなく、実装の担当へ渡る除外の行もディレクトリの包含で広がる。
Activity