Skip to Content
InternalDocsRunbooksPr135 Split Playbook

Pr135 Split Playbook

Source: docs/runbooks/pr135-split-playbook.md

# PR #135 Split Playbook Purpose: land the remaining work from `feat/execution-plan-sweep` as focused PRs that follow one-plan-ID-per-PR. ## Current state - Merged from sweep lineage: - `#137` (`P4-A`) - `#138` (P7 GTM docs additions) - `#139` (WeighWare pattern/backlog docs additions) - Still open, source-only: - `#135` (`feat/execution-plan-sweep`) Do not merge `#135` directly. ## Source commit map (from `feat/execution-plan-sweep`) - `097af52` `P4-B` dashboard frontend - `fac1337` `P4-C` reports backend + reporting page - `fff841f` `P3-POLISH` shared date format utils - `c50771d` `P3-POLISH` workflow helper extraction - `44e8239` `P5-SPIKE` RLS feasibility report - `e3d01fa` `P5-B` schema rename + rate columns - `6f63c08` `P5-A` RLS policies + helper - `45b7934` `P6-B-SPIKE` Wayfair Altana spike report - `d2a3394` `P6-C` carrier rules DB runtime loading - `85bd34b` `P2A-D` guest mode hardening - `7f3846f` `P6-B` SIMA measures DB migration - `2275930` `P6-E` tenant carrier config + agreement import - `77e6d3e` mixed (`P2A-C` + notifications/admin changes) - `bd3f820` `P6-F` onboarding runbook + setup API - `15595ef` `P4-D` billing MVP Fixup commits in sweep (use selectively, do not blanket cherry-pick): - `46674c6` - `f765ffb` - `3ca472c` - `4279351` - `235355b` - `522664f` - `88b960d` - `6714f50` - `033bbad` ## Migration lane guardrail Only one migration-generating PR open at a time. Before opening each migration PR: 1. run `/migration-preflight` 2. ensure prior migration PR is merged 3. rebase from latest `main` Migration-bearing slices: - `P2A-D` - `P4-D` - `P5-B` - `P5-A` - `P6-B` - `P6-E` - mixed `77e6d3e` content if split includes schema changes ## Recommended sequence from here 1. `P4-B` (already in flight externally) 2. `P4-C` 3. `P3-POLISH` 4. `P5-SPIKE` + `P6-B-SPIKE` docs (fast, no code risk) 5. Migration lane: - `P2A-D` (or `P4-D`, pick one and serialize) - `P4-D` - `P5-B` - `P5-A` - `P6-B` - `P6-E` 6. `P6-C` 7. `P6-F` 8. Keep mixed commit `77e6d3e` as a manual split task; do not cherry-pick as one piece. ## Cherry-pick templates Start each slice from latest `main`: ```bash git checkout main git pull git checkout -b codex/<plan-id>-<short-name> git cherry-pick -x <commit-sha> ``` If the source commit includes unrelated files, keep only in-scope files: ```bash git restore --staged <path> git restore <path> ``` Then validate and push: ```bash pnpm lint pnpm test git push -u origin codex/<plan-id>-<short-name> gh pr create --base main --head codex/<plan-id>-<short-name> ``` ## Per-slice extraction notes ### `P4-C` (`fac1337`) - Keep: reports route, report proxy routes, reporting page, contract tests, API mount. - Review: `CLAUDE.md` change is optional; keep only if route table updates are accurate. ### `P3-POLISH` (`fff841f`, `c50771d`) - Can be one PR if labeled as single `P3-POLISH`. - No migrations expected. ### `P4-D` (`15595ef` + selective fixes) - Start with `15595ef`. - Pull in only relevant fix hunks from: - `3ca472c` (transactional invoice ops) - `88b960d` (backend route UUID validation where billing-related) - `522664f` (web proxy UUID validation for billing paths only) ### `P5-B` (`e3d01fa`) - Rebase against latest `main` because `dashboard.ts` has already landed in `#137`. - Keep rename and rate-columns scope only. ### `P5-A` (`6f63c08` + selective `4279351`/`46674c6`) - Include `withTenant` helper + policy migration. - Include only RLS-specific fixups from follow-up commits. ### `P6-B` (`7f3846f`) - Verify compatibility with `P5-B` rename sequence. - Keep parity tests and fallback behavior intact. ### `P6-C` (`d2a3394`) - Validate no hidden migration dependencies before opening. - Ensure ref-loader cache behavior has deterministic tests. ### Mixed commit (`77e6d3e`) - Split manually into: - `P2A-C` streaming/chunked ingestion - `P2A-B` notifications - any admin/ref-data route changes into their owning plan IDs - Do not cherry-pick this commit directly. ## Definition of done per split PR - One plan ID in title/scope. - No unrelated files. - Required checks pass. - `docs/SESSION_LOG.md` and `docs/EXECUTION_PLAN.md` updated only if status/sequencing changes. - If migration PR: lane is clear and preflight documented.