Skip to content

docs(design-system): recover two stranded backlog corrections, re-measured - #1719

Merged
BigSimmo merged 5 commits into
mainfrom
claude/ds-doc-corrections
Aug 8, 2026
Merged

docs(design-system): recover two stranded backlog corrections, re-measured#1719
BigSimmo merged 5 commits into
mainfrom
claude/ds-doc-corrections

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

Docs-only. Recovers two correctness fixes to the design-system backlog that were stranded in a local-only worktree: they were committed while GitHub auth was down, and claude/ds-a4-component-defects was deleted when PR #1712 squash-merged, so the branch they lived on no longer exists to push. Every figure was re-measured against origin/main today rather than copied forward, and one claim in the stranded version turned out to be wrong.

  • docs/outstanding-issues.md#262 A3 scope re-measured. The design-system contract's legacyShadowAliases metric counts seven tokens, not one and not the eight an earlier note claimed: LEGACY_SHADOW_ALIAS has matched tight|card|soft|hover|elevated|lux|lift since PR ui: complete and activate the v2 design system #1616 and has never included focus. Measured total 228 = tight 100, soft 72, elevated 17, hover 17, card 12, lux 8, lift 2. So --shadow-tight is 100 production sites across 55 files, not the 155 or 229 previously recorded; clearing all 100 leaves 128 aliases across the other six tokens, so legacyShadowAliases = 0 is not the success criterion; and #261's --shadow-focus does not appear in this metric at all, so the two rows do not overlap the way the earlier note said.

  • docs/outstanding-issues.md#266 adoption count re-measured. 53 registered, 30 with at least one production importer, 23 unadopted — not 24. Button moved into the adopted set via #263 / PR fix(design-system): close the open COMPONENTS §0.4 defect rows (#263) #1712; its sole production importer is src/components/AccessibleTable.tsx.

  • docs/design-system/COMPONENTS.md — the TextField/SearchField/Select §0.4 row was stale. All three defects are closed. Each folds onto FormField, which renders hint and error unconditionally (form-field.tsx:131-132) and merges aria-describedby caller → hint → error (form-field.tsx:107-109); TextField/SearchField take an external id and a Ref<HTMLInputElement>, Select an external id and a Ref<HTMLSelectElement>. It landed in PR 13, not the PR 7 the row pointed at.

  • docs/design-system/COMPONENTS.md §4 was stale in a second way. **Do:** fold TextField/SearchField/Select/Checkbox/RadioGroup onto this shell (PR 7) asks a future session to finish a fold that is finished and to break one that was a deliberate decision: Checkbox and RadioGroup keep <fieldset>/<legend> and compose FieldHint/FieldError directly on purpose (choice.tsx:207-210).

Why this is worth a PR of its own: later sessions scope work from these two files. Left as they are, the next session redoes finished form-control work and plans --shadow-tight cleanup against a figure that overstates it by roughly 1.55x.

Verification

  • npm run check:outstanding-issues — passed: 274 rows (131 open, 143 archived), unique ids, next-id=277 above the highest, no merge driver, no ids deleted from base 2675e6e1d1a5.
  • npx prettier --check . — passed: All matched files use Prettier code style! (whole tree, not per-file).
  • Re-measurement of legacyShadowAliases was done by running the contract's own analyzeClassContractsInSource / analyzeCssContractsInSource over the same walk scripts/check-design-system-contract.mjs uses (src/**, .ts/.tsx/.css, mockups excluded), not by grep. A raw grep reports 160 --shadow-tight occurrences and is the figure that produced the earlier wrong number.
  • Adoption counts read from docs/design-system/adoption-manifest.json on origin/main; the manifest is generated and was not edited.
  • No source, config, or test files are touched, so no unit, lint, typecheck, or browser gate applies to this diff.

Both ledger rows were written with npm run issues:update, never by hand.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated the component documentation to mark several form controls as complete and clarify how checkbox and radio group messaging is structured.
    • Refined outstanding design-system issue records with updated shadow, typography, adoption, and synchronization details.
    • Improved tracking of completed work, remaining components, and design-system implementation status.

BigSimmo and others added 2 commits August 8, 2026 15:09
Replays a correction stranded in a local-only worktree when PR #1712 squash-merged
and its branch was deleted before the commit could be pushed. Both figures were
re-measured today against origin/main 2675e6e rather than copied forward, and one
claim in the stranded version turned out to be wrong.

#262: legacyShadowAliases counts SEVEN tokens, not one and not eight — the regex has
matched tight|card|soft|hover|elevated|lux|lift since PR #1616 and has never included
focus. Measured total 228 = tight 100, soft 72, elevated 17, hover 17, card 12, lux 8,
lift 2. So --shadow-tight is 100 production sites across 55 files rather than the 155
or 229 previously recorded, clearing all 100 will not zero the ratchet, and #261's
--shadow-focus does not appear in this metric at all.

#266: adoption is 23 unadopted, not 24, since Button moved via #263 — its sole
production importer is src/components/AccessibleTable.tsx.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…it was stale

Replays a correction stranded in a local-only worktree when PR #1712 squash-merged
and its branch was deleted before the commit could be pushed.

Re-measured today against origin/main 2675e6e: all three fold onto FormField, which
renders hint AND error unconditionally (form-field.tsx:131-132) and merges
aria-describedby caller -> hint -> error (form-field.tsx:107-109); TextField and
SearchField each take an external id and a Ref<HTMLInputElement>, Select an external id
and a Ref<HTMLSelectElement>. Landed in PR 13, not the PR 7 the row pointed at.

Section 4's 'Do: fold TextField/SearchField/Select/Checkbox/RadioGroup onto this shell
(PR 7)' was stale in a second way and is corrected too: Checkbox and RadioGroup
deliberately do NOT fold onto FormField — a group keeps fieldset/legend and composes
FieldHint/FieldError directly (choice.tsx:207-210). Left as written, that line asks a
future session to 'finish' a fold that is finished and to break one that was a
deliberate decision.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 42 minutes

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e9885aec-c6e8-44d5-b946-575ba7e049b4

📥 Commits

Reviewing files that changed from the base of the PR and between f3a91c6 and b4051d2.

📒 Files selected for processing (1)
  • docs/design-system/COMPONENTS.md
📝 Walkthrough

Walkthrough

The PR updates design-system documentation. It records completed FormField integration for three text controls, preserves native composition for Checkbox and RadioGroup, and revises shadow-alias and component-adoption issue data.

Changes

Design-system documentation

Layer / File(s) Summary
FormField integration records
docs/design-system/COMPONENTS.md
The ledger marks TextField, SearchField, and Select as complete. It documents native Checkbox and RadioGroup fieldset/legend composition.
Outstanding issue measurements
docs/outstanding-issues.md
Issue #262 records revised shadow-alias measurements. Issue #266 records 23 unadopted components and updated adoption and manifest steps.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Possibly related PRs

Suggested reviewers: claude, cursoragent

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation change and the re-measurement of backlog corrections.
Description check ✅ Passed The description provides a detailed summary and verification evidence, and explains why risk and clinical sections do not apply.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/ds-doc-corrections

Comment @coderabbitai help to get the list of available commands.

@supabase

supabase Bot commented Aug 8, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 534405600d

ℹ️ 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".

Comment thread docs/outstanding-issues.md Outdated
Codex review on PR #1719 flagged SCOPE/COUNT RE-MEASURED and COMPONENTS.md
rows dated 2026-08-09 while the recording commits were authored on 2026-08-08.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo

BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

@cursor ping — diagnostic test from cloud agent: please reply with a short ack only (no code changes). This is a top-level conversation comment to verify GitHub mention triggers.

@BigSimmo

BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Diagnostic ping only. Reply with a short ack that you received this top-level mention. Do not change code, push, or open PRs.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/design-system/COMPONENTS.md`:
- Around line 393-396: Clarify the surrounding documentation to distinguish
component integration from product adoption, explicitly stating which status
applies to Select. Update the conflicting wording in COMPONENTS.md and the
related outstanding-issues entry so Select is not presented as pending
integration or counted twice, while preserving the deliberate Checkbox and
RadioGroup distinction.

In `@docs/outstanding-issues.md`:
- Line 307: Update the adoption-count statement near line 88 from 27 adopted
components to 30, matching the current productImportFiles and generated manifest
totals; alternatively, explicitly label 27 as historical context.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2bc48930-80dd-4b6b-981f-90979c71a0a6

📥 Commits

Reviewing files that changed from the base of the PR and between d136991 and f3a91c6.

📒 Files selected for processing (2)
  • docs/design-system/COMPONENTS.md
  • docs/outstanding-issues.md

Comment thread docs/design-system/COMPONENTS.md
Comment thread docs/outstanding-issues.md
@BigSimmo
BigSimmo enabled auto-merge (squash) August 8, 2026 08:07
…tion, re-measure the ui-primitives row

Two review findings on PR #1719, both valid.

Section 4 said 'Select/choice controls remain separate adoption work', which
contradicted the section above it and was wrong on both axes for Select:
select.tsx consumes FormField (folded in PR 13), and adoption-manifest.json gives
Select 2 production importers, so it is adopted. The genuinely unadopted member of
the trio is SearchField, at zero, which the sentence did not mention. Rewritten to
state the two axes explicitly — integration is complete for TextField, SearchField
and Select, and deliberately declined for Checkbox/RadioGroup; adoption is measured
TextField 3, Select 2, SearchField/Checkbox/RadioGroup 0 — so a control cannot be
read as pending on one axis because it is pending on the other.

The ui-primitives row carried three stale figures. Re-measured on this head: the
module is 698 lines, not 686; 157 production files import it, not 200 — that
figure is 202 including mockups, the same mockup-inclusive mislabelling this PR
already corrects for the shadow aliases; and 30 of the 53 registered components
are adopted, not 27.

Future-dated 2026-08-09 records were already corrected to 2026-08-08 by f3a91c6
before this commit; verified none remain under docs/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@BigSimmo
BigSimmo disabled auto-merge August 8, 2026 08:15
@BigSimmo
BigSimmo enabled auto-merge (squash) August 8, 2026 08:15
@BigSimmo
BigSimmo merged commit 8cffad5 into main Aug 8, 2026
62 checks passed
@BigSimmo
BigSimmo deleted the claude/ds-doc-corrections branch August 8, 2026 08:16
BigSimmo added a commit that referenced this pull request Aug 8, 2026
Same defect Codex flagged on PR #1719: the commits recording these measurements
were authored 2026-08-08 (07:xx UTC), so a 2026-08-09 stamp places every
re-measurement after the commit that recorded it. Four occurrences, in the #118,
#269 and #270 rows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BigSimmo added a commit that referenced this pull request Aug 8, 2026
CodeRabbit flagged the claude/ds-doc-corrections row as understating the scope of
PR #1720. That finding conflates two things: the row records a different ref at a
different head, and it was accurate as written. But it does predate the review
pass on #1719, whose scope grew by one commit afterwards, so a superseding row is
warranted on its own merits — appended through ledger:append --supersede rather
than editing the append-only original.

Same for #1720's own row, which recorded 824c1b7 and now supersedes to
6916c80 with the tone?: never fix and its type-contract test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants