Skip to content

docs(runbook): add release-smoke.md (Codex final-pass item #3)#897

Merged
s977043 merged 4 commits into
mainfrom
docs/release-smoke-runbook
May 25, 2026
Merged

docs(runbook): add release-smoke.md (Codex final-pass item #3)#897
s977043 merged 4 commits into
mainfrom
docs/release-smoke-runbook

Conversation

@s977043

@s977043 s977043 commented May 25, 2026

Copy link
Copy Markdown
Owner

Summary

Close the third and last drift item from Codex's final-pass review (after the v0.51.0–v0.55.0 sprint). Items #1 and #2 already landed:

# Item PR
1 README Epic 1 status drift #889
2 .river/risk-map.yaml example #896
3 release smoke runbook this PR

docs/runbook/release-smoke.md is added as a sibling to docs/runbook/dev.md. It is not a release runbook (release-please handles tagging and the GitHub Release); it is the smoke test that confirms a fresh v0.x.y tag installs and runs cleanly for an adopter.

Sections

  • When to run: post release-please merge, post dependabot prod-dep bump, pre announcement.
  • What it verifies: lint/tests/skills validate, river run --dry-run, npm pack --dry-run, npm audit --omit=dev, GitHub Release presence.
  • Smoke sequence: single copy-pasteable bash block, all commands must exit 0.
  • Release confirmation via gh: tagName / publishedAt / changelog body.
  • When the smoke fails: concrete recovery moves for 5 common failure modes (lockfile drift, dist staleness, audit vuln, release 404, skill loader error), each pointing at the doc / PR that documents the fix.
  • Out of scope: cross-platform install (feat: npm 公開またはインストール可能な配布手段の提供 #800 B2 acceptance), npx river try (C3), real LLM call (A2-2), Vercel preview.

Test plan

  • markdownlint + prettier + dashes green
  • CI green

🤖 Generated with Claude Code

Close the third drift item from Codex's final-pass review (after the
v0.51.0–v0.55.0 sprint). Items #1 and #2 already landed:
- #1 README Epic 1 status drift (PR #889)
- #2 risk-map example (PR #896)
- #3 release smoke runbook (this PR)

Add docs/runbook/release-smoke.md as a sibling to docs/runbook/dev.md.
It is not a release runbook (release-please handles tagging), but the
smoke test that confirms a fresh tag installs cleanly for an adopter.

Sections
- When to run: post release-please merge, post dependabot prod-dep
  bump, pre announcement.
- What it verifies: lint/tests/skills validate, river run dry-run,
  npm pack --dry-run, npm audit --omit=dev, GitHub Release presence.
- Smoke sequence: single bash block, all commands must exit 0.
- Release confirmation via gh: tagName / publishedAt / changelog body.
- When the smoke fails: concrete recovery moves for the 5 common
  failure modes (lockfile drift, dist staleness, audit vuln, release
  404, skill loader error), pointing at the existing docs and PRs
  that document each fix.
- Out of scope: cross-platform install, npx river try, real LLM, Vercel.

No code change.

Refs: PRs #889, #896 (sibling Codex final-pass items),
docs/development/npm-distribution-design.md, AGENT_LEARNINGS.md
gh-api empty-commit entry.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@vercel

vercel Bot commented May 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ai-review-kit Ready Ready Preview, Comment May 25, 2026 1:24am

@github-actions

Copy link
Copy Markdown
Contributor

No changes to review compared to main.

@github-actions

github-actions Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

PlanGate Review

  • decision: pass
  • plan status: skipped-by-label
  • exec status: skipped-by-label

PlanGate review decision: pass

severity count policy
critical 0 fail
major 0 fail-if-required / warn
minor 0 comment-only
info 0 skipped

ポリシー: critical=fail / major=fail-if-required (warn) / minor=comment-only / info=skipped — spec: pages/reference/cli-review-plan-spec.md

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

このプルリクエストは、リリース後のスモークテスト手順を定義する release-smoke.md を追加するものです。レビュアーからは、テスト実行前に main ブランチを最新化する手順の追加と、トラブルシューティングにおけるドキュメント参照の修正が提案されました。

Comment thread docs/runbook/release-smoke.md Outdated
Comment on lines +28 to +29
git fetch --tags origin
git checkout "v$(node -p 'require("./package.json").version')"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current sequence relies on the local package.json version to determine which tag to checkout. If the user has not yet pulled the latest changes from main after the release-please PR was merged, the local package.json will still contain the previous version, causing the wrong tag to be checked out. It is safer to ensure the local main branch is up to date first.

Suggested change
git fetch --tags origin
git checkout "v$(node -p 'require("./package.json").version')"
git checkout main && git pull origin main
git fetch --tags origin
git checkout "v$(node -p 'require("./package.json").version')"

Comment thread docs/runbook/release-smoke.md Outdated
- **`npm ci` errors**: lockfile drift. Re-run `npm install` on `main` and open a PR to commit the new `package-lock.json`. The release tag itself is fine—the consumer error is the lockfile.
- **`Action dist freshness` mismatch (post-merge CI)**: someone forgot `npm run build:action` after editing `src/`. Open a small follow-up PR with the rebuilt `runners/github-action/dist/`. See `docs/development/dist-check-rebuild-guide.md`.
- **`npm audit --omit=dev` returns vulnerabilities**: open `npm audit fix --omit=dev` PR (see PR #888 for the pattern).
- **`gh release view` 404**: release-please workflow may have raced. Re-run `gh workflow run release-please.yml` against `main`, then re-check. See `feedback_release_please_workflow_race.md` memory if available.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The reference to feedback_release_please_workflow_race.md appears to be a placeholder or refers to a file not present in the repository. The recovery pattern for the release-please race condition is documented in AGENT_LEARNINGS.md (lines 45-65). Updating this reference to point to the existing documentation would be more helpful for users troubleshooting this issue.

Both gemini comments are valid; apply.

1. Resolve TAG via the upstream GitHub Release instead of the local
   package.json. The previous form trusted that the operator had
   already pulled main after the release-please merge; if they had
   not, the local package.json could point at the previous
   version and the smoke would run against the wrong commit. Use
   `gh release view --json tagName --jq .tagName` so the upstream
   release is the source of truth.

2. The "feedback_release_please_workflow_race.md memory if available"
   pointer was misleading — that file is Claude's internal memory,
   not a repo doc. Replace with a concrete pointer to the
   AGENT_LEARNINGS.md 2026-05-24 entry that actually carries the
   gh-api empty-commit pattern in the repo.

No content change beyond these two clarifications.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@s977043 s977043 merged commit b658632 into main May 25, 2026
19 checks passed
@s977043 s977043 deleted the docs/release-smoke-runbook branch May 25, 2026 01:26
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