---
name: registry-mints-ride-build-prs
description: "BINDING (operator-ruled 2026-07-27): registry mints default to riding the build PR, not separate registry PRs; builders stack on registry branches, never wait on merges"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: ea1c7c37-6d4b-454d-b806-fad7c091a138
  modified: 2026-07-27T10:01:16.338Z
---

Operator challenge 2026-07-27 (FIELD-TRUTH W1, after registry-only PRs #96/#99/#101 clogged the CI queue and todlando sat read-complete for hours blocked only on registry merges): "why are there whole PRs where the only changes are in traceable-reqs.toml? those are supposed to be completed as they're built, and should ride the same commits and PRs as their code."

**Why:** Rule 3 (register before satisfying) is satisfied by ORDERING WITHIN A PR — registry hunk in the same commit as the first evidence. A separate registry PR buys a full CI run + a merge-serialization wait that blocks builders; today that cost was hours of idle builder time on legs C/D.

**How to apply:**
- DEFAULT: single-builder mints/activations ride the build PR (registry + code + tags, one diff).
- Separate registry PR remains correct ONLY for: (a) multi-builder fan-out mints (milestone opens like #94 — no single build PR exists), (b) ruling-only amendments where the spec change IS the deliverable (#96/#99 class).
- When a separate registry PR does exist, builders STACK on its branch and start immediately (retarget on merge) — never wait read-complete on a registry merge.
- Kin: [[traceable-per-wave-activation]] (stage flips already ride build PRs — this extends the same logic to the mint itself); the registry-only thin-CI-lane classifier (hertz, dispatched same day) mitigates the residual class (b) cost.
- ⭐ **RETARGET TRAP (todlando, 2026-07-27, verified live on #107):** this repo has `delete_branch_on_merge=false`, so GitHub does NOT auto-retarget a stacked PR when its base merges (auto-retarget fires only on base-branch DELETION). Every stacked build PR needs a MANUAL retarget to main after its base merges — else it sits on a merged base forever and any "wait until base reads main" guard waits with it. Conflict-freedom oracle after retarget: `git diff main...<base-branch>` EMPTY ⇒ the stacked commits are the entire remaining delta.
