Skip to content

Add accessibility, performance, SEO, dark mode & code examples#3

Open
aiagentwithdhruv wants to merge 7 commits intoLeonxlnx:mainfrom
aiagentwithdhruv:improvements/comprehensive-upgrade
Open

Add accessibility, performance, SEO, dark mode & code examples#3
aiagentwithdhruv wants to merge 7 commits intoLeonxlnx:mainfrom
aiagentwithdhruv:improvements/comprehensive-upgrade

Conversation

@aiagentwithdhruv
Copy link

@aiagentwithdhruv aiagentwithdhruv commented Mar 16, 2026

Summary

  • +426 lines across all 4 skills, addressing 7 gaps identified during review
  • Zero breaking changes — all additions are new sections appended to existing skills
  • taste-skill grows from 10 to 14 sections

What's Added

1. Accessibility (WCAG 2.2 AA) — all skills

prefers-reduced-motion enforcement, contrast ratios (4.5:1/3:1), focus indicators, ARIA labels, skip navigation, keyboard trap handling, semantic HTML, color independence.

2. Core Web Vitals — taste-skill + redesign-skill

LCP < 2.5s, CLS < 0.1, INP < 200ms with specific implementation guidance. Bundle size awareness (Framer Motion ~30KB, GSAP ~25KB).

3. Responsive Images — taste-skill + redesign-skill

srcset, <picture>, WebP/AVIF, lazy loading, explicit dimensions, Next.js <Image> component, fetchpriority="high" for hero images.

4. Dark/Light Mode System — taste-skill + soft-skill

CSS custom properties, system preference detection, theme flash prevention, elevated surfaces pattern (not inverted shadows), image brightness adjustment.

5. SEO Meta Architecture — taste-skill + soft-skill + redesign-skill

OG/Twitter meta tags, JSON-LD structured data, canonical URLs, sitemap/robots.txt, semantic headings, server-rendered critical content.

6. Code Examples — taste-skill

4 complete before/after code snippets:

  • Generic card → Premium Double-Bezel card with motion
  • Default button → Magnetic CTA with nested icon + spring physics
  • Static section → Staggered scroll entry with reduced motion support
  • Theme toggle component with system detection

7. Skill Relationship Clarity — soft-skill + README

  • soft-skill now has a "When to use this skill" section explaining when to pick soft-skill vs taste-skill
  • README has a comparison table for all 4 skills

Pre-flight Checklists Updated

Both taste-skill and soft-skill checklists now include accessibility, performance, SEO, and dark mode verification items.

Test Plan

  • Verify taste-skill SKILL.md renders correctly in Cursor/Claude
  • Verify soft-skill "when to use" guidance is clear
  • Verify redesign-skill audit items are actionable
  • Verify output-skill multi-file rules don't conflict with existing behavior
  • Test code examples compile in a Next.js 15 + Tailwind v4 project

Generated with Claude Code

Summary by Sourcery

Extend all skills with guidance for accessibility, performance, SEO, dark mode, and multi-file output workflows, plus clarify when to use each skill.

New Features:

  • Add Core Web Vitals and image optimization requirements to taste-skill and redesign-skill.
  • Introduce dedicated accessibility, dark/light mode, and SEO/performance sections to taste-skill and soft-skill.
  • Provide concrete before/after UI code examples in taste-skill to demonstrate premium patterns and motion.
  • Document multi-file output handling and iterative change rules in output-skill.
  • Clarify when to choose each skill via a new section in soft-skill and a comparison table in the README.

Enhancements:

  • Expand redesign-skill’s audit checklist with accessibility, performance, and SEO-focused checks and reorder its fix priority list to include them.
  • Augment pre-flight/pre-output checklists in taste-skill and soft-skill with accessibility, performance, dark mode, and SEO verification items.
  • Update README skill descriptions with the new capabilities and section counts.

Summary by cubic

