Repository navigation
Release: ndf v10.27.6 を main へ - #2352
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…指す注記を足す Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
確定仕様化: スプリント m26-2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 設計文書 issues/issue-2164-design.md(398 行) - 用語集へ「版の差し込み」「版の記録」「明示の版」を足し、docs/glossary.md を作り直す Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
持ち越した課題を 2 つのスプリントで閉じる PR を出すと、最新の記録を採る規則では別のスプリントの記録を選び、 sprint-close.py が対象外の課題まで閉じる。まとめの課題すべてを閉じる PR を含む記録に限り、 スプリントの並びが 2 通り以上残れば見つからない扱いで止める。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 閉じる PR を持たない課題が混ざったまとめで毎回止まらないよう、I5・手順 2/5・決定 2 を直す - 手順 2 で課題ごとの閉じる PR の対応を保つことを明記する - RecordHit に ambiguous(記録の PR と スプリント: の集合の組)を足す - テスト設計に 2 行を足す Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
まとめの close: どのリリースの経路でも、まとめを流す時点でリリース記録の PR を見つけて課題を閉じる(#2230)
スプリントの配布: 版数を配布のステップを流す時点に決め、並行するスプリントが先に版を出してもプランを作り直さずに出せる(#2164)
- sprint_close_lib/record_find.py を新設。まとめの課題を閉じる PR とそれを参照する PR から、
段階が本番か配布なしで、スプリント: が閉じる PR を含むリリース記録の PR を 1 本決める。
2 つ以上のスプリントにあれば特定できないとして採らない
- queue_fill が {queue_record} を埋め、見つからなければ計画を書き換えずに流さない(unfilled)。
plan.QUEUE_NAMED に {queue_record} を足し、run でも残れば止まる
- sprint_routes.record_pr_ref は unknown を組まず、merge・手で届ける・検証の環境だけ・
手動反映の本番系と開発ループのまとめで {queue_record} を返す。雛形と昇格は今のまま
- 開発ループの承認ゲート 2 の後のまとめへ values.pr を渡さない。差し込みを埋められずに
流さなかった計画のある周回は失敗で締める
- dist_record.released を足し、sprint-close.py と共有する(振る舞いは変えない)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#2230 を実装する(スプリント m26-3)
版の判定を lib/release_version.py に置き、bump は書き換える前に origin のベースブランチの版と タグを読む。ベースブランチの版以下・既にタグのある正式版は終了コード 3、読めなければ 2 で止める。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
new sprint / new close の --version・--prod を任意にし、--level を足す。雛形は版が無ければ
{release_version}・{release_base} を書き、プランへ「版」の欄を置く。bump は 2・3 で judge を通らずに止める。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
開発版は origin から次に空いている版を決め、記録の版が自分の配布の前に別のスプリントに出ていれば 決め直す。本番は開発版の記録の base で出し、タグがあれば止める。埋められなければ項目の version に理由を載せる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bump は自分の作業場所の位置を渡す。キューの差し込みを通すテストは差し込みを差し替え、 origin を読む bump のテストは bare の origin を用意する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#2164 を実装する(スプリント m26-3)
…_sprint manifest のステージ配列から queue と pipeline の文字列を組む部分を sprint_pipeline として抽出した。 手で行うステージの有無による 2 つの経路の文字列を現状固定テストで固定した。 Item-Id: I-001 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d_find.py#find_record 閉じる PR の収集(_closers_of)・候補の展開(_candidates)・記録の読み取りと振り分け(_released_records)を それぞれ抽出し、find_record には順に呼ぶ流れと RecordHit の組み立てだけを残した。 Item-Id: I-002 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e2_answer 承認と差し戻しの時系列から最新の答えを選ぶ部分を latest_gate2_answer(gates, rejections, since) として 抽出した。gate2_answer には状態ファイルと差し戻しログを読み、同じ周回・関門 2 の差し戻しに絞る部分だけを残す。 fresh と EPOCH の規則、同じ時刻は承認を採る順序、JsonReadError を空とする扱いはそのまま。 Item-Id: I-004 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng_blocker kept_all を段階的に上書きする if/elif 連鎖を、配布の段階から閉じられない理由を返す _stage_blocker と、 リリース後テストの記録から (理由, verdicts) を返す _verify_verdicts に分けた。_closing_blocker は _stage_blocker → (理由が無く、リリース後テストを見るとき) _verify_verdicts の 2 段だけにした。 Item-Id: I-005 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ue_fill.py#_fill_dev 記録がある開発版の確かめ直し(出ているか → 自分の配布か → 明示か → 決め直し)を _recheck_dev へ抽出し、早期 return で入れ子を平らにした。_fill_dev は記録の有無で 2 つの経路を選ぶだけになる。振る舞いは変えない。 Item-Id: I-006 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
タグの無い正式版がベースブランチの版以下のときに終了コード 3 で止め、次に空いている版を ベースブランチの次のパッチとする経路を固定する(既存テストが通っていなかった経路)。 Item-Id: I-007 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on.py#bump_check old == new のときの打ち直しの判定を _rerun へ、止めるときの既に出ている版と次に空いている 版の組み立てを _taken_stop へ抽出した。bump_check は形の検査 → 観測 → 打ち直し → 書き換えてよいかの判定 → 止める理由の直線になる。振る舞いは変えない。 Item-Id: I-007 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…_sprint まとめの queue のコマンドの組み立て(gate2_pipeline・sprint_pipeline・continuation の 3 か所)を sprint_loop_gate.queue_command へ抽出し、--max 3 を QUEUE_MAX にまとめた。 止まった記録を stops へ移して running に戻す 2 行(resume_stopped と cmd_sprint)を resume_record へ抽出した。出力の文字列は変わらない。 Item-Id: I-008 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elease 開発版の PR の使い回し・作成とマージを _merge_release_pr へ、本番の PR の作成と承認した先端を 指定したマージの再試行(HEAD_MOVED_RETRIES・承認ゲートでの停止)を _merge_prod_pr へ抽出した。 cmd_release は前提検査・push・各段階の呼び出し・タグ公開・結果の組み立てを担う。 副作用の順序と出力は変わらない。 Item-Id: I-009 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
抽出でファイルが 1266 行になり、構造検査の例外リストの上限(1252 行)を超えた。振る舞いを変えずに 行数を詰めた: 本番の PR の題・本文を変数へ置いて create_pr の呼び出しを 1 行にし、抽出先の docstring を 短くし、ver の一時変数と cmd_release の空行を外し、マージコミットの補完を `or` にした(git は merge が空のときだけ呼ばれる点は同じ)。1251 行。 Item-Id: I-009 Impl-Runtime: claude Impl-Model: default
…#cmd_queue then からステージの並びとすべてのプランを作る部分を _normalize_stages へ、 宣言の読み取り・done の初期化・知らせ始める位置と前の一覧の読み取りを _prepare_queue へ抜き出した。cmd_queue は正規化 → 準備 → 起動 → 待ちの流れになる。 durable の import は本体に残す。 Item-Id: I-010 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Item-Id: I-011 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…loop.py#resume_stopped 止まった理由ごとの再開の振る舞いを if-elif の連鎖から、理由ごとの手続き(_resume_mvv_changed / _resume_user_stop / _resume_budget / _resume_gate2 / _resume_refused)と対応表へ移した。 手続きは (止まったままの結果 or None, 次のコマンド) を返す共通の形にそろえ、budget_* は接頭辞で引く。 resume_stopped は対応表を引いて手続きを呼び、再開の共通の後処理だけを持つ。振る舞いは変えない。 Item-Id: I-011 Impl-Runtime: claude Impl-Model: claude-opus-5-5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
対応表への置き換えで sprint_loop.py が 541 行になり、構造検査(500 行)を超えた。 承認ゲート 2 の答えの読み取りと承認後の続き(EPOCH / gate2_answer / latest_gate2_answer / gate2_pipeline)を新しいモジュール sprint_loop_gate2.py へ移し、sprint_loop から読み込む。 再開の手続きは sprint_loop の名前空間の gate2_answer / gate2_pipeline を引くままで、振る舞いは変えない。 使われなくなった import を外した。 Item-Id: I-011 Impl-Runtime: claude Impl-Model: default
「版」と「実行の条件」を持つ配布のプランは、queue の差し込みで版を照会する前に条件を打つ。 配布不要(skip_code)なら版を照会・差し込みせずに流し、engine が条件を打ち直して完了で終える。 明示の版が既出でも unfilled で止まらず、まとめ・課題のクローズへ進む。 条件の実行は engine と queue で共有する run_condition(steps.py)へ寄せた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
最終の検査で変更があると、出し終えた版が既出として止まり、まとめと周回が失敗で締まっていた。 まとめの配布の版は流す時点に次に空いている版で決める。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
スプリント m26-3
Release: ndf v10.27.6-dev.1
Release: ndf v10.27.6
振り返り(2026-11-01)対象: issue #2230 / issue #2044 / issue #2121 / issue #2164 / スプリントの PR #2348 / 本番の PR #2352(配布の記録は PR #2351) スプリント m26-3 は、まとめの close が読むリリース記録の PR を、プランを組む時点でなく流す時点に解決するようにした(#2230。#2044・#2121 は設計で #2230 へ取り込んだ)。あわせて、配布のプランが作った時点の版数を持たず、流す時点に版を決め、並行するスプリントが先に版を出しても作り直さずに出せるようにした(#2164)。 何が起きたか
検査の記録の集計と閾値
閾値( context window の大きさconductor の 2 セッション(スプリントの開始〜実装、再開〜本番とまとめ)を束ねた。どちらも同じ会話でマイルストーン 26 の他の作業(m26-2 のまとめ、課題の組み直し)も行っている。
用語集の変化
承認ゲートの差し戻し関門 1・関門 2 とも 0 件( MVV を見直すか
覆しが閾値を超えたままである。改訂するかは利用者の答えを待つ(この工程は無人で回しているため問えていない)。このスプリントで増えた 1 件は承認ゲート 1(2026-11-01 11:39 JST)で、判定できなかった理由は、設計が利用者に委ねた選択(#2164 の版の決め直しの範囲)と、版の規則の変更 P1 に当たる可能性だった。どちらも人へ戻すのが設計どおりの振る舞いで、MVV の方向の誤りを示さない。m26-2 の振り返りの推奨(#2296 の Mission の改訂を進める、委ねた選択で戻った回を覆しに数えるかを同じ判断で決める)は変わらない。 次に変えること
途中で起票した課題
|
ndf v10.27.6 を main へ出す(開発版の PR #2351)。
🤖 Generated with Claude Code