tribunal-kit 6.0.1 → 7.0.0
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 +9 -6
- package/.agent/agents/accessibility-reviewer.md +23 -16
- package/.agent/agents/ai-code-reviewer.md +25 -21
- package/.agent/agents/anti-pattern-reviewer.md +12 -7
- package/.agent/agents/api-architect.md +1 -0
- package/.agent/agents/backend-specialist.md +23 -22
- package/.agent/agents/cloud-engineer.md +1 -0
- package/.agent/agents/code-archaeologist.md +1 -0
- package/.agent/agents/complexity-reviewer.md +10 -7
- package/.agent/agents/database-architect.md +3 -2
- package/.agent/agents/db-latency-auditor.md +6 -2
- package/.agent/agents/debugger.md +3 -2
- package/.agent/agents/dependency-reviewer.md +1 -0
- package/.agent/agents/devops-engineer.md +9 -8
- package/.agent/agents/documentation-writer.md +6 -5
- package/.agent/agents/explorer-agent.md +1 -0
- package/.agent/agents/frontend-reviewer.md +21 -17
- package/.agent/agents/frontend-specialist.md +23 -20
- package/.agent/agents/game-developer.md +1 -0
- package/.agent/agents/interaction-reviewer.md +10 -5
- package/.agent/agents/logic-reviewer.md +3 -0
- package/.agent/agents/minimalist-reviewer.md +6 -0
- package/.agent/agents/mobile-developer.md +7 -6
- package/.agent/agents/mobile-reviewer.md +14 -13
- package/.agent/agents/orchestrator.md +3 -0
- package/.agent/agents/penetration-tester.md +1 -0
- package/.agent/agents/performance-optimizer.md +6 -5
- package/.agent/agents/performance-reviewer.md +6 -6
- package/.agent/agents/pipeline-reviewer.md +144 -0
- package/.agent/agents/precedence-reviewer.md +1 -0
- package/.agent/agents/product-manager.md +1 -0
- package/.agent/agents/product-owner.md +1 -0
- package/.agent/agents/product-reviewer.md +12 -7
- package/.agent/agents/project-planner.md +3 -0
- package/.agent/agents/qa-automation-engineer.md +50 -43
- package/.agent/agents/resilience-reviewer.md +1 -0
- package/.agent/agents/schema-reviewer.md +1 -0
- package/.agent/agents/security-auditor.md +24 -24
- package/.agent/agents/seo-specialist.md +33 -23
- package/.agent/agents/sql-reviewer.md +5 -4
- package/.agent/agents/supervisor-agent.md +12 -2
- package/.agent/agents/swarm-worker-contracts.md +13 -13
- package/.agent/agents/swarm-worker-registry.md +51 -51
- package/.agent/agents/system-architect.md +1 -0
- package/.agent/agents/test-coverage-reviewer.md +25 -22
- package/.agent/agents/test-engineer.md +12 -11
- package/.agent/agents/throughput-optimizer.md +45 -40
- package/.agent/agents/type-safety-reviewer.md +5 -4
- package/.agent/agents/ui-ux-auditor.md +6 -4
- package/.agent/agents/ui-visual-auditor.md +3 -0
- package/.agent/agents/ux-reviewer.md +11 -6
- package/.agent/agents/visual-reviewer.md +11 -6
- package/.agent/agents/vitals-reviewer.md +5 -4
- package/.agent/history/memory/.memory.idx +1532 -1
- package/.agent/history/memory/MEMORY.md +102 -1
- package/.agent/mcp_config.json +1 -6
- package/.agent/routing_index.json +2033 -263
- package/.agent/rules/GEMINI.md +11 -9
- package/.agent/rules/GEMINI_PLANNER.md +19 -21
- package/.agent/scripts/_colors.js +52 -54
- package/.agent/scripts/_utils.js +52 -53
- package/.agent/scripts/auto_preview.js +39 -43
- package/.agent/scripts/bundle_analyzer.js +47 -60
- package/.agent/scripts/case_law_manager.js +200 -294
- package/.agent/scripts/checklist.js +73 -94
- package/.agent/scripts/cicd_validator.js +305 -0
- package/.agent/scripts/compile_router.py +4 -111
- package/.agent/scripts/context_broker.js +317 -412
- package/.agent/scripts/contract_engine.js +402 -0
- package/.agent/scripts/dependency_analyzer.js +112 -124
- package/.agent/scripts/graph_builder.js +75 -103
- package/.agent/scripts/graph_visualizer.js +10 -12
- package/.agent/scripts/graph_zoom.js +38 -55
- package/.agent/scripts/guardrail_engine.js +195 -145
- package/.agent/scripts/impact_classifier.js +55 -30
- package/.agent/scripts/inner_loop_validator.js +108 -159
- package/.agent/scripts/integrity_manifest.js +59 -67
- package/.agent/scripts/lint_runner.js +65 -75
- package/.agent/scripts/marathon_harness.js +131 -208
- package/.agent/scripts/migrate_skills_frontmatter.py +4 -63
- package/.agent/scripts/minify_context.js +29 -33
- package/.agent/scripts/minimal_change_engine.js +95 -87
- package/.agent/scripts/mutation_runner.js +46 -62
- package/.agent/scripts/pipeline_engine.js +320 -209
- package/.agent/scripts/prompt_compiler.js +118 -93
- package/.agent/scripts/schema_validator.js +73 -121
- package/.agent/scripts/security_scan.js +88 -117
- package/.agent/scripts/session_manager.js +52 -69
- package/.agent/scripts/signal_detector.js +24 -22
- package/.agent/scripts/skill_evolution.js +184 -245
- package/.agent/scripts/skill_integrator.js +35 -48
- package/.agent/scripts/socratic_gate_policy.js +15 -12
- package/.agent/scripts/strengthen_skills.js +29 -33
- package/.agent/scripts/swarm_dispatcher.js +120 -151
- package/.agent/scripts/test_runner.js +54 -56
- package/.agent/scripts/token_budget_broker.js +9 -7
- package/.agent/scripts/trace_engine.js +126 -0
- package/.agent/scripts/verify_all.js +76 -93
- package/.agent/scripts/visual_audit.js +16 -21
- package/.agent/skill_topic_map.json +22 -3
- package/.agent/skills/12-principles-of-animation/SKILL.md +7 -0
- package/.agent/skills/60fps-animation/SKILL.md +7 -0
- package/.agent/skills/accessible-animation/SKILL.md +5 -1
- package/.agent/skills/adapt/SKILL.md +7 -1
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -0
- package/.agent/skills/agent-organizer/SKILL.md +1 -0
- package/.agent/skills/agentic-patterns/SKILL.md +33 -25
- package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -2
- package/.agent/skills/ai-app-hardening/SKILL.md +9 -8
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +7 -6
- package/.agent/skills/animation-on-scroll/SKILL.md +24 -15
- package/.agent/skills/animation-systems/SKILL.md +11 -10
- package/.agent/skills/antfu-conventions/SKILL.md +7 -2
- package/.agent/skills/api-patterns/SKILL.md +14 -10
- package/.agent/skills/api-security-auditor/SKILL.md +15 -14
- package/.agent/skills/app-builder/SKILL.md +1 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +2 -2
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +1 -1
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +12 -12
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +3 -3
- package/.agent/skills/apple-design/SKILL.md +8 -7
- package/.agent/skills/architecture/SKILL.md +3 -2
- package/.agent/skills/audit-and-fix/SKILL.md +8 -5
- package/.agent/skills/authentication-best-practices/SKILL.md +9 -8
- package/.agent/skills/backend-security-expert/SKILL.md +1 -0
- package/.agent/skills/baseline-ui/SKILL.md +8 -7
- package/.agent/skills/bash-linux/SKILL.md +1 -0
- package/.agent/skills/behavioral-modes/SKILL.md +1 -0
- package/.agent/skills/better-colors/SKILL.md +11 -7
- package/.agent/skills/better-typography/SKILL.md +30 -16
- package/.agent/skills/better-ui/SKILL.md +17 -10
- package/.agent/skills/bolder/SKILL.md +6 -0
- package/.agent/skills/brainstorming/SKILL.md +6 -4
- package/.agent/skills/browser-native-ai/SKILL.md +5 -4
- package/.agent/skills/build-primitive/SKILL.md +5 -0
- package/.agent/skills/building-native-ui/SKILL.md +1 -0
- package/.agent/skills/cicd-pro/SKILL.md +2 -1
- package/.agent/skills/clarify/SKILL.md +19 -14
- package/.agent/skills/clean-code/SKILL.md +16 -15
- package/.agent/skills/cloud-architect/SKILL.md +1 -0
- package/.agent/skills/cobejs/SKILL.md +7 -9
- package/.agent/skills/code-review-checklist/SKILL.md +1 -0
- package/.agent/skills/codebase-design/SKILL.md +7 -2
- package/.agent/skills/colorize/SKILL.md +8 -3
- package/.agent/skills/compact-landing/SKILL.md +8 -3
- package/.agent/skills/company-logos/SKILL.md +6 -0
- package/.agent/skills/config-validator/SKILL.md +10 -9
- package/.agent/skills/containerization-pro/SKILL.md +6 -5
- package/.agent/skills/context-engineering-pro/SKILL.md +5 -4
- package/.agent/skills/create-design-md/SKILL.md +13 -5
- package/.agent/skills/critique/SKILL.md +10 -8
- package/.agent/skills/csharp-developer/SKILL.md +1 -0
- package/.agent/skills/data-validation-schemas/SKILL.md +28 -23
- package/.agent/skills/database-design/SKILL.md +2 -1
- package/.agent/skills/delight/SKILL.md +6 -0
- package/.agent/skills/deployment-procedures/SKILL.md +2 -1
- package/.agent/skills/design-lab/SKILL.md +5 -0
- package/.agent/skills/devops-engineer/SKILL.md +3 -2
- package/.agent/skills/devops-incident-responder/SKILL.md +2 -1
- package/.agent/skills/diagnosing-bugs/SKILL.md +12 -2
- package/.agent/skills/distill/SKILL.md +7 -2
- package/.agent/skills/documentation-templates/SKILL.md +3 -2
- package/.agent/skills/domain-modeling/SKILL.md +12 -4
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +7 -3
- package/.agent/skills/edge-ai-mobile/SKILL.md +5 -1
- package/.agent/skills/edge-computing/SKILL.md +9 -8
- package/.agent/skills/emil-design-eng/SKILL.md +43 -27
- package/.agent/skills/error-resilience/SKILL.md +34 -16
- package/.agent/skills/expo-router-v4/SKILL.md +2 -1
- package/.agent/skills/extract-design-system/SKILL.md +12 -11
- package/.agent/skills/fabel-protocol/SKILL.md +24 -17
- package/.agent/skills/fixing-accessibility/SKILL.md +23 -16
- package/.agent/skills/fixing-metadata/SKILL.md +24 -13
- package/.agent/skills/fixing-motion-performance/SKILL.md +7 -5
- package/.agent/skills/framer-motion-expert/SKILL.md +29 -15
- package/.agent/skills/frontend-design/SKILL.md +21 -13
- package/.agent/skills/frontend-security-expert/SKILL.md +1 -0
- package/.agent/skills/game-design-expert/SKILL.md +1 -0
- package/.agent/skills/game-engineering-expert/SKILL.md +1 -0
- package/.agent/skills/generative-ui-expert/SKILL.md +3 -2
- package/.agent/skills/geo-fundamentals/SKILL.md +2 -1
- package/.agent/skills/git-pro/SKILL.md +10 -9
- package/.agent/skills/github-operations/SKILL.md +2 -1
- package/.agent/skills/gpt-taste/SKILL.md +7 -0
- package/.agent/skills/gsap-core/SKILL.md +26 -22
- package/.agent/skills/gsap-frameworks/SKILL.md +6 -5
- package/.agent/skills/gsap-performance/SKILL.md +4 -3
- package/.agent/skills/gsap-plugins/SKILL.md +34 -33
- package/.agent/skills/gsap-react/SKILL.md +9 -8
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +34 -33
- package/.agent/skills/gsap-timeline/SKILL.md +18 -15
- package/.agent/skills/gsap-utils/SKILL.md +25 -24
- package/.agent/skills/harden/SKILL.md +9 -3
- package/.agent/skills/harness-protocol/SKILL.md +1 -0
- package/.agent/skills/i18n-localization/SKILL.md +10 -9
- package/.agent/skills/impeccable/SKILL.md +5 -0
- package/.agent/skills/improve-codebase-architecture/SKILL.md +10 -5
- package/.agent/skills/improve-ui/SKILL.md +12 -5
- package/.agent/skills/intelligent-routing/SKILL.md +7 -6
- package/.agent/skills/knowledge-graph/SKILL.md +1 -0
- package/.agent/skills/landing-page/SKILL.md +1 -0
- package/.agent/skills/lint-and-validate/SKILL.md +9 -4
- package/.agent/skills/llm-engineering/SKILL.md +55 -54
- package/.agent/skills/local-first/SKILL.md +20 -19
- package/.agent/skills/local-first-architecture/SKILL.md +6 -1
- package/.agent/skills/lottie-animation/SKILL.md +7 -3
- package/.agent/skills/marquee-loop/SKILL.md +1 -0
- package/.agent/skills/masked-reveal/SKILL.md +17 -4
- package/.agent/skills/mcp-builder/SKILL.md +13 -10
- package/.agent/skills/micro-interaction/SKILL.md +20 -5
- package/.agent/skills/mobile-design/SKILL.md +26 -15
- package/.agent/skills/monorepo-management/SKILL.md +3 -2
- package/.agent/skills/morphing-icons/SKILL.md +16 -6
- package/.agent/skills/motion-engineering/SKILL.md +19 -15
- package/.agent/skills/nextjs-react-expert/SKILL.md +26 -21
- package/.agent/skills/nodejs-best-practices/SKILL.md +89 -76
- package/.agent/skills/observability/SKILL.md +45 -44
- package/.agent/skills/opentelemetry-observability/SKILL.md +2 -1
- package/.agent/skills/page-transition-animation/SKILL.md +6 -3
- package/.agent/skills/parallel-agents/SKILL.md +7 -2
- package/.agent/skills/performance-profiling/SKILL.md +24 -13
- package/.agent/skills/plan-writing/SKILL.md +1 -0
- package/.agent/skills/platform-engineer/SKILL.md +3 -2
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -0
- package/.agent/skills/playwright-ai-e2e/SKILL.md +3 -2
- package/.agent/skills/playwright-best-practices/SKILL.md +29 -28
- package/.agent/skills/polish/SKILL.md +13 -12
- package/.agent/skills/powershell-windows/SKILL.md +1 -0
- package/.agent/skills/pricing-page/SKILL.md +8 -3
- package/.agent/skills/product-aware-heuristics/SKILL.md +122 -72
- package/.agent/skills/progressive-blur/SKILL.md +9 -4
- package/.agent/skills/project-idioms/SKILL.md +1 -0
- package/.agent/skills/property-based-testing/SKILL.md +10 -12
- package/.agent/skills/python-patterns/SKILL.md +1 -0
- package/.agent/skills/python-pro/SKILL.md +1 -0
- package/.agent/skills/quieter/SKILL.md +6 -0
- package/.agent/skills/react-doctor/SKILL.md +6 -0
- package/.agent/skills/react-specialist/SKILL.md +32 -28
- package/.agent/skills/readme-builder/SKILL.md +1 -0
- package/.agent/skills/realtime-patterns/SKILL.md +34 -33
- package/.agent/skills/red-team-tactics/SKILL.md +1 -0
- package/.agent/skills/redesign-skill/SKILL.md +6 -0
- package/.agent/skills/review-animations/SKILL.md +5 -2
- package/.agent/skills/review-animations/STANDARDS.md +37 -23
- package/.agent/skills/rust-pro/SKILL.md +1 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +4 -3
- package/.agent/skills/server-management/SKILL.md +1 -0
- package/.agent/skills/shadcn-ui-expert/SKILL.md +28 -22
- package/.agent/skills/shape/SKILL.md +9 -2
- package/.agent/skills/skill-creator/SKILL.md +1 -0
- package/.agent/skills/soft-skill/SKILL.md +6 -0
- package/.agent/skills/sounds-on-the-web/SKILL.md +1 -0
- package/.agent/skills/sql-pro/SKILL.md +1 -0
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -0
- package/.agent/skills/svg-animation/SKILL.md +16 -7
- package/.agent/skills/swiftui-expert/SKILL.md +1 -0
- package/.agent/skills/swiss-design/SKILL.md +5 -0
- package/.agent/skills/system-design-pro/SKILL.md +1 -0
- package/.agent/skills/systematic-debugging/SKILL.md +1 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +25 -11
- package/.agent/skills/taste-skill/SKILL.md +6 -0
- package/.agent/skills/tdd-workflow/SKILL.md +5 -0
- package/.agent/skills/test-result-analyzer/SKILL.md +1 -0
- package/.agent/skills/testing-patterns/SKILL.md +123 -115
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +5 -0
- package/.agent/skills/thinking-protocol/SKILL.md +3 -0
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +9 -8
- package/.agent/skills/transitions-dev/SKILL.md +19 -6
- package/.agent/skills/trend-researcher/SKILL.md +1 -0
- package/.agent/skills/typescript-advanced/SKILL.md +23 -18
- package/.agent/skills/typeset/SKILL.md +10 -1
- package/.agent/skills/ui-reasoning-engine/SKILL.md +67 -48
- package/.agent/skills/ui-skill-packs/SKILL.md +6 -1
- package/.agent/skills/ui-skills-root/SKILL.md +39 -38
- package/.agent/skills/ui-ux-pro-max/SKILL.md +34 -26
- package/.agent/skills/ui-ux-researcher/SKILL.md +1 -0
- package/.agent/skills/vector-search-pgvector/SKILL.md +3 -2
- package/.agent/skills/vue-expert/SKILL.md +22 -19
- package/.agent/skills/vulnerability-scanner/SKILL.md +22 -21
- package/.agent/skills/web-accessibility-auditor/SKILL.md +2 -1
- package/.agent/skills/web-design-guidelines/SKILL.md +16 -10
- package/.agent/skills/web-quality-audit/SKILL.md +5 -0
- package/.agent/skills/webapp-testing/SKILL.md +14 -13
- package/.agent/skills/webgpu-performance/SKILL.md +1 -0
- package/.agent/skills/whimsy-injector/SKILL.md +9 -5
- package/.agent/skills/workflow-optimizer/SKILL.md +1 -0
- package/.agent/skills/zero-trust-passkeys/SKILL.md +11 -6
- package/.agent/templates/DESIGN.md +119 -110
- package/.agent/templates/design-tokens.json +9 -6
- package/.agent/workflows/acf.md +1 -0
- package/.agent/workflows/api-tester.md +1 -0
- package/.agent/workflows/audit.md +1 -0
- package/.agent/workflows/brainstorm.md +1 -0
- package/.agent/workflows/changelog.md +1 -0
- package/.agent/workflows/contract.md +60 -0
- package/.agent/workflows/create.md +1 -0
- package/.agent/workflows/debug.md +1 -0
- package/.agent/workflows/deploy.md +1 -0
- package/.agent/workflows/enhance.md +1 -0
- package/.agent/workflows/fix-ci.md +89 -0
- package/.agent/workflows/fix.md +1 -0
- package/.agent/workflows/generate.md +1 -0
- package/.agent/workflows/marathon.md +1 -0
- package/.agent/workflows/migrate.md +1 -0
- package/.agent/workflows/minimal.md +9 -7
- package/.agent/workflows/orchestrate.md +1 -0
- package/.agent/workflows/performance-benchmarker.md +1 -0
- package/.agent/workflows/pipeline.md +26 -21
- package/.agent/workflows/plan.md +1 -0
- package/.agent/workflows/preview.md +1 -0
- package/.agent/workflows/refactor.md +3 -2
- package/.agent/workflows/review-ai.md +4 -3
- package/.agent/workflows/review.md +1 -0
- package/.agent/workflows/session.md +1 -0
- package/.agent/workflows/status.md +1 -0
- package/.agent/workflows/strengthen-skills.md +1 -0
- package/.agent/workflows/super-prompt.md +1 -0
- package/.agent/workflows/swarm.md +15 -3
- package/.agent/workflows/test.md +8 -7
- package/.agent/workflows/tribunal-backend.md +3 -2
- package/.agent/workflows/tribunal-cicd.md +104 -0
- package/.agent/workflows/tribunal-database.md +1 -0
- package/.agent/workflows/tribunal-frontend.md +8 -6
- package/.agent/workflows/tribunal-full.md +2 -1
- package/.agent/workflows/tribunal-mobile.md +6 -5
- package/.agent/workflows/tribunal-performance.md +1 -0
- package/.agent/workflows/tribunal-speed.md +1 -0
- package/.agent/workflows/tribunal-ui.md +29 -21
- package/.agent/workflows/ui-ux-pro-max.md +19 -15
- package/CONTRIBUTING.md +3 -3
- package/README.md +94 -44
- package/SECURITY.md +10 -10
- package/bin/mcp-server.js +385 -252
- package/bin/tribunal-kit.js +29 -30
- package/bin/wrapper.js +40 -46
- package/dist/cli.js +6 -0
- package/dist/commands/case.js +2 -0
- package/dist/commands/contract.js +440 -0
- package/dist/commands/status.js +6 -0
- package/dist/index.d.ts +8 -1
- package/package.json +13 -12
- package/scripts/benchmark.js +62 -86
- package/scripts/changelog.js +67 -73
- package/scripts/fix-vbc.js +13 -15
- package/scripts/fix-vbc.ps1 +2 -118
- package/scripts/stress_benchmark.js +358 -0
- package/scripts/sync-version.js +71 -41
- package/scripts/validate-payload.js +23 -30
- package/scripts/visual_audit.js +23 -13
|
@@ -99,12 +99,12 @@ project-name/
|
|
|
99
99
|
Add to `nuxt.config.ts`:
|
|
100
100
|
|
|
101
101
|
```ts
|
|
102
|
-
import tailwindcss from
|
|
102
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
103
103
|
export default defineNuxtConfig({
|
|
104
104
|
vite: {
|
|
105
105
|
plugins: [tailwindcss()],
|
|
106
106
|
},
|
|
107
|
-
css: [
|
|
107
|
+
css: ['~/assets/css/main.css'],
|
|
108
108
|
});
|
|
109
109
|
```
|
|
110
110
|
|
|
@@ -112,7 +112,7 @@ project-name/
|
|
|
112
112
|
In `app/assets/css/main.css`:
|
|
113
113
|
|
|
114
114
|
```css
|
|
115
|
-
@import
|
|
115
|
+
@import 'tailwindcss';
|
|
116
116
|
@theme {
|
|
117
117
|
--color-primary: oklch(0.6 0.15 150);
|
|
118
118
|
}
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before engineering Apple-style UIs or gesture-driven components, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Interruptible Physics-Based Springs (Section 22) → Use physics springs (`stiffness: 300, damping: 24, mass: 0.8`) instead of fixed-duration CSS cubic-beziers
|
|
24
25
|
2. Translucent Backdrop Blur (Section 44) → Limit `backdrop-filter: blur(20px) saturate(180%)` strictly to sticky headers or modals to avoid GPU scroll jank
|
|
25
26
|
3. Optical Letter-Spacing (Section 72) → Apply inverse tracking (`-0.025em` for titles, `+0.015em` for small captions) based on SF Pro font scaling
|
|
@@ -41,10 +42,10 @@ Apple interfaces do NOT use fixed-duration cubic-beziers for interactive element
|
|
|
41
42
|
```javascript
|
|
42
43
|
// Framer Motion / Motion React Spring Config
|
|
43
44
|
const appleSpring = {
|
|
44
|
-
type:
|
|
45
|
+
type: 'spring',
|
|
45
46
|
stiffness: 300,
|
|
46
47
|
damping: 24,
|
|
47
|
-
mass: 0.8
|
|
48
|
+
mass: 0.8,
|
|
48
49
|
};
|
|
49
50
|
```
|
|
50
51
|
|
|
@@ -87,11 +88,11 @@ Apple depth relies on subtle, multi-layered backdrop blur and border highlights:
|
|
|
87
88
|
|
|
88
89
|
## Anti-Slop Table
|
|
89
90
|
|
|
90
|
-
| Anti-Pattern
|
|
91
|
-
|
|
|
92
|
-
| Rigid linear/ease transitions | Physics-based spring curves (`stiffness: 300, damping: 24`)
|
|
93
|
-
| Opaque static dropdowns
|
|
94
|
-
| Sudden state jumps
|
|
91
|
+
| Anti-Pattern | Apple Design Solution | Rationale |
|
|
92
|
+
| ----------------------------- | ------------------------------------------------------------- | ----------------------------------------------- |
|
|
93
|
+
| Rigid linear/ease transitions | Physics-based spring curves (`stiffness: 300, damping: 24`) | Simulates real-world physical momentum |
|
|
94
|
+
| Opaque static dropdowns | Translucent backdrop blur panel (`blur(20px) saturate(180%)`) | Preserves spatial context beneath UI |
|
|
95
|
+
| Sudden state jumps | Interruptible velocity-preserving spring animations | Prevents visual jarring during rapid user input |
|
|
95
96
|
|
|
96
97
|
---
|
|
97
98
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before selecting architectural patterns or designing systems, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Pragmatic Monolith Default (Section 31) → Start with a modular monolith for teams <5 or scale <100K RPM; ban premature microservices
|
|
24
25
|
2. Clean Architecture Dependency Direction (Section 50) → Ensure dependency arrows point strictly inward to Domain; Domain must have zero external infrastructure dependencies
|
|
25
26
|
3. ADR Requirement for Non-Trivial Decisons (Section 135) → Document every major architectural decision with an ADR in `docs/architecture/`
|
|
@@ -72,7 +73,7 @@ interface UserRepository {
|
|
|
72
73
|
}
|
|
73
74
|
class User {
|
|
74
75
|
promote(): void {
|
|
75
|
-
if (this._role === UserRole.ADMIN) throw new DomainError(
|
|
76
|
+
if (this._role === UserRole.ADMIN) throw new DomainError('Already admin');
|
|
76
77
|
this._role = UserRole.ADMIN;
|
|
77
78
|
}
|
|
78
79
|
}
|
|
@@ -81,7 +82,7 @@ class User {
|
|
|
81
82
|
class PromoteUserUseCase {
|
|
82
83
|
async execute(userId: string): Promise<void> {
|
|
83
84
|
const user = await this.userRepo.findById(userId);
|
|
84
|
-
if (!user) throw new NotFoundError(
|
|
85
|
+
if (!user) throw new NotFoundError('User', userId);
|
|
85
86
|
user.promote();
|
|
86
87
|
await this.userRepo.save(user);
|
|
87
88
|
await this.eventBus.publish(new UserPromotedEvent(userId));
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before performing accessibility audits or fixes, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Automated Violation Detection (Section 24) → Audit markup for missing `alt`, un-labeled inputs/buttons, and `onClick` on non-interactive elements
|
|
24
25
|
2. Prioritization Matrix (Section 31) → Fix Level A blockers (forms, focus traps, keyboard access) before addressing contrast or landmark regions
|
|
25
26
|
3. Anti-Redundant ARIA rule (Section 60) → Do NOT add `role="button"` to native `<button>` tags; apply `aria-hidden="true"` to decorative inner SVGs
|
|
@@ -31,7 +32,9 @@ Systematically audit HTML/JSX markup against WCAG 2.2 AA standards, prioritize a
|
|
|
31
32
|
## 4-Step Remediation Pipeline
|
|
32
33
|
|
|
33
34
|
### 1. Automated Violation Detection
|
|
35
|
+
|
|
34
36
|
Scan component code for:
|
|
37
|
+
|
|
35
38
|
- Missing `alt` tags on `<img>` elements.
|
|
36
39
|
- Form controls (`<input>`, `<select>`) missing associated `<label>` or `aria-label`.
|
|
37
40
|
- Buttons with icon-only content missing `aria-label`.
|
|
@@ -39,11 +42,11 @@ Scan component code for:
|
|
|
39
42
|
|
|
40
43
|
### 2. Prioritization Matrix
|
|
41
44
|
|
|
42
|
-
| Severity Level
|
|
43
|
-
|
|
|
44
|
-
| 🔴 **Blocker (Level A)**
|
|
45
|
-
| 🟠 **Critical (Level AA)** | Low text contrast ratio ($< 4.5:1$), missing ARIA states on custom dropdowns
|
|
46
|
-
| 🟡 **Moderate (Level AA)** | Missing landmark regions (`<main>`, `<nav>`, `<header>`), heading hierarchy gaps | Wrap layout blocks in semantic HTML5 tags.
|
|
45
|
+
| Severity Level | Violation Type | Remediation Action |
|
|
46
|
+
| -------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
47
|
+
| 🔴 **Blocker (Level A)** | Inaccessible form inputs, un-trapped focus in modal, zero keyboard access | Add explicit `<label>`, focus trap, and keyboard handlers immediately. |
|
|
48
|
+
| 🟠 **Critical (Level AA)** | Low text contrast ratio ($< 4.5:1$), missing ARIA states on custom dropdowns | Adjust text colors to OKLCH contrast targets; add `aria-expanded`. |
|
|
49
|
+
| 🟡 **Moderate (Level AA)** | Missing landmark regions (`<main>`, `<nav>`, `<header>`), heading hierarchy gaps | Wrap layout blocks in semantic HTML5 tags. |
|
|
47
50
|
|
|
48
51
|
### 3. Concrete Code Fix Examples
|
|
49
52
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before implementing authentication or session flows, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Modern Password Hashing (Section 28) → Use Argon2id or bcrypt; ban legacy fast algorithms (`md5`, `sha256`) for credential hashing
|
|
24
25
|
2. Token Storage Separation (Section 83) → Keep short-lived access tokens in JS memory and long-lived refresh tokens in `HttpOnly`, `SameSite=Lax/Strict` cookies
|
|
25
26
|
3. OAuth PKCE Flow Requirement (Section 109) → Enforce Authorization Code Flow with PKCE for all single-page and mobile apps; ban deprecated Implicit Flow
|
|
@@ -32,10 +33,10 @@ Before implementing authentication or session flows, you MUST inspect:
|
|
|
32
33
|
|
|
33
34
|
```typescript
|
|
34
35
|
// ❌ BAD: md5, sha1, sha256 (too fast, vulnerable to brute force/rainbow tables)
|
|
35
|
-
const hash = crypto.createHash(
|
|
36
|
+
const hash = crypto.createHash('sha256').update(password).digest('hex');
|
|
36
37
|
|
|
37
38
|
// ✅ GOOD: Argon2 (memory-hard, ASIC resistant) or bcrypt
|
|
38
|
-
import * as argon2 from
|
|
39
|
+
import * as argon2 from 'argon2';
|
|
39
40
|
|
|
40
41
|
async function hashPassword(password: string): Promise<string> {
|
|
41
42
|
// Argon2 hashes include the salt inherently in the resulting string
|
|
@@ -86,11 +87,11 @@ async function verifyPassword(hash: string, password: string): Promise<boolean>
|
|
|
86
87
|
// Scenario: API authentication
|
|
87
88
|
// 1. Access Token (Short-lived: 15 mins)
|
|
88
89
|
const accessToken = jwt.sign({ userId: user.id }, JWT_SECRET, {
|
|
89
|
-
expiresIn:
|
|
90
|
-
algorithm:
|
|
90
|
+
expiresIn: '15m',
|
|
91
|
+
algorithm: 'HS256', // ALWAYS explicitly specify
|
|
91
92
|
});
|
|
92
93
|
// 2. Refresh Token (Long-lived: 7 days, opaque string in DB)
|
|
93
|
-
const refreshToken = crypto.randomBytes(40).toString(
|
|
94
|
+
const refreshToken = crypto.randomBytes(40).toString('hex');
|
|
94
95
|
await db.refreshTokens.create({ token: refreshToken, userId: user.id, expires: addDays(7) });
|
|
95
96
|
|
|
96
97
|
// Client flow:
|
|
@@ -142,7 +143,7 @@ Flow (Authorization Code + PKCE):
|
|
|
142
143
|
|
|
143
144
|
```typescript
|
|
144
145
|
// ✅ Check permissions, not roles directly (more flexible)
|
|
145
|
-
if (!user.permissions.includes(
|
|
146
|
+
if (!user.permissions.includes('delete:user')) {
|
|
146
147
|
throw new ForbiddenError();
|
|
147
148
|
}
|
|
148
149
|
```
|
|
@@ -154,9 +155,9 @@ if (!user.permissions.includes("delete:user")) {
|
|
|
154
155
|
```typescript
|
|
155
156
|
// Example Policy
|
|
156
157
|
function canEditPost(user: User, post: Post): boolean {
|
|
157
|
-
if (user.role ===
|
|
158
|
+
if (user.role === 'admin') return true;
|
|
158
159
|
if (post.authorId === user.id) return true;
|
|
159
|
-
if (post.status ===
|
|
160
|
+
if (post.status === 'draft' && user.department === 'content') return true;
|
|
160
161
|
return false;
|
|
161
162
|
}
|
|
162
163
|
```
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before auditing or writing backend server code, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Server Action Endpoints (Section 26) → Treat Next.js Server Actions as public API routes: authenticate session and parse input with Zod at entry
|
|
24
25
|
2. JWT Algorithm Verification (Section 17) → Enforce explicit algorithms (`alg: "HS256"`) when verifying JWT tokens to prevent "None" algorithm exploits
|
|
25
26
|
3. IDOR & RBAC Validation (Section 34) → Verify resource ownership (`WHERE userId = session.userId`) and user roles before executing mutations
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before cleaning up UI styles, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. `DESIGN.md` / `package.json` → Check Tailwind CSS configuration and accessibility primitives (`Base UI`, `Radix`)
|
|
24
25
|
2. The 5-Step Deslop Protocol (Section 33) → Fix spacing violations, establish 3-tier typographic hierarchy, and eliminate harsh borders
|
|
25
26
|
3. Anti-Slop Table (Section 43) → Replace hardcoded arbitrary paddings and low-contrast text with tokenized CSS variables
|
|
@@ -51,13 +52,13 @@ Enforces an opinionated UI baseline to clean up sloppy code and prevent AI-gener
|
|
|
51
52
|
|
|
52
53
|
## Anti-Slop Table
|
|
53
54
|
|
|
54
|
-
| Slop Pattern
|
|
55
|
-
|
|
|
56
|
-
| `color: #888` on dark background
|
|
57
|
-
| `padding: 15px 23px`
|
|
58
|
-
| `border: 1px solid black`
|
|
59
|
-
| Mixed font sizes (13px, 14px, 15px) | Standardized scale (12px, 14px, 16px)
|
|
60
|
-
| Plain text buttons without states
|
|
55
|
+
| Slop Pattern | Baseline Fix | Rationale |
|
|
56
|
+
| ----------------------------------- | ----------------------------------------------- | ------------------------------------------- |
|
|
57
|
+
| `color: #888` on dark background | `color: var(--text-muted)` (min 4.5:1 ratio) | Improves readability and WCAG compliance |
|
|
58
|
+
| `padding: 15px 23px` | `padding: 16px 24px` | Aligns to 8px structural grid |
|
|
59
|
+
| `border: 1px solid black` | `border: 1px solid rgba(0,0,0,0.1)` | Removes harsh, distracting lines |
|
|
60
|
+
| Mixed font sizes (13px, 14px, 15px) | Standardized scale (12px, 14px, 16px) | Establishes clear visual hierarchy |
|
|
61
|
+
| Plain text buttons without states | Rounded button with hover/active press feedback | Indicates clickability and tactile response |
|
|
61
62
|
|
|
62
63
|
---
|
|
63
64
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before writing Bash scripts or terminal automation pipelines, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Strict Mode Flags (`set -euo pipefail`) (Section 39) → Always set `set -euo pipefail` and `IFS=$'\n\t'` at top of every script to fail fast on errors or unset vars
|
|
24
25
|
2. Variable Quoting Safeguards (Section 122) → Double-quote all path and string variables (`"$FILE"`, `"${FILES[@]}"`) to prevent whitespace expansion bugs
|
|
25
26
|
3. Modern CLI Efficiency Rules (Section 102) → Prefer `rg` over `grep`, `fd` over `find`, `jq` over regex JSON parsing for performance and safety
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before selecting an operational mode, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. User prompt intent & keywords (Section 148 Mode Selection Rules) → Classify request type (TEACH, DEBUG, REVIEW, PLAN, BUILD, DISCOVER, SHIP, ORCHESTRATE)
|
|
24
25
|
2. Mode Leakage Mitigation rules (Section 160) → Prevent writing unapproved code during DISCOVER or REVIEW modes
|
|
25
26
|
3. Output format contracts → Ensure findings use labeled severity tags (CRITICAL / WARNING / SUGGESTION)
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before defining color palettes or CSS theme variables, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. `DESIGN.md` / `index.css` → Check existing CSS custom properties and color variables
|
|
24
25
|
2. OKLCH Syntax & Relative Color Rules (Section 30) → Use `oklch(L C H)` format with subtle chroma (`C: 0.01-0.02`) for neutrals
|
|
25
26
|
3. WCAG 2.2 AA Contrast Thresholds (Section 82) → Ensure `L ≤ 45%` for text on light background and `L ≥ 70%` on dark background
|
|
@@ -63,7 +64,7 @@ $$\text{Format: } \text{oklch}(L \quad C \quad H [\quad / \quad A])$$
|
|
|
63
64
|
/* Neutrals: Subtly Tinted (Chroma ~ 0.015) */
|
|
64
65
|
--bg-surface: oklch(0.99 0.005 260);
|
|
65
66
|
--bg-surface-raised: oklch(0.96 0.01 260);
|
|
66
|
-
--text-main: oklch(0.
|
|
67
|
+
--text-main: oklch(0.2 0.02 260);
|
|
67
68
|
--text-muted: oklch(0.45 0.02 260);
|
|
68
69
|
--border-subtle: oklch(0.88 0.015 260);
|
|
69
70
|
}
|
|
@@ -72,7 +73,7 @@ $$\text{Format: } \text{oklch}(L \quad C \quad H [\quad / \quad A])$$
|
|
|
72
73
|
:root {
|
|
73
74
|
color-scheme: light dark;
|
|
74
75
|
--surface-adaptive: light-dark(oklch(0.99 0.005 260), oklch(0.14 0.015 260));
|
|
75
|
-
--text-adaptive: light-dark(oklch(0.
|
|
76
|
+
--text-adaptive: light-dark(oklch(0.2 0.02 260), oklch(0.96 0.01 260));
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
@media (prefers-color-scheme: dark) {
|
|
@@ -91,12 +92,15 @@ $$\text{Format: } \text{oklch}(L \quad C \quad H [\quad / \quad A])$$
|
|
|
91
92
|
## 3. WCAG 2.2 AA Contrast Standards
|
|
92
93
|
|
|
93
94
|
Always verify contrast using WCAG AA minimum thresholds:
|
|
95
|
+
|
|
94
96
|
- **Normal Text (< 18pt / < 24px)**: Minimum **4.5:1** contrast ratio.
|
|
95
97
|
- **Large Text (≥ 18pt / ≥ 24px bold)**: Minimum **3.0:1** contrast ratio.
|
|
96
98
|
- **UI Components & Icons**: Minimum **3.0:1** contrast ratio against adjacent surface.
|
|
97
99
|
|
|
98
100
|
### Rule of Thumb in OKLCH:
|
|
101
|
+
|
|
99
102
|
To achieve 4.5:1 text contrast against a surface:
|
|
103
|
+
|
|
100
104
|
- Against Light Surface (`L ≈ 98%`): Text lightness `L` MUST be **`≤ 45%`**.
|
|
101
105
|
- Against Dark Surface (`L ≈ 14%`): Text lightness `L` MUST be **`≥ 70%`**.
|
|
102
106
|
|
|
@@ -111,11 +115,11 @@ To achieve 4.5:1 text contrast against a surface:
|
|
|
111
115
|
|
|
112
116
|
## Anti-Slop Table
|
|
113
117
|
|
|
114
|
-
| Anti-Pattern
|
|
115
|
-
|
|
|
116
|
-
| Single gray for all backgrounds
|
|
117
|
-
| Over-saturated dark mode accents
|
|
118
|
-
| Harsh pure black borders (`#000`) | Alpha-tinted borders (`rgba(255,255,255,0.08)`)
|
|
118
|
+
| Anti-Pattern | OKLCH Solution | Rationale |
|
|
119
|
+
| --------------------------------- | ------------------------------------------------------ | ------------------------------------------------- |
|
|
120
|
+
| Single gray for all backgrounds | Neutral tinted with brand hue (`C: 0.01-0.02`) | Creates cohesive, harmonious UI surfaces |
|
|
121
|
+
| Over-saturated dark mode accents | Scale chroma down (`C: 0.22` → `C: 0.15`) in dark mode | Eliminates glowing text vibration & visual strain |
|
|
122
|
+
| Harsh pure black borders (`#000`) | Alpha-tinted borders (`rgba(255,255,255,0.08)`) | Smooths elevation layers |
|
|
119
123
|
|
|
120
124
|
---
|
|
121
125
|
|
|
@@ -9,7 +9,17 @@ routing:
|
|
|
9
9
|
tier: pro
|
|
10
10
|
co-requires: [typeset, better-ui]
|
|
11
11
|
trigger-signals:
|
|
12
|
-
strong:
|
|
12
|
+
strong:
|
|
13
|
+
[
|
|
14
|
+
better-typography,
|
|
15
|
+
typography,
|
|
16
|
+
type scale,
|
|
17
|
+
font pairing,
|
|
18
|
+
tabular numbers,
|
|
19
|
+
text-wrap balance,
|
|
20
|
+
line-length,
|
|
21
|
+
optical sizing,
|
|
22
|
+
]
|
|
13
23
|
weak: [fonts, text style, line height]
|
|
14
24
|
---
|
|
15
25
|
|
|
@@ -25,14 +35,14 @@ Scale font sizes using a consistent multiplier ($1.25$ Major Third or $1.20$ Min
|
|
|
25
35
|
|
|
26
36
|
```css
|
|
27
37
|
:root {
|
|
28
|
-
--font-size-xs: 0.75rem;
|
|
29
|
-
--font-size-sm: 0.875rem;
|
|
30
|
-
--font-size-base: 1rem;
|
|
31
|
-
--font-size-lg: 1.125rem;
|
|
32
|
-
--font-size-xl: 1.375rem;
|
|
33
|
-
--font-size-2xl: 1.75rem;
|
|
34
|
-
--font-size-3xl: 2.25rem;
|
|
35
|
-
--font-size-4xl: 3rem;
|
|
38
|
+
--font-size-xs: 0.75rem; /* 12px - Labels, Badges */
|
|
39
|
+
--font-size-sm: 0.875rem; /* 14px - Meta, Caption */
|
|
40
|
+
--font-size-base: 1rem; /* 16px - Body Text */
|
|
41
|
+
--font-size-lg: 1.125rem; /* 18px - Lead Body */
|
|
42
|
+
--font-size-xl: 1.375rem; /* 22px - Subheadings */
|
|
43
|
+
--font-size-2xl: 1.75rem; /* 28px - H3 */
|
|
44
|
+
--font-size-3xl: 2.25rem; /* 36px - H2 */
|
|
45
|
+
--font-size-4xl: 3rem; /* 48px - H1 Hero */
|
|
36
46
|
|
|
37
47
|
/* Line Heights proportional to font size */
|
|
38
48
|
--line-height-heading: 1.15;
|
|
@@ -50,7 +60,10 @@ Scale font sizes using a consistent multiplier ($1.25$ Major Third or $1.20$ Min
|
|
|
50
60
|
- **Paragraph Wrapping**: Use `text-wrap: pretty` for long body paragraphs to prevent awkward line breaks.
|
|
51
61
|
|
|
52
62
|
```css
|
|
53
|
-
h1,
|
|
63
|
+
h1,
|
|
64
|
+
h2,
|
|
65
|
+
h3,
|
|
66
|
+
h4 {
|
|
54
67
|
text-wrap: balance;
|
|
55
68
|
letter-spacing: -0.025em;
|
|
56
69
|
line-height: var(--line-height-heading);
|
|
@@ -69,6 +82,7 @@ p {
|
|
|
69
82
|
|
|
70
83
|
- **Tabular Numbers for Data & Timers**: Use `font-variant-numeric: tabular-nums` (or `tnum`) for data tables, counters, prices, and timestamps so numbers align vertically without jumping when values update.
|
|
71
84
|
- **Font Smoothing**: Enable crisp font smoothing on macOS/iOS:
|
|
85
|
+
|
|
72
86
|
```css
|
|
73
87
|
body {
|
|
74
88
|
-webkit-font-smoothing: antialiased;
|
|
@@ -80,12 +94,12 @@ body {
|
|
|
80
94
|
|
|
81
95
|
## Anti-Slop Table
|
|
82
96
|
|
|
83
|
-
| Anti-Pattern
|
|
84
|
-
|
|
|
85
|
-
| Full-width body text (`width: 100%`)
|
|
86
|
-
| Single-word widows on headings
|
|
87
|
-
| Jittering numbers in data tables
|
|
88
|
-
| Default browser line-height (`1.2` on body) | `line-height: 1.5`
|
|
97
|
+
| Anti-Pattern | Typography Solution | Rationale |
|
|
98
|
+
| ------------------------------------------- | ------------------------------------ | ------------------------------------------------ |
|
|
99
|
+
| Full-width body text (`width: 100%`) | `max-width: 65ch` | Prevents eye fatigue across wide desktop screens |
|
|
100
|
+
| Single-word widows on headings | `text-wrap: balance` | Creates balanced visual hierarchy |
|
|
101
|
+
| Jittering numbers in data tables | `font-variant-numeric: tabular-nums` | Keeps columns strictly aligned |
|
|
102
|
+
| Default browser line-height (`1.2` on body) | `line-height: 1.5` | Improves reading comfort |
|
|
89
103
|
|
|
90
104
|
---
|
|
91
105
|
|
|
@@ -20,11 +20,12 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before engineering component polish or micro-interactions, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Outer vs Inner Radius Formula (Section 32) → Enforce $\text{Radius}_{\text{outer}} = \text{Radius}_{\text{inner}} + \text{Padding}_{\text{inner}}$
|
|
24
25
|
2. Transition Rules (Section 25) → Strictly prohibit `transition: all`; specify explicit property transitions
|
|
25
26
|
3. Multi-Layer Shadows (Section 42) → Use ambient + direct lighting stacks and dark mode surface elevation highlights
|
|
26
27
|
|
|
27
|
-
Distilled design engineering principles for transforming functional UIs into polished, state-of-the-art software interfaces, based on Jakub Krehel's
|
|
28
|
+
Distilled design engineering principles for transforming functional UIs into polished, state-of-the-art software interfaces, based on Jakub Krehel's _Details that make interfaces feel better_.
|
|
28
29
|
|
|
29
30
|
---
|
|
30
31
|
|
|
@@ -40,7 +41,7 @@ Distilled design engineering principles for transforming functional UIs into pol
|
|
|
40
41
|
|
|
41
42
|
- **Nested Border Radius Formula**: Outer border radius MUST equal inner border radius plus inner padding.
|
|
42
43
|
$$\text{Radius}_{\text{outer}} = \text{Radius}_{\text{inner}} + \text{Padding}_{\text{inner}}$$
|
|
43
|
-
|
|
44
|
+
_Example_: If container padding is `16px` and inner avatar radius is `8px`, outer container radius MUST be `24px`.
|
|
44
45
|
- **Concentric Curves**: Avoid mismatched corner radii where an inner card has `rounded-2xl` inside an outer `rounded-md` container.
|
|
45
46
|
- **Optical Center Adjustment**: Text inside pill buttons or badges often looks vertically low if mathematically centered. Shift text upwards by `1px` or adjust `line-height` so optics match mathematics.
|
|
46
47
|
|
|
@@ -72,20 +73,26 @@ Distilled design engineering principles for transforming functional UIs into pol
|
|
|
72
73
|
.stagger-item {
|
|
73
74
|
animation: entrance 250ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
|
74
75
|
}
|
|
75
|
-
.stagger-item:nth-child(1) {
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
.stagger-item:nth-child(1) {
|
|
77
|
+
animation-delay: 0ms;
|
|
78
|
+
}
|
|
79
|
+
.stagger-item:nth-child(2) {
|
|
80
|
+
animation-delay: 40ms;
|
|
81
|
+
}
|
|
82
|
+
.stagger-item:nth-child(3) {
|
|
83
|
+
animation-delay: 80ms;
|
|
84
|
+
}
|
|
78
85
|
```
|
|
79
86
|
|
|
80
87
|
---
|
|
81
88
|
|
|
82
89
|
## Anti-Slop Table
|
|
83
90
|
|
|
84
|
-
| Slop Pattern
|
|
85
|
-
|
|
|
86
|
-
| `transition: all 0.3s`
|
|
87
|
-
| Flat click targets without press feedback | `scale(0.97)` on `:active`
|
|
88
|
-
| Arbitrary inner vs outer radii
|
|
91
|
+
| Slop Pattern | Better UI Standard | Rationale |
|
|
92
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------- |
|
|
93
|
+
| `transition: all 0.3s` | Specific CSS property transitions | Eliminates layout thrashing & unintended color transitions |
|
|
94
|
+
| Flat click targets without press feedback | `scale(0.97)` on `:active` | Provides tactile physical response |
|
|
95
|
+
| Arbitrary inner vs outer radii | $\text{Radius}_{\text{outer}} = \text{Radius}_{\text{inner}} + \text{Padding}$ | Maintains geometric optical harmony |
|
|
89
96
|
|
|
90
97
|
---
|
|
91
98
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before applying bold visual transformations, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. `DESIGN.md` / `package.json` → Check existing brand color variables and design tokens
|
|
24
25
|
2. Typographic Contrast Scaling rules (Section 24) → Enforce extreme scale jumps (`1.5rem` to `4.5rem`) for display headings
|
|
25
26
|
3. Single Electric Accent System (Section 28) → Use one high-chroma accent color sparingly for primary CTAs and badges
|
|
@@ -31,21 +32,26 @@ Transform generic, boring template UIs into high-impact, distinctive interfaces
|
|
|
31
32
|
## 5 Tactics for Bold UI Transformation
|
|
32
33
|
|
|
33
34
|
### 1. Typographic Contrast Scaling
|
|
35
|
+
|
|
34
36
|
- **Extreme Scale Jump**: Increase heading size contrast. Jump from `1.5rem` to `3.5rem` or `4.5rem` display type for key value propositions.
|
|
35
37
|
- **Font Weight Hierarchy**: Pair ultra-heavy display headings (`font-weight: 800` / `900`) with clean, lightweight body type (`font-weight: 400`).
|
|
36
38
|
|
|
37
39
|
### 2. High-Contrast Accent System
|
|
40
|
+
|
|
38
41
|
- **Single Electric Accent**: Introduce one bold, unexpected accent color (e.g. electric lime `oklch(0.85 0.25 130)`, safety orange `oklch(0.68 0.22 40)`, or deep cobalt `oklch(0.45 0.28 260)`).
|
|
39
42
|
- **Asymmetric Color Application**: Use the accent color sparingly on primary CTA buttons, hero badges, or interactive active indicators—never on body text.
|
|
40
43
|
|
|
41
44
|
### 3. Oversized Spatial Framing & Borders
|
|
45
|
+
|
|
42
46
|
- **Crisp Structural Outlines**: Replace faint gray borders with thick 2px solid structural borders (`border: 2px solid var(--foreground)`).
|
|
43
47
|
- **Hard Drop Shadows**: Use sharp, solid offset shadows (`box-shadow: 4px 4px 0px var(--foreground)`) for brutalist or neo-brutalist energy.
|
|
44
48
|
|
|
45
49
|
### 4. Hero Section Asymmetry
|
|
50
|
+
|
|
46
51
|
- **Break Symmetrical Grids**: Shift text alignment left, place a huge badge or key visual off-axis, or overlap card containers across background sections.
|
|
47
52
|
|
|
48
53
|
### 5. Tactile Micro-Interactions
|
|
54
|
+
|
|
49
55
|
- **Snappy Press Springs**: Give buttons a satisfying 3D press effect on active (`transform: translate(2px, 2px); box-shadow: 2px 2px 0px var(--foreground)`).
|
|
50
56
|
|
|
51
57
|
---
|
|
@@ -16,6 +16,7 @@ scripts-binding:
|
|
|
16
16
|
## Mandatory Pre-Flight Context Inspection
|
|
17
17
|
|
|
18
18
|
Before initiating ideation sessions or generating architectural options, you MUST inspect:
|
|
19
|
+
|
|
19
20
|
1. `package.json` / `ARCHITECTURE.md` → Check existing technology stack, libraries, and architectural boundaries
|
|
20
21
|
2. The Socratic Protocol (Section 1) → Provide 3 distinct options (Conservative, Balanced, Ambitious) with tabular trade-offs
|
|
21
22
|
3. Final Brainstorming Assertions schema (Section 4) → Distill options into actionable requirement items before planning
|
|
@@ -254,10 +255,11 @@ INPUT: User request + Context (greenfield/feature/refactor/debug)
|
|
|
254
255
|
- [Affects: cost / complexity / timeline / scale]
|
|
255
256
|
|
|
256
257
|
**Options:**
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
|
260
|
-
|
|
|
258
|
+
|
|
259
|
+
| Option | Pros | Cons | Best For |
|
|
260
|
+
| ------ | ----------- | -------------- | ---------- |
|
|
261
|
+
| A | [Advantage] | [Disadvantage] | [Use case] |
|
|
262
|
+
| B | [Advantage] | [Disadvantage] | [Use case] |
|
|
261
263
|
|
|
262
264
|
**If Not Specified:** [Default choice + rationale]
|
|
263
265
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before writing browser-native AI or client-side inference code, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Main Thread Isolation (Section 44) → Run ONNX Runtime / Wasm inference inside a dedicated Web Worker (`worker.js`) to prevent blocking UI
|
|
24
25
|
2. Quantization Rules (Section 42) → Target 4-bit quantized (`q4`) small language models (0.5B to 1.5B parameters) to prevent mobile device crashes
|
|
25
26
|
3. Download Progress Callback (Section 50) → Provide a `progress_callback` to display model weight download percentages to the user
|
|
@@ -37,19 +38,19 @@ You are an expert at running AI models directly on the client's device, inside t
|
|
|
37
38
|
Use `@huggingface/transformers` (Transformers.js) or `onnxruntime-web` for execution.
|
|
38
39
|
|
|
39
40
|
```typescript
|
|
40
|
-
import { pipeline, env } from
|
|
41
|
+
import { pipeline, env } from '@huggingface/transformers';
|
|
41
42
|
|
|
42
43
|
// Use WebGPU backend for acceleration
|
|
43
44
|
env.backends.onnx.wasm.numThreads = 1;
|
|
44
45
|
env.allowLocalModels = false;
|
|
45
46
|
|
|
46
47
|
// Instantiate an SLM or Embedding model
|
|
47
|
-
const extractor = await pipeline(
|
|
48
|
-
device:
|
|
48
|
+
const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', {
|
|
49
|
+
device: 'webgpu', // Fallback to 'wasm' if needed
|
|
49
50
|
});
|
|
50
51
|
|
|
51
52
|
// Run inference entirely offline
|
|
52
|
-
const output = await extractor(
|
|
53
|
+
const output = await extractor('Hello world', { pooling: 'mean', normalize: true });
|
|
53
54
|
console.log(output.data); // Float32Array embedding
|
|
54
55
|
```
|
|
55
56
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before building headless UI primitives, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. WAI-ARIA Design Patterns (Section 24) → Attach exact roles (`dialog`, `combobox`, `tablist`), `aria-expanded`, and ID associations (`aria-labelledby`, `aria-describedby`)
|
|
24
25
|
2. Focus Traps & Restoration (Section 29) → Trap focus inside modals on open; return focus to trigger on close; dismiss on `Escape`
|
|
25
26
|
3. Data Attributes (Section 41) → Expose clean `data-state="open|closed"` and `data-disabled` attributes for unstyled CSS consumer integration
|
|
@@ -31,15 +32,18 @@ Build rock-solid, framework-agnostic or React headless UI primitives with comple
|
|
|
31
32
|
## 4 Rules for UI Primitives
|
|
32
33
|
|
|
33
34
|
### 1. Complete ARIA Pattern Compliance
|
|
35
|
+
|
|
34
36
|
- **Dialog / Modal**: `role="dialog"`, `aria-modal="true"`, `aria-labelledby="{titleId}"`, `aria-describedby="{descId}"`.
|
|
35
37
|
- **Combobox / Autocomplete**: `role="combobox"`, `aria-expanded="{isOpen}"`, `aria-autocomplete="list"`, `aria-controls="{listboxId}"`.
|
|
36
38
|
- **Tabs**: Tablist `role="tablist"`, Tab `role="tab"`, `aria-selected="{isActive}"`, `aria-controls="{panelId}"`, TabPanel `role="tabpanel"`.
|
|
37
39
|
|
|
38
40
|
### 2. Focus Management & Focus Traps
|
|
41
|
+
|
|
39
42
|
- **Modal Focus Lock**: When a dialog opens, trap focus within the modal container. On close, return focus to the element that triggered it.
|
|
40
43
|
- **Escape Key Dismiss**: Pressing `Escape` MUST close popovers, modals, and dropdown menus instantly.
|
|
41
44
|
|
|
42
45
|
### 3. Keyboard Navigation Sequences
|
|
46
|
+
|
|
43
47
|
- **Listbox / Menu Navigation**:
|
|
44
48
|
- `ArrowDown`: Move active descendant down.
|
|
45
49
|
- `ArrowUp`: Move active descendant up.
|
|
@@ -48,6 +52,7 @@ Build rock-solid, framework-agnostic or React headless UI primitives with comple
|
|
|
48
52
|
- `Enter` / `Space`: Select highlighted item.
|
|
49
53
|
|
|
50
54
|
### 4. Zero Unnecessary Styling
|
|
55
|
+
|
|
51
56
|
- Primitives MUST output clean data attributes (`data-state="open|closed"`, `data-disabled`, `data-highlighted`) so consumers can style them effortlessly with CSS or Tailwind variants.
|
|
52
57
|
|
|
53
58
|
---
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before building React Native / Expo UI components, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Safe Area Setup → Use `SafeAreaProvider` + `useSafeAreaInsets()` for granular notch/inset handling instead of raw `SafeAreaView`
|
|
24
25
|
2. Virtualized List Rendering (Section 130) → Use `FlashList` (Shopify) or `FlatList` with `estimatedItemSize` instead of `ScrollView` for large lists
|
|
25
26
|
3. Native Thread Animations (Section 99) → Use `react-native-reanimated` with `useSharedValue` to keep animations off the JS bridge thread
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before designing CI/CD workflows or deployment scripts, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Concurrency Mutex Requirement (Section 18) → Configure top-level `concurrency:` blocks in GitHub Actions workflows to prevent parallel deploy collisions
|
|
24
25
|
2. OIDC Authentication Protocol (Section 20) → Use OIDC (`id-token: write` permission) for AWS/cloud credentials; ban static access keys in secrets
|
|
25
26
|
3. Production Promotion Gates (Section 21) → Enforce environment promotion gates (`staging` → `production` with manual reviewers) before deploying
|
|
@@ -169,7 +170,7 @@ jobs:
|
|
|
169
170
|
with:
|
|
170
171
|
image-ref: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ github.sha }}
|
|
171
172
|
severity: CRITICAL
|
|
172
|
-
exit-code:
|
|
173
|
+
exit-code: '1' # fail on critical vulnerabilities
|
|
173
174
|
|
|
174
175
|
# ──── STAGE 3: DEPLOY STAGING ────
|
|
175
176
|
deploy-staging:
|