tribunal-kit 8.0.0 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/ARCHITECTURE.md +2 -2
- package/.agent/agents/backend-specialist.md +1 -1
- package/.agent/agents/code-archaeologist.md +1 -1
- package/.agent/agents/database-architect.md +1 -1
- package/.agent/agents/debugger.md +1 -1
- package/.agent/agents/devops-engineer.md +1 -1
- package/.agent/agents/documentation-writer.md +1 -1
- package/.agent/agents/explorer-agent.md +1 -1
- package/.agent/agents/game-developer.md +1 -1
- package/.agent/agents/minimalist-reviewer.md +1 -1
- package/.agent/agents/mobile-developer.md +1 -1
- package/.agent/agents/orchestrator.md +1 -1
- package/.agent/agents/penetration-tester.md +1 -1
- package/.agent/agents/performance-optimizer.md +1 -1
- package/.agent/agents/product-manager.md +1 -1
- package/.agent/agents/product-owner.md +1 -1
- package/.agent/agents/project-planner.md +1 -1
- package/.agent/agents/qa-automation-engineer.md +1 -1
- package/.agent/agents/seo-specialist.md +1 -1
- package/.agent/agents/test-engineer.md +1 -1
- package/.agent/config/plugin.json +4 -4
- package/.agent/config/slash-commands.json +13 -1
- package/.agent/config/system-prompt.md +75 -8
- package/.agent/routing_index.json +1546 -268
- package/.agent/scripts/browser_audit.js +94 -0
- package/.agent/scripts/context_compiler.js +9 -0
- package/.agent/scripts/prompt_compiler.js +105 -13
- package/.agent/skill_topic_map.json +2 -1
- package/.agent/skills/12-principles-of-animation/SKILL.md +62 -21
- package/.agent/skills/60fps-animation/SKILL.md +90 -20
- package/.agent/skills/accessible-animation/SKILL.md +207 -40
- package/.agent/skills/adapt/SKILL.md +62 -21
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +87 -46
- package/.agent/skills/agent-organizer/SKILL.md +60 -81
- package/.agent/skills/agentic-patterns/SKILL.md +60 -79
- package/.agent/skills/agentic-workflows-2026/SKILL.md +92 -15
- package/.agent/skills/ai-app-hardening/SKILL.md +81 -15
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +75 -85
- package/.agent/skills/animation-on-scroll/SKILL.md +186 -47
- package/.agent/skills/animation-systems/SKILL.md +229 -35
- package/.agent/skills/antfu-conventions/SKILL.md +62 -23
- package/.agent/skills/api-patterns/SKILL.md +59 -79
- package/.agent/skills/api-security-auditor/SKILL.md +59 -81
- package/.agent/skills/app-builder/SKILL.md +59 -79
- package/.agent/skills/appflow-wireframe/SKILL.md +68 -83
- package/.agent/skills/apple-design/SKILL.md +65 -19
- package/.agent/skills/architecture/SKILL.md +59 -79
- package/.agent/skills/audit-and-fix/SKILL.md +62 -21
- package/.agent/skills/authentication-best-practices/SKILL.md +59 -81
- package/.agent/skills/backend-security-expert/SKILL.md +79 -82
- package/.agent/skills/baseline-ui/SKILL.md +65 -19
- package/.agent/skills/bash-linux/SKILL.md +59 -81
- package/.agent/skills/behavioral-modes/SKILL.md +60 -79
- package/.agent/skills/better-colors/SKILL.md +65 -19
- package/.agent/skills/better-typography/SKILL.md +70 -31
- package/.agent/skills/better-ui/SKILL.md +93 -18
- package/.agent/skills/bolder/SKILL.md +62 -21
- package/.agent/skills/brainstorming/SKILL.md +60 -78
- package/.agent/skills/browser-audit/SKILL.md +170 -0
- package/.agent/skills/browser-native-ai/SKILL.md +60 -41
- package/.agent/skills/build-primitive/SKILL.md +62 -21
- package/.agent/skills/building-native-ui/SKILL.md +59 -81
- package/.agent/skills/cicd-pro/SKILL.md +64 -31
- package/.agent/skills/clarify/SKILL.md +62 -21
- package/.agent/skills/clean-code/SKILL.md +68 -83
- package/.agent/skills/cloud-architect/SKILL.md +64 -31
- package/.agent/skills/cobejs/SKILL.md +62 -20
- package/.agent/skills/code-review-checklist/SKILL.md +59 -81
- package/.agent/skills/codebase-design/SKILL.md +74 -23
- package/.agent/skills/colorize/SKILL.md +62 -21
- package/.agent/skills/compact-landing/SKILL.md +62 -21
- package/.agent/skills/company-logos/SKILL.md +62 -21
- package/.agent/skills/config-validator/SKILL.md +59 -81
- package/.agent/skills/containerization-pro/SKILL.md +64 -31
- package/.agent/skills/context-engineering-pro/SKILL.md +81 -15
- package/.agent/skills/create-design-md/SKILL.md +65 -19
- package/.agent/skills/critique/SKILL.md +67 -19
- package/.agent/skills/csharp-developer/SKILL.md +59 -81
- package/.agent/skills/data-validation-schemas/SKILL.md +59 -81
- package/.agent/skills/database-design/SKILL.md +74 -84
- package/.agent/skills/delight/SKILL.md +62 -21
- package/.agent/skills/deployment-procedures/SKILL.md +59 -81
- package/.agent/skills/design-lab/SKILL.md +63 -21
- package/.agent/skills/devops-engineer/SKILL.md +59 -81
- package/.agent/skills/devops-incident-responder/SKILL.md +59 -81
- package/.agent/skills/diagnosing-bugs/SKILL.md +63 -27
- package/.agent/skills/distill/SKILL.md +62 -21
- package/.agent/skills/documentation-templates/SKILL.md +59 -81
- package/.agent/skills/domain-modeling/SKILL.md +62 -23
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +80 -14
- package/.agent/skills/edge-ai-mobile/SKILL.md +80 -14
- package/.agent/skills/edge-computing/SKILL.md +59 -81
- package/.agent/skills/emil-design-eng/SKILL.md +64 -27
- package/.agent/skills/error-resilience/SKILL.md +78 -85
- package/.agent/skills/expo-router-v4/SKILL.md +79 -14
- package/.agent/skills/extract-design-system/SKILL.md +59 -81
- package/.agent/skills/fabel-protocol/SKILL.md +72 -15
- package/.agent/skills/fixing-accessibility/SKILL.md +65 -19
- package/.agent/skills/fixing-metadata/SKILL.md +62 -21
- package/.agent/skills/fixing-motion-performance/SKILL.md +65 -19
- package/.agent/skills/framer-motion-expert/SKILL.md +67 -77
- package/.agent/skills/frontend-design/SKILL.md +73 -15
- package/.agent/skills/frontend-security-expert/SKILL.md +59 -79
- package/.agent/skills/game-design-expert/SKILL.md +59 -81
- package/.agent/skills/game-engineering-expert/SKILL.md +59 -81
- package/.agent/skills/generative-ui-expert/SKILL.md +60 -41
- package/.agent/skills/geo-fundamentals/SKILL.md +59 -81
- package/.agent/skills/git-pro/SKILL.md +62 -33
- package/.agent/skills/github-operations/SKILL.md +59 -81
- package/.agent/skills/gpt-taste/SKILL.md +62 -21
- package/.agent/skills/gsap-core/SKILL.md +59 -89
- package/.agent/skills/gsap-frameworks/SKILL.md +59 -89
- package/.agent/skills/gsap-performance/SKILL.md +59 -87
- package/.agent/skills/gsap-plugins/SKILL.md +59 -87
- package/.agent/skills/gsap-react/SKILL.md +60 -32
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +59 -89
- package/.agent/skills/gsap-timeline/SKILL.md +59 -87
- package/.agent/skills/gsap-utils/SKILL.md +59 -87
- package/.agent/skills/harden/SKILL.md +62 -21
- package/.agent/skills/harness-protocol/SKILL.md +60 -33
- package/.agent/skills/i18n-localization/SKILL.md +59 -81
- package/.agent/skills/impeccable/SKILL.md +62 -23
- package/.agent/skills/improve-codebase-architecture/SKILL.md +62 -22
- package/.agent/skills/improve-ui/SKILL.md +65 -19
- package/.agent/skills/intelligent-routing/SKILL.md +59 -33
- package/.agent/skills/knowledge-graph/SKILL.md +60 -33
- package/.agent/skills/landing-page/SKILL.md +62 -21
- package/.agent/skills/lint-and-validate/SKILL.md +59 -81
- package/.agent/skills/llm-engineering/SKILL.md +59 -81
- package/.agent/skills/local-first/SKILL.md +59 -81
- package/.agent/skills/local-first-architecture/SKILL.md +77 -20
- package/.agent/skills/lottie-animation/SKILL.md +62 -20
- package/.agent/skills/marquee-loop/SKILL.md +62 -21
- package/.agent/skills/masked-reveal/SKILL.md +245 -50
- package/.agent/skills/mcp-builder/SKILL.md +59 -81
- package/.agent/skills/micro-interaction/SKILL.md +254 -57
- package/.agent/skills/mobile-design/SKILL.md +59 -79
- package/.agent/skills/monorepo-management/SKILL.md +59 -81
- package/.agent/skills/morphing-icons/SKILL.md +365 -46
- package/.agent/skills/motion-engineering/SKILL.md +66 -21
- package/.agent/skills/nextjs-react-expert/SKILL.md +82 -84
- package/.agent/skills/nodejs-best-practices/SKILL.md +81 -80
- package/.agent/skills/observability/SKILL.md +59 -81
- package/.agent/skills/opentelemetry-observability/SKILL.md +80 -14
- package/.agent/skills/page-transition-animation/SKILL.md +62 -21
- package/.agent/skills/parallel-agents/SKILL.md +60 -81
- package/.agent/skills/performance-profiling/SKILL.md +60 -81
- package/.agent/skills/plan-writing/SKILL.md +83 -88
- package/.agent/skills/platform-engineer/SKILL.md +59 -81
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +80 -15
- package/.agent/skills/playwright-ai-e2e/SKILL.md +81 -15
- package/.agent/skills/playwright-best-practices/SKILL.md +60 -81
- package/.agent/skills/polish/SKILL.md +62 -21
- package/.agent/skills/powershell-windows/SKILL.md +59 -81
- package/.agent/skills/pricing-page/SKILL.md +62 -21
- package/.agent/skills/product-aware-heuristics/SKILL.md +73 -16
- package/.agent/skills/progressive-blur/SKILL.md +62 -21
- package/.agent/skills/project-idioms/SKILL.md +58 -84
- package/.agent/skills/property-based-testing/SKILL.md +81 -15
- package/.agent/skills/python-patterns/SKILL.md +59 -81
- package/.agent/skills/python-pro/SKILL.md +81 -83
- package/.agent/skills/quieter/SKILL.md +62 -21
- package/.agent/skills/react-doctor/SKILL.md +62 -21
- package/.agent/skills/react-specialist/SKILL.md +73 -82
- package/.agent/skills/readme-builder/SKILL.md +59 -81
- package/.agent/skills/realtime-patterns/SKILL.md +59 -81
- package/.agent/skills/red-team-tactics/SKILL.md +59 -81
- package/.agent/skills/redesign-skill/SKILL.md +62 -21
- package/.agent/skills/review-animations/SKILL.md +64 -30
- package/.agent/skills/rust-pro/SKILL.md +77 -78
- package/.agent/skills/seo-fundamentals/SKILL.md +59 -81
- package/.agent/skills/server-management/SKILL.md +59 -81
- package/.agent/skills/shadcn-ui-expert/SKILL.md +59 -81
- package/.agent/skills/shape/SKILL.md +63 -21
- package/.agent/skills/skill-creator/SKILL.md +80 -88
- package/.agent/skills/soft-skill/SKILL.md +62 -21
- package/.agent/skills/sounds-on-the-web/SKILL.md +62 -21
- package/.agent/skills/sql-pro/SKILL.md +93 -80
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +59 -81
- package/.agent/skills/svg-animation/SKILL.md +368 -46
- package/.agent/skills/swiftui-expert/SKILL.md +59 -81
- package/.agent/skills/swiss-design/SKILL.md +62 -21
- package/.agent/skills/system-design-pro/SKILL.md +64 -29
- package/.agent/skills/systematic-debugging/SKILL.md +70 -82
- package/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +59 -81
- package/.agent/skills/taste-skill/SKILL.md +62 -21
- package/.agent/skills/tdd-workflow/SKILL.md +107 -26
- package/.agent/skills/test-result-analyzer/SKILL.md +59 -82
- package/.agent/skills/testing-patterns/SKILL.md +60 -81
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +62 -23
- package/.agent/skills/thinking-protocol/SKILL.md +73 -18
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +62 -20
- package/.agent/skills/transitions-dev/SKILL.md +62 -20
- package/.agent/skills/trend-researcher/SKILL.md +58 -82
- package/.agent/skills/typescript-advanced/SKILL.md +69 -85
- package/.agent/skills/typeset/SKILL.md +62 -21
- package/.agent/skills/ui-reasoning-engine/SKILL.md +73 -16
- package/.agent/skills/ui-skill-packs/SKILL.md +69 -19
- package/.agent/skills/ui-skills-root/SKILL.md +65 -19
- package/.agent/skills/ui-ux-pro-max/SKILL.md +81 -15
- package/.agent/skills/ui-ux-researcher/SKILL.md +58 -82
- package/.agent/skills/vector-search-pgvector/SKILL.md +80 -14
- package/.agent/skills/verification-before-completion/SKILL.md +178 -0
- package/.agent/skills/vue-expert/SKILL.md +59 -77
- package/.agent/skills/vulnerability-scanner/SKILL.md +59 -79
- package/.agent/skills/web-accessibility-auditor/SKILL.md +59 -81
- package/.agent/skills/web-design-guidelines/SKILL.md +73 -15
- package/.agent/skills/web-quality-audit/SKILL.md +62 -21
- package/.agent/skills/webapp-testing/SKILL.md +60 -81
- package/.agent/skills/webgpu-performance/SKILL.md +60 -41
- package/.agent/skills/whimsy-injector/SKILL.md +59 -81
- package/.agent/skills/workflow-optimizer/SKILL.md +59 -80
- package/.agent/skills/zero-trust-passkeys/SKILL.md +80 -14
- package/.agent/templates/DESIGN.md +680 -160
- package/.agent/templates/sdd/implementer-prompt.md +62 -0
- package/.agent/templates/sdd/re-review-prompt.md +36 -0
- package/.agent/templates/sdd/task-reviewer-prompt.md +78 -0
- package/.agent/workflows/acf.md +4 -0
- package/.agent/workflows/api-tester.md +5 -0
- package/.agent/workflows/audit-live.md +52 -0
- package/.agent/workflows/audit.md +5 -0
- package/.agent/workflows/brainstorm.md +17 -1
- package/.agent/workflows/changelog.md +5 -0
- package/.agent/workflows/compare-web.md +35 -0
- package/.agent/workflows/context.md +100 -0
- package/.agent/workflows/contract.md +19 -0
- package/.agent/workflows/create.md +6 -1
- package/.agent/workflows/debug.md +5 -0
- package/.agent/workflows/deploy.md +6 -1
- package/.agent/workflows/enhance.md +6 -1
- package/.agent/workflows/fix-ci.md +5 -0
- package/.agent/workflows/fix.md +5 -0
- package/.agent/workflows/generate.md +5 -0
- package/.agent/workflows/marathon.md +6 -1
- package/.agent/workflows/migrate.md +5 -0
- package/.agent/workflows/minimal.md +4 -0
- package/.agent/workflows/orchestrate.md +6 -1
- package/.agent/workflows/performance-benchmarker.md +6 -1
- package/.agent/workflows/pipeline.md +5 -0
- package/.agent/workflows/plan.md +7 -2
- package/.agent/workflows/preview.md +6 -1
- package/.agent/workflows/refactor.md +6 -0
- package/.agent/workflows/review-ai.md +5 -0
- package/.agent/workflows/review.md +5 -0
- package/.agent/workflows/sdd.md +122 -0
- package/.agent/workflows/session.md +5 -0
- package/.agent/workflows/skill-enhancement-engine.md +88 -0
- package/.agent/workflows/status.md +4 -0
- package/.agent/workflows/super-prompt.md +103 -19
- package/.agent/workflows/swarm.md +6 -1
- package/.agent/workflows/test.md +6 -1
- package/.agent/workflows/tribunal-backend.md +5 -0
- package/.agent/workflows/tribunal-cicd.md +5 -0
- package/.agent/workflows/tribunal-database.md +5 -0
- package/.agent/workflows/tribunal-full.md +8 -0
- package/.agent/workflows/tribunal-mobile.md +5 -0
- package/.agent/workflows/tribunal-performance.md +5 -0
- package/.agent/workflows/tribunal-speed.md +5 -0
- package/.agent/workflows/tribunal-ui.md +7 -0
- package/.agents/plugins/marketplace.json +20 -0
- package/.agents/skills/12-principles-of-animation/SKILL.md +126 -0
- package/.agents/skills/60fps-animation/SKILL.md +164 -0
- package/.agents/skills/accessible-animation/SKILL.md +266 -0
- package/.agents/skills/adapt/SKILL.md +131 -0
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/.agents/skills/agent-organizer/SKILL.md +192 -0
- package/.agents/skills/agentic-patterns/SKILL.md +356 -0
- package/.agents/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/.agents/skills/ai-app-hardening/SKILL.md +125 -0
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/.agents/skills/animation-on-scroll/SKILL.md +267 -0
- package/.agents/skills/animation-systems/SKILL.md +273 -0
- package/.agents/skills/antfu-conventions/SKILL.md +129 -0
- package/.agents/skills/api-patterns/SKILL.md +293 -0
- package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agents/skills/api-security-auditor/SKILL.md +230 -0
- package/.agents/skills/app-builder/SKILL.md +610 -0
- package/.agents/skills/app-builder/templates/SKILL.md +108 -0
- package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/.agents/skills/appflow-wireframe/SKILL.md +173 -0
- package/.agents/skills/apple-design/SKILL.md +164 -0
- package/.agents/skills/architecture/SKILL.md +263 -0
- package/.agents/skills/audit-and-fix/SKILL.md +136 -0
- package/.agents/skills/authentication-best-practices/SKILL.md +232 -0
- package/.agents/skills/backend-security-expert/SKILL.md +148 -0
- package/.agents/skills/baseline-ui/SKILL.md +130 -0
- package/.agents/skills/bash-linux/SKILL.md +214 -0
- package/.agents/skills/behavioral-modes/SKILL.md +275 -0
- package/.agents/skills/better-colors/SKILL.md +191 -0
- package/.agents/skills/better-typography/SKILL.md +164 -0
- package/.agents/skills/better-ui/SKILL.md +193 -0
- package/.agents/skills/bolder/SKILL.md +124 -0
- package/.agents/skills/brainstorming/SKILL.md +534 -0
- package/.agents/skills/browser-audit/SKILL.md +170 -0
- package/.agents/skills/browser-native-ai/SKILL.md +147 -0
- package/.agents/skills/build-primitive/SKILL.md +125 -0
- package/.agents/skills/building-native-ui/SKILL.md +237 -0
- package/.agents/skills/cicd-pro/SKILL.md +487 -0
- package/.agents/skills/clarify/SKILL.md +130 -0
- package/.agents/skills/clean-code/SKILL.md +442 -0
- package/.agents/skills/cloud-architect/SKILL.md +484 -0
- package/.agents/skills/cobejs/SKILL.md +145 -0
- package/.agents/skills/code-review-checklist/SKILL.md +238 -0
- package/.agents/skills/codebase-design/SKILL.md +151 -0
- package/.agents/skills/colorize/SKILL.md +132 -0
- package/.agents/skills/compact-landing/SKILL.md +125 -0
- package/.agents/skills/company-logos/SKILL.md +129 -0
- package/.agents/skills/config-validator/SKILL.md +200 -0
- package/.agents/skills/containerization-pro/SKILL.md +497 -0
- package/.agents/skills/context-engineering-pro/SKILL.md +136 -0
- package/.agents/skills/create-design-md/SKILL.md +167 -0
- package/.agents/skills/critique/SKILL.md +154 -0
- package/.agents/skills/csharp-developer/SKILL.md +553 -0
- package/.agents/skills/data-validation-schemas/SKILL.md +372 -0
- package/.agents/skills/database-design/SKILL.md +294 -0
- package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agents/skills/delight/SKILL.md +121 -0
- package/.agents/skills/deployment-procedures/SKILL.md +207 -0
- package/.agents/skills/design-lab/SKILL.md +117 -0
- package/.agents/skills/devops-engineer/SKILL.md +380 -0
- package/.agents/skills/devops-incident-responder/SKILL.md +178 -0
- package/.agents/skills/diagnosing-bugs/SKILL.md +247 -0
- package/.agents/skills/distill/SKILL.md +120 -0
- package/.agents/skills/documentation-templates/SKILL.md +326 -0
- package/.agents/skills/domain-modeling/SKILL.md +136 -0
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/.agents/skills/edge-ai-mobile/SKILL.md +116 -0
- package/.agents/skills/edge-computing/SKILL.md +218 -0
- package/.agents/skills/emil-design-eng/SKILL.md +209 -0
- package/.agents/skills/error-resilience/SKILL.md +478 -0
- package/.agents/skills/expo-router-v4/SKILL.md +146 -0
- package/.agents/skills/extract-design-system/SKILL.md +195 -0
- package/.agents/skills/fabel-protocol/SKILL.md +352 -0
- package/.agents/skills/fixing-accessibility/SKILL.md +162 -0
- package/.agents/skills/fixing-metadata/SKILL.md +158 -0
- package/.agents/skills/fixing-motion-performance/SKILL.md +153 -0
- package/.agents/skills/framer-motion-expert/SKILL.md +312 -0
- package/.agents/skills/frontend-design/SKILL.md +178 -0
- package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agents/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agents/skills/frontend-security-expert/SKILL.md +131 -0
- package/.agents/skills/game-design-expert/SKILL.md +167 -0
- package/.agents/skills/game-engineering-expert/SKILL.md +183 -0
- package/.agents/skills/generative-ui-expert/SKILL.md +175 -0
- package/.agents/skills/geo-fundamentals/SKILL.md +183 -0
- package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agents/skills/git-pro/SKILL.md +476 -0
- package/.agents/skills/github-operations/SKILL.md +370 -0
- package/.agents/skills/gpt-taste/SKILL.md +125 -0
- package/.agents/skills/gsap-core/SKILL.md +352 -0
- package/.agents/skills/gsap-frameworks/SKILL.md +243 -0
- package/.agents/skills/gsap-performance/SKILL.md +169 -0
- package/.agents/skills/gsap-plugins/SKILL.md +516 -0
- package/.agents/skills/gsap-react/SKILL.md +288 -0
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/.agents/skills/gsap-timeline/SKILL.md +197 -0
- package/.agents/skills/gsap-utils/SKILL.md +374 -0
- package/.agents/skills/harden/SKILL.md +130 -0
- package/.agents/skills/harness-protocol/SKILL.md +115 -0
- package/.agents/skills/i18n-localization/SKILL.md +209 -0
- package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agents/skills/impeccable/SKILL.md +127 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/.agents/skills/improve-ui/SKILL.md +145 -0
- package/.agents/skills/intelligent-routing/SKILL.md +283 -0
- package/.agents/skills/knowledge-graph/SKILL.md +146 -0
- package/.agents/skills/landing-page/SKILL.md +140 -0
- package/.agents/skills/lint-and-validate/SKILL.md +299 -0
- package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agents/skills/llm-engineering/SKILL.md +435 -0
- package/.agents/skills/local-first/SKILL.md +213 -0
- package/.agents/skills/local-first-architecture/SKILL.md +137 -0
- package/.agents/skills/lottie-animation/SKILL.md +137 -0
- package/.agents/skills/marquee-loop/SKILL.md +147 -0
- package/.agents/skills/masked-reveal/SKILL.md +305 -0
- package/.agents/skills/mcp-builder/SKILL.md +180 -0
- package/.agents/skills/micro-interaction/SKILL.md +321 -0
- package/.agents/skills/mobile-design/SKILL.md +320 -0
- package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agents/skills/monorepo-management/SKILL.md +370 -0
- package/.agents/skills/morphing-icons/SKILL.md +423 -0
- package/.agents/skills/motion-engineering/SKILL.md +272 -0
- package/.agents/skills/nextjs-react-expert/SKILL.md +293 -0
- package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agents/skills/nodejs-best-practices/SKILL.md +617 -0
- package/.agents/skills/observability/SKILL.md +378 -0
- package/.agents/skills/opentelemetry-observability/SKILL.md +125 -0
- package/.agents/skills/page-transition-animation/SKILL.md +161 -0
- package/.agents/skills/parallel-agents/SKILL.md +185 -0
- package/.agents/skills/performance-profiling/SKILL.md +305 -0
- package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agents/skills/plan-writing/SKILL.md +202 -0
- package/.agents/skills/platform-engineer/SKILL.md +183 -0
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/.agents/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +224 -0
- package/.agents/skills/polish/SKILL.md +114 -0
- package/.agents/skills/powershell-windows/SKILL.md +197 -0
- package/.agents/skills/pricing-page/SKILL.md +123 -0
- package/.agents/skills/product-aware-heuristics/SKILL.md +465 -0
- package/.agents/skills/progressive-blur/SKILL.md +155 -0
- package/.agents/skills/project-idioms/SKILL.md +166 -0
- package/.agents/skills/property-based-testing/SKILL.md +124 -0
- package/.agents/skills/python-patterns/SKILL.md +295 -0
- package/.agents/skills/python-pro/SKILL.md +380 -0
- package/.agents/skills/quieter/SKILL.md +124 -0
- package/.agents/skills/react-doctor/SKILL.md +126 -0
- package/.agents/skills/react-specialist/SKILL.md +355 -0
- package/.agents/skills/readme-builder/SKILL.md +345 -0
- package/.agents/skills/realtime-patterns/SKILL.md +358 -0
- package/.agents/skills/red-team-tactics/SKILL.md +266 -0
- package/.agents/skills/redesign-skill/SKILL.md +121 -0
- package/.agents/skills/review-animations/SKILL.md +120 -0
- package/.agents/skills/review-animations/STANDARDS.md +87 -0
- package/.agents/skills/rust-pro/SKILL.md +727 -0
- package/.agents/skills/seo-fundamentals/SKILL.md +214 -0
- package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.agents/skills/server-management/SKILL.md +253 -0
- package/.agents/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/.agents/skills/shape/SKILL.md +131 -0
- package/.agents/skills/skill-creator/SKILL.md +136 -0
- package/.agents/skills/soft-skill/SKILL.md +128 -0
- package/.agents/skills/sounds-on-the-web/SKILL.md +151 -0
- package/.agents/skills/sql-pro/SKILL.md +699 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/.agents/skills/svg-animation/SKILL.md +431 -0
- package/.agents/skills/swiftui-expert/SKILL.md +239 -0
- package/.agents/skills/swiss-design/SKILL.md +119 -0
- package/.agents/skills/system-design-pro/SKILL.md +393 -0
- package/.agents/skills/systematic-debugging/SKILL.md +198 -0
- package/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.agents/skills/tailwind-patterns/SKILL.md +658 -0
- package/.agents/skills/taste-skill/SKILL.md +127 -0
- package/.agents/skills/tdd-workflow/SKILL.md +179 -0
- package/.agents/skills/test-result-analyzer/SKILL.md +345 -0
- package/.agents/skills/testing-patterns/SKILL.md +609 -0
- package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/.agents/skills/thinking-protocol/SKILL.md +97 -0
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/.agents/skills/transitions-dev/SKILL.md +165 -0
- package/.agents/skills/trend-researcher/SKILL.md +273 -0
- package/.agents/skills/typescript-advanced/SKILL.md +381 -0
- package/.agents/skills/typeset/SKILL.md +135 -0
- package/.agents/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/.agents/skills/ui-skill-packs/SKILL.md +132 -0
- package/.agents/skills/ui-skills-root/SKILL.md +144 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/.agents/skills/ui-ux-researcher/SKILL.md +274 -0
- package/.agents/skills/vector-search-pgvector/SKILL.md +144 -0
- package/.agents/skills/verification-before-completion/SKILL.md +178 -0
- package/.agents/skills/vue-expert/SKILL.md +334 -0
- package/.agents/skills/vulnerability-scanner/SKILL.md +453 -0
- package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.agents/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +124 -0
- package/.agents/skills/web-quality-audit/SKILL.md +122 -0
- package/.agents/skills/webapp-testing/SKILL.md +203 -0
- package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agents/skills/webgpu-performance/SKILL.md +163 -0
- package/.agents/skills/whimsy-injector/SKILL.md +380 -0
- package/.agents/skills/workflow-optimizer/SKILL.md +263 -0
- package/.agents/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.claude-plugin/marketplace.json +14 -0
- package/.claude-plugin/plugin.json +26 -0
- package/.codex-plugin/plugin.json +45 -0
- package/.cursor-plugin/plugin.json +26 -0
- package/.devin-plugin/plugin.json +14 -0
- package/.hermes-plugin/__init__.py +102 -0
- package/.hermes-plugin/plugin.yaml +6 -0
- package/.kimi-plugin/plugin.json +38 -0
- package/.opencode/INSTALL.md +41 -0
- package/.opencode/plugins/tribunal.js +101 -0
- package/.opencode/rules.md +258 -0
- package/.pi/extensions/tribunal.ts +133 -0
- package/AGENTS.md +91 -0
- package/CLAUDE.md +442 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +273 -251
- package/bin/adapter-install.js +40 -16
- package/bin/mcp-server.js +426 -0
- package/bin/proxy-server.js +18 -9
- package/bin/spawn-agent.js +9 -3
- package/bin/wrapper.js +20 -4
- package/dist/browser/audit.js +229 -0
- package/dist/browser/case_bridge.js +189 -0
- package/dist/browser/cdp.js +513 -0
- package/dist/browser/compare.js +110 -0
- package/dist/browser/discovery.js +140 -0
- package/dist/browser/idpi.js +142 -0
- package/dist/browser/index.js +89 -0
- package/dist/browser/launcher.js +154 -0
- package/dist/browser/sentinel.js +202 -0
- package/dist/browser/synapse.js +251 -0
- package/dist/browser/trimmer.js +210 -0
- package/dist/cli.js +377 -355
- package/dist/commands/audit-web.js +112 -0
- package/dist/commands/browse.js +56 -0
- package/dist/commands/compare-web.js +61 -0
- package/dist/commands/deconstruct.js +58 -0
- package/dist/commands/heal.js +99 -0
- package/dist/commands/init.js +10 -1
- package/dist/commands/sdd.js +229 -0
- package/dist/commands/uninstall.js +12 -0
- package/dist/esm/index.mjs +142 -142
- package/dist/index.d.ts +349 -343
- package/gemini-extension.json +6 -0
- package/hooks/hooks-cursor.json +10 -0
- package/hooks/hooks.json +10 -0
- package/hooks/session-start.js +77 -0
- package/marketplace.json +14 -0
- package/package.json +176 -146
- package/plugin.json +26 -0
- package/scripts/audit_skill_sdo.js +87 -0
- package/scripts/clean-pycache.js +42 -0
- package/scripts/context_compiler.js +944 -0
- package/scripts/modernize_skills.js +254 -0
- package/scripts/package-cores.js +113 -0
- package/scripts/skill_enhancement_engine.js +473 -0
- package/scripts/sync-skills.js +61 -0
- package/skills/12-principles-of-animation/SKILL.md +126 -0
- package/skills/60fps-animation/SKILL.md +164 -0
- package/skills/accessible-animation/SKILL.md +266 -0
- package/skills/adapt/SKILL.md +131 -0
- package/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/skills/agent-organizer/SKILL.md +192 -0
- package/skills/agentic-patterns/SKILL.md +356 -0
- package/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/skills/ai-app-hardening/SKILL.md +125 -0
- package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/skills/animation-on-scroll/SKILL.md +267 -0
- package/skills/animation-systems/SKILL.md +273 -0
- package/skills/antfu-conventions/SKILL.md +129 -0
- package/skills/api-patterns/SKILL.md +293 -0
- package/skills/api-patterns/scripts/api_validator.py +211 -0
- package/skills/api-security-auditor/SKILL.md +230 -0
- package/skills/app-builder/SKILL.md +610 -0
- package/skills/app-builder/templates/SKILL.md +108 -0
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/skills/appflow-wireframe/SKILL.md +173 -0
- package/skills/apple-design/SKILL.md +164 -0
- package/skills/architecture/SKILL.md +263 -0
- package/skills/audit-and-fix/SKILL.md +136 -0
- package/skills/authentication-best-practices/SKILL.md +232 -0
- package/skills/backend-security-expert/SKILL.md +148 -0
- package/skills/baseline-ui/SKILL.md +130 -0
- package/skills/bash-linux/SKILL.md +214 -0
- package/skills/behavioral-modes/SKILL.md +275 -0
- package/skills/better-colors/SKILL.md +191 -0
- package/skills/better-typography/SKILL.md +164 -0
- package/skills/better-ui/SKILL.md +193 -0
- package/skills/bolder/SKILL.md +124 -0
- package/skills/brainstorming/SKILL.md +534 -0
- package/skills/browser-audit/SKILL.md +170 -0
- package/skills/browser-native-ai/SKILL.md +147 -0
- package/skills/build-primitive/SKILL.md +125 -0
- package/skills/building-native-ui/SKILL.md +237 -0
- package/skills/cicd-pro/SKILL.md +487 -0
- package/skills/clarify/SKILL.md +130 -0
- package/skills/clean-code/SKILL.md +442 -0
- package/skills/cloud-architect/SKILL.md +484 -0
- package/skills/cobejs/SKILL.md +145 -0
- package/skills/code-review-checklist/SKILL.md +238 -0
- package/skills/codebase-design/SKILL.md +151 -0
- package/skills/colorize/SKILL.md +132 -0
- package/skills/compact-landing/SKILL.md +125 -0
- package/skills/company-logos/SKILL.md +129 -0
- package/skills/config-validator/SKILL.md +200 -0
- package/skills/containerization-pro/SKILL.md +497 -0
- package/skills/context-engineering-pro/SKILL.md +136 -0
- package/skills/create-design-md/SKILL.md +167 -0
- package/skills/critique/SKILL.md +154 -0
- package/skills/csharp-developer/SKILL.md +553 -0
- package/skills/data-validation-schemas/SKILL.md +372 -0
- package/skills/database-design/SKILL.md +294 -0
- package/skills/database-design/scripts/schema_validator.py +172 -0
- package/skills/delight/SKILL.md +121 -0
- package/skills/deployment-procedures/SKILL.md +207 -0
- package/skills/design-lab/SKILL.md +117 -0
- package/skills/devops-engineer/SKILL.md +380 -0
- package/skills/devops-incident-responder/SKILL.md +178 -0
- package/skills/diagnosing-bugs/SKILL.md +247 -0
- package/skills/distill/SKILL.md +120 -0
- package/skills/documentation-templates/SKILL.md +326 -0
- package/skills/domain-modeling/SKILL.md +136 -0
- package/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/skills/edge-ai-mobile/SKILL.md +116 -0
- package/skills/edge-computing/SKILL.md +218 -0
- package/skills/emil-design-eng/SKILL.md +209 -0
- package/skills/error-resilience/SKILL.md +478 -0
- package/skills/expo-router-v4/SKILL.md +146 -0
- package/skills/extract-design-system/SKILL.md +195 -0
- package/skills/fabel-protocol/SKILL.md +352 -0
- package/skills/fixing-accessibility/SKILL.md +162 -0
- package/skills/fixing-metadata/SKILL.md +158 -0
- package/skills/fixing-motion-performance/SKILL.md +153 -0
- package/skills/framer-motion-expert/SKILL.md +312 -0
- package/skills/frontend-design/SKILL.md +178 -0
- package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/skills/frontend-security-expert/SKILL.md +131 -0
- package/skills/game-design-expert/SKILL.md +167 -0
- package/skills/game-engineering-expert/SKILL.md +183 -0
- package/skills/generative-ui-expert/SKILL.md +175 -0
- package/skills/geo-fundamentals/SKILL.md +183 -0
- package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/skills/git-pro/SKILL.md +476 -0
- package/skills/github-operations/SKILL.md +370 -0
- package/skills/gpt-taste/SKILL.md +125 -0
- package/skills/gsap-core/SKILL.md +352 -0
- package/skills/gsap-frameworks/SKILL.md +243 -0
- package/skills/gsap-performance/SKILL.md +169 -0
- package/skills/gsap-plugins/SKILL.md +516 -0
- package/skills/gsap-react/SKILL.md +288 -0
- package/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/skills/gsap-timeline/SKILL.md +197 -0
- package/skills/gsap-utils/SKILL.md +374 -0
- package/skills/harden/SKILL.md +130 -0
- package/skills/harness-protocol/SKILL.md +115 -0
- package/skills/i18n-localization/SKILL.md +209 -0
- package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/skills/impeccable/SKILL.md +127 -0
- package/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/skills/improve-ui/SKILL.md +145 -0
- package/skills/intelligent-routing/SKILL.md +283 -0
- package/skills/knowledge-graph/SKILL.md +146 -0
- package/skills/landing-page/SKILL.md +140 -0
- package/skills/lint-and-validate/SKILL.md +299 -0
- package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/skills/llm-engineering/SKILL.md +435 -0
- package/skills/local-first/SKILL.md +213 -0
- package/skills/local-first-architecture/SKILL.md +137 -0
- package/skills/lottie-animation/SKILL.md +137 -0
- package/skills/marquee-loop/SKILL.md +147 -0
- package/skills/masked-reveal/SKILL.md +305 -0
- package/skills/mcp-builder/SKILL.md +180 -0
- package/skills/micro-interaction/SKILL.md +321 -0
- package/skills/mobile-design/SKILL.md +320 -0
- package/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/skills/monorepo-management/SKILL.md +370 -0
- package/skills/morphing-icons/SKILL.md +423 -0
- package/skills/motion-engineering/SKILL.md +272 -0
- package/skills/nextjs-react-expert/SKILL.md +293 -0
- package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/skills/nodejs-best-practices/SKILL.md +617 -0
- package/skills/observability/SKILL.md +378 -0
- package/skills/opentelemetry-observability/SKILL.md +125 -0
- package/skills/page-transition-animation/SKILL.md +161 -0
- package/skills/parallel-agents/SKILL.md +185 -0
- package/skills/performance-profiling/SKILL.md +305 -0
- package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/skills/plan-writing/SKILL.md +202 -0
- package/skills/platform-engineer/SKILL.md +183 -0
- package/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/skills/playwright-best-practices/SKILL.md +224 -0
- package/skills/polish/SKILL.md +114 -0
- package/skills/powershell-windows/SKILL.md +197 -0
- package/skills/pricing-page/SKILL.md +123 -0
- package/skills/product-aware-heuristics/SKILL.md +465 -0
- package/skills/progressive-blur/SKILL.md +155 -0
- package/skills/project-idioms/SKILL.md +166 -0
- package/skills/property-based-testing/SKILL.md +124 -0
- package/skills/python-patterns/SKILL.md +295 -0
- package/skills/python-pro/SKILL.md +380 -0
- package/skills/quieter/SKILL.md +124 -0
- package/skills/react-doctor/SKILL.md +126 -0
- package/skills/react-specialist/SKILL.md +355 -0
- package/skills/readme-builder/SKILL.md +345 -0
- package/skills/realtime-patterns/SKILL.md +358 -0
- package/skills/red-team-tactics/SKILL.md +266 -0
- package/skills/redesign-skill/SKILL.md +121 -0
- package/skills/review-animations/SKILL.md +120 -0
- package/skills/review-animations/STANDARDS.md +87 -0
- package/skills/rust-pro/SKILL.md +727 -0
- package/skills/seo-fundamentals/SKILL.md +214 -0
- package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/skills/server-management/SKILL.md +253 -0
- package/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/skills/shape/SKILL.md +131 -0
- package/skills/skill-creator/SKILL.md +136 -0
- package/skills/soft-skill/SKILL.md +128 -0
- package/skills/sounds-on-the-web/SKILL.md +151 -0
- package/skills/sql-pro/SKILL.md +699 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/skills/svg-animation/SKILL.md +431 -0
- package/skills/swiftui-expert/SKILL.md +239 -0
- package/skills/swiss-design/SKILL.md +119 -0
- package/skills/system-design-pro/SKILL.md +393 -0
- package/skills/systematic-debugging/SKILL.md +198 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/tailwind-patterns/SKILL.md +658 -0
- package/skills/taste-skill/SKILL.md +127 -0
- package/skills/tdd-workflow/SKILL.md +179 -0
- package/skills/test-result-analyzer/SKILL.md +345 -0
- package/skills/testing-patterns/SKILL.md +609 -0
- package/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/skills/thinking-protocol/SKILL.md +97 -0
- package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/skills/transitions-dev/SKILL.md +165 -0
- package/skills/trend-researcher/SKILL.md +273 -0
- package/skills/typescript-advanced/SKILL.md +381 -0
- package/skills/typeset/SKILL.md +135 -0
- package/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/skills/ui-skill-packs/SKILL.md +132 -0
- package/skills/ui-skills-root/SKILL.md +144 -0
- package/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/skills/ui-ux-researcher/SKILL.md +274 -0
- package/skills/vector-search-pgvector/SKILL.md +144 -0
- package/skills/verification-before-completion/SKILL.md +178 -0
- package/skills/vue-expert/SKILL.md +334 -0
- package/skills/vulnerability-scanner/SKILL.md +453 -0
- package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/skills/web-design-guidelines/SKILL.md +124 -0
- package/skills/web-quality-audit/SKILL.md +122 -0
- package/skills/webapp-testing/SKILL.md +203 -0
- package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/skills/webgpu-performance/SKILL.md +163 -0
- package/skills/whimsy-injector/SKILL.md +380 -0
- package/skills/workflow-optimizer/SKILL.md +263 -0
- package/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
- package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
- package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
- package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
- package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
- package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: framer-motion-expert
|
|
3
|
+
description: Use when Framer Motion 12+ for React. Declarative animations, layout transitions, gestures, scroll-linked motion, AnimatePresence, useAnimate, LazyMotion. Use when building component animations, page transitions, shared layout animations, or gesture-driven UI.
|
|
4
|
+
version: 5.0.0
|
|
5
|
+
last-updated: 2026-09-13
|
|
6
|
+
skills:
|
|
7
|
+
- motion-engineering
|
|
8
|
+
- 60fps-animation
|
|
9
|
+
- accessible-animation
|
|
10
|
+
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
11
|
+
scripts-binding:
|
|
12
|
+
- .agent/scripts/lint_runner.js
|
|
13
|
+
- .agent/scripts/verify_all.js
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Framer Motion 12+ — Dense Reference
|
|
17
|
+
|
|
18
|
+
## Mandatory Pre-Flight Context Inspection
|
|
19
|
+
|
|
20
|
+
Before generating, refactoring, or reviewing code in the `framer-motion-expert` domain, inspect these 5 critical parameters:
|
|
21
|
+
|
|
22
|
+
1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
|
|
23
|
+
2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
|
|
24
|
+
3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
|
|
25
|
+
4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
|
|
26
|
+
5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).
|
|
27
|
+
|
|
28
|
+
## Activation Boundaries
|
|
29
|
+
|
|
30
|
+
- **Activate when:** Use when Framer Motion 12+ for React. Declarative animations, layout transitions, gestures, scroll-linked motion, AnimatePresence, useAnimate, LazyMotion. Use when building component animations, page transitions, shared layout animations, or gesture-driven UI.
|
|
31
|
+
- **DO NOT activate when:** The task falls outside the `framer-motion-expert` domain or is managed by a different dedicated specialist.
|
|
32
|
+
|
|
33
|
+
## 🔁 Multi-Pass Execution Protocol
|
|
34
|
+
|
|
35
|
+
Execute all non-trivial tasks through this 7-pass cognitive loop:
|
|
36
|
+
|
|
37
|
+
| Pass | Phase | Core Action |
|
|
38
|
+
|:---|:---|:---|
|
|
39
|
+
| **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. |
|
|
40
|
+
| **Pass 2** | **Plan** | Decompose the task into smallest logical steps; map dependencies and required tool calls. |
|
|
41
|
+
| **Pass 3** | **Execute** | Implement the solution with production-grade craft, zero placeholders, and strict typing. |
|
|
42
|
+
| **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. |
|
|
43
|
+
| **Pass 5** | **Attack** | Perform an adversarial review searching for edge-case failures, race conditions, and traps. |
|
|
44
|
+
| **Pass 6** | **Improve** | Eliminate discovered friction, optimize performance, and harden error boundaries. |
|
|
45
|
+
| **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Hallucination Traps (Read First)
|
|
63
|
+
|
|
64
|
+
- ❌ `<Motion>` (capital M) → ✅ `motion.div` (lowercase dot notation)
|
|
65
|
+
- ❌ `motion()` wrapper function → ✅ `motion.div`, `motion.span`, etc.
|
|
66
|
+
- ❌ `exitBeforeEnter` prop → ✅ `mode="wait"` on `<AnimatePresence>` (removed in FM7+)
|
|
67
|
+
- ❌ `exit` works without `<AnimatePresence>` → ✅ REQUIRES AnimatePresence wrapper
|
|
68
|
+
- ❌ `<AnimatePresence>` children without unique `key` → ✅ ALWAYS set `key`
|
|
69
|
+
- ❌ `stiffness + damping` AND `duration + bounce` together → ✅ pick ONE pair
|
|
70
|
+
- ❌ `m.div` without `<LazyMotion>` wrapper → ✅ REQUIRES LazyMotion parent
|
|
71
|
+
- ❌ `layout` animations with `domAnimation` feature set → ✅ requires `domMax`
|
|
72
|
+
- ❌ Force-animating `width`/`height`/`top`/`left` → ✅ use `x`,`y`,`scale`,`opacity` (GPU)
|
|
73
|
+
- ❌ `viewport.once` defaults to true → ✅ defaults to **false** — add `once: true` for entrance anims
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Core Primitives
|
|
78
|
+
|
|
79
|
+
### `motion.X` / Declarative Animation
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
import { motion } from 'framer-motion';
|
|
83
|
+
<motion.div
|
|
84
|
+
initial={{ opacity: 0, y: 20 }}
|
|
85
|
+
animate={{ opacity: 1, y: 0 }}
|
|
86
|
+
exit={{ opacity: 0, y: -20 }}
|
|
87
|
+
transition={{ duration: 0.3, ease: 'easeOut' }}
|
|
88
|
+
/>;
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Variants (Stagger / Orchestration)
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
const container = {
|
|
95
|
+
hidden: {},
|
|
96
|
+
visible: { transition: { staggerChildren: 0.08, delayChildren: 0.1 } },
|
|
97
|
+
};
|
|
98
|
+
const item = {
|
|
99
|
+
hidden: { opacity: 0, y: 20, filter: 'blur(4px)' },
|
|
100
|
+
visible: { opacity: 1, y: 0, filter: 'blur(0px)', transition: { duration: 0.4 } },
|
|
101
|
+
};
|
|
102
|
+
<motion.ul variants={container} initial="hidden" animate="visible">
|
|
103
|
+
{list.map(e => (
|
|
104
|
+
<motion.li key={e.id} variants={item}>
|
|
105
|
+
{e.name}
|
|
106
|
+
</motion.li>
|
|
107
|
+
))}
|
|
108
|
+
</motion.ul>;
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Transitions
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
// Tween (default)
|
|
115
|
+
transition={{ duration: 0.5, ease: "easeInOut", delay: 0.2, repeat: Infinity, repeatType: "reverse" }}
|
|
116
|
+
// Spring (physics)
|
|
117
|
+
transition={{ type: "spring", stiffness: 300, damping: 20 }} // OR use duration+bounce, not both
|
|
118
|
+
transition={{ type: "spring", duration: 0.8, bounce: 0.25 }}
|
|
119
|
+
// Per-property
|
|
120
|
+
transition={{ x: { type: "spring", stiffness: 300 }, opacity: { duration: 0.2 } }}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Gestures
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
// Hover/Tap/Focus
|
|
129
|
+
<motion.button
|
|
130
|
+
whileHover={{ scale: 1.05 }}
|
|
131
|
+
whileTap={{ scale: 0.95 }}
|
|
132
|
+
whileFocus={{ boxShadow: "0 0 0 3px rgba(66,153,225,0.6)" }}
|
|
133
|
+
transition={{ type: "spring", stiffness: 400, damping: 15 }}
|
|
134
|
+
/>
|
|
135
|
+
// Drag
|
|
136
|
+
<motion.div
|
|
137
|
+
drag="x" // "x" | "y" | true
|
|
138
|
+
dragConstraints={{ left: -100, right: 100 }}
|
|
139
|
+
dragElastic={0.2} // 0=hard stop, 1=free
|
|
140
|
+
dragMomentum={true}
|
|
141
|
+
dragSnapToOrigin
|
|
142
|
+
/>
|
|
143
|
+
// Scroll-triggered
|
|
144
|
+
<motion.div
|
|
145
|
+
initial={{ opacity: 0, y: 50 }}
|
|
146
|
+
whileInView={{ opacity: 1, y: 0 }}
|
|
147
|
+
viewport={{ once: true, amount: 0.3 }} // ← once: true is almost always what you want
|
|
148
|
+
/>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Layout Animations
|
|
154
|
+
|
|
155
|
+
```tsx
|
|
156
|
+
// layout prop — auto-animates position/size changes
|
|
157
|
+
<motion.div layout transition={{ type: "spring", stiffness: 200 }}>
|
|
158
|
+
{/* layout="position" = only position, layout="size" = only size */}
|
|
159
|
+
</motion.div>
|
|
160
|
+
|
|
161
|
+
// layoutId — shared element transition (morph between renders)
|
|
162
|
+
// List thumbnail → expanded modal:
|
|
163
|
+
<motion.div key={item.id} layoutId={`card-${item.id}`} /> // in list
|
|
164
|
+
<motion.div layoutId={`card-${selectedId}`} className="modal" /> // in modal
|
|
165
|
+
// ❌ TRAP: Cross-tree layoutId requires <LayoutGroup> wrapper
|
|
166
|
+
import { LayoutGroup } from "framer-motion";
|
|
167
|
+
<LayoutGroup><Sidebar /><MainContent /></LayoutGroup>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### AnimatePresence
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
<AnimatePresence mode="sync">
|
|
174
|
+
{' '}
|
|
175
|
+
{/* "sync"|"wait"|"popLayout" */}
|
|
176
|
+
{items.map(item => (
|
|
177
|
+
<motion.div
|
|
178
|
+
key={item.id}
|
|
179
|
+
/* ← REQUIRED */ initial={{ opacity: 0, height: 0 }}
|
|
180
|
+
animate={{ opacity: 1, height: 'auto' }}
|
|
181
|
+
exit={{ opacity: 0, height: 0 }}
|
|
182
|
+
/>
|
|
183
|
+
))}
|
|
184
|
+
</AnimatePresence>
|
|
185
|
+
// mode="wait" — waits for exit before entering
|
|
186
|
+
// initial={false} on AnimatePresence — skip first-render animation
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Scroll Animations
|
|
192
|
+
|
|
193
|
+
```tsx
|
|
194
|
+
import { useScroll, useTransform } from 'framer-motion';
|
|
195
|
+
// Page scroll progress (0–1)
|
|
196
|
+
const { scrollYProgress } = useScroll();
|
|
197
|
+
const y = useTransform(scrollYProgress, [0, 1], [0, -200]);
|
|
198
|
+
const opacity = useTransform(scrollYProgress, [0, 0.5], [1, 0]);
|
|
199
|
+
<motion.div style={{ y, opacity }} />;
|
|
200
|
+
|
|
201
|
+
// Element-scoped scroll
|
|
202
|
+
const ref = useRef(null);
|
|
203
|
+
const { scrollYProgress } = useScroll({ target: ref, offset: ['start end', 'end start'] });
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Hooks
|
|
209
|
+
|
|
210
|
+
### `useAnimate` — Imperative sequences
|
|
211
|
+
|
|
212
|
+
```tsx
|
|
213
|
+
import { useAnimate, stagger } from 'framer-motion';
|
|
214
|
+
const [scope, animate] = useAnimate(); // ← returns [scope, animate] NOT [ref, controls]
|
|
215
|
+
await animate('.item', { opacity: 1 }, { delay: stagger(0.1) });
|
|
216
|
+
<div ref={scope}>...</div>;
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### `useMotionValue` + `useTransform` — No re-renders
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
const x = useMotionValue(0);
|
|
223
|
+
const rotateY = useTransform(x, [-200, 200], [-45, 45]);
|
|
224
|
+
// ✅ useMotionValue does NOT trigger React re-renders — key perf advantage over useState
|
|
225
|
+
<motion.div style={{ x, rotateY }} drag="x" />;
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### `useSpring` / `useVelocity`
|
|
229
|
+
|
|
230
|
+
```tsx
|
|
231
|
+
const springX = useSpring(x, { stiffness: 300, damping: 30 });
|
|
232
|
+
const xVel = useVelocity(x);
|
|
233
|
+
const skewX = useTransform(xVel, [-1000, 0, 1000], [-15, 0, 15]);
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Performance & Bundle
|
|
239
|
+
|
|
240
|
+
```tsx
|
|
241
|
+
// LazyMotion — ~5KB vs ~30KB full bundle
|
|
242
|
+
import { LazyMotion, domAnimation, m } from 'framer-motion';
|
|
243
|
+
// domAnimation ≈ 5KB | domMax ≈ 20KB (needed for layout/drag)
|
|
244
|
+
<LazyMotion features={domAnimation}>
|
|
245
|
+
<m.div animate={{ opacity: 1 }} />
|
|
246
|
+
</LazyMotion>;
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Accessibility
|
|
250
|
+
|
|
251
|
+
```tsx
|
|
252
|
+
import { useReducedMotion } from 'framer-motion';
|
|
253
|
+
const reduce = useReducedMotion();
|
|
254
|
+
// opacity/color: always safe | position/scale/rotation: must be disabled when reduce=true
|
|
255
|
+
<motion.div
|
|
256
|
+
animate={{ x: reduce ? 0 : 100, opacity: 1 }}
|
|
257
|
+
transition={{ duration: reduce ? 0 : 0.5 }}
|
|
258
|
+
/>;
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Rules
|
|
262
|
+
|
|
263
|
+
- ✅ Animate: `x`, `y`, `scale`, `rotation`, `opacity` (GPU composited)
|
|
264
|
+
- ❌ Never animate: `width`, `height`, `top`, `left`, `padding`, `margin` (causes layout thrashing)
|
|
265
|
+
- ✅ `useMotionValue` for animation-driven values — never `useState`
|
|
266
|
+
- ❌ Nest `AnimatePresence` only when necessary — each adds reconciler overhead
|
|
267
|
+
- `"use client"` required in Next.js — `motion.div` cannot run in Server Components
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 🚨 Edge-Case & Failure Mode Matrix
|
|
272
|
+
|
|
273
|
+
| Scenario | Risk | Mitigation Strategy |
|
|
274
|
+
|:---|:---|:---|
|
|
275
|
+
| **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
|
|
276
|
+
| **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
|
|
277
|
+
| **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
|
|
278
|
+
| **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
|
|
279
|
+
| **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 🤖 LLM-Specific Traps Table
|
|
284
|
+
|
|
285
|
+
| Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
|
|
286
|
+
|:---|:---|:---|
|
|
287
|
+
| **The Instant Pop Trap** | Conditionally unmounting elements without animated interpolation | Use AnimatePresence or coordinate morphs with continuous geometry |
|
|
288
|
+
| **Layout Thrashing** | Animating width, height, top, or left inside animation loops | Animate composite-only transform (translate3d, scale) and opacity |
|
|
289
|
+
| **Sluggish Duration** | Setting micro-interaction transitions to 600ms+ causing interface lag | Cap interactive feedback at 160ms–240ms with snappy ease-out curves |
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 🏛️ Tribunal Verification & Guardrails
|
|
294
|
+
|
|
295
|
+
**Active Reviewers:** `frontend-reviewer` · `motion-reviewer` · `ui-ux-auditor`
|
|
296
|
+
**Slash Command:** `/review` or `/tribunal-full`
|
|
297
|
+
|
|
298
|
+
### ✅ Pre-Flight Self-Audit Checklist
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
✅ Does animation maintain 60fps/120fps using transform and opacity?
|
|
302
|
+
✅ Is optical mass conserved across state interpolations without volume collapse?
|
|
303
|
+
✅ Is duration capped within micro-interaction budgets (160ms–280ms)?
|
|
304
|
+
✅ Is prefers-reduced-motion respected with graceful instant fallbacks?
|
|
305
|
+
✅ Did I prevent layout thrashing and continuous geometry mutations?
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
309
|
+
|
|
310
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
311
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
312
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Use when Design engineering principles for React/Next.js. Relative color syntax (OKLCH), spatial grid math, fluid container queries, and contrast validation.
|
|
4
|
+
version: 5.0.0
|
|
5
|
+
last-updated: 2026-09-13
|
|
6
|
+
skills:
|
|
7
|
+
- baseline-ui
|
|
8
|
+
- better-colors
|
|
9
|
+
- better-ui
|
|
10
|
+
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
11
|
+
scripts-binding:
|
|
12
|
+
- .agent/scripts/lint_runner.js
|
|
13
|
+
- .agent/scripts/verify_all.js
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Frontend Design — Technical Spacing & Color Science
|
|
17
|
+
|
|
18
|
+
## Mandatory Pre-Flight Context Inspection
|
|
19
|
+
|
|
20
|
+
Before generating, refactoring, or reviewing code in the `frontend-design` domain, inspect these 5 critical parameters:
|
|
21
|
+
|
|
22
|
+
1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
|
|
23
|
+
2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
|
|
24
|
+
3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
|
|
25
|
+
4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
|
|
26
|
+
5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).
|
|
27
|
+
|
|
28
|
+
## Activation Boundaries
|
|
29
|
+
|
|
30
|
+
- **Activate when:** Use when Design engineering principles for React/Next.js. Relative color syntax (OKLCH), spatial grid math, fluid container queries, and contrast validation.
|
|
31
|
+
- **DO NOT activate when:** The task falls outside the `frontend-design` domain or is managed by a different dedicated specialist.
|
|
32
|
+
|
|
33
|
+
## 🔁 Multi-Pass Execution Protocol
|
|
34
|
+
|
|
35
|
+
Execute all non-trivial tasks through this 7-pass cognitive loop:
|
|
36
|
+
|
|
37
|
+
| Pass | Phase | Core Action |
|
|
38
|
+
|:---|:---|:---|
|
|
39
|
+
| **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. |
|
|
40
|
+
| **Pass 2** | **Plan** | Decompose the task into smallest logical steps; map dependencies and required tool calls. |
|
|
41
|
+
| **Pass 3** | **Execute** | Implement the solution with production-grade craft, zero placeholders, and strict typing. |
|
|
42
|
+
| **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. |
|
|
43
|
+
| **Pass 5** | **Attack** | Perform an adversarial review searching for edge-case failures, race conditions, and traps. |
|
|
44
|
+
| **Pass 6** | **Improve** | Eliminate discovered friction, optimize performance, and harden error boundaries. |
|
|
45
|
+
| **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 1. Relative Color Syntax & OKLCH Theme Tokens
|
|
57
|
+
|
|
58
|
+
Perceptually uniform color science ensures stable contrast. Use CSS **Relative Color Syntax** to derive state colors dynamically:
|
|
59
|
+
|
|
60
|
+
```css
|
|
61
|
+
:root {
|
|
62
|
+
/* base color values */
|
|
63
|
+
--color-primary: oklch(62% 0.21 250); /* Brand electric blue */
|
|
64
|
+
|
|
65
|
+
/* Deriving hover states dynamically: reduce lightness, preserve chroma and hue */
|
|
66
|
+
--color-primary-hover: oklch(from var(--color-primary) calc(l - 0.08) c h);
|
|
67
|
+
--color-primary-active: oklch(from var(--color-primary) calc(l - 0.12) c h);
|
|
68
|
+
|
|
69
|
+
/* Backgrounds */
|
|
70
|
+
--bg-surface: oklch(100% 0 0);
|
|
71
|
+
--text-main: oklch(20% 0.02 250);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
[data-theme='dark'] {
|
|
75
|
+
--bg-surface: oklch(14% 0.008 250);
|
|
76
|
+
--text-main: oklch(93% 0.003 250);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 2. Spatial Grid Math & Radius Tokens
|
|
83
|
+
|
|
84
|
+
Enforce an 8px spatial grid calculated mathematically to ensure alignment precision:
|
|
85
|
+
|
|
86
|
+
```css
|
|
87
|
+
:root {
|
|
88
|
+
--base-grid: 8px;
|
|
89
|
+
|
|
90
|
+
--space-xs: calc(var(--base-grid) * 0.5); /* 4px - icon gaps */
|
|
91
|
+
--space-sm: calc(var(--base-grid) * 1); /* 8px - tag paddings */
|
|
92
|
+
--space-md: calc(var(--base-grid) * 2); /* 16px - inputs */
|
|
93
|
+
--space-lg: calc(var(--base-grid) * 3); /* 24px - card padding */
|
|
94
|
+
--space-xl: calc(var(--base-grid) * 4); /* 32px - section gaps */
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Nested Radius Formula
|
|
99
|
+
|
|
100
|
+
Ensure component inner borders track correctly:
|
|
101
|
+
`outer_radius = inner_radius + padding_inner`
|
|
102
|
+
If container padding is `16px` and inner content radius is `8px`, then container outer radius must be exactly `24px` (`8px + 16px`).
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 3. Responsive Layouts & Container Queries
|
|
107
|
+
|
|
108
|
+
Avoid viewport-level media queries for self-contained components. Use container queries to make components portable:
|
|
109
|
+
|
|
110
|
+
```css
|
|
111
|
+
.component-wrapper {
|
|
112
|
+
container-type: inline-size;
|
|
113
|
+
container-name: component;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@container component (min-width: 450px) {
|
|
117
|
+
.inner-layout {
|
|
118
|
+
display: grid;
|
|
119
|
+
grid-template-columns: repeat(2, 1fr);
|
|
120
|
+
gap: var(--space-md);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 4. APCA Contrast Guidelines
|
|
128
|
+
|
|
129
|
+
Ensure that typography meets the APCA Lc guidelines:
|
|
130
|
+
|
|
131
|
+
- Lc > 75 for body text elements.
|
|
132
|
+
- Lc > 60 for large titles and headings.
|
|
133
|
+
- Lc > 45 for secondary input labels and border guides.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 🚨 Edge-Case & Failure Mode Matrix
|
|
138
|
+
|
|
139
|
+
| Scenario | Risk | Mitigation Strategy |
|
|
140
|
+
|:---|:---|:---|
|
|
141
|
+
| **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
|
|
142
|
+
| **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
|
|
143
|
+
| **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
|
|
144
|
+
| **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
|
|
145
|
+
| **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 🤖 LLM-Specific Traps Table
|
|
150
|
+
|
|
151
|
+
| Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
|
|
152
|
+
|:---|:---|:---|
|
|
153
|
+
| **Uncontrolled Re-render Loop** | Mutating state inside render bodies or omitting hook dependencies | Wrap effects with explicit deps and isolate reactive derivations in useMemo |
|
|
154
|
+
| **Accessibility Neglect** | Interactive <div> without role="button", tabIndex, or onKeyDown | Use semantic <button> or provide ARIA role, keyboard handlers, and focus ring |
|
|
155
|
+
| **Layout Shift Flash** | Images/dynamic content without aspect-ratio or explicit dimensions | Enforce aspect-ratio or skeleton placeholders to guarantee zero CLS |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 🏛️ Tribunal Verification & Guardrails
|
|
160
|
+
|
|
161
|
+
**Active Reviewers:** `frontend-reviewer` · `type-safety` · `ui-ux-auditor` · `complexity-reviewer`
|
|
162
|
+
**Slash Command:** `/review` or `/tribunal-full`
|
|
163
|
+
|
|
164
|
+
### ✅ Pre-Flight Self-Audit Checklist
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
✅ Are all component props strictly typed with zero implicit "any"?
|
|
168
|
+
✅ Are responsive breakpoints, fluid typography, and optical balance verified?
|
|
169
|
+
✅ Is accessibility (ARIA labels, keyboard focus, contrast) validated?
|
|
170
|
+
✅ Are re-renders minimized and state lifecycles cleanly separated?
|
|
171
|
+
✅ Did I verify all imported UI components and icon sets actually exist?
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
175
|
+
|
|
176
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
177
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
178
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Accessibility Checker - WCAG compliance audit
|
|
4
|
+
Checks HTML files for accessibility issues.
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
python accessibility_checker.py <project_path>
|
|
8
|
+
|
|
9
|
+
Checks:
|
|
10
|
+
- Form labels
|
|
11
|
+
- ARIA attributes
|
|
12
|
+
- Color contrast hints
|
|
13
|
+
- Keyboard navigation
|
|
14
|
+
- Semantic HTML
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
import sys
|
|
18
|
+
import json
|
|
19
|
+
import re
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
from datetime import datetime
|
|
22
|
+
|
|
23
|
+
# Fix Windows console encoding
|
|
24
|
+
try:
|
|
25
|
+
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
26
|
+
except:
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def find_html_files(project_path: Path) -> list:
|
|
31
|
+
"""Find all HTML/JSX/TSX files."""
|
|
32
|
+
patterns = ['**/*.html', '**/*.jsx', '**/*.tsx']
|
|
33
|
+
skip_dirs = {'node_modules', '.next', 'dist', 'build', '.git'}
|
|
34
|
+
|
|
35
|
+
files = []
|
|
36
|
+
for pattern in patterns:
|
|
37
|
+
for f in project_path.glob(pattern):
|
|
38
|
+
if not any(skip in f.parts for skip in skip_dirs):
|
|
39
|
+
files.append(f)
|
|
40
|
+
|
|
41
|
+
return files[:50]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def check_accessibility(file_path: Path) -> list:
|
|
45
|
+
"""Check a single file for accessibility issues."""
|
|
46
|
+
issues = []
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
content = file_path.read_text(encoding='utf-8', errors='ignore')
|
|
50
|
+
|
|
51
|
+
# Check for form inputs without labels
|
|
52
|
+
inputs = re.findall(r'<input[^>]*>', content, re.IGNORECASE)
|
|
53
|
+
for inp in inputs:
|
|
54
|
+
if 'type="hidden"' not in inp.lower():
|
|
55
|
+
if 'aria-label' not in inp.lower() and 'id=' not in inp.lower():
|
|
56
|
+
issues.append("Input without label or aria-label")
|
|
57
|
+
break
|
|
58
|
+
|
|
59
|
+
# Check for buttons without accessible text
|
|
60
|
+
buttons = re.findall(r'<button[^>]*>[^<]*</button>', content, re.IGNORECASE)
|
|
61
|
+
for btn in buttons:
|
|
62
|
+
# Check if button has text content or aria-label
|
|
63
|
+
if 'aria-label' not in btn.lower():
|
|
64
|
+
text = re.sub(r'<[^>]+>', '', btn)
|
|
65
|
+
if not text.strip():
|
|
66
|
+
issues.append("Button without accessible text")
|
|
67
|
+
break
|
|
68
|
+
|
|
69
|
+
# Check for missing lang attribute
|
|
70
|
+
if '<html' in content.lower() and 'lang=' not in content.lower():
|
|
71
|
+
issues.append("Missing lang attribute on <html>")
|
|
72
|
+
|
|
73
|
+
# Check for missing skip link
|
|
74
|
+
if '<main' in content.lower() or '<body' in content.lower():
|
|
75
|
+
if 'skip' not in content.lower() and '#main' not in content.lower():
|
|
76
|
+
issues.append("Consider adding skip-to-main-content link")
|
|
77
|
+
|
|
78
|
+
# Check for click handlers without keyboard support
|
|
79
|
+
onclick_count = content.lower().count('onclick=')
|
|
80
|
+
onkeydown_count = content.lower().count('onkeydown=') + content.lower().count('onkeyup=')
|
|
81
|
+
if onclick_count > 0 and onkeydown_count == 0:
|
|
82
|
+
issues.append("onClick without keyboard handler (onKeyDown)")
|
|
83
|
+
|
|
84
|
+
# Check for tabIndex misuse
|
|
85
|
+
if 'tabindex=' in content.lower():
|
|
86
|
+
if 'tabindex="-1"' not in content.lower() and 'tabindex="0"' not in content.lower():
|
|
87
|
+
positive_tabindex = re.findall(r'tabindex="([1-9]\d*)"', content, re.IGNORECASE)
|
|
88
|
+
if positive_tabindex:
|
|
89
|
+
issues.append("Avoid positive tabIndex values")
|
|
90
|
+
|
|
91
|
+
# Check for autoplay media
|
|
92
|
+
if 'autoplay' in content.lower():
|
|
93
|
+
if 'muted' not in content.lower():
|
|
94
|
+
issues.append("Autoplay media should be muted")
|
|
95
|
+
|
|
96
|
+
# Check for role usage
|
|
97
|
+
if 'role="button"' in content.lower():
|
|
98
|
+
# Divs with role button should have tabindex
|
|
99
|
+
div_buttons = re.findall(r'<div[^>]*role="button"[^>]*>', content, re.IGNORECASE)
|
|
100
|
+
for div in div_buttons:
|
|
101
|
+
if 'tabindex' not in div.lower():
|
|
102
|
+
issues.append("role='button' without tabindex")
|
|
103
|
+
break
|
|
104
|
+
|
|
105
|
+
except Exception as e:
|
|
106
|
+
issues.append(f"Error reading file: {str(e)[:50]}")
|
|
107
|
+
|
|
108
|
+
return issues
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def main():
|
|
112
|
+
project_path = Path(sys.argv[1] if len(sys.argv) > 1 else ".").resolve()
|
|
113
|
+
|
|
114
|
+
print(f"\n{'='*60}")
|
|
115
|
+
print(f"[ACCESSIBILITY CHECKER] WCAG Compliance Audit")
|
|
116
|
+
print(f"{'='*60}")
|
|
117
|
+
print(f"Project: {project_path}")
|
|
118
|
+
print(f"Time: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
119
|
+
print("-"*60)
|
|
120
|
+
|
|
121
|
+
# Find HTML files
|
|
122
|
+
files = find_html_files(project_path)
|
|
123
|
+
print(f"Found {len(files)} HTML/JSX/TSX files")
|
|
124
|
+
|
|
125
|
+
if not files:
|
|
126
|
+
output = {
|
|
127
|
+
"script": "accessibility_checker",
|
|
128
|
+
"project": str(project_path),
|
|
129
|
+
"files_checked": 0,
|
|
130
|
+
"issues_found": 0,
|
|
131
|
+
"passed": True,
|
|
132
|
+
"message": "No HTML files found"
|
|
133
|
+
}
|
|
134
|
+
print(json.dumps(output, indent=2))
|
|
135
|
+
sys.exit(0)
|
|
136
|
+
|
|
137
|
+
# Check each file
|
|
138
|
+
all_issues = []
|
|
139
|
+
|
|
140
|
+
for f in files:
|
|
141
|
+
issues = check_accessibility(f)
|
|
142
|
+
if issues:
|
|
143
|
+
all_issues.append({
|
|
144
|
+
"file": str(f.name),
|
|
145
|
+
"issues": issues
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
# Summary
|
|
149
|
+
print("\n" + "="*60)
|
|
150
|
+
print("ACCESSIBILITY ISSUES")
|
|
151
|
+
print("="*60)
|
|
152
|
+
|
|
153
|
+
if all_issues:
|
|
154
|
+
for item in all_issues[:10]:
|
|
155
|
+
print(f"\n{item['file']}:")
|
|
156
|
+
for issue in item["issues"]:
|
|
157
|
+
print(f" - {issue}")
|
|
158
|
+
|
|
159
|
+
if len(all_issues) > 10:
|
|
160
|
+
print(f"\n... and {len(all_issues) - 10} more files with issues")
|
|
161
|
+
else:
|
|
162
|
+
print("No accessibility issues found!")
|
|
163
|
+
|
|
164
|
+
total_issues = sum(len(item["issues"]) for item in all_issues)
|
|
165
|
+
# Accessibility issues are important but not blocking
|
|
166
|
+
passed = total_issues < 5 # Allow minor issues
|
|
167
|
+
|
|
168
|
+
output = {
|
|
169
|
+
"script": "accessibility_checker",
|
|
170
|
+
"project": str(project_path),
|
|
171
|
+
"files_checked": len(files),
|
|
172
|
+
"files_with_issues": len(all_issues),
|
|
173
|
+
"issues_found": total_issues,
|
|
174
|
+
"passed": passed
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
print("\n" + json.dumps(output, indent=2))
|
|
178
|
+
|
|
179
|
+
sys.exit(0 if passed else 1)
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
if __name__ == "__main__":
|
|
183
|
+
main()
|