Adds WCAG 2.2 AA accessibility, Core Web Vitals, responsive images, dark/light mode, and SEO guidance across all skills, plus new code examples and clearer skill selection. Also refines focus behavior, framework‑agnostic sitemap rules, multi‑file output handling, and clarifies WCAG contrast (size/weight only qualifies large text for 3:1).

  • New Features

    • taste-skill: Adds accessibility, Core Web Vitals, responsive images, dark/light mode, SEO; 4 before/after code examples; expanded final checklist.
    • redesign-skill: Adds accessibility/performance/SEO audits and expands the fix priority to 10 steps.
    • soft-skill: Adds “when to use this vs taste-skill,” accessibility rules, dark/light mode, and SEO/performance guidance; checklist updated.
    • output-skill: Adds multi-file output rules (manifest, per-file blocks, path/import resolution, dependency install commands) and iterative change handling.
    • README: Adds a skill comparison table and updates skill summaries and section counts (e.g., taste-skill now 14 sections).
  • Bug Fixes

    • Corrects framer-motion bundle size guidance to ~57KB gz.
    • Accessibility: Focus is trapped only in modals; menus allow Tab/Shift+Tab to move away and Escape to close.
    • Accessibility: Clarifies WCAG contrast — font size/weight does not increase contrast; it only qualifies text for the 3:1 “large text” ratio.
    • SEO: Sitemap/robots guidance made framework-agnostic.
    • output-skill: Import-path validity is enforced only for created/modified files; inline change markers allowed only in formats that support comments.
    • taste-skill: Code examples now compile on copy-paste (adds missing imports and a Feature type); theme toggle listens to OS changes via matchMedia and uses aria-pressed; removes blur from an animation example to follow transform/opacity-only guidance.
    • soft-skill: Reduced-motion handling uses stack-appropriate detection and aligns focus-trap rules; removes the claim that text-shadow affects contrast and replaces it with valid WCAG-compliant guidance.

Written for commit 728f16e. Summary will update on new commits.

Summary by CodeRabbit

  • Documentation
    • Expanded accessibility (WCAG 2.2 AA) guidance, audits and prescriptive checklists.
    • Added Core Web Vitals targets, performance audits, and image optimization guidance.
    • Enhanced SEO & metadata architecture and structured-data recommendations.
    • Extended dark/light mode system, theming rules and code examples.
    • Added “When to use which skill” scenario-to-skill mapping and before/after examples.
    • Added multi-file output procedures, iterative-request handling, and Quick Check additions (imports/dependency install notes).

…oss all skills

7 improvements applied to all 4 skills:

1. Accessibility (WCAG 2.2 AA): prefers-reduced-motion, contrast ratios,
   focus indicators, ARIA labels, skip navigation, keyboard traps, semantic HTML
2. Core Web Vitals: LCP < 2.5s, CLS < 0.1, INP < 200ms targets with
   specific implementation guidance
3. Responsive images: srcset, picture element, WebP/AVIF, lazy loading,
   explicit dimensions, Next.js Image component
4. Dark/light mode system: CSS custom properties, system detection,
   flash prevention, elevated surfaces pattern
5. SEO meta architecture: OG tags, JSON-LD, canonical URLs, sitemap,
   semantic headings, server-rendered content
6. Code examples: 4 before/after snippets (card, button, scroll animation,
   theme toggle) in taste-skill
7. Skill relationship clarity: soft-skill now has "when to use" guide,
   README has comparison table

taste-skill: 10 → 14 sections (+426 lines)
soft-skill: 8 → 11 sections
redesign-skill: +3 audit categories, 7 → 10 fix priority steps
output-skill: +multi-file and iterative request handling

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@sourcery-ai
Copy link

sourcery-ai bot commented Mar 16, 2026

Reviewer's Guide

Extends all four skills and the README to cover accessibility (WCAG 2.2 AA), Core Web Vitals/performance, responsive images, dark/light mode, SEO/meta architecture, concrete code examples, clearer skill selection guidance, and stricter multi-file/iterative-output rules without introducing breaking behavior.

Sequence diagram for theme toggle with system detection

