docs(db): refresh the playbook phase status and repair the tracking anchor - #2102
Conversation
…nchor Two stale pointers in the playbook's context briefing, both of which misdirect a fresh session before it reads anything else. The phase status block still said Phase 1.2 was outstanding and gating Phase 3, and named "complete 1.2, then Phase 2" as the next step. Both have since landed: 1.2 in PR #2087 (all ten mismatches attribute-only SET work_mem, zero body divergence, zero repo-ahead, zero UNCLASSIFIED) and Phase 2 in PR #2093 (staging at full parity, check:drift against staging red with 19 items — the finding the phase existed to produce, with a re-measure owed once staging carries 20260818090000). Phase 6 is repo-side complete with its migration deploy still owed. The block now records that and defers to docs/database-remediation-coordination.md as the live board rather than becoming a second source of truth beside it. It also flags that Phase 3 has been reframed: zero repo-ahead bodies means no eval canary, which the Phase 3 prompt further down this file still assumes. That prompt and the traps list are deliberately left untouched here — the reframing and its owner decisions belong to the coordination board, and duplicating them would recreate the drift this change is repairing. The tracking anchor quoted the row title "Live DB is missing 21 repo-defined indexes and 10 retrieval RPC bodies diverge". The row has since been retitled to "Live DB has 20 currently missing repo-defined indexes and 10 retrieval RPC bodies diverge; weekly live-drift has been red since 2026-07-26 with no routing", so the exact-title lookup the playbook instructs could no longer match. The "21" was preserved deliberately in #1979 because it was the lookup key; correcting the row is what broke it. Anchor updated to the current title, verified character for character against the row on main. No issues:update queued: #316 and #56 are owned by other running chats, and a second pending mutation on either row would make the inbox refuse the batch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKNFogaYfCQBvFVqFQnfRt
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:38 minutes Limit details: You’ve used all 1 included review currently available under your plan. You completed 101 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Comment |
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Two stale pointers in the playbook's context briefing. Both sit above everything else in the file, so they misdirect a fresh session before it reads a single phase.
1. The phase status block described a world two phases out of date
It still said Phase 1.2 was "outstanding and gating Phase 3" and named "complete Phase 1.2, then the Phase 2 staging-parity rehearsal" as the next step. Both have landed:
20260705180000not mark-applied; the dashboard audit-history pairing is still owner action, so#248stays open), 1.2 in PR docs(db): Phase 1.2 RPC divergence dossier — all ten match_* mismatches classified (#316) #2087 (all ten mismatches attribute-onlySET work_mem, zero body divergence, zero repo-ahead, zero UNCLASSIFIED), 1.3 whole-schema done with the remaining index sizing folded into Phase 5.check:driftagainst staging red with 19 items. Recorded as the finding the phase existed to produce, not a failure of it; a re-measure is owed once staging carries20260818090000.The block now defers to
docs/database-remediation-coordination.mdas the live board rather than becoming a second status source beside it.It also flags that Phase 3 has been reframed: zero repo-ahead bodies means no eval canary, which the Phase 3 prompt further down the same file still assumes. A session reading top-to-bottom would otherwise reach a prompt asking for per-RPC canary approvals that are no longer needed.
The Phase 3 prompt and the traps list are deliberately untouched. The reframing and its owner decisions live on the coordination board; restating them here would recreate exactly the drift this PR repairs.
2. The tracking anchor's exact-title lookup could no longer match
The playbook instructs sessions to resolve the anchor by exact title, and quoted "Live DB is missing 21 repo-defined indexes and 10 retrieval RPC bodies diverge". The row has since been retitled to "Live DB has 20 currently missing repo-defined indexes and 10 retrieval RPC bodies diverge; weekly live-drift has been red since 2026-07-26 with no routing".
Worth naming the mechanism, because it is a small trap in itself: the "21" was preserved on purpose in #1979 precisely because it was the lookup key, and correcting the row title — right in itself — is what broke it. Updated to the current title and verified character-for-character against the row on
main.Verification
npm run verify:pr-localgit show origin/main:docs/outstanding-issues.mdfor#316— exact match.npm run formatrun and committed.Documentation-only scope, so the gate correctly stayed on the focused docs route.
Not run:
verify:ui, provider-backed gates — nothing here touches UI or a provider.RAG impact
Not required: documentation only. No file under
src/lib/rag/**, nomatch_*RPC, no ranking, selection, eval-harness or fixture surface. The RPC findings are summarised, not changed.Risk and rollout
git revertthe single commit.Notes
issues:updatequeued, deliberately.#316and#056are owned by other running chats; a second pending mutation on either row would make the inbox refuse the whole batch — the failure mode fixed in fix(ledger,guard): survive parallel reconciles and rewritten history #1978 and documented in the traps list.20260724120000_table_facts_plpgsql_execute.sqlcontains nocreate or replace function— needed no work here: PR docs(db): Phase 1.2 RPC divergence dossier — all ten match_* mismatches classified (#316) #2087 already corrected it at playbook lines 81–86, including why it matters (that recreate is what resets thework_mem20260724000000sets). I had repeated the dossier's "the playbook itself was not edited" note without re-reading the playbook; re-fetching showed the fix was already in place.Generated by Claude Code