Skip to content

Release: ndf v10.27.5 - #2328

Merged
takemi-ohama merged 2 commits into
developfrom
release/v10.27.5
Nov 1, 2026
Merged

takemi-ohama merged 2 commits into
developfrom
release/v10.27.5

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

ndf v10.27.5 のリリース(prod)。対象の plugin: ndf

含む PR

移行の手順

チェックの結果

  • check-doc-staleness: pass(documented skill counts and versions are up to date)
  • validate-runtime-plugins: pass(runtime plugin validation passed)

🤖 Generated with Claude Code

@takemi-ohama
takemi-ohama merged commit 73ddc6e into develop Nov 1, 2026
22 checks passed
@takemi-ohama
takemi-ohama deleted the release/v10.27.5 branch November 1, 2026 00:15
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

配布の記録

段階: 本番(承認ゲート 2 の承認の後、2026-11-01 09:28 に ndf--v10.27.5 を出した)
版: 10.27.3 → 10.27.5(タグ ndf--v10.27.5。直前はタグ ndf--v10.27.3)
スプリント: PR #2318

@takemi-ohama

takemi-ohama commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor Author

リリース後テスト

対象の版: 10.27.5(2026-11-01 09:28 JST に本番へ配布。タグ ndf--v10.27.5 = main 620aa68)
対象の環境: 本番(正式版のチャネル main)
導入経路: 隔離した HOME で claude plugin marketplace add devbasex/ai-plugins → claude plugin install ndf@ai-plugins、codex plugin marketplace add devbasex/ai-plugins → codex plugin add ndf@ai-plugins
テストの対象: リリースのタグ ndf--v10.27.5 を取り出した作業ツリー(手元の開発中の worktree ではない)