sequenceDiagram
  actor User
  participant ThemeToggle
  participant LocalStorage
  participant SystemPreferenceDetector
  participant DocumentElement

  User->>ThemeToggle: Load page
  ThemeToggle->>LocalStorage: getItem(theme)
  alt stored theme exists
    LocalStorage-->>ThemeToggle: storedTheme
    ThemeToggle->>DocumentElement: toggle dark class based on storedTheme
  else no stored theme
    ThemeToggle->>SystemPreferenceDetector: isDarkPreferred()
    SystemPreferenceDetector-->>ThemeToggle: boolean isDark
    ThemeToggle->>DocumentElement: toggle dark class based on isDark
  end

  User->>ThemeToggle: Click theme option
  ThemeToggle->>ThemeToggle: setTheme(selectedTheme)
  alt theme is system
    ThemeToggle->>SystemPreferenceDetector: isDarkPreferred()
    SystemPreferenceDetector-->>ThemeToggle: boolean isDark
    ThemeToggle->>DocumentElement: toggle dark class based on isDark
    ThemeToggle->>LocalStorage: removeItem(theme)
  else theme is light or dark
    ThemeToggle->>DocumentElement: toggle dark class based on theme
    ThemeToggle->>LocalStorage: setItem(theme, themeValue)
  end
Loading

Sequence diagram for reduced motion aware scroll animation

sequenceDiagram
  actor User
  participant FeaturesSection
  participant ReducedMotionController
  participant MotionEngine

  User->>FeaturesSection: Scroll page
  FeaturesSection->>ReducedMotionController: shouldReduceMotion()
  ReducedMotionController-->>FeaturesSection: boolean shouldReduce
  alt shouldReduce is true
    FeaturesSection->>MotionEngine: render static items without animation
  else shouldReduce is false
    FeaturesSection->>MotionEngine: apply container and item variants
    MotionEngine->>MotionEngine: staggerChildren with spring transitions
  end
Loading

Flow diagram for multi-file and iterative output handling

flowchart LR
  A[Start_new_task] --> B{Needs_multiple_files}
  B -- Yes --> C[Declare_file_manifest_with_paths]
  C --> D[Check_for_new_dependencies]
  D --> E[List_npm_install_commands_at_top]
  E --> F[Output_each_file_in_full_with_path_label]
  B -- No --> F

  F --> G[Verify_all_imports_resolve_between_files]
  G --> H[Check_every_requested_item_is_complete]

  H --> I{User_requests_iterative_change}
  I -- No --> J[Finalize_response]
  I -- Yes --> K[Show_complete_modified_file]
  K --> L{User_explicitly_requests_just_diff}
  L -- Yes --> M[Provide_only_changed_section]
  L -- No --> K
  M --> J
Loading

File-Level Changes

Change Details Files
Add performance, responsive image, accessibility, dark mode, SEO, and code example sections to taste-skill and extend its final pre-flight checklist.
  • Introduce Core Web Vitals guidance (LCP, CLS, INP) plus animation bundle-size awareness and tree-shaking notes.
  • Add mandatory responsive image rules using Next.js Image, picture/srcset, modern formats, lazy loading, and explicit sizing.
  • Create new sections for accessibility (WCAG 2.2 AA), dark/light mode system, SEO/meta architecture, and multiple full React/Next.js/Tailwind code examples.
  • Extend the final pre-flight checklist with checks for reduced motion, focus/ARIA, contrast, responsive images, LCP, SEO/meta tags, dark mode surface elevation, and semantic HTML.
taste-skill/SKILL.md
Strengthen redesign-skill with explicit accessibility, performance/Core Web Vitals, and SEO audit checklists plus an updated priority order for fixes.
  • Add an accessibility audit subsection covering reduced motion, contrast, focus rings, ARIA, skip links, alt text, keyboard traps, and labeled forms.
  • Add a performance checklist focused on image optimization, hero/font preloading, lazy loading, bundle size, animation properties, CLS prevention, and will-change cleanup.
  • Add an SEO checklist including titles, descriptions, OG tags, canonical URLs, sitemap/robots, heading hierarchy, structured data, and server-rendered critical content.
  • Update the strategic fix order to insert accessibility, performance/image optimization, and SEO as explicit priorities before final typography polish.
