docs(issues): stop the issues skills pointing at the retired visual register - #2125
Conversation
…egister Ledger issue #338 retired the legacy ISSUES-LIST.html on 2026-08-18, making docs/outstanding-issues.md the sole canonical cross-platform register. Three instruction surfaces still told sessions to refresh the retired artifact: - .claude/skills/issues/SKILL.md carried a whole "Refresh the visual register" section with an absolute-Windows-path PowerShell command, plus an `issues list` trigger that opened the retired HTML. - AGENTS.md described reconciliation as refreshing the visual register. - .agents/skills/ledger/SKILL.md referenced it in its step 6. The stale instructions have a real cost: a container session that follows them cannot run the Windows script, so it dutifully reports a "stale visual register" that no longer exists as a concept. That happened during the 2026-08-18 evening reconciliation (PR #2120). Replace the section with a short statement that the canonical ledger is the register, naming #338 so the retirement is not silently re-litigated. The canonical .agents entry is word-budgeted, so its line is shortened rather than extended — check:skills enforces a 220-word ceiling and went red on a longer replacement. Also queue one follow-up: the serialized issues:reconcile operation has no interlock, and two reconcile PRs (#2119, #2120) were open simultaneously. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C6WXAK931ZPgisknbCTnpR
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:24 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 (6)
Comment |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C6WXAK931ZPgisknbCTnpR
Summary
#338retired the legacyISSUES-LIST.htmlon 2026-08-18, makingdocs/outstanding-issues.mdthe sole canonical cross-platform register. Three instruction surfaces still told sessions to refresh the retired artifact; this removes all three..claude/skills/issues/SKILL.mdcarried a whole "Refresh the visual register" section built around an absolute-Windows-path PowerShell command, plus anissues listtrigger that opened the retired HTML. Replaced with a short "the canonical ledger is the register" statement that names#338, so the retirement is not silently re-litigated by the next session.AGENTS.mddescribed reconciliation as refreshing the visual register..agents/skills/ledger/SKILL.mdreferenced it in step 6.a5f073f9): the serializedissues:reconcileoperation has no interlock, and two reconcile PRs were open simultaneously on 2026-08-18.Why this is worth a PR rather than a comment. The stale instructions have a real, observed cost. A container session that follows them cannot run the Windows script, so it dutifully reports a "stale visual register" that no longer exists as a concept — which is exactly what happened during the 2026-08-18 evening reconciliation (PR #2120). The instruction was self-consistent and impossible to satisfy, so it produced a false caveat on an otherwise-correct handoff.
On the queued follow-up. PRs #2119 and #2120 were both open, both running the operation
AGENTS.mdrequires to be serialized on one fresh-base branch. Both merged, and the ledger is correct — but only by luck of ordering: #2120 merged first with a superset of #2119's requests, so #2119's squash collapsed to a 1-line review record. Had they merged the other way round, #2120's recorded transaction would no longer have equalled the canonical diff,check:ledger-write-disciplinewould have gone red on a branch that must never be synced frommain, and the documented recovery is to close the PR and redo the whole reconcile. The reconciler's own guards (stale base, dirty canonical file, cross-worktree lock) are all machine-local and cannot see a second reconcile branch already pushed. The request proposes a cheap pre-flight interlock overgit ls-remotethat needs no GitHub API call. Related to#292but distinct: this is a serialization invariant on a single canonical file, not two sessions building the same feature.Verification
npm run verify:pr-local -- --files <4 changed paths>—AGENTS.mdpulls in the workflow/policy contract set, so the selector chose 22 gates rather than the docs-only 11. All completed, none failed, none unreached:test:ci-workflows:Test Files 15 passed (15) · Tests 325 passed (325).check:skillscaught a real regression mid-change, and the fix is in this diff. The canonical.agents/skills/ledger/SKILL.mdentry is word-budgeted at 220 words. The first replacement wording was longer than the line it replaced and pushed the file over, taking the gate from exit0to exit1(- Canonical skill exceeds 220 words: ledger); baseline was re-measured on a stash to confirm the failure was mine and not pre-existing. The canonical entry now readsCanonical Markdown changes only at reconciliation.— shorter than the original line — and the#338rationale lives in the Claude skill, which has no such budget.npm run formatrun over the whole tree and committed;format:changedpassed on the pushed blob.Lint, typecheck, the full unit suite, the RAG fixture scan, the build and the offline RAG checks were skipped by the selector as out of scope for a docs/instruction diff.
UI verification not run: no UI, routing, styling, browser, reduced-motion or forced-colors behaviour changed.
Provider-backed gates not run: no retrieval, ranking, ingestion, Supabase or deployment behaviour changed.
Risk and rollout
git revertof the single commit restores all three instruction files and drops the queued request, which is inert until a reconciliation runs.Notes
mainby the#2117merge butgit merge-tree --write-tree origin/main HEADis clean, so it has deliberately not been synced — per the anti-churn rule, a behind-but-clean head does not need a merge.#2117queued 5 requests and this PR queues a 6th. They are six distinct UUID files that merge cleanly by design; a future serialized fresh-base branch should runnpm run issues:reconcileonce these have landed.mainreads "reconcile 74 queued requests into the outstanding-issues ledger", but its squashed content is a single review record — the reconciliation itself landed ined19e143(docs(issues): reconcile queued ledger requests (remediation Phases 2–3, #2105 resolutions) #2120). Recorded here so the history is not misread later; no fix proposed, since rewriting a merged commit message is not worth the churn.Generated by Claude Code