tribunal-kit 6.0.0 → 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/.manifest.json +78 -0
- package/.agent/ARCHITECTURE.md +19 -241
- 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 +3716 -1
- package/.agent/history/memory/MEMORY.md +246 -1
- package/.agent/mcp_config.json +1 -6
- package/.agent/routing_index.json +2034 -263
- package/.agent/rules/GEMINI.md +12 -10
- 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 +237 -0
- 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 +80 -0
- package/.agent/skills/ai-app-hardening/SKILL.md +59 -0
- 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 +70 -0
- 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 +59 -0
- package/.agent/skills/edge-ai-mobile/SKILL.md +50 -0
- 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 +81 -0
- 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 +59 -0
- 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 +68 -0
- package/.agent/skills/playwright-ai-e2e/SKILL.md +60 -0
- 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 +58 -0
- 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 +78 -0
- 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 +90 -0
- 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 +15 -14
- 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 +160 -88
- package/SECURITY.md +11 -11
- package/bin/mcp-server.js +512 -233
- package/bin/tribunal-kit.js +29 -30
- package/bin/wrapper.js +45 -48
- package/dist/cli.js +26 -0
- package/dist/commands/case.js +2 -0
- package/dist/commands/contract.js +440 -0
- package/dist/commands/memory.js +3 -2
- package/dist/commands/native.js +36 -0
- package/dist/commands/status.js +6 -0
- package/dist/esm/index.mjs +32 -0
- package/dist/index.d.ts +58 -3
- package/package.json +20 -16
- 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
|
@@ -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:
|
|
@@ -20,8 +20,9 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before optimizing UI text or error messages, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Target UI labels & modals → Check for vague "Submit" or "OK" buttons and passive corporate jargon
|
|
24
|
-
2. Active Verb Rules (Section 24) → Ensure action buttons start with specific verbs describing outcomes (e.g.
|
|
25
|
+
2. Active Verb Rules (Section 24) → Ensure action buttons start with specific verbs describing outcomes (e.g. _Save changes_, _Download export_)
|
|
25
26
|
3. Actionable Error Messages (Section 30) → Pair error descriptions with explicit resolution steps
|
|
26
27
|
|
|
27
28
|
Optimize user interface text, button labels, error messaging, and helper copy for maximum clarity and minimum cognitive friction.
|
|
@@ -31,29 +32,33 @@ Optimize user interface text, button labels, error messaging, and helper copy fo
|
|
|
31
32
|
## 4 UX Copy Rules
|
|
32
33
|
|
|
33
34
|
### 1. Active & Action-Oriented Verbs
|
|
35
|
+
|
|
34
36
|
- Action buttons MUST begin with strong, specific verbs describing the result.
|
|
35
|
-
- ❌
|
|
36
|
-
- ❌
|
|
37
|
-
- ❌
|
|
37
|
+
- ❌ _Submit_ → ✅ _Save changes_
|
|
38
|
+
- ❌ _Click here_ → ✅ _Download export_
|
|
39
|
+
- ❌ _OK_ → ✅ _Delete project_
|
|
38
40
|
|
|
39
41
|
### 2. Actionable & Helpful Error Messages
|
|
42
|
+
|
|
40
43
|
- Error messages MUST explain what happened AND how to resolve it.
|
|
41
|
-
- ❌
|
|
42
|
-
- ✅
|
|
43
|
-
- ❌
|
|
44
|
-
- ✅
|
|
44
|
+
- ❌ _Invalid input._
|
|
45
|
+
- ✅ _Invalid email format. Enter an email like user@example.com._
|
|
46
|
+
- ❌ _Error 403._
|
|
47
|
+
- ✅ _You don't have permission to edit this document. Request access from the owner._
|
|
45
48
|
|
|
46
49
|
### 3. Eliminate Passive Jargon
|
|
50
|
+
|
|
47
51
|
- Remove internal technical jargon and passive phrasing.
|
|
48
|
-
- ❌
|
|
49
|
-
- ✅
|
|
52
|
+
- ❌ _Your request has been processed successfully by the system queue._
|
|
53
|
+
- ✅ _Settings updated._
|
|
50
54
|
|
|
51
55
|
### 4. Direct Confirmation Dialogs
|
|
56
|
+
|
|
52
57
|
- Modal headers must state the explicit consequence. Modal action buttons must match the title verb.
|
|
53
|
-
- Title:
|
|
54
|
-
- Body:
|
|
55
|
-
- Primary Button:
|
|
56
|
-
- Secondary Button:
|
|
58
|
+
- Title: _Delete workspace?_
|
|
59
|
+
- Body: _All projects, keys, and member permissions in this workspace will be permanently removed._
|
|
60
|
+
- Primary Button: _Delete workspace_ (Destructive red)
|
|
61
|
+
- Secondary Button: _Cancel_
|
|
57
62
|
|
|
58
63
|
---
|
|
59
64
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before refactoring code or evaluating clean code standards, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Intent-Revealing Naming (Section 25) → Name variables/functions to reveal explicit intent; ban cryptic abbreviations (`d`, `proc`, `u`)
|
|
24
25
|
2. Single-Purpose Functions (Section 95) → Ensure functions perform 1 single task; extract sub-operations if function exceeds ~30 lines
|
|
25
26
|
3. Guard Clause Early Returns (Section 344) → Flatten nested logic (>3 levels) using guard clauses and fail-fast early returns
|
|
@@ -112,8 +113,8 @@ if (retries > MAX_RETRY_ATTEMPTS) { ... }
|
|
|
112
113
|
// ❌ BAD: Does 5 things in one function
|
|
113
114
|
async function processOrder(order: Order) {
|
|
114
115
|
// validate
|
|
115
|
-
if (!order.items.length) throw new Error(
|
|
116
|
-
if (order.total < 0) throw new Error(
|
|
116
|
+
if (!order.items.length) throw new Error('Empty');
|
|
117
|
+
if (order.total < 0) throw new Error('Negative');
|
|
117
118
|
// calculate
|
|
118
119
|
const subtotal = order.items.reduce((sum, i) => sum + i.price * i.qty, 0);
|
|
119
120
|
const tax = subtotal * 0.08;
|
|
@@ -121,9 +122,9 @@ async function processOrder(order: Order) {
|
|
|
121
122
|
// save
|
|
122
123
|
await db.orders.insert({ ...order, total });
|
|
123
124
|
// notify
|
|
124
|
-
await emailService.send(order.userId,
|
|
125
|
+
await emailService.send(order.userId, 'Order placed');
|
|
125
126
|
// log
|
|
126
|
-
logger.info(
|
|
127
|
+
logger.info('Order processed', { orderId: order.id });
|
|
127
128
|
}
|
|
128
129
|
|
|
129
130
|
// ✅ GOOD: Each function does one thing
|
|
@@ -136,8 +137,8 @@ async function processOrder(order: Order): Promise<ProcessedOrder> {
|
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
function validateOrder(order: Order): void {
|
|
139
|
-
if (!order.items.length) throw new ValidationError(
|
|
140
|
-
if (order.total < 0) throw new ValidationError(
|
|
140
|
+
if (!order.items.length) throw new ValidationError('Order cannot be empty');
|
|
141
|
+
if (order.total < 0) throw new ValidationError('Total cannot be negative');
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
function calculateTotals(items: OrderItem[]): OrderTotals {
|
|
@@ -203,9 +204,9 @@ class AvatarService { upload() { ... } }
|
|
|
203
204
|
```typescript
|
|
204
205
|
// ❌ BAD: Adding a new type requires modifying existing code
|
|
205
206
|
function calculateDiscount(type: string, amount: number): number {
|
|
206
|
-
if (type ===
|
|
207
|
-
if (type ===
|
|
208
|
-
if (type ===
|
|
207
|
+
if (type === 'student') return amount * 0.2;
|
|
208
|
+
if (type === 'veteran') return amount * 0.15;
|
|
209
|
+
if (type === 'senior') return amount * 0.1; // must modify for every new type
|
|
209
210
|
return 0;
|
|
210
211
|
}
|
|
211
212
|
|
|
@@ -275,7 +276,7 @@ try {
|
|
|
275
276
|
try {
|
|
276
277
|
await processPayment(order);
|
|
277
278
|
} catch (e) {
|
|
278
|
-
console.log(
|
|
279
|
+
console.log('Something went wrong');
|
|
279
280
|
}
|
|
280
281
|
|
|
281
282
|
// ✅ GOOD: Handle specific errors, propagate unexpected
|
|
@@ -283,12 +284,12 @@ try {
|
|
|
283
284
|
await processPayment(order);
|
|
284
285
|
} catch (error) {
|
|
285
286
|
if (error instanceof InsufficientFundsError) {
|
|
286
|
-
return { success: false, message:
|
|
287
|
+
return { success: false, message: 'Insufficient funds' };
|
|
287
288
|
}
|
|
288
289
|
if (error instanceof PaymentGatewayError) {
|
|
289
|
-
logger.warn(
|
|
290
|
+
logger.warn('Payment gateway unavailable, queuing for retry', { orderId: order.id });
|
|
290
291
|
await retryQueue.add(order);
|
|
291
|
-
return { success: false, message:
|
|
292
|
+
return { success: false, message: 'Payment processing delayed' };
|
|
292
293
|
}
|
|
293
294
|
throw error; // unexpected error — let it propagate
|
|
294
295
|
}
|
|
@@ -346,7 +347,7 @@ Long parameter list → Parameter object
|
|
|
346
347
|
function processUser(user: User) {
|
|
347
348
|
if (user) {
|
|
348
349
|
if (user.isActive) {
|
|
349
|
-
if (user.hasPermission(
|
|
350
|
+
if (user.hasPermission('edit')) {
|
|
350
351
|
// actual logic buried 3 levels deep
|
|
351
352
|
doStuff();
|
|
352
353
|
}
|
|
@@ -358,7 +359,7 @@ function processUser(user: User) {
|
|
|
358
359
|
function processUser(user: User) {
|
|
359
360
|
if (!user) return;
|
|
360
361
|
if (!user.isActive) return;
|
|
361
|
-
if (!user.hasPermission(
|
|
362
|
+
if (!user.hasPermission('edit')) return;
|
|
362
363
|
|
|
363
364
|
doStuff(); // happy path at top level
|
|
364
365
|
}
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before architecting AWS cloud infrastructure or writing Terraform HCL, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Dynamic Account ID & Region Resolution (Section 20) → Use `data.aws_caller_identity.current.account_id` and `var.region`; ban hardcoded account IDs or ARNs
|
|
24
25
|
2. Private Subnet Application Placement (Section 23) → Place application compute (ECS, Lambda) strictly in private subnets; only ALB and NAT Gateway live in public subnets
|
|
25
26
|
3. Secrets Manager Secret Injection (Section 21) → Reference secret ARNs from AWS Secrets Manager in ECS task definitions; ban plaintext environment variables for passwords/tokens
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before building WebGL 3D globe components with Cobe, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. `package.json` → Verify `cobe` dependency exists
|
|
24
25
|
2. WebGL Context Cleanup (Section 59) → Ensure `globe.destroy()` is called in the `useEffect` unmount cleanup to prevent memory leaks
|
|
25
26
|
3. Canvas Sizing (Section 65) → Match `devicePixelRatio` to high-DPI screens and set `aspectRatio: 1` to prevent visual stretching
|
|
@@ -31,8 +32,8 @@ Integrate ultra-fast, 5KB WebGL interactive globes for landing page hero section
|
|
|
31
32
|
## Cobe Canvas Setup Recipe (React)
|
|
32
33
|
|
|
33
34
|
```tsx
|
|
34
|
-
import React, { useEffect, useRef } from
|
|
35
|
-
import createGlobe from
|
|
35
|
+
import React, { useEffect, useRef } from 'react';
|
|
36
|
+
import createGlobe from 'cobe';
|
|
36
37
|
|
|
37
38
|
export function InteractiveGlobe() {
|
|
38
39
|
const canvasRef = useRef<HTMLCanvasElement>(null);
|
|
@@ -56,10 +57,10 @@ export function InteractiveGlobe() {
|
|
|
56
57
|
glowColor: [0.1, 0.1, 0.2],
|
|
57
58
|
markers: [
|
|
58
59
|
{ location: [37.7595, -122.4367], size: 0.05 }, // San Francisco
|
|
59
|
-
{ location: [51.5074, -0.1278], size: 0.05 },
|
|
60
|
-
{ location: [35.6762, 139.6503], size: 0.05 },
|
|
60
|
+
{ location: [51.5074, -0.1278], size: 0.05 }, // London
|
|
61
|
+
{ location: [35.6762, 139.6503], size: 0.05 }, // Tokyo
|
|
61
62
|
],
|
|
62
|
-
onRender:
|
|
63
|
+
onRender: state => {
|
|
63
64
|
state.phi = phi;
|
|
64
65
|
phi += 0.005; // Smooth rotation
|
|
65
66
|
},
|
|
@@ -69,10 +70,7 @@ export function InteractiveGlobe() {
|
|
|
69
70
|
}, []);
|
|
70
71
|
|
|
71
72
|
return (
|
|
72
|
-
<canvas
|
|
73
|
-
ref={canvasRef}
|
|
74
|
-
style={{ width: 600, height: 600, maxWidth: "100%", aspectRatio: 1 }}
|
|
75
|
-
/>
|
|
73
|
+
<canvas ref={canvasRef} style={{ width: 600, height: 600, maxWidth: '100%', aspectRatio: 1 }} />
|
|
76
74
|
);
|
|
77
75
|
}
|
|
78
76
|
```
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before performing code reviews or writing PR comments, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Label Convention Standardization (Section 27) → Categorize all feedback into `BLOCKER:`, `CONCERN:`, `SUGGESTION:`, or `NOTE:`
|
|
24
25
|
2. Context Window Discipline (Section 120) → Quote concise 1-3 line snippets with line numbers; ban pasting massive blocks of unchanged code
|
|
25
26
|
3. Anti-Nitpicking Rule (Section 130) → Delegate syntax/formatting formatting checks to linters (`eslint`/Prettier); focus reviews on logic and security
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before designing module boundaries or internal libraries, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Deep Module Ratio Rule (Section 25) → Create deep modules (small simple interface hiding heavy internal complexity); ban shallow 1-line wrapper functions
|
|
24
25
|
2. Strict Information Hiding (Section 46) → Keep internal data structures and vendor clients strictly private (`#privateField`); ban leaking internal ORM/DB types in public APIs
|
|
25
26
|
3. Policy vs Mechanism Separation (Section 53) → Separate generic execution mechanisms (SQL queries, HTTP fetches) from domain business policies (retry rules, validation)
|
|
@@ -33,6 +34,7 @@ Architect software with **deep modules**: modules that hide immense internal com
|
|
|
33
34
|
## 4 Principles of Deep Module Design
|
|
34
35
|
|
|
35
36
|
### 1. High Depth Ratio (Simple Interface / Heavy Implementation)
|
|
37
|
+
|
|
36
38
|
- **Deep Module**: Small surface area interface hiding extensive internal machinery. (e.g. `fs.readFile()` is 1 simple function hiding thousands of lines of OS file descriptor buffer logic).
|
|
37
39
|
- **Shallow Module**: Large interface surface area relative to its implementation (e.g. a 5-line wrapper function with a 6-argument configuration object). Avoid shallow modules!
|
|
38
40
|
|
|
@@ -55,15 +57,18 @@ class DeepUserStorage {
|
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
### 2. Information Hiding & Encapsulation
|
|
60
|
+
|
|
58
61
|
- Keep internal data structures, caching mechanisms, and third-party vendor clients strictly private (`private` / `#privateField`).
|
|
59
62
|
- Expose intent-driven methods (`user.rename("Alice")`) rather than raw property setters (`user.name = "Alice"`).
|
|
60
63
|
|
|
61
64
|
### 3. Clean Seams for Testability
|
|
65
|
+
|
|
62
66
|
- Define interfaces at subsystem boundaries so dependencies can be replaced with mock doubles or fake implementations in tests without modifying production code.
|
|
63
67
|
|
|
64
68
|
### 4. Separate Policy from Mechanism
|
|
65
|
-
|
|
66
|
-
- **
|
|
69
|
+
|
|
70
|
+
- **Mechanism**: _How_ something executes (e.g. HTTP fetching, SQL query building, JSON parsing).
|
|
71
|
+
- **Policy**: _What_ business decision is made (e.g. retry 3 times if status is 503). Keep policy pure and mechanism generic.
|
|
67
72
|
|
|
68
73
|
---
|
|
69
74
|
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before designing color systems or applying color palettes, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. OKLCH Color Space (Section 24) → Use `oklch(L C H)` custom properties for uniform perceptual lightness across light/dark themes
|
|
24
25
|
2. 60-30-10 Budget Rule (Section 39) → 60% Dominant Neutral (surfaces), 30% Structural Secondary (text/borders), 10% Intentional Accent (actions)
|
|
25
26
|
3. Status Token Uniformity (Section 45) → Keep status color lightness consistent ($L \approx 0.60$–$0.72$) across Success, Warning, Destructive, and Info scales
|
|
@@ -31,27 +32,31 @@ Architect uniform, perceptually balanced color scales using the modern OKLCH col
|
|
|
31
32
|
## 4 Color System Principles
|
|
32
33
|
|
|
33
34
|
### 1. Why OKLCH Over HSL/Hex
|
|
35
|
+
|
|
34
36
|
- Traditional HSL suffers from perceptual lightness jumps (e.g. pure yellow `#FFFF00` at Lightness 50% looks blindingly bright compared to pure blue `#0000FF` at Lightness 50%).
|
|
35
37
|
- OKLCH enforces constant perceptual lightness ($L$), predictable chroma ($C$), and hue angles ($H$).
|
|
36
38
|
|
|
37
39
|
```css
|
|
38
40
|
:root {
|
|
39
41
|
/* Primary Brand Scale in OKLCH: L C H */
|
|
40
|
-
--primary-50:
|
|
42
|
+
--primary-50: oklch(0.97 0.02 250);
|
|
41
43
|
--primary-100: oklch(0.92 0.04 250);
|
|
42
|
-
--primary-500: oklch(0.
|
|
44
|
+
--primary-500: oklch(0.6 0.18 250); /* Main Brand Color */
|
|
43
45
|
--primary-700: oklch(0.42 0.16 250);
|
|
44
|
-
--primary-900: oklch(0.24 0.
|
|
46
|
+
--primary-900: oklch(0.24 0.1 250);
|
|
45
47
|
}
|
|
46
48
|
```
|
|
47
49
|
|
|
48
50
|
### 2. The 60-30-10 Color Budget Rule
|
|
51
|
+
|
|
49
52
|
- **60% Dominant Neutral**: Backgrounds, page canvas, card surfaces (`oklch(0.98 0.005 240)`).
|
|
50
53
|
- **30% Structural Secondary**: Typography, borders, icons, navigation chrome (`oklch(0.20 0.01 240)`).
|
|
51
54
|
- **10% Intentional Accent**: Primary actions, key badges, status confirmations (`oklch(0.60 0.18 250)`).
|
|
52
55
|
|
|
53
56
|
### 3. Functional Status Color Tokens
|
|
57
|
+
|
|
54
58
|
Never use random red/green/yellow hex codes. Maintain matching chroma and lightness across status semantic scales:
|
|
59
|
+
|
|
55
60
|
- **Success**: `oklch(0.62 0.17 145)` (Emerald)
|
|
56
61
|
- **Warning**: `oklch(0.72 0.16 75)` (Amber)
|
|
57
62
|
- **Destructive**: `oklch(0.58 0.22 25)` (Coral Red)
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before engineering compact landing pages, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Viewport Fit (Section 24) → Fit hero, preview, and primary CTA inside a single 1080p desktop viewport without initial scrolling
|
|
24
25
|
2. Section Limit (Section 35) → Limit total page structure to max 4 tight sections (Hero, Social Proof, 3-Benefit Grid, Footer Card)
|
|
25
26
|
3. Typography Restraint (Section 30) → Cap display font sizes at `clamp(1.75rem, 4vw, 2.75rem)` and apply `text-wrap: balance`
|
|
@@ -31,16 +32,19 @@ Build tight, ultra-focused, high-converting landing pages that deliver value qui
|
|
|
31
32
|
## 4 Compact Landing Rules
|
|
32
33
|
|
|
33
34
|
### 1. The Single Viewport Value Pitch
|
|
35
|
+
|
|
34
36
|
- Above-the-fold content must answer 3 questions instantly within 1 single screen viewport:
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
37
|
+
1. _What is it?_ (Clear, un-hypey headline + subhead)
|
|
38
|
+
2. _What does it look like?_ (Crisp UI screenshot or interactive preview component)
|
|
39
|
+
3. _How do I get it?_ (Unambiguous primary CTA input/button)
|
|
38
40
|
|
|
39
41
|
### 2. Quiet Typographic Hierarchy
|
|
42
|
+
|
|
40
43
|
- Use subdued monochrome typography (`oklch(0.95 0.005 240)` background with `oklch(0.20 0.01 240)` body copy).
|
|
41
44
|
- Keep display font sizes restrained (`clamp(1.75rem, 4vw, 2.75rem)`) rather than giant 5rem text blocks.
|
|
42
45
|
|
|
43
46
|
### 3. Tight Spatial Grid
|
|
47
|
+
|
|
44
48
|
- Limit total page section count to max 4 sections:
|
|
45
49
|
1. Hero + Primary CTA + Product Preview
|
|
46
50
|
2. Social Proof / Logo Bar
|
|
@@ -48,6 +52,7 @@ Build tight, ultra-focused, high-converting landing pages that deliver value qui
|
|
|
48
52
|
4. Conversion Footer Card
|
|
49
53
|
|
|
50
54
|
### 4. Zero Unnecessary Visual Noise
|
|
55
|
+
|
|
51
56
|
- Omit decorative background shapes, floating 3D spheres, and rainbow gradients. Let contrast and typography drive visual quality.
|
|
52
57
|
|
|
53
58
|
---
|
|
@@ -20,6 +20,7 @@ scripts-binding:
|
|
|
20
20
|
## Mandatory Pre-Flight Context Inspection
|
|
21
21
|
|
|
22
22
|
Before designing logo grids or trust rows, you MUST inspect:
|
|
23
|
+
|
|
23
24
|
1. Optical Weight Normalization rules (Section 24) → Enforce bounding box limits (`max-height: 28px`, `max-width: 120px`) with `object-fit: contain`
|
|
24
25
|
2. Monochromatic Harmonization rules (Section 29) → Render all logos in monochromatic SVG fill (`fill="currentColor"`) matching `--text-muted`
|
|
25
26
|
3. Hover States → Transition opacity to 100% smoothly over `200ms` on hover
|
|
@@ -31,15 +32,19 @@ Architect balanced, optically aligned logo rows and trust grids that communicate
|
|
|
31
32
|
## 4 Logo Layout Rules
|
|
32
33
|
|
|
33
34
|
### 1. Optical Weight Normalization
|
|
35
|
+
|
|
34
36
|
Logos vary wildly in aspect ratio (e.g. square logos vs wide wordmarks).
|
|
37
|
+
|
|
35
38
|
- **Rule**: Set a maximum bounding box (`max-height: 28px`, `max-width: 120px`) and use `object-fit: contain` with `filter: grayscale(100%) opacity(0.7)`.
|
|
36
39
|
- On hover, transition `opacity(1)` and remove grayscale smoothly over `200ms`.
|
|
37
40
|
|
|
38
41
|
### 2. Monochromatic Harmonization
|
|
42
|
+
|
|
39
43
|
- Never display multi-colored corporate logos together—they create visual chaos.
|
|
40
44
|
- Render all logos in monochromatic SVG fill (`fill="currentColor"`) matching `--text-muted` or `--foreground-muted`.
|
|
41
45
|
|
|
42
46
|
### 3. Responsive Flex Grid
|
|
47
|
+
|
|
43
48
|
```css
|
|
44
49
|
.logo-trust-row {
|
|
45
50
|
display: flex;
|
|
@@ -51,6 +56,7 @@ Logos vary wildly in aspect ratio (e.g. square logos vs wide wordmarks).
|
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
### 4. Seamless Ticker Marquee (Optional)
|
|
59
|
+
|
|
54
60
|
- For 8+ logos, use a hardware-accelerated CSS marquee animation with duplicate items for seamless continuous looping and `animation-play-state: paused` on hover.
|
|
55
61
|
|
|
56
62
|
---
|