redesign-skill/SKILL.md
Augment soft-skill with usage guidance, accessibility and dark-mode rules, SEO/performance requirements, and a richer pre-output checklist.
  • Add a "When to use this skill" section clarifying when to choose soft-skill vs taste-skill.
  • Insert dedicated accessibility and dark/light mode sections aligned with WCAG, reduced motion, focus/keyboard behavior, ARIA, semantic HTML, and CSS variable–based theming.
  • Add an SEO & performance section that mirrors Core Web Vitals, responsive images, bundle size, meta tags, structured data, headings, and sitemap/robots requirements.
  • Expand the pre-output checklist with concrete accessibility, performance, SEO, and dark mode verification items.
soft-skill/SKILL.md
Clarify relationships between the four skills and document new capabilities in the README.
  • Update each skill’s description to mention the new accessibility, performance, SEO, dark-mode, and output-handling capabilities.
  • Document section counts for taste-skill and soft-skill to reflect their growth.
  • Add a comparison table that maps common scenarios to the appropriate skill or skill combination.
README.md
Enhance output-skill with multi-file output and iterative-editing rules plus an expanded completion checklist.
  • Add a multi-file outputs section describing manifest declarations, per-file code blocks, path consistency, and dependency install commands.
  • Add iterative request handling rules that require returning full modified files instead of diffs by default.
  • Extend the quick-check list with checks for import resolution and explicit dependency installation instructions.
output-skill/SKILL.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link

coderabbitai bot commented Mar 16, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Documentation expanded across multiple skill modules: README updated with section counts and "Now includes" summaries; skill docs (taste, redesign, soft, output) gained new or expanded sections on accessibility (WCAG 2.2 AA), Core Web Vitals performance, SEO/meta architecture, dark/light theming, responsive images, multi-file outputs, and iterative-request handling.

Changes

Cohort / File(s) Summary
README
README.md
Headers updated to show section counts and added "Now includes" summaries for taste-skill, redesign-skill, soft-skill, and output-skill describing accessibility, Core Web Vitals, responsive images, dark/light mode, SEO/meta architecture, and examples.
Taste-skill docs
taste-skill/SKILL.md
Large content additions: ACCESSIBILITY (WCAG 2.2 AA), PERFORMANCE guardrails (LCP/CLS/INP), image optimization, dark/light mode system and scripts, SEO/meta architecture, motion/accessibility code examples, and expanded before/after code examples.
Redesign-skill docs
redesign-skill/SKILL.md
Added Accessibility, Performance (Core Web Vitals), and SEO sections with checklists; reorganized upgrade/fix priorities into categorized sequences (Accessibility / Performance / SEO) and updated fix-priority ordering.
Soft-skill docs
soft-skill/SKILL.md
Added "WHEN TO USE THIS SKILL"; split PRE-OUTPUT CHECKLIST into named sections (Accessibility, Dark/Light Mode, SEO & Performance); augmented pre-output checklist and evaluation criteria to enforce accessibility, motion, semantic HTML, imagery, and performance targets.
Output-skill docs
output-skill/SKILL.md
New "Multi-File Outputs" and "Handling Iterative Requests" sections plus Quick Check expansions: manifest/per-file output rules, non-merging policy, import-resolution checks, dependency-install guidance, and iterative modification workflow.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I hop through lines of guidance bright,
WCAG checks kept snug and tight,
Dark mode twinkles, images take flight,
Core vitals tuned by moonlit light,
Docs refreshed — I nibble with delight!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: adding accessibility, performance, SEO, dark mode support, and code examples across multiple skills.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've found 1 issue, and left some high level feedback:

  • The new accessibility/SEO/performance guidance is duplicated across taste-skill, soft-skill, and redesign-skill; consider extracting a shared canonical section or partial and referencing it from each skill to reduce future drift and keep the rules in sync.
  • In the ThemeToggle example, the direct use of localStorage and matchMedia in useEffect can cause issues in SSR/Next.js environments and doesn’t respond to system theme changes after initial load—consider guarding for window availability and adding a listener for prefers-color-scheme changes or documenting these caveats alongside the snippet.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new accessibility/SEO/performance guidance is duplicated across taste-skill, soft-skill, and redesign-skill; consider extracting a shared canonical section or partial and referencing it from each skill to reduce future drift and keep the rules in sync.
- In the ThemeToggle example, the direct use of localStorage and matchMedia in useEffect can cause issues in SSR/Next.js environments and doesn’t respond to system theme changes after initial load—consider guarding for window availability and adding a listener for prefers-color-scheme changes or documenting these caveats alongside the snippet.

