issues: record why component metrics stay in :root rather than @theme - #2381
Conversation
Review bots have now asked twice, on consecutive PRs, to move a component metric into the Tailwind 4 `@theme` block — `cardTextWidth` on #2374 and `--answer-message-gutter` on #2377. Both were declined for the same reason, and that reason lives only in a code comment beside `--answer-mark-*` in globals.css, which the bots do not read. So the same conversation is paid for on every PR that adds one. The record proposes the small docs-only fix: a prohibition-table row in docs/design-system/GATES.md section 3, in the same shape as the #336 breakpoint decision already recorded there — the artifact a reviewer or a future session actually finds. It explicitly does NOT propose converting either value. Queued as an immutable inbox request; a later serialized `issues:reconcile` allocates the id and edits the canonical ledger. `check:outstanding-issues` reports in step (5 pending). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AP3MXGx1bGeEBmFKYkeLA8
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Warning Review limit reachedNext included review available in 57 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 95 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:c7cecae051
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.


Summary
One immutable inbox request, plus the regenerated snapshot that tracks it.
Review bots have now asked twice, on consecutive PRs, to move a component metric into the Tailwind 4
@themeblock:cardTextWidth(max-w-[158px], #2374) and--answer-message-gutter(calc(2.75rem + 1px), #2377). Both were declined for the same reason, and that reason currently lives only in a code comment beside--answer-mark-*insrc/app/globals.css— which the bots do not read. So the same conversation is paid for on every PR that adds one.The record states the rule as already practised (a component metric is not a scale step, so it stays a
:rootcustom property;@themegenerates a whole utility family and implies a design decision that was never made; andtests/tailwind-merge-config.test.tscouples every@theme--spacing-*token toCLINICAL_TWMERGE_THEME.spacing, so the move is never one line). Its next action is small and docs-only: a prohibition-table row indocs/design-system/GATES.md§3, in the same shape as the #336 breakpoint decision already recorded there. It explicitly does not propose converting either value.Recorded rather than fixed here because the owning PR (#2377) has already merged, so the request cannot ride it. That is the tension AGENTS.md names under "PR bundling" — a bookkeeping-only PR is the thing to avoid — and the alternative was losing the reasoning, so it is noted rather than pretended away.
Verification
npm run check:outstanding-issues— "in step with data/outstanding-issues-snapshot.json (91 open, 5 pending)".npm run check:ledger-write-discipline— "self-test passed", then "Ledger write discipline passed for f8c810b..HEAD", proving the request record is immutable anddocs/outstanding-issues.mdwas not touched.npm run issues:reconcileis deliberately NOT run here — it belongs to a dedicated fresh-base ledger branch, never an ordinary PR.Risk and rollout
git revertthe single commit. The request is immutable and unapplied, so reverting removes it cleanly with no canonical ledger state to unwind.src/lib/rag/**, no retrieval RPC, no ranking surface, no golden fixture.classifyPullRequestFilesreturnsragRanking: false.Clinical Governance Preflight
The preflight is completed because
classifyPullRequestFilesreturnsclinicalRisk: truefor this diff — thedata/**pattern matchesdata/outstanding-issues-snapshot.json. That file is bookkeeping, not clinical content, but the classifier is the gate and it is answered on its own terms rather than argued with.Clinical KB Database(sjrfecxgysukkwxsowpy)Notes
data/outstanding-issues-snapshot.jsonis generated. It was regenerated withnode scripts/generate-outstanding-issues-snapshot.mjs, never hand-edited, andcheck:outstanding-issuesis what proves it matches the ledger.Generated by Claude Code
Note
Low Risk
Bookkeeping-only JSON and a generated snapshot; no runtime, auth, or clinical behaviour changes.
Overview
Captures repeated CodeRabbit pushback on PRs #2374 and #2377 (moving component metrics like
cardTextWidthand--answer-message-gutterinto Tailwind 4@theme) as a P3 recommendation in the outstanding-issues inbox, without changing CSS or docs in this PR.The new pending request states the practised rule—component metrics belong on
:rootcustom properties, not@themescale tokens—and sets a docs-only follow-up: add a prohibition-table row indocs/design-system/GATES.md§3 (same shape as the #336 breakpoint decision), explicitly not migrating those two values here.data/outstanding-issues-snapshot.jsonis regenerated sopendinggoes from 4 to 5 and lists the new inbox item; the snapshot also normalizesledger_revision.committed_atto+00:00offset form.Reviewed by Cursor Bugbot for commit c7cecae. Configure here.