Status: Living / v0.1(運用仮説。完成版ではない) Owner: Maintainer / Governance Started: 2026-10-10 Review cadence: 運用中の随時改善 + 月次レビュー(週次の軽量Triageは試行) Related: Issue Governance / 棚卸し #1503 Design history / article seed: 2026-10-10の設計議論・比較・公開記事のタネ
Open Issue を「過去に発見したことの保管庫」ではなく「現在、何を判断・実行するかが分かるバックログ」に保つ。過去の証跡は GitHub の Closed Issue / PR に残るため、不要な Open 状態を保存しない。
この文書は 変化する運用合意(Living Playbook)。実行中の観測により改訂するもので、別の固定ガバナンスや自動 Gate を新設するものではない。
main、GitHub Issue、PR、関連するテストと実行ログ。棚卸しレポートと #1503 は測定時点のスナップショットであり、現在値とは限らない。完璧な一括棚卸しより、小さな変更を速く試し、誤りを早く見つけて直す。
| 原則 | 今回の運用への適用 | フィードバック |
|---|---|---|
| Small batch / fast feedback | 最初は 3〜5件を1バッチとして分類 → 必要な変更・相互リンク → Closeは根拠を満たす場合だけ → 再取得・照合。慣れたら件数を調整 | バッチ終了時に判断・誤分類・残ACを確認 |
| Fail fast | PR merge 後の Close 漏れ、統合後の未移管AC、壊れた相互リンクを早期検知。機械判定は参考であり、false green を許容しない | リンクと状態を再取得し、重要な判定は証拠で確認 |
| Quick recovery | Close 前に根拠と代表先を残す。誤Closeなら理由を記録して reopen。仕様が変わった後の再発は旧Issue参照付きの新Issueを起こす | 修復所要時間・再発・未移管ACを振り返る |
| Risk-based verification | doc/軽微な整理は安価な確認で進める。承認・セキュリティ・データ損失・fail-open は追加の照合が要る | 残存リスクが不明なら Close せず Blocked/Decision required |
| Inspect & Adapt | ルールを試した結果と採否を記録し、効果がないルールを廃止・変更する | 月次に運用仮説を見直す |
「Fast Fail」は検証を省くことでも、成功を装うことでもない。「リバーシブル」はIssue の状態変更についてであり、過去に発生した安全上の危害や権限の越境を取り消せるという意味ではない。
次の区分は Triage の判断結果であり、追加の kind / status ラベルではない。
| 判定 | 判断基準 | 処置 |
|---|---|---|
| Completed | 受入基準 (AC) が現行実装・テスト・merge済みPR等で充足している | 根拠を書き、GitHub completed で Close |
| Duplicate | 問題と解決条件が同一で、代表 Issue に残ACを保持できる | 残AC移管 → 相互リンク → duplicate で Close(GitHubで使えなければ not planned と理由) |
| Superseded | 現行設計・別Issueに置換済み | 置換先・引継ぎ先を明記し not planned で Close |
| Not reproducible / Obsolete | 旧実装・旧環境でのみ発生、現在の継続リスクが低い | 限定した確認範囲と再発時の起票条件を残し not planned で Close |
| Out of scope | 現行方針・ロードマップから外れる | 判断理由・再検討条件を記録し not planned で Close |
| Actionable | 今も価値・未達AC・実装可能な次の一手がある | Open維持。最小スライス・受入条件・担当境界を明記 |
| Blocked / Decision required | 特定の操作に必須の先行条件・外部アクセス・Human決定が残る | Open維持。停止すべき操作だけを特定し、AIが今できる調査・検証・PR準備、判断の推奨案・根拠・判断後の検証を記録。Issue全体は自動停止しない |
注意:
status:wontfix、Blocked / Decision required は status:blocked を使う(issue-governance §3.4)。| 関係 | 用途 | やること |
|---|---|---|
| Duplicate | 同じ問題・同じ完了条件 | 代表を決め、閉じる側の未達AC・議論の参照を代表へ移す。双方にリンクを残す |
| Parent / Sub-issue | 1つの成果を独立した実装スライスに分ける | GitHub の Sub-issue 機能を優先。不可なら双方向の親子参照 |
| Blocked by / Blocking | 先行作業の完了が必須 | GitHub の Dependency 機能を優先。不可なら両側に依存理由・解除条件を書く |
| Related | 一緒に考えると漏れを防げるが必須の順序制約はない | 双方向にリンクし「何を合わせて確認するか」を1行で記す |
類似タイトルだけで統合しない。目的、残AC、所有者、独立にCloseできるかを比較する。Parentや関連であるだけのIssueは重複扱いしない。
Issue Governance §9 に従い、全ACを満たすPRだけ closes #N 等を記す。途中のPRは Refs: #N / Part of #N にする。merge後にACの残りを確認し、必要なら別Issueへ具体的に引き継ぐ。
main SHA・対象範囲を記録する。安全境界関連は別バッチにする。一括で大量に閉じず、1バッチで品質を確かめてから次のバッチへ進む。失敗を観測したら同じ型の変更を一時停止し、原因・影響範囲を調べてから再開する。
Triage: <Completed | Duplicate | Superseded | Not reproducible | Out of scope>
Checked: <YYYY-MM-DD> / main <SHA> / scope <確認範囲>
Evidence: <PR・commit・test・現行仕様等へのリンク>
Decision: <この処置を選ぶ理由 / 未確認部分>
Follow-up: <代表Issue / 残ACの所有先 / 再発時に新規起票する条件。なければ none>
Recovery: <誤判定の場合はこのIssueをreopen、または現行事象を新Issueで起票>
このコメントは判断の追跡可能性を作るもので、テストやHuman承認の代用品ではない。
この仕組みは、Issue 自体の整理だけで終わらせず、Issue を整理する運用も検証・改善する。大規模な新ハーネスや新しい承認権限は作らず、既存 Issue / PR の証跡で回す。
Select → Observe → Propose → Review → Apply → Verify
↑ │
└───────── 次の候補 ←────────── 振り返り ──────┘
Loop A の事実 → Friction / Failure の観測
→ 改善仮説(1つ)
→ 最小の試行(次の1〜2バッチ)
→ Evidence / 副作用の確認
→ Keep / Adapt / Revert / Defer
→ Playbook 改訂 → 次の Loop A
| 観測 | 記録単位 | 改善のシグナル |
|---|---|---|
| Triage リードタイム / 確認時間 | バッチごと | 根拠品質を落とさず短縮できたか |
| 誤Close・reopen(同じ誤判定の訂正) | Issueとバッチ | 重大な誤判定ゼロ。発見したら停止・回復 |
| 代表Issueへの残AC移管漏れ | 統合ごと | ゼロを維持できたか |
| 関連/依存の未リンク・誤リンク | バッチごと | 次に着手した人の確認漏れが減ったか |
| PR merge 後の未クローズ完全達成Issue | 週次 | 意図したOpen維持と、単純なClose漏れを区別できたか |
| バッチ終了時のHuman判断待ち・未検証件数 | バッチごと | 判断を勝手に補完せず、阻害要因を見える化できたか |
Close件数やOpen総数の減少を成功条件にしない。初期の値は仮説であり、2バッチ後に記録負荷・効果を見て項目を削る/調整する。特に #1005 の admission / commitment / WIP と本書の 整理・Close は別の責務であり、昇格やWIPを本書だけで決定しない。
新しい台帳を作らず、棚卸しの親 Issue(初回は #1503)に以下を追記する。進行中の個別判断の根拠は各 Issue 側を正本とする。
### Triage batch <ID>(YYYY-MM-DD)
- Baseline: main <SHA> / 対象Issue: #A, #B, #C
- Decisions: completed N / duplicate N / superseded N / not planned N / kept N
- Verification: 再取得 <実施/未実施> / 残AC・リンク整合 <結果>
- Friction / Failure: <観測事実。なければ none>
- Recovery: <修復したこと。なければ none>
### Process experiment <ID>
- Observation: <繰り返し起きた問題>
- Hypothesis: <変更すれば改善するはずのこと>
- Change: <次のバッチで試す最小の変更>
- Evidence: <前後のバッチ・実績へのリンク>
- Decision: <Keep / Adapt / Revert / Defer>
- Next: <次バッチの行動とPlaybook改訂PR。未検証なら未検証>
事実の正本: #1503 第三次棚卸しの実測記録。測定したmainは 715a4a8a。GitHub Open Issueを月別に重複なく数えると108件。
| 日付 | 仮説・変更 | ステータス / 次に確かめること |
|---|---|---|
| 2026-10-10 | 初版。Fast Fail / Quick Recovery、3〜5件の小バッチ、分類・Close・相互リンク | Trial: 2バッチで運用負荷と誤判定を観測 |
| 2026-10-10 | Loop A(棚卸し)と Loop B(運用改善)を分離。1仮説ずつ試行、Keep/Adapt/Revert/Defer | Proposed: 初回PR merge済み3件を小バッチで確認 |
| 2026-10-10 | 初回2バッチ計6件を実測し、古い前提1件を修正。重複した運用説明も削減 | 実行事実は#1503。効果の検証は保留(Defer)、次に前提が古いIssueを含むバッチを試す |