## Individual Comments

### Comment 1
<location path="redesign-skill/SKILL.md" line_range="204" />
<code_context>
+4. **Hover and active states** — makes the interface feel alive
+5. **Layout and spacing** — proper grid, max-width, consistent padding
+6. **Image optimization & performance** — responsive images, preloads, lazy loading
+7. **Replace generic components** — swap cliche patterns for modern alternatives
+8. **Add loading, empty, and error states** — makes it feel finished
+9. **SEO meta tags & structured data** — discoverability and social sharing
</code_context>
<issue_to_address>
**nitpick (typo):** Consider using the standard spelling "cliché" instead of "cliche".

```suggestion
7. **Replace generic components** — swap cliché patterns for modern alternatives
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

4. **Hover and active states** — makes the interface feel alive
5. **Layout and spacing** — proper grid, max-width, consistent padding
6. **Image optimization & performance** — responsive images, preloads, lazy loading
7. **Replace generic components** — swap cliche patterns for modern alternatives
Copy link

Choose a reason for hiding this comment

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

nitpick (typo): Consider using the standard spelling "cliché" instead of "cliche".

Suggested change
7. **Replace generic components** — swap cliche patterns for modern alternatives
7. **Replace generic components** — swap cliché patterns for modern alternatives

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@redesign-skill/SKILL.md`:
- Line 142: Update the Framer Motion bundle size claim in the SKILL.md list item
that currently reads about "~30KB gz" (the line mentioning "Animations using
layout-triggering properties." / the Framer Motion comparison) to the current
gzipped size of approximately 57.6KB (e.g., change "~30KB gz" to "~57.6KB gz")
so the document reflects Framer Motion v12.37.0; leave the GSAP size as-is.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: eb9d3ab2-a702-47ed-aaee-7ace26814e2b

📥 Commits

Reviewing files that changed from the base of the PR and between 1d795ae and e1d0a51.

📒 Files selected for processing (5)
  • README.md
  • output-skill/SKILL.md
  • redesign-skill/SKILL.md
  • soft-skill/SKILL.md
  • taste-skill/SKILL.md

Addresses coderabbitai review — actual gzipped size is 57.6KB,
not 30KB as previously stated. Updated across all 3 skills.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

7 issues found across 5 files

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="redesign-skill/SKILL.md">

<violation number="1" location="redesign-skill/SKILL.md:132">
P2: Accessibility guidance incorrectly says menus must trap focus; focus traps are for modal dialogs, while menus should allow users to tab away/escape to close.</violation>

<violation number="2" location="redesign-skill/SKILL.md:152">
P2: SEO instructions are overly framework/router-specific and can conflict with the skill’s existing-stack/no-migration rules.</violation>
</file>

<file name="output-skill/SKILL.md">

<violation number="1" location="output-skill/SKILL.md:50">
P2: Import-resolution rule is overbroad for iterative repo edits and can force duplicating untouched files.</violation>

<violation number="2" location="output-skill/SKILL.md:58">
P2: The instruction to mark changed regions with an inline comment can make returned files invalid for formats that do not support comments (e.g., JSON, CSV), contradicting the “runnable code” requirement. Consider restricting this to comment-supporting formats or using surrounding prose instead.</violation>
</file>

<file name="taste-skill/SKILL.md">

<violation number="1" location="taste-skill/SKILL.md:482">
P2: The ThemeToggle “system” mode only reads prefers-color-scheme once and never listens for changes, so it won’t track OS theme changes after initial render.</violation>

<violation number="2" location="taste-skill/SKILL.md:508">
P2: The ThemeToggle example doesn’t expose which theme is currently selected to assistive technology; the active state is only conveyed via styling. Add an ARIA state (e.g., `aria-pressed` or radio semantics) so screen readers can identify the active option.</violation>
</file>

<file name="soft-skill/SKILL.md">

<violation number="1" location="soft-skill/SKILL.md:92">
P2: Reduced-motion guidance incorrectly hard-codes Framer Motion hook for GSAP/CSS/generic outputs, causing stack mismatch and unnecessary dependency pressure.</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

1. redesign-skill: Focus traps for modals only, menus allow tab-away + Escape
2. redesign-skill: SEO sitemap guidance now framework-agnostic
3. output-skill: Import rule scoped to created/modified files only
4. output-skill: Inline comment marking restricted to comment-supporting formats
5. taste-skill: ThemeToggle now listens for OS theme changes via matchMedia listener
6. taste-skill: ThemeToggle buttons have aria-pressed for screen readers
7. soft-skill: Reduced motion uses stack-appropriate detection, not Framer-only

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@soft-skill/SKILL.md`:
- Line 94: Update the "Keyboard Navigation" guidance in SKILL.md so it matches
the redesign-skill fix: remove the instruction that hamburger menus must trap
focus and instead state that hamburger/utility menus should allow tab-away and
close on Escape, reserving focus traps for true modals; specifically modify the
bullet under "Keyboard Navigation" that currently reads "Hamburger menus must
trap focus when open and release on close" to the new behavior, and ensure the
document consistently references focus traps only for modal components.

In `@taste-skill/SKILL.md`:
- Around line 241-247: The file uses motion.div inside the AnimatedSection
component but only imports useReducedMotion; update the import from
'framer-motion' to include motion (e.g., import { motion, useReducedMotion }
...) so the motion symbol is available for the AnimatedSection JSX; ensure the
import line that currently references useReducedMotion is changed to also export
motion.
- Around line 390-406: Add the missing import for ArrowUpRight in Example 2
using the same icon import pattern shown in Example 4 (i.e., import ArrowUpRight
from the same icon library used by Example 4 and ensure motion.button import is
present), and declare/export the Feature type used by Example 3 by adding a
Feature type/interface that includes the properties referenced in the example
(e.g., title, description and any icon/component field) so both examples become
copy-paste usable and follow the same import/type conventions as Example 4.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c07276ae-9e04-4b2d-a257-5cae20a6acaa

📥 Commits

Reviewing files that changed from the base of the PR and between 13fbeb9 and 6597796.

📒 Files selected for processing (4)
  • output-skill/SKILL.md
  • redesign-skill/SKILL.md
  • soft-skill/SKILL.md
  • taste-skill/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • output-skill/SKILL.md

1. soft-skill: Focus traps limited to modals, hamburger menus allow
   tab-away + Escape (consistent with redesign-skill fix)
2. taste-skill: Add missing `motion` import in AnimatedSection example
3. taste-skill: Add missing imports (ArrowUpRight, motion) in Example 2
   and Feature type declaration in Example 3 for copy-paste usability

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
soft-skill/SKILL.md (1)

92-92: Consider adding a reduced-motion code example for consistency.

The guidance correctly mentions stack-appropriate detection methods (CSS media query, window.matchMedia, useReducedMotion()), but unlike taste-skill which provides a concrete ReducedMotionWrapper.tsx code example (lines 232-248), soft-skill provides no implementation reference. This creates an inconsistency in documentation depth between the two skills.

📚 Suggested enhancement for consistency

Either add a similar code example here, or add a cross-reference:

 * **Reduced Motion:** Wrap ALL Framer Motion, GSAP, and CSS animations in `prefers-reduced-motion` checks. Spring physics, parallax, scroll hijacks — all must degrade to instant transitions when reduced motion is active. Use stack-appropriate detection: CSS `@media (prefers-reduced-motion: reduce)`, `window.matchMedia` in JS/GSAP, or `useReducedMotion()` only when Framer Motion is already in use.
+  For a complete Framer Motion implementation example, see taste-skill Section 10 (ReducedMotionWrapper.tsx).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@soft-skill/SKILL.md` at line 92, Add a concrete reduced-motion example or
cross-reference to the existing ReducedMotionWrapper.tsx to match taste-skill's
level of detail: either paste a brief implementation named
ReducedMotionWrapper.tsx that demonstrates CSS `@media` (prefers-reduced-motion:
reduce), window.matchMedia usage, and Framer Motion's useReducedMotion()
patterns, or add a clear cross-reference in soft-skill/SKILL.md pointing readers
to the existing ReducedMotionWrapper.tsx example and where to find it; reference
the symbols ReducedMotionWrapper.tsx, useReducedMotion(), window.matchMedia, and
the `@media` query so reviewers can quickly locate and reuse the implementation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@taste-skill/SKILL.md`:
- Around line 362-388: Example 1 uses motion.div but omits the required import,
breaking the copy-paste pattern; add the missing import statement for motion
(import { motion } from 'framer-motion') at the top of the Example 1 snippet so
motion.div resolves, matching Examples 2–4 and restoring usability.

---

Nitpick comments:
In `@soft-skill/SKILL.md`:
- Line 92: Add a concrete reduced-motion example or cross-reference to the
existing ReducedMotionWrapper.tsx to match taste-skill's level of detail: either
paste a brief implementation named ReducedMotionWrapper.tsx that demonstrates
CSS `@media` (prefers-reduced-motion: reduce), window.matchMedia usage, and Framer
Motion's useReducedMotion() patterns, or add a clear cross-reference in
soft-skill/SKILL.md pointing readers to the existing ReducedMotionWrapper.tsx
example and where to find it; reference the symbols ReducedMotionWrapper.tsx,
useReducedMotion(), window.matchMedia, and the `@media` query so reviewers can
quickly locate and reuse the implementation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 49cfc232-bcd0-461b-9e58-03ace915af84

📥 Commits

Reviewing files that changed from the base of the PR and between 6597796 and e6b8020.

📒 Files selected for processing (2)
  • soft-skill/SKILL.md
  • taste-skill/SKILL.md

1. taste-skill: Add missing `import { motion }` in Example 1 for
   copy-paste consistency with Examples 2-4
2. soft-skill: Add cross-reference to taste-skill Section 10 for
   ReducedMotionWrapper.tsx implementation example

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

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 the current code and only fix it if needed.

Inline comments:
In `@soft-skill/SKILL.md`:
- Line 91: Update the "Contrast" bullet (the line beginning "* **Contrast:**"
that references "Ethereal Glass" and "text-shadow") to remove the misleading
claim that a solid text-shadow satisfies WCAG contrast; instead state that WCAG
contrast is determined solely by foreground/background color contrast (WCAG 2.2
AA: 4.5:1 normal, 3:1 large) and provide only actionable fixes such as
increasing text opacity, changing text or surface/background color, increasing
font weight or size (to meet large-text ratios), or altering the surface color;
make sure the revised text explicitly forbids relying on shadows as a contrast
solution and keeps the existing ratio numbers and "Ethereal Glass" note as
context.

In `@taste-skill/SKILL.md`:
- Around line 444-447: The example animates CSS filter via the hidden and show
variants (hidden: { opacity: 0, y: 24, filter: 'blur(4px)' } and show: {
opacity: 1, y: 0, filter: 'blur(0px)' }), which conflicts with the performance
rules; remove the filter property from both the hidden and show variant objects
so the animation relies on opacity and transform only (keep transition as-is)
and ensure no other code references filter for this motion example.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 918438d1-bfbd-4a36-9dfe-f72e46f71bd3

📥 Commits

Reviewing files that changed from the base of the PR and between e6b8020 and 684b8db.

📒 Files selected for processing (2)
  • soft-skill/SKILL.md
  • taste-skill/SKILL.md

1. soft-skill: WCAG contrast is foreground/background only — text-shadow
   does not satisfy contrast requirements. Replaced with actionable fixes.
2. taste-skill: Example 3 animated CSS filter (blur) which contradicts
   the performance rules (transform + opacity only). Removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 2 files (changes from recent commits).

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="soft-skill/SKILL.md">

<violation number="1" location="soft-skill/SKILL.md:91">
P2: The guidance claims font weight/size “increase foreground/background contrast,” but WCAG contrast ratios are based on color luminance; size/weight only changes whether text qualifies as “large text” (3:1). This wording can lead to noncompliant outputs that keep failing colors while just bolding/enlarging text.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Font weight/size doesn't increase color contrast — it only changes
whether text qualifies as "large text" (3:1 instead of 4.5:1).
Reworded to prevent noncompliant implementations.

Co-Authored-By: Claude Opus 4.6 (1M context) <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.

1 participant