## 何を見つけたか `plugins/ndf/scripts/tests/test_instructions_check.py::test_ac18_check_writes_nothing` が継続的統合で 1 度だけ落ちた。検査の前後で一時リポジトリの全ファイルの mtime を比べるが、前の一覧にだけ `.git/objects/maintenance.lock` が含まれていた。 ``` E Left contains 1 more item: E {PosixPath('.../test_ac18_check_writes_nothing0/repo/.git/objects/maintenance.lock'): 1790146614723028250} ``` `make_repo` の `git commit` が裏で起動する自動保守(`git maintenance run --auto` / `gc --auto`)がロックを作って消す。その途中で前の一覧を取ると、検査が何も書かなくても差分が出る。並列(`-n auto`)で負荷が上がると当たりやすい。 ## どこで見つけたか PR #897(develop → main、ndf v10.17.1)の継続的統合 `pytest (1/2)`: https://github.com/devbasex/ai-plugins/actions/runs/35829139873/job/107077459405 。失敗したジョブの再実行で扱った。 ## なぜこの変更の範囲外なのか PR #897 は正式版 10.17.1 の配布で、差分は承認済みの #891 / #894 / #896 に限る。このテストと `make_repo` は触っていない。 ## 直さないと何が起きるか 必須の検査 `pytest` がまれに落ち、配布やマージが再実行待ちで止まる。直し方の候補: 一時リポジトリで `git config gc.auto 0` / `maintenance.auto false` を設定する、または比較から `.git/` を外す。 ## 同じ形の再発 - PR #903(#828 #680)の継続的統合 `pytest (1/2)` で `test_ac44_refresh_writes_nothing` が同じ `.git/objects/maintenance.lock` の差分で落ちた: https://github.com/devbasex/ai-plugins/actions/runs/35835226589/job/107096940430 。PR #903 は `test_instructions_check.py` と `make_repo` を触っていない。ac18 だけでなく、`make_repo` の後に mtime を比べるテスト全般が当たる。 - PR #903 の確定仕様のコミット(`49861f2c`)でも `pytest (1/2)` が 2 回続けて落ちた(`test_ac44_refresh_writes_nothing` → 再実行で `test_ac18_check_writes_nothing`。どちらも `.git/objects/maintenance.lock`): https://github.com/devbasex/ai-plugins/actions/runs/35837079622 。3 回目の再実行で通った。1 つの PR で 3 回当たっており、頻度は低くない ## 由来 PR #897
何を見つけたか
plugins/ndf/scripts/tests/test_instructions_check.py::test_ac18_check_writes_nothingが継続的統合で 1 度だけ落ちた。検査の前後で一時リポジトリの全ファイルの mtime を比べるが、前の一覧にだけ.git/objects/maintenance.lockが含まれていた。make_repoのgit commitが裏で起動する自動保守(git maintenance run --auto/gc --auto)がロックを作って消す。その途中で前の一覧を取ると、検査が何も書かなくても差分が出る。並列(-n auto)で負荷が上がると当たりやすい。どこで見つけたか
PR #897(develop → main、ndf v10.17.1)の継続的統合
pytest (1/2): https://github.com/devbasex/ai-plugins/actions/runs/35829139873/job/107077459405 。失敗したジョブの再実行で扱った。なぜこの変更の範囲外なのか
PR #897 は正式版 10.17.1 の配布で、差分は承認済みの #891 / #894 / #896 に限る。このテストと
make_repoは触っていない。直さないと何が起きるか
必須の検査
pytestがまれに落ち、配布やマージが再実行待ちで止まる。直し方の候補: 一時リポジトリでgit config gc.auto 0/maintenance.auto falseを設定する、または比較から.git/を外す。同じ形の再発
pytest (1/2)でtest_ac44_refresh_writes_nothingが同じ.git/objects/maintenance.lockの差分で落ちた: https://github.com/devbasex/ai-plugins/actions/runs/35835226589/job/107096940430 。PR 実装: サブエージェントに Skill 本文を丸ごと読ませず、仕事を分ける器を比べて選ぶ(#828 #680) #903 はtest_instructions_check.pyとmake_repoを触っていない。ac18 だけでなく、make_repoの後に mtime を比べるテスト全般が当たる。49861f2c)でもpytest (1/2)が 2 回続けて落ちた(test_ac44_refresh_writes_nothing→ 再実行でtest_ac18_check_writes_nothing。どちらも.git/objects/maintenance.lock): https://github.com/devbasex/ai-plugins/actions/runs/35837079622 。3 回目の再実行で通った。1 つの PR で 3 回当たっており、頻度は低くない由来
PR #897