Skip to content

Policy: code review before publishing, on by default - #47

Merged
GenericJam merged 1 commit into
masterfrom
docs/release-review-gate
Aug 27, 2026
Merged

Policy: code review before publishing, on by default#47
GenericJam merged 1 commit into
masterfrom
docs/release-review-gate

Conversation

@GenericJam

Copy link
Copy Markdown
Owner

Makes code review before publishing the default across mob, mob_dev, and mob_new.

Why release-scoped, not per-PR

What a user pulls from Hex is the accumulated diff since the last published version, which is rarely the shape of any one PR that went into it. Per-PR review misses what only shows up at the seam: a fix landing on top of an earlier one and partly undoing it, two individually-fine PRs interacting badly, and work that merges after a version bump and so never reaches the release that bump produced.

That last one just happened twice:

  • mob master carried the MOB-102 frame-registry fix merged after the 0.7.29 bump, with 0.7.29 already published — the fix cannot be in any published artifact.
  • mob_new merged the entire Android Sheet renderer on top of an already-published 0.4.23 with no bump at all, leaving published mob_new generating apps with no Sheet renderer while published mob 0.7.29 ships Mob.UI.sheet/2.

Both are live right now and neither was caught by per-PR review, because each PR was individually fine.

What the gate adds

  • Review v<last-published>..HEAD before publishing. Findings block unless explicitly accepted, and an accepted one gets recorded in decisions/ rather than left in a review thread.
  • Version sanity: is the version you are about to publish already published? Did anything merge after the bump commit?
  • Cross-repo: mob and mob_new ship in lockstep for anything spanning a runtime change and its generator template.

Skipped only when explicitly requested.

Layout

Canonical text is in mob/RELEASE.md — a new "Review gate" section plus step 1 of the step-by-step, with the remaining steps renumbered. mob_dev and mob_new reference it from their own CLAUDE.md, matching how they already reference the rest of the release flow.

Docs only, no code or version changes.

🤖 Generated with Claude Code

Every release now gets a code review of everything that landed since
the last published version, before publishing. Applies to mob,
mob_dev, and mob_new. Skipped only when the user says so.

Scoped at the release, not the PR. What a user pulls from Hex is the
accumulated diff since the last published version, which is rarely the
shape of any one PR that went into it — per-PR review misses what only
shows up at the seam: a fix landing on top of an earlier one and partly
undoing it, two individually-fine PRs interacting badly, and work that
merges after a version bump and so never reaches the release that bump
produced.

That last one is not hypothetical. It just happened twice:

- mob master carried the MOB-102 frame-registry fix merged *after* the
  0.7.29 bump, with 0.7.29 already published — so the fix could not be
  in any published artifact.
- mob_new merged the entire Android Sheet renderer on top of an
  already-published 0.4.23 with no bump at all, leaving published
  mob_new generating apps with no Sheet renderer while published mob
  0.7.29 shipped Mob.UI.sheet/2.

So the gate also carries two version-sanity checks: confirm the version
you are about to publish is not already published, and confirm nothing
you intend to ship is sitting in commits after the bump. Plus the
cross-repo note that mob and mob_new ship in lockstep for anything
spanning a runtime change and its generator template.

Canonical text lives in mob/RELEASE.md ("Review gate" + a new step 1 in
the step-by-step, remaining steps renumbered); mob_dev and mob_new
reference it from their own CLAUDE.md as they do the rest of the
release flow.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@GenericJam
GenericJam merged commit cea3d7c into master Aug 27, 2026
3 checks passed
@GenericJam
GenericJam deleted the docs/release-review-gate branch August 27, 2026 06:05
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