Skip to content

Release: ndf v10.27.21 - #2548

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

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

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

ndf v10.27.21 のリリース(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 49e497a into develop Nov 5, 2026
@takemi-ohama
takemi-ohama deleted the release/v10.27.21 branch November 5, 2026 10:48
@takemi-ohama
takemi-ohama restored the release/v10.27.21 branch November 5, 2026 10:48
@takemi-ohama
takemi-ohama deleted the release/v10.27.21 branch November 5, 2026 11:02
@takemi-ohama

Copy link
Copy Markdown
Contributor Author

配布の記録

段階: 本番(承認ゲート 2 の承認の後、2026-11-05 20:02 に ndf--v10.27.21 を出した)
版: 10.27.19 → 10.27.21(タグ ndf--v10.27.21。直前はタグ ndf--v10.27.19)
スプリント: PR #2523 / #2524 / #2526 / #2530 / #2533 / #2534 / #2536 / #2537 / #2541

@takemi-ohama

Copy link
Copy Markdown
Contributor Author

リリース後テスト

対象の版: 10.27.21(2026-11-05 20:02 JST、タグ ndf--v10.27.21、main の a6d213e)
導入経路: 隔離した HOME で claude plugin marketplace add devbasex/ai-plugins → claude plugin install ndf@ai-plugins(利用者と同じ手順)。#2199 の変更は factory/ のコードの内部の置き場の変更で、プラグインの配布物には含まれない(factory/ の本番環境への反映は別のリポジトリが受け持ち、この版の配布では走らない)。そのため受け入れ条件 3〜8 は、本番のタグ ndf--v10.27.21 を取り出した worktree(.worktrees/rv-lfactory3-6)で確かめた。差分はスプリントの取り込み(PR #2534 のマージ 8421bcf の第 1 親との差)で見た
対象の環境: 本番(正式版のチャネル main)

課題 受け入れ条件 実行したこと 実行時刻 結果
— 導入の確認: 利用者と同じ手順で main から入れ直し、版を確かめる python3 plugins/ndf/scripts/release-verification-steps.py verify-install --ref main --expect 10.27.21 --plugins ndf --runtimes claude --root . 2026-11-05 20:12 合格 / exit=0(status ok。main(a6d213ef)から claude へ導入し ndf 10.27.21 を確かめた)
#2199 1. 実装の Pull Request の本文に R01〜R20 の 20 行の表があり、各行が「適用した」か「採らない」 gh pr view 2533 --json body,comments と gh pr view 2534 … を R01 / R20 で検索 2026-11-05 20:10 不合格(実装の PR #2533 の本文にも、スプリントの PR #2534 の本文とコメントにも表が無い。R01〜R20 の 20 行の表は設計文書 issues/issue-2199-design.md の 101〜120 行にあり、19 行が「適用する」、R07 が「採らない(兆候がすでに無い)」。PR #2534 のコミットの題に R 番号が書かれているだけ)
#2199 2. 「採らない」の行に許された理由があり、「時間(budget)」を理由にした行が 0 行 設計文書の表(101〜120 行)を読み、R07 の対象を本番のタグで確かめた(factory/api/src/github-oidc/app.ts に抽出済みの関数と githubUser がある) 2026-11-05 20:12 合格(採らないのは R07 の 1 行で理由は「兆候がすでに無い」。時間を理由にした行は 0 行。ただし確かめた表は PR の本文でなく設計文書のもの。条件 1 を参照)
#2199 3. function requireEnv の定義が 1 か所で、ほかの「適用した」重複も 1 か所にまとまる grep -rn "function requireEnv" factory/api/src と、寄せた先の関数・定数の定義を grep -rn で検索 2026-11-05 20:10 合格 / exit=0(factory/api/src/env.ts:2 の 1 行。validateSeatType・SEAT_TYPE_MESSAGE(accounts/service.ts)、retryOnConflict・writeOr(accounts/conflict.ts)、accounts/port.ts、HistoryRecord(accounts/model.ts)、accountDetailBody(routes/views.ts)、githubUser(github-oidc/app.ts)、idpFromUsername(auth/verify.ts)、RequireLogin・useAttempt(web/src/context.tsx)、SeatTypeOptions(web/src/pages/parts.tsx)がそれぞれ 1 か所。USER#・ACCOUNT# の頭は accounts/store.ts の定数 1 組。runs/dynamo-table.ts の accountPk は別の表の鍵として設計で対象外と決めたもの)
#2199 4. npm --prefix factory ci … && npm --prefix factory run check が exit 0 npm --prefix factory ci --no-audit --no-fund --silent && npm --prefix factory run check 2026-11-05 20:10 合格 / exit=0(spectral lint・tsc・vitest。contracts 61、web 105、api 451、runner 59 件がすべて通過)
#2199 5. markdown links の pytest が exit 0 で、通った件数が変更の前以上 uv run --frozen --project . --all-extras pytest scripts/tests/test_check_markdown_links.py -q。変更の前は 8421bcf^1 のファイルを一時の名前で置いて同じく実行 2026-11-05 20:11 合格 / exit=0(変更の後 46 passed、変更の前 46 passed。def test_ は前後とも 42)
#2199 6. factory/ の既存テストの expect(...) の右辺を変える行が無い git diff 8421bcf5f^1 8421bcf5f -- 'factory/**/*.test.ts' 'factory/**/*.test.tsx' 2026-11-05 20:11 合格(変わったのは 4 ファイル 6 行で、import の置き場(port.ts・app.ts)と、R18 で契約が名前つきの引数になった store.updateAccount の呼び出し 1 行だけ。expect の行の変更は 0)
#2199 7. factory/contracts/ の変更が無い git diff --name-only 8421bcf5f^1 8421bcf5f -- plugins factory/contracts 2026-11-05 20:11 合格(0 件)
#2199 8. factory/ の外(scripts/tests/test_check_markdown_links.py を除く)と plugins/ に差分が無い git diff --name-only 8421bcf5f^1 8421bcf5f から factory/ と対象のテストを除く 2026-11-05 20:11 合格(0 件)
#2199 マージ前の未検証: DynamoDB のキーと属性の形を縛る store.test.ts が範囲のテストに含まれたか(PR #2533 の「テスト」) factory/node_modules/.bin/vitest run --root factory/api src/accounts/store.test.ts 2026-11-05 20:11 合格 / exit=0(7 件が通過。条件 4 の api 451 件にも含まれる)
#2199 マージ前の未検証: 設計とテストの照合が 4 件で止まった(PR #2533 の「テスト」) python3 plugins/ndf/scripts/design-match.py --root . tests --design issues/issue-2199-design.md と ls で 4 件の実在を確認 2026-11-05 20:12 合格(照合は exit 1 で同じ 4 件 routes/factory.test.ts・routes/sprint-views.test.ts・handlers/api.test.ts・github-oidc/app.test.ts を missing とするが、4 件とも factory/api/src/ の下に実在する。設計文書が factory/api/src からのパスで書き、design-match.py の _path_present が / を含む名前をリポジトリの根からのパスとしてだけ探すための誤検出で、テストの不足ではない)

スプリントの PR #2534 の本文には「手動確認」の節が無いため、手動確認からリリース後テストへ回した項目は無い。

合否: 不合格(受け入れ条件 8 件と未検証 2 件と導入の確認の計 11 行のうち 10 行が合格、条件 1 が不合格)
起票したもの: なし(条件 1 は実装の PR の本文に記録が無いという記録の欠けで、利用者へ届く不具合ではない。直し方(PR #2533 の本文へ設計文書の表を実装の結果として写すか、設計文書の表で足りるとするか)は人が決める。設計とテストの照合の誤検出は振り返りへ回す)

@takemi-ohama

Copy link
Copy Markdown
Contributor Author

リリース後テストの受け入れ条件 1(提案 R01〜R20 の扱いの表)の欠けを、実装の Pull Request #2533 の本文へ「提案 20 件の扱い」の節を足して埋めた。表は設計文書の判定表の写しで、適用 19 件の置き場は本番のタグ ndf--v10.27.21 に実在することを確かめた。戻し方: 本文の元の版(節を足す前)へ戻す。

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