門の走行の持ち時間を 2700 → 7200(ADR-DOE-ENFORCE-001 R6 の第 3 の締切・宣言のみ) - #596
Closed
proboscis wants to merge 1 commit into
Closed
門の走行の持ち時間を 2700 → 7200(ADR-DOE-ENFORCE-001 R6 の第 3 の締切・宣言のみ)#596proboscis wants to merge 1 commit into
proboscis wants to merge 1 commit into
Conversation
operator 裁定 decision-doeff-land-gate-deadline-2026-08-17.html「A. 締切を直す」の 執行の第 1 便。本体(conftest の係数化 + 条文 + 反例試験)は PR #595 で、 この宣言だけを先に分けて出す。 分ける理由は機構の読み口にある: 窓は gate.timeout_s を**共有 checkout の 基底側**の宣言から読む(agentcli land.py read_config は repo path を見る)ので、 本体と同じ便に入れても自分の走行には効かない。先にこの 1 行を着地させて おかないと、本体は常に旧値 2700 で走って時間切れになる(実測: L26 が 2710.7 秒 / L27 も同じ理由で走行中)。 なぜ 2700 では足りないか: 内側の 2 つの締切(1 テストごとの pytest-timeout と SIGKILL watchdog)を過負荷率に連動させると、60 秒で落ちていた試験が数百秒まで 走れるようになるので走行の総時間は必ず伸びる。据え置くと赤の場所が 「1 テストの timeout」から「走行全体の時間切れ」へ移るだけになる。 7200 = 係数が上限(既定 8)に張り付いた走行でも終われる値。 この file だけの変更なので tier 宣言により検査は true(即通過)— 検定の 実体は本体 PR #595 側が負う。根拠は宣言の隣の comment に書いた。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
proboscis
added a commit
that referenced
this pull request
Aug 17, 2026
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
proboscis
added a commit
that referenced
this pull request
Aug 17, 2026
…た事実は黙らない operator 裁定 decision-doeff-land-gate-deadline-2026-08-17.html「A. 締切を直す」の執行。 第 3 の締切(門の走行の持ち時間)は PR #596 が単独で先に着地する — 窓はその値を 基底側の宣言から読むので、同便に入れても自分の走行には効かないため。本便は .agents/land-queue.toml に一切触れない(列車の先端で #596 を戻す形にしないため)。 締切が捕まえるべきものは hang であって busy ではない。18 コアの機械が load 60〜156 で定常稼働する中、1 テスト 60 秒の定数締切に対して semgrep 単体が load 80 で 29.7 秒を使い、電池全体の負荷が乗ると超える。結果、着地の門が 5 連敗した(毎回ちがう外部プロセス起動テスト)。同じ試験は手つかずの main を 単独で回しても同じく落ちるので、枝の欠陥ではなく締切の性質だった。 2 席で 9 回の着地が死に、正しい修理が出荷できずにいた。 修理: - 係数 = 1 分平均 load / コア数(下限 1.0・上限 PYTEST_DEADLINE_SCALE_CAP 既定 8)。上限があるので真の hang は依然として有界時間で落ちる - 無効化は PYTEST_DEADLINE_SCALE=off(負荷を自分で制御する CI 用) - 締切は 3 つある(pytest-timeout の per-test・その上に立つ SIGKILL watchdog・門の走行の持ち時間)。内側 2 つは同じ係数で伸び、watchdog は 常に per-test より厳密に上に居る — 片方だけ上げると「遅い試験 1 本が 赤くなる」が「走行ごと SIGKILL で全損する」に化ける(実測: PYTEST_TIMEOUT=600 を素の 90 秒 watchdog に当てて全数電池が 45% で即死)。 第 3 の締切は宣言側にあり PR #596 で 2700 → 7200(据え置くと赤の場所が 「1 テストの timeout」から「走行全体の時間切れ」へ移るだけ — 実測 2710.7 秒) - marker の締切も同じ係数に掛かる。pytest-timeout は marker を ini より 優先するので、ini だけ伸ばすと「自分は遅いと申告した試験」= 外部 プロセスを起こす当の試験群が素の締切に取り残される - 係数が 1 を超えた走行は実効値を stderr に出す。伸びた締切は同時に 「この機械は過負荷である」の信号でもあり、8 倍かかった走行が黙って 緑を返すのは観測の欠落 per-test 締切の家は pyproject.toml ただ 1 つのまま(conftest は ini を読んで 掛けるだけで、60 という数字を第 2 の場所へ写さない)。呼び手が env や --timeout で明示した値は潰さず、その値を掛ける。 法: ADR-DOE-ENFORCE-001 に R6 と law deadline-measures-hang-not-load (反例 6 — 5 連敗の実測 / 片方だけ伸ばして全損する形 / marker が取り残される 形 / 上限を置かない形 / 黙って伸ばす形 / 内側だけ直して門の持ち時間を 据え置く形)。台帳も同便で更新(law 84→85・deftest 37→38 — R5 ratchet)。 実測: - tests/test_deadline_load_scaling.py 5 本 + 台帳 + ADR = 10 passed - 5 連敗の当事者だった tests/semgrep/test_vm_failfast_semgrep_rules.py が 16 passed(14m16s・係数 x5.5 = 1 テスト 328 秒 / watchdog 491 秒) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
proboscis
added a commit
that referenced
this pull request
Aug 17, 2026
分割していた理由は「窓は gate.timeout_s を基底側の宣言から読むので、内側の 修理と同便では自分の走行に効かず、2700 秒で時間切れになる」だった。 L30 の実測がこの前提を外した: 修理入りの全量検査は 1844 秒で完走しており、 2700 秒の中に収まる。時間切れになった L26(2710.7 秒)は、より高い負荷帯で 測った 1 点だった。 一方で分割には実害があった。列車の候補は並行に組まれるため、L30 の候補に L28(宣言のみの便)が入らず、条文の deftest が読む gate.timeout_s は基底の 2700 のままで落ちた。順序に依存する 2 便より、自分の候補の中で完結する 1 便のほうが構造的に強い。 PR #596 / L28 は取り下げる(内容は本便に含まれる)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
Owner
Author
|
内容を本体 PR #595 に統合したため取り下げます。分割の前提(修理入りの全量検査は 2700 秒に収まらない)は実測で外れました — L30 の走行が 1844 秒で完走しています。一方で分割には実害があり、列車の候補が並行に組まれるため本体の候補に本 PR が入らず、条文の検査が基底の 2700 を読んで落ちました。順序に依存する 2 便より、自分の候補の中で完結する 1 便のほうが構造的に強いです。 |
proboscis
added a commit
that referenced
this pull request
Aug 17, 2026
…た事実は黙らない operator 裁定 decision-doeff-land-gate-deadline-2026-08-17.html「A. 締切を直す」の執行。 第 3 の締切(門の走行の持ち時間)は PR #596 が単独で先に着地する — 窓はその値を 基底側の宣言から読むので、同便に入れても自分の走行には効かないため。本便は .agents/land-queue.toml に一切触れない(列車の先端で #596 を戻す形にしないため)。 締切が捕まえるべきものは hang であって busy ではない。18 コアの機械が load 60〜156 で定常稼働する中、1 テスト 60 秒の定数締切に対して semgrep 単体が load 80 で 29.7 秒を使い、電池全体の負荷が乗ると超える。結果、着地の門が 5 連敗した(毎回ちがう外部プロセス起動テスト)。同じ試験は手つかずの main を 単独で回しても同じく落ちるので、枝の欠陥ではなく締切の性質だった。 2 席で 9 回の着地が死に、正しい修理が出荷できずにいた。 修理: - 係数 = 1 分平均 load / コア数(下限 1.0・上限 PYTEST_DEADLINE_SCALE_CAP 既定 8)。上限があるので真の hang は依然として有界時間で落ちる - 無効化は PYTEST_DEADLINE_SCALE=off(負荷を自分で制御する CI 用) - 締切は 3 つある(pytest-timeout の per-test・その上に立つ SIGKILL watchdog・門の走行の持ち時間)。内側 2 つは同じ係数で伸び、watchdog は 常に per-test より厳密に上に居る — 片方だけ上げると「遅い試験 1 本が 赤くなる」が「走行ごと SIGKILL で全損する」に化ける(実測: PYTEST_TIMEOUT=600 を素の 90 秒 watchdog に当てて全数電池が 45% で即死)。 第 3 の締切は宣言側にあり PR #596 で 2700 → 7200(据え置くと赤の場所が 「1 テストの timeout」から「走行全体の時間切れ」へ移るだけ — 実測 2710.7 秒) - marker の締切も同じ係数に掛かる。pytest-timeout は marker を ini より 優先するので、ini だけ伸ばすと「自分は遅いと申告した試験」= 外部 プロセスを起こす当の試験群が素の締切に取り残される - 係数が 1 を超えた走行は実効値を stderr に出す。伸びた締切は同時に 「この機械は過負荷である」の信号でもあり、8 倍かかった走行が黙って 緑を返すのは観測の欠落 per-test 締切の家は pyproject.toml ただ 1 つのまま(conftest は ini を読んで 掛けるだけで、60 という数字を第 2 の場所へ写さない)。呼び手が env や --timeout で明示した値は潰さず、その値を掛ける。 法: ADR-DOE-ENFORCE-001 に R6 と law deadline-measures-hang-not-load (反例 6 — 5 連敗の実測 / 片方だけ伸ばして全損する形 / marker が取り残される 形 / 上限を置かない形 / 黙って伸ばす形 / 内側だけ直して門の持ち時間を 据え置く形)。台帳も同便で更新(law 84→85・deftest 37→38 — R5 ratchet)。 実測: - tests/test_deadline_load_scaling.py 5 本 + 台帳 + ADR = 10 passed - 5 連敗の当事者だった tests/semgrep/test_vm_failfast_semgrep_rules.py が 16 passed(14m16s・係数 x5.5 = 1 テスト 328 秒 / watchdog 491 秒) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
proboscis
added a commit
that referenced
this pull request
Aug 17, 2026
…た事実は黙らない operator 裁定 decision-doeff-land-gate-deadline-2026-08-17.html「A. 締切を直す」の執行。 第 3 の締切(門の走行の持ち時間)は PR #596 が単独で先に着地する — 窓はその値を 基底側の宣言から読むので、同便に入れても自分の走行には効かないため。本便は .agents/land-queue.toml に一切触れない(列車の先端で #596 を戻す形にしないため)。 締切が捕まえるべきものは hang であって busy ではない。18 コアの機械が load 60〜156 で定常稼働する中、1 テスト 60 秒の定数締切に対して semgrep 単体が load 80 で 29.7 秒を使い、電池全体の負荷が乗ると超える。結果、着地の門が 5 連敗した(毎回ちがう外部プロセス起動テスト)。同じ試験は手つかずの main を 単独で回しても同じく落ちるので、枝の欠陥ではなく締切の性質だった。 2 席で 9 回の着地が死に、正しい修理が出荷できずにいた。 修理: - 係数 = 1 分平均 load / コア数(下限 1.0・上限 PYTEST_DEADLINE_SCALE_CAP 既定 8)。上限があるので真の hang は依然として有界時間で落ちる - 無効化は PYTEST_DEADLINE_SCALE=off(負荷を自分で制御する CI 用) - 締切は 3 つある(pytest-timeout の per-test・その上に立つ SIGKILL watchdog・門の走行の持ち時間)。内側 2 つは同じ係数で伸び、watchdog は 常に per-test より厳密に上に居る — 片方だけ上げると「遅い試験 1 本が 赤くなる」が「走行ごと SIGKILL で全損する」に化ける(実測: PYTEST_TIMEOUT=600 を素の 90 秒 watchdog に当てて全数電池が 45% で即死)。 第 3 の締切は宣言側にあり PR #596 で 2700 → 7200(据え置くと赤の場所が 「1 テストの timeout」から「走行全体の時間切れ」へ移るだけ — 実測 2710.7 秒) - marker の締切も同じ係数に掛かる。pytest-timeout は marker を ini より 優先するので、ini だけ伸ばすと「自分は遅いと申告した試験」= 外部 プロセスを起こす当の試験群が素の締切に取り残される - 係数が 1 を超えた走行は実効値を stderr に出す。伸びた締切は同時に 「この機械は過負荷である」の信号でもあり、8 倍かかった走行が黙って 緑を返すのは観測の欠落 per-test 締切の家は pyproject.toml ただ 1 つのまま(conftest は ini を読んで 掛けるだけで、60 という数字を第 2 の場所へ写さない)。呼び手が env や --timeout で明示した値は潰さず、その値を掛ける。 法: ADR-DOE-ENFORCE-001 に R6 と law deadline-measures-hang-not-load (反例 6 — 5 連敗の実測 / 片方だけ伸ばして全損する形 / marker が取り残される 形 / 上限を置かない形 / 黙って伸ばす形 / 内側だけ直して門の持ち時間を 据え置く形)。台帳も同便で更新(law 84→85・deftest 37→38 — R5 ratchet)。 実測: - tests/test_deadline_load_scaling.py 5 本 + 台帳 + ADR = 10 passed - 5 連敗の当事者だった tests/semgrep/test_vm_failfast_semgrep_rules.py が 16 passed(14m16s・係数 x5.5 = 1 テスト 328 秒 / watchdog 491 秒) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Ai-Conversation: faf301cc-28e1-4c0c-af68-8d345badd37d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
operator 裁定
decision-doeff-land-gate-deadline-2026-08-17.html「A. 締切を直す」の執行の第 1 便。本体(conftest の係数化 + 条文 + 反例試験)は PR #595。なぜ分けるか
窓は
gate.timeout_sを 共有 checkout の基底側の宣言から読む(agentcli land.pyのread_configは repo path を見る)。本体と同じ便に入れても自分の走行には効かないので、先にこの 1 行を着地させておかないと本体は常に旧値 2700 で走って時間切れになる(実測: L26 が 2710.7 秒で timeout)。なぜ 2700 では足りないか
内側の 2 つの締切(1 テストごとの pytest-timeout と SIGKILL watchdog)を過負荷率に連動させると、60 秒で落ちていた試験が数百秒まで走れるようになるので、走行の総時間は必ず伸びる。据え置くと赤の場所が「1 テストの timeout」から「走行全体の時間切れ」へ移るだけになる。
7200 = 係数が上限(既定 8)に張り付いた走行でも終われる値。負荷が制御された場所(CI)は
PYTEST_DEADLINE_SCALE=offで内側を固定できるので、この値を使い切らない。この file だけの変更なので tier 宣言により検査は
true(即通過)— 検定の実体は本体 PR #595 側が負う。根拠は宣言の隣の comment に書いた。🤖 Generated with Claude Code