Skip to content

#2230 を実装する(スプリント m26-3) - #2333

Merged
takemi-ohama merged 3 commits into
sprint/m26-3from
feat/issue-2230-m26-3
Nov 1, 2026
Merged

takemi-ohama merged 3 commits into
sprint/m26-3from
feat/issue-2230-m26-3

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

ndf のスプリントのまとめで、記録の PR を {queue_record} によってプランを流す時点で探すようにしました(#2230 スプリント m26-3 のブランチへ集める)。あわせて、まとめの --record-pr の説明と確定仕様を、この組み方に合わせて直しました。

利用者向けの変化

  • ndf のスプリントのまとめのプランは、--record-pr に {queue_record} を組みます。
  • 記録の PR は、プランを組む時点ではなく、そのプランを流す時点で探されます。

移行の手順

  • 無し

変更の要点

  • plugins/ndf/scripts/sprint_close_lib/record_find.py を新しく作りました。プランを流す時点で、まとめの記録の PR を探します。
  • まとめのプランが --record-pr に {queue_record} を組むように直しました。
    • 直したファイルは plugins/ndf/scripts/supervise_lib/plan.py、queue_fill.py、sprint_routes.py です。
    • あわせて plugins/ndf/scripts/sprint-close.py、lib/sprint_loop.py、lib/sprint_loop_gate.py も直しました。
  • まとめの --record-pr の説明を {queue_record} に直しました。
    • 対象は plugins/ndf/skills/development-workflow/references/pace.md と plugins/ndf/skills/progress-tracking/SKILL.md です。
    • 確定仕様にもこの変更を反映しました。
  • この版より前に組んだまとめのプランについて、組み直しは要りません。
    • 対象は、実行中のスプリントで --record-pr unknown を持つプランです。
    • これらのプランは、閉じずに ok となる今の振る舞いのまま流れます。
  • 変更は 18 ファイルで、469 行の追加と 68 行の削除です。

テスト

  • 追加と修正をしたテストは次のとおりです。
    • plugins/ndf/scripts/tests/test_record_find.py を新しく作りました。
    • test_sprint_loop.py にテストを足しました。
    • test_supervise_close_auto.py、test_supervise_new.py、test_supervise_pace_verify.py を変更に合わせて直しました。
  • supervise.py の run の各ステップはすべて exit 0 で通りました。
    • base-sync: ベースブランチ sprint/m26-3 は進んでいませんでした。
    • format: 整形 1 本が通りました。変わったファイルはありません。
    • sync: 同期とチェック 5 本が通りました。
    • lint-limited: 範囲テスト 2 本が通りました(8.5 秒)。
    • test-limited: 範囲テスト 1 本が通りました(590.6 秒)。
    • design-tests: 設計文書 issues/issue-2230-design.md と突き合わせました。設計に名前の出るテストは 0 件でした。
    • design-specs: 変えたパス 15・シンボル 57 を含む既存の確定仕様と変更履歴 71 件と突き合わせ、通りました。

設計と違う点

設計の箇所 違い 理由
入出力の契約「差し込み {queue_record}」の入力(課題 が空なら解決できない)と失敗の形 課題が空のとき、find_record は RecordHit(error="まとめの課題が無い") を返すので、理由の文が「GitHub を読めない: まとめの課題が無い」になる。GitHub を読めなかったわけではないのに、そう書かれる 実装でこの場合だけ error の欄を使い回しているため。止まる振る舞い(埋めずに流さない)は設計どおりで、違うのは理由の文だけ。直すのはコードの変更(record_find.py の RecordHit.reason)になるため、この突き合わせでは直していない
入出力の契約「差し込み {queue_record}」の失敗の形(見つからないときの理由の文は 1 つの形) 閉じる PR が 1 本も無い課題だけのとき(規則の 2 で見つからない扱い)、設計に無い別の形「課題 #a を閉じる PR が見つからない(課題の履歴の参照を読んだ)」を返す 設計の形(「閉じる PR #x … を読んだが」)は、閉じる PR が 0 本のときに中身が空になって読めない。設計がこの場合の文を決めていないので、実装が足した
入出力の契約「記録の PR を決める規則」の 1・3(課題・スプリントの PR の履歴の参照のうち Pull Request のものを集める) 実装(_referencing_prs)は、参照のうち同じリポジトリの Pull Request だけを集める。ほかのリポジトリから参照した PR は候補に入らない 記録は read_record(root, repo, n) で同じリポジトリから読むので、ほかのリポジトリの PR は読めない。設計はリポジトリでの絞り込みを書いていない
構造(クラス図の RecordHit の欄) RecordHit に設計に無い欄 closers(まとめの課題を閉じる PR)がある 理由の文(「課題 #a を閉じる PR #x … と、それを参照する PR …」)で、閉じる PR とそれを参照する PR を分けて書くために要る

モード: standard / 通した工程: 実装 → 完了判定 → Pull Request

🤖 Generated with Claude Code

takemi-ohama and others added 3 commits November 1, 2026 03:16
- 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>
@takemi-ohama
takemi-ohama marked this pull request as ready for review November 1, 2026 03:43
@takemi-ohama
takemi-ohama merged commit 534eb91 into sprint/m26-3 Nov 1, 2026
23 checks passed
@takemi-ohama
takemi-ohama deleted the feat/issue-2230-m26-3 branch November 1, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant