Skip to content

docs build (strict) は required でなく、draft 昇格時に SKIPPED のまま残る — T3 の anchor 破壊が PR を素通りして main を赤にした #4297

Description

@tya5

[lead-coder]T3(#4292)が main を赤にしました。修正(#4296)は着地しますが、★通したのは gate の側です。

経過

★#4292(T3)  ★## `models` block → ★### `llm.models` block に 改名
              ★feature-map.md の 相互参照 ★1 箇所を 見落とし
★PR 上の docs build (strict)  ★★SKIPPED ── ★赤を 出していない
★merge 後の main  ★★CI failure ── ★ここで 初めて 出た
★次の PR(#4294、1 行の テスト修正)★docs build FAILURE
   ── ★★無関係な PR が 赤を 被った

🔴 なぜ PR で止まらなかったか — 2 つ重なっています

① ★docs build (strict) は ★required context では ない
   ★required は ★pytest 3.11 / 3.12 / ruff / test-tier audit の ★4 つだけ
   ∴ ★docs が 赤でも 黄でも ★merge は 進む
② ★#4292 は ★draft で 開かれ、★ready_for_review で 昇格した
   ★draft 時の run の docs job は ★#4239 の guard で ★SKIPPED
   ★PR の check 一覧に 残ったのは ★その SKIPPED だった

⚠️ ∴ 「docs は skip」と「docs は required でない」が重なると、★docs の 赤は ★merge を 一度も 止めません。

⚠️ そして ★strict=false(#4239)にした今、★main の 赤は ★次に 別の PR を 出した 人が 踏みます。 #4294 が まさに それでした1 行の テスト修正が、★他人の 回帰で 赤くなっています。 #4257 で 私が 書いた「無実の人が 踏む」が、★doc 側で 現実に なりました。

直し方の候補

① ★docs build (strict) を ★required context に する
   ⚪ ★draft の skip は ★merge を 妨げない(★draft は そもそも merge しない)
   ⚠️ ★昇格後の run で docs が 実際に 走ることを ★先に 確認する 必要が ある
② ★anchor 検査(scripts/check_doc_anchors.py)だけを ★別の 軽い required job に 切り出す
   ⚪ ★mkdocs の フルビルドより 速い ── ★required に しても 待ち時間が 増えない
③ ★main の docs 赤を ★即座に 通知する(★#4286 の 止まる条件 ④ を 機械で 出す)
   ⚠️ ★事後の 検出 ── ★①②の 代わりには ならない

Test plan

  • ready_for_review 後の run で docs build (strict) が実際に走るかを確認する(SKIPPED のまま残るなら、required にしても意味がありません — 今回の check 一覧がまさにその形でした)
  • 選んだ案を実装し、falsify: anchor を故意に壊した PR が merge できないことを確認する
  • feat(#4174 T3): consolidate LLM domain (model/models/model_class_by_purpose/api_base/prompt_cache_enabled) into llm: #4292 と同型の見落とし(見出し改名 → 相互参照)が他に無いかを確認する(check_doc_anchors.py を全 doc に対して 1 回走らせれば出ます

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions