feat(design): add conformance check and local Studio - #8399
BillLeoutsakosvl346 wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@greptile review this PR |
|
@cubic-dev-ai review this PR |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
3 issues found across 91 files
Confidence score: 3/5
- In
scripts/design-conformance/shared/rendered-html.ts, skipping interpolations inside tags can let markup or attributes fromdangerouslySetInnerHTMLescape the conformance gate; analyze these interpolations or mark unresolved ones as unchecked. - In
scripts/design-conformance/controls/imperative.ts, an unresolvedhrefalone can incorrectly promote an anchor to an imperative-control candidate; require a statically proven stringhrefor another interaction signal. - In
scripts/design-conformance/shared/class-map.ts,-0nis treated as unknown and therefore enabled, so the map key may be emitted incorrectly; handle unary minus onBigIntLiteraland classify zero as false.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/design-conformance/controls/imperative.ts">
<violation number="1" location="scripts/design-conformance/controls/imperative.ts:267">
P2: An unresolved `href` alone promotes this anchor to an imperative control candidate. Require a statically proven string `href` here; otherwise leave the anchor unchecked unless another interaction signal exists.
(Based on your team's feedback about requiring anchor interaction evidence.)</violation>
</file>
<file name="scripts/design-conformance/shared/rendered-html.ts">
<violation number="1" location="scripts/design-conformance/shared/rendered-html.ts:188">
P2: Raw `dangerouslySetInnerHTML` interpolations can contribute markup or attributes, but this gate skips identifiers/calls and every interpolation inside a tag. Analyze or mark unresolved interpolations as unchecked so styling injected through them is not silently missed.</violation>
</file>
<file name="scripts/design-conformance/shared/class-map.ts">
<violation number="1" location="scripts/design-conformance/shared/class-map.ts:25">
P2: `-0n` falls through as unknown because this branch accepts only `NumericLiteral`; callers treat unknown values as enabled and emit the map key. Handle unary minus on `BigIntLiteral` and classify zero as false.
(Based on your team's feedback about falsey class-map entries.)</violation>
</file>
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
|
This comment has been minimized.
This comment has been minimized.
cb01ce0 to
97026b9
Compare
|
@greptile review this PR |
|
@cubic-dev-ai review this PR |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
|
On the unchanged-import coverage note: this is a real static-analysis limit. An unresolved imported styling value stays |
There was a problem hiding this comment.
All reported issues were addressed across 93 files
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
97026b9 to
b6e78bc
Compare
b6e78bc to
3c6fd86
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 93 files
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
3c6fd86 to
cf61ba7
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 93 files
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 93 files
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 93 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
3603d59 to
bf8b4ce
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 93 files
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Fix all with cubic | Re-trigger cubic
bf8b4ce to
4e880f1
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 93 files
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Fix all with cubic | Re-trigger cubic
4e880f1 to
c60f585
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. The four latest inline findings have been addressed and resolved with tests. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
1 issue found across 93 files
Confidence score: 4/5
- In
scripts/design-conformance/controls/inventory.ts, omittingcontentEditablefromexpressionTargetsleaves wrappers around editable elements out of call-site control records; include both JSX spellings to capture them.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/design-conformance/controls/inventory.ts">
<violation number="1" location="scripts/design-conformance/controls/inventory.ts:686">
P2: `expressionTargets` drops `contentEditable` before calling `nativeRole`, so wrappers rendering editable elements are omitted from call-site control records. Include both JSX spellings in this attribute list.</violation>
</file>
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Fix all with cubic | Re-trigger cubic
c60f585 to
cc69023
Compare
|
@greptile @cubic-dev-ai Please review the current head of this draft PR. The latest editable-wrapper and background-fallback issues are fixed with regression tests. |
@BillLeoutsakosvl346 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 93 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Re-trigger cubic
Summary
globals.css, and product source directly at each Git revision. Keep exceptional EMCN ownership decisions inpackages/emcn/src/design-ownership.json; the scanner publishes the discovered components and design findings inscan.json.tools/design-studio. Its explicit refresh command builds a catalog of every discovered EMCN visual export and detected Extra, with source locations, live fixtures where available, and labeled indicative samples elsewhere. It does not add a route to the deployed Sim app.Product rendering is unchanged. This PR is draft and is not set to merge automatically.
Commands
bun run check:design --base origin/staging --working-tree bun run check:design --base origin/staging --head HEAD bun run design:scan --repo . --working-tree --output /tmp/sim-design-scan bun run studio:refresh bun run studio:devThe local diff check includes staged, unstaged, and nonignored new product files. CI compares immutable revisions. Findings advise reviewers; failed inspection is an error. Full scans and Studio captures are run explicitly and stored outside the repository.
Verification
Coverage limits
New public EMCN exports and finite variants are discovered automatically. An export requiring props or providers can need a fixture adapter. Unsupported static flows remain visible as
unchecked, and indicative Extra samples are labeled separately from live source previews. Seescripts/design-conformance/README.mdandscripts/design-studio/README.md.