同じ根本原因を持つ課題(子 issue)を、現れている場所ではなく根本原因の場所で直すための親 issue である(`issue-upkeep` の判定「ルートコーズ」)。再現手順と観測は各子 issue にある。 ## 修正レイヤー **失敗・欠落の扱いを決める共通の層。** 失敗や欠落に気づいた場所が、それを判定へ渡さないまま先へ進む。渡す先となる層がまだ無く、6 か所がそれぞれの場所で黙って続行している。 ## 採る手 新設(`refactoring` の呼び名に該当なし)。作る対象は、失敗・欠落を受け取り、理由を出して止めるか続けるかを決める共通の層である。 ## 子 issue | 子 issue | 現象レイヤー | 観測 | | --- | --- | --- | | #671 | 工程の進行を記録するスクリプト | `gh` の失敗時に理由を出さず、終了コード 0 で終わる | | #577 | 配布物の検査(runtime-smoke) | 検査が落ちても、継続的統合の画面に理由が出ない | | #459 | 工程名を記録する hook | 配布済みの版に無い工程名が、黙って捨てられる | | #684 | cross-refactoring の提案の取り込み | 行範囲を添えた提案が、path / symbol の無い提案として捨てられる | | #642 | cross-refactoring の提案の統合 | 書き方の違う同じ提案が統合されず、2 件目が申告なしとして扱われる | | #653 | 継続的統合の必須の検査の設定 | 3 つの検査が必須でなく、落ちてもマージできる | ## 完了条件 - 失敗・欠落を受け取って扱いを決める共通の層があり、上の 6 つの現象レイヤーがそこを通して理由を出す - 失敗・欠落を黙って捨てて正常終了する経路が、検査で見つかる - 各子 issue の再現手順を実行し、現象が出ないことを確かめる(子 issue はその時点の棚卸が「閉じてよい」で閉じる) ## 親 issue として成り立たない **修正レイヤーをコードの場所として名指しできない。** 6 件の現象は言語も実行の場所も違う層にあり、1 か所を直すと 6 件が同じ形で直る場所が無い(`issue-upkeep` の `references/grouping.md` の「止める目印」を満たさない)。共通しているのは「失敗を表に出す」という方針だけである。 | 子だった課題 | 現れる場所 | 直す場所 | | --- | --- | --- | | #671 | `plugins/ndf/scripts/progress-record.sh`(bash) | 同じ場所。`projects-common.sh` の `pj_is_rate_limited` を使い、`projects-sync.sh` と同じ `NOTE:` を出す | | #577 | `scripts/runtime-smoke-test.sh`(継続的統合のシェル) | 同じ場所。失敗時に `smoke.log` の末尾を画面へ出す | | #459 | `workflow-guard.sh`(PreToolUse hook) | #715 と #725 | | #684 | `refactor_lib/proposals.py`(Python)。黙っておらず警告を出す | #726 | | #642 | `refactor_lib/rounds.py` の `item_key`(Python)。取り消しとして記録に残り、黙って捨てていない | #726 | | #653 | GitHub の ruleset(リポジトリ設定) | 同じ場所。必須の検査の一覧と、ジョブ名と一覧を突き合わせる検査 | この課題は子 issue とのサブイシュー関係を持たない。
Activity