課題 受け入れ条件 実行したこと 実行時刻 結果
— 導入の確認: 利用者と同じ手順で main から claude・codex へ入れ直し、版と中身を確かめる release-verification-steps.py verify-install --ref main --expect 10.27.5 --plugins ndf --runtimes claude,codex 2026-11-01 09:46 合格 / exit=0(status ok、両方 ndf 10.27.5、不一致 0、利用者の HOME の設定は変わらない)
— 関連のテスト 11 本(drive_review・closing・acceptance_checks・sprint_close_acceptance・supervise_pr_closing・sprint_close_final_stage・pr_steps・supervise_pace_verify・supervise_pace・supervise・distribution_runtimes) python -m pytest -q -n 4 <11 本> 2026-11-01 09:47 合格 / exit=0(390 passed)
— 全体のテスト uv run --frozen --project . --all-extras pytest . -q -n 4 2026-11-01 09:49 合格 / exit=0(10725 passed, 4 skipped, 602.79 秒)
#2228 1. 閉じる時点の決まりは progress-tracking の「スプリントを閉じる」の 1 か所で、他の Skill はそこを指す grep -rlE "閉じてよい条件|閉じる時点" plugins/ndf/skills(progress-tracking と、そこを指す pr の 1 行だけ)。retrospective・release-verification は節を指すだけ 2026-11-01 09:59 合格
#2228 2. 最終工程を終えていない課題は --with-verification の有無によらず閉じず、kept_open と工程名の理由で載る test_sprint_close_final_stage.py::test_an_issue_without_the_retro_record_is_kept_open ほか 2026-11-01 09:47 合格 / exit=0
#2228 3. 判定の材料が読めない課題は閉じず、status は ok にならない test_sprint_close_final_stage.py::test_an_unreadable_body_fails_and_stops・test_a_record_without_comments_has_no_base_and_keeps_open 2026-11-01 09:47 合格 / exit=0
#2228 4. 最終工程を終え、リリース後テストが合格の課題は印を付けて閉じる。--record-pr 0 / unknown は今と同じ test_the_retro_record_and_passing_rows_close_and_mark・test_record_zero_closes_with_a_retro_line_and_keeps_without・test_record_unknown_does_not_read_the_body 2026-11-01 09:47 合格 / exit=0
#2228 5. 振り返りを通るまとめのプランはリリース後テスト → 振り返り → 課題を閉じる → 棚卸しの順 test_supervise_pace_verify.py::test_close_comes_after_the_retro_and_before_the_refine 2026-11-01 09:47 合格 / exit=0
#2228 6. 振り返りを通らない経路でも、閉じるステップは最終工程の後・棚卸しの前 test_supervise_pace_verify.py::test_close_comes_after_the_retro_in_every_mode 2026-11-01 09:47 合格 / exit=0
#2228 7. 起点が既定ブランチと同じ構成で、課題の PR の本文に closing keywords が残らない test_pr_steps.py::test_create_to_the_default_branch_defers_the_closing_keywords・test_update_of_a_pr_to_the_default_branch_defers_the_closing_keywords 2026-11-01 09:47 合格 / exit=0
#2228 8. 同じ構成のスプリントの PR でも残らず、sprint-close.py --prs がその課題を閉じる対象として集める test_supervise_pr_closing.py::test_a_new_pr_to_the_default_branch_gets_deferred_references・test_sprint_close_final_stage.py::test_a_pr_with_only_deferred_references_collects_its_issue 2026-11-01 09:47 合格 / exit=0
#2228 9. 起点が既定ブランチと違う構成(develop 宛)では closing keywords が残り、そこから集める(退行しない) test_pr_steps.py::test_a_pr_to_another_branch_keeps_the_closing_keywords・test_closing.py::test_closing_issues_sh_reads_the_same_targets_as_closing_refs 2026-11-01 09:47 合格 / exit=0
#2228 10. 子の #2082・#2119 が閉じている gh issue view 2082 --json state(OPEN)・gh issue view 2119 --json state(CLOSED)(取り直し) 2026-11-01 17:38 保留(理由: #2119 は閉じているが、#2082 は条件 5 が保留で開いたまま。#2082 が閉じた後に見る)
#2228 11. この版の後の最初のスプリントで、どの課題も最終工程の記録より前に閉じない 取り直し: m26-3 の課題 4 件の closedAt と振り返りの記録の投稿時刻を比べた(gh issue view <n> --json closedAt・gh api .../issues/comments/6555405711)。まとめの順は .ndf/tmp/sprint-m26-3/close/1-close-state/progress.jsonl(release-verify → retro → close) 2026-11-01 17:35 合格 / 振り返りの記録 #2352 (comment) (09:14:47Z)の後に #2044(09:20:54Z)・#2121(09:20:59Z)が閉じ、#2164・#2230 は開いたまま。マージで閉じた課題は無い
#2082 1. 起点が既定ブランチと同じ構成で、pr-steps.py create / update の本文に closing keywords が残らない test_pr_steps.py::test_create_to_the_default_branch_defers_the_closing_keywords・test_update_of_a_pr_to_the_default_branch_defers_the_closing_keywords・test_create_without_a_known_default_branch_defers_the_closing_keywords 2026-11-01 09:47 合格 / exit=0
#2082 2. 同じ構成のスプリントの PR(既定ブランチ宛)でも残らない test_supervise_pr_closing.py::test_a_new_pr_to_the_default_branch_gets_deferred_references・test_an_existing_pr_is_judged_by_its_own_base 2026-11-01 09:47 合格 / exit=0
#2082 3. closing keywords の無いスプリントで sprint-close.py --prs --dry-run が課題を閉じる対象として判定する test_sprint_close_final_stage.py::test_a_pr_with_only_deferred_references_collects_its_issue・test_closing.py::test_the_deferred_form_is_read_as_a_closing_target_in_order 2026-11-01 09:47 合格 / exit=0
#2082 4. develop 宛の構成では今と同じく closing keywords が残り、そこから集める test_pr_steps.py::test_a_pr_to_another_branch_keeps_the_closing_keywords・test_supervise_pr_closing.py::test_a_pr_to_another_branch_keeps_the_closing_keywords 2026-11-01 09:47 合格 / exit=0
#2082 5. 起点が既定ブランチと同じリポジトリで 1 スプリントを流し、マージの時点では課題が OPEN のまま残る 取り直し: 手元の 17 リポジトリで .ndf/worktree.json の base_branch と既定ブランチを見て、gh pr list --state merged --search "merged:>=2026-11-01T00:28:00Z" を数えた 2026-11-01 17:36 保留(理由: 起点が既定ブランチと同じリポジトリ(volareinc/carmo-screening・bi-tools・carmo-cdk・carmo-system-console・nyle-dx・patio-style・devbasex/devbase)で、10.27.5 の後にマージされた PR が 0 件。いつ: それらのどれかで次のスプリントを閉じた後に closedAt とマージ時刻を比べる)
#2119 1. 最終工程を通っていない課題は --with-verification の有無によらず閉じず、kept_open と理由で載る test_sprint_close_final_stage.py::test_an_issue_without_the_retro_record_is_kept_open(verify あり・なしの 2 通り)・test_a_retro_line_of_a_previous_run_does_not_count 2026-11-01 09:47 合格 / exit=0
#2119 2. 最終工程を通り、リリース後テストが合格の課題は印を付けて閉じる(退行しない) test_sprint_close_final_stage.py::test_the_retro_record_and_passing_rows_close_and_mark・test_sprint_close_acceptance.py::test_all_criteria_passed_closes_and_marks_before_closing 2026-11-01 09:47 合格 / exit=0
#2119 3. supervise.py new close のまとめのプランの steps がリリース後テスト → 振り返り → 課題を閉じる → 棚卸しの順 test_supervise_pace_verify.py::test_close_comes_after_the_retro_and_before_the_refine・test_supervise_pace.py(確定仕様化 < 振り返り < 後片付け) 2026-11-01 09:47 合格 / exit=0
#2119 4. 閉じるステップは振り返りの後、棚卸しはその後に始まる(next のつながり) test_supervise_pace_verify.py::test_close_comes_after_the_retro_in_every_mode 2026-11-01 09:47 合格 / exit=0
#2119 5. この版の後の最初のスプリントで sprint-close.py を先に打っても振り返りの前の課題が閉じない 取り直し: m26-3 のまとめの close の結果(.ndf/tmp/sprint-m26-3/close/1-close-state/01-close.out。振り返りの後に打たれ、閉じたのは振り返りの行を持つ 2 件)。実データで先に打つ場合を sprint-close.py --record-pr 2351 --issues 2082 --dry-run(10.27.5・10.27.6、--with-verification なし)で確かめた 2026-11-01 17:37 合格 / exit=0。振り返りの行が今回の配布の記録より前の #2082 は kept_open(理由「最終工程(振り返り)の記録が無い: 課題の本文の振り返りの行が今回の配布の記録より前のもの」)。m26-3 の 4 件は振り返りの記録の後に閉じた
#2288 1. 本番のプランで導入の確認だけのステップは stage「リリース後テスト」と記録しない test_supervise.py(release-prod の verify の stage を見るテスト、#2288 の AC1) 2026-11-01 09:47 合格 / exit=0
#2288 2. 開発版のプランの verify は今と同じく stage「配布」 test_supervise.py(開発版の verify の stage が「配布」、#2288 の AC2)・test_supervise_pace_verify.py::test_gate_2_and_the_template_keep_their_stages 2026-11-01 09:47 合格 / exit=0
#2288 3. ## リリース後テスト の記録が無い間は、理由「本番の版のリリース後テストの記録が無い」の kept_open test_sprint_close_acceptance.py::test_a_table_without_issue_rows_keeps_every_issue_open・test_supervise_pace_verify.py::test_close_without_a_known_record_keeps_the_issues_open 2026-11-01 09:47 合格 / exit=0
#2288 4. 雛形どおりに流すと、sprint-close.py --with-verification の前に ## リリース後テスト が投稿され、手動確認の項目も行に載る 取り直し: m26-3 の配布の記録の PR #2351 のコメントと、スプリント PR #2348 の「手動確認」を見た 2026-11-01 17:35 合格 / ## リリース後テスト(#2351 (comment) 、09:07:33Z)は close(#2044 の closedAt 09:20:54Z)より前。手動確認の 2 件(#2230・#2164)はどちらも行として載る
#2288 5. 課題の進行の「リリース後テスト」の印と ## リリース後テスト の記録の時刻が食い違わない 取り直し: m26-3 の 4 課題の本文の進行(「リリース後テスト — 2026-11-01 07:59」)と、release-verify のステップの時刻(progress.jsonl: 08:00:01〜08:07:57、手元の時計)を比べた。印を書く場所は supervise_lib/engine.py の _run_step(ステップを流す前に record_stage) 2026-11-01 17:39 不合格(印はステップの開始で付き、記録はそのステップの中で後から投稿される。印の時点で記録が無い。#2356 を起票)
#2143 1. 最終スイープを終え、final が max_rounds か oscillation のとき、駆動の status は ok 以外で metrics.final に値が残る test_drive_review.py::test_an_unconverged_end_is_not_ok(max_rounds・oscillation) 2026-11-01 09:47 合格 / exit=0
#2143 2. 同じ状況で review(on_fail: abort)は失敗として記録され、後続の base-sync・test-all・ready は流れない test_supervise.py(#2143: 駆動が収束せずに終わると review が失敗し後続へ進まないテスト) 2026-11-01 09:47 合格 / exit=0
#2143 3. final が approved なら status ok で後続へ進む(退行しない) test_drive_review.py::test_the_answer_file_holds_the_review_status_of_the_state・test_supervise.py(同じテストの approved の場合) 2026-11-01 09:47 合格 / exit=0
#2143 4. 駆動が stopped を返したら review は失敗しプランは止まる(退行しない) test_drive_review.py::test_a_stopped_drive_writes_no_answer・test_review_drive_stops_when_init_fails 2026-11-01 09:47 合格 / exit=0
#2231 1. agy・kiro のマニフェストと導入物(dev.agy/・dev.kiro/)が配布物から無くなり、release の対象ランタイムが claude と codex だけ 取り直し(本文の今の番号): git ls-tree --name-only ndf--v10.27.6 plugins/ndf/manifests/・git ls-tree -d -r ndf--v10.27.6 plugins で dev.agy/dev.kiro を数えた・git show ndf--v10.27.6:.ndf/supervise.json の runtimes 2026-11-01 17:36 合格 / マニフェストは claude・codex の 2 つ、dev.agy/dev.kiro は 0 件、runtimes は ["claude","codex"]
#2231 2. codex へ配る Skill とプラグインは変更前と同じ git diff --stat ndf--v10.27.3 ndf--v10.27.6 -- plugins/ndf/manifests/ 2026-11-01 17:36 合格 / 差分は agy・kiro のマニフェストの削除だけで、codex-skills.txt の差分は 0
#2231 3. agy・kiro を相手役にした cross-review と cross-refactoring の起動経路が変わらず通る m26-3 の検査の記録 .ndf/tmp/sprint-m26-3/6-check-state/05-review.out・04-refactor.out と PR #2348 のコメントを見た。agy の実行の記録を手元の全リポジトリの .ndf/tmp で探した 2026-11-01 17:37 保留(理由: kiro は 10.27.5 の後に cross-review のレビュー担当(kiro OK)と cross-refactoring の提案元を務め、通った。agy は既定の母集合に無く(--include agy)、10.27.5 の後に相手役として起動した記録が無い。いつ: 次に --include agy で cross-review か cross-refactoring を回したとき)
#2231 4. 指示書と文書が 2 ランタイム配布+相手役 2 つの構成を書く git grep -nE "4 ランタイム|4 つのランタイム" ndf--v10.27.6 -- AGENTS.md CLAUDE.md KIRO.md README.md plugins/ndf/README.md docs/ndf-plugin-reference.md docs/versioning-and-distribution.md docs/plugin-development-guide.md 2026-11-01 17:36 合格 / 0 件。AGENTS.md は配布先 2 つと相手役(Kiro CLI・agy)を書き、KIRO.md は相手役の説明
#2231 5. スモークテストと CI から agy・kiro の導入の検査が外れ、codex は残る git show ndf--v10.27.6:.github/workflows/runtime-plugin-smoke.yml(matrix)・scripts/runtime-smoke-test.sh の grep・gh run list --workflow runtime-plugin-smoke.yml --branch main 2026-11-01 17:36 合格 / matrix は [claude, codex]。スクリプトの agy・kiro は --exclude=.kiro の 1 行だけ。99bbac10(ndf--v10.27.6)で success
#2231 6. 配布をやめると直す必要が無くなる open の課題の一覧を設計に載せる git show d3f6bf71:issues/issue-2231-design.md の「配布を止めると要らなくなる課題」 2026-11-01 17:36 合格 / 表がある(#2163・#1889 は閉じ、#2058・#2115 は開いている。閉じるかは棚卸し)
#2144 1. 受け入れ条件の番号ごとの区分と手段が、スクリプトで読める形で記録される test_acceptance_checks.py::test_record_writes_a_table_that_read_check_kinds_reads・test_record_again_overrides_and_keeps_the_rest・test_show_reads_the_record 2026-11-01 09:47 合格 / exit=0
#2144 2. マージ前に確認済みの条件は承認資料の「未実施のリリース後テスト」に載らず、リリース後の条件は載る test_acceptance_checks.py::test_unverified_leaves_out_pre_merge_and_keeps_post_release 2026-11-01 09:47 合格 / exit=0
#2144 3. 区分の記録が無い課題は今と同じく、印も合格の行も無い条件がすべて載る(退行しない) test_acceptance_checks.py::test_unverified_without_a_record_lists_every_unchecked_criterion 2026-11-01 09:47 合格 / exit=0
#2144 4. マージ前に確認済みの条件は、リリース後テストの行が無くても課題を kept_open にしない test_acceptance_checks.py::test_pre_merge_criteria_need_no_verification_row・test_sprint_close_acceptance.py::test_a_pre_merge_criterion_needs_no_passing_row 2026-11-01 09:47 合格 / exit=0
#2144 5. この版の後の最初のスプリントの承認資料で「未実施のリリース後テスト」の行数が条件の総数より少ない 取り直し: m26-3 の承認資料 issues/approval-ndf-v10.27.6.md の「未検証・残る危険」と、4 課題の本文の ## 受け入れ条件の確認 を見た 2026-11-01 17:38 不合格(18 行が載り総数 24 より少ないが、それは #2044・#2121 が載らないためで、区分の記録は 4 課題とも無い。載った行にマージ前にテストで確かめられる条件(#2164 の 8・#2230 の 8 など)を含む。#2357 を起票)
#2144 6. 同じスプリントの requirements-design で、退行しない条件の前提を確かめた手段が残る 取り直し: #2164・#2230 の本文と .ndf/tmp/sprint-m26-3/1-design-*-state/03-requirements.out で、退行しない・変わらない条件のそばの前提の確認を探した 2026-11-01 17:38 不合格(#2164 の条件 10(退行しない)と #2230 の条件 6〜8 のどちらにも、前提にした今の振る舞いを確かめた手段と結果が無い。#2357 を起票)

合否: 不合格(2026-11-01 17:39 JST の取り直しの後。スプリント課題 7 件の条件 42 行のうち、合格 36 行・保留 3 行・不合格 3 行。導入の確認と全体のテストは合格。初回 2026-11-01 10:00 JST は 46 行・合格 33・保留 13・不合格 0)

取り直し(2026-11-01 17:33〜17:39 JST、m26-3 = v10.27.6 の実物と導入済みの 10.27.5・10.27.6 の scripts): #2228 の 11・#2119 の 5・#2288 の 4 が合格、#2288 の 5 と #2144 の 5・6 が不合格(#2356・#2357 を起票)、#2228 の 10・#2082 の 5・#2231 の 3 は保留のまま。#2231 は本文の今の受け入れ条件 6 件の番号で行を置き直した(旧番号の 10 行は判定に使わない「旧受け入れ条件」の番号で、外した。判断の記録: ask.py decide 1110902640c4)
起票したもの: #2356(#2288 の 5 の不合格)・#2357(#2144 の 5・6 の不合格)

判定に当たって気づいたこと(閉じる判定の入力)

This was referenced Nov 1, 2026
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