natureco-cli 5.18.2 → 5.19.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.
Files changed (155) hide show
  1. package/package.json +1 -1
  2. package/skills/airunway-aks-setup/SKILL.md +73 -0
  3. package/skills/algorithmic-art/SKILL.md +405 -0
  4. package/skills/appinsights-instrumentation/SKILL.md +76 -0
  5. package/skills/azure-ai/SKILL.md +71 -0
  6. package/skills/azure-aigateway/SKILL.md +129 -0
  7. package/skills/azure-cloud-migrate/SKILL.md +52 -0
  8. package/skills/azure-compliance/SKILL.md +108 -0
  9. package/skills/azure-compute/SKILL.md +46 -0
  10. package/skills/azure-cost/SKILL.md +45 -0
  11. package/skills/azure-deploy/SKILL.md +97 -0
  12. package/skills/azure-diagnostics/SKILL.md +151 -0
  13. package/skills/azure-enterprise-infra-planner/SKILL.md +54 -0
  14. package/skills/azure-hosted-copilot-sdk/SKILL.md +89 -0
  15. package/skills/azure-kubernetes/SKILL.md +153 -0
  16. package/skills/azure-kusto/SKILL.md +231 -0
  17. package/skills/azure-messaging/SKILL.md +57 -0
  18. package/skills/azure-prepare/SKILL.md +165 -0
  19. package/skills/azure-quotas/SKILL.md +276 -0
  20. package/skills/azure-rbac/SKILL.md +17 -0
  21. package/skills/azure-reliability/SKILL.md +387 -0
  22. package/skills/azure-resource-lookup/SKILL.md +108 -0
  23. package/skills/azure-resource-visualizer/SKILL.md +183 -0
  24. package/skills/azure-storage/SKILL.md +100 -0
  25. package/skills/azure-upgrade/SKILL.md +91 -0
  26. package/skills/azure-validate/SKILL.md +72 -0
  27. package/skills/brainstorming/SKILL.md +159 -0
  28. package/skills/brand-guidelines/SKILL.md +73 -0
  29. package/skills/brandkit/SKILL.md +798 -0
  30. package/skills/brutalist-skill/SKILL.md +92 -0
  31. package/skills/canvas-design/SKILL.md +130 -0
  32. package/skills/cavecrew/SKILL.md +82 -0
  33. package/skills/caveman-commit/SKILL.md +65 -0
  34. package/skills/caveman-help/SKILL.md +63 -0
  35. package/skills/caveman-review/SKILL.md +55 -0
  36. package/skills/caveman-stats/SKILL.md +10 -0
  37. package/skills/claude-api/SKILL.md +356 -0
  38. package/skills/composition-patterns/SKILL.md +89 -0
  39. package/skills/decision-mapping/SKILL.md +84 -0
  40. package/skills/deploy-to-vercel/SKILL.md +296 -0
  41. package/skills/design-an-interface/SKILL.md +94 -0
  42. package/skills/design-doc-mermaid/SKILL.md +498 -0
  43. package/skills/develop-userscripts/SKILL.md +84 -0
  44. package/skills/doc-coauthoring/SKILL.md +375 -0
  45. package/skills/documentation/SKILL.md +109 -0
  46. package/skills/docx/SKILL.md +590 -0
  47. package/skills/edit-article/SKILL.md +15 -0
  48. package/skills/entra-agent-id/SKILL.md +356 -0
  49. package/skills/entra-app-registration/SKILL.md +191 -0
  50. package/skills/faceless-explainer/SKILL.md +202 -0
  51. package/skills/fastify/SKILL.md +75 -0
  52. package/skills/general-video/SKILL.md +143 -0
  53. package/skills/git-guardrails-claude-code/SKILL.md +95 -0
  54. package/skills/github-actions-docs/SKILL.md +98 -0
  55. package/skills/gpt-tasteskill/SKILL.md +74 -0
  56. package/skills/grill-me/SKILL.md +7 -0
  57. package/skills/grilling/SKILL.md +10 -0
  58. package/skills/handoff/SKILL.md +16 -0
  59. package/skills/hyperframes/SKILL.md +152 -0
  60. package/skills/hyperframes-animation/SKILL.md +82 -0
  61. package/skills/hyperframes-cli/SKILL.md +109 -0
  62. package/skills/hyperframes-core/SKILL.md +78 -0
  63. package/skills/hyperframes-creative/SKILL.md +68 -0
  64. package/skills/hyperframes-media/SKILL.md +97 -0
  65. package/skills/image-to-code-skill/SKILL.md +1228 -0
  66. package/skills/imagegen-frontend-mobile/SKILL.md +1465 -0
  67. package/skills/imagegen-frontend-web/SKILL.md +987 -0
  68. package/skills/implement/SKILL.md +15 -0
  69. package/skills/init/SKILL.md +91 -0
  70. package/skills/internal-comms/SKILL.md +32 -0
  71. package/skills/lark-approval/SKILL.md +56 -0
  72. package/skills/lark-base/SKILL.md +157 -0
  73. package/skills/lark-doc/SKILL.md +81 -0
  74. package/skills/lark-shared/SKILL.md +168 -0
  75. package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
  76. package/skills/linting-neostandard-eslint9/SKILL.md +64 -0
  77. package/skills/loop-me/SKILL.md +32 -0
  78. package/skills/microsoft-foundry/SKILL.md +262 -0
  79. package/skills/migrate-to-shoehorn/SKILL.md +118 -0
  80. package/skills/minimalist-skill/SKILL.md +85 -0
  81. package/skills/motion-graphics/SKILL.md +170 -0
  82. package/skills/music-to-video/SKILL.md +197 -0
  83. package/skills/node/SKILL.md +94 -0
  84. package/skills/nodejs-core/SKILL.md +156 -0
  85. package/skills/oauth/SKILL.md +186 -0
  86. package/skills/obsidian-vault/SKILL.md +59 -0
  87. package/skills/octocat/SKILL.md +93 -0
  88. package/skills/openclaw-secure-linux-cloud/SKILL.md +157 -0
  89. package/skills/opensource-guide-coach/SKILL.md +218 -0
  90. package/skills/output-skill/SKILL.md +49 -0
  91. package/skills/pdf/SKILL.md +314 -0
  92. package/skills/pptx/SKILL.md +232 -0
  93. package/skills/pr-to-video/SKILL.md +235 -0
  94. package/skills/product-launch-video/SKILL.md +205 -0
  95. package/skills/python-appservice-deploy/SKILL.md +36 -0
  96. package/skills/qa/SKILL.md +130 -0
  97. package/skills/react-best-practices/SKILL.md +149 -0
  98. package/skills/react-native-skills/SKILL.md +121 -0
  99. package/skills/react-view-transitions/SKILL.md +320 -0
  100. package/skills/readme-i18n/SKILL.md +176 -0
  101. package/skills/redesign-skill/SKILL.md +178 -0
  102. package/skills/remotion/SKILL.md +364 -0
  103. package/skills/request-refactor-plan/SKILL.md +68 -0
  104. package/skills/resolving-merge-conflicts/SKILL.md +14 -0
  105. package/skills/running-claude-code-via-litellm-copilot/SKILL.md +263 -0
  106. package/skills/scaffold-exercises/SKILL.md +106 -0
  107. package/skills/secure-linux-web-hosting/SKILL.md +162 -0
  108. package/skills/setup-pre-commit/SKILL.md +91 -0
  109. package/skills/shadcn/SKILL.md +267 -0
  110. package/skills/simple/SKILL.md +52 -0
  111. package/skills/skill-creator/SKILL.md +485 -0
  112. package/skills/skill-optimizer/SKILL.md +47 -0
  113. package/skills/skills-cli/SKILL.md +281 -0
  114. package/skills/slack-gif-creator/SKILL.md +254 -0
  115. package/skills/snipgrapher/SKILL.md +58 -0
  116. package/skills/soft-skill/SKILL.md +98 -0
  117. package/skills/stitch-skill/SKILL.md +184 -0
  118. package/skills/supabase/SKILL.md +135 -0
  119. package/skills/supabase-postgres-best-practices/SKILL.md +64 -0
  120. package/skills/systematic-debugging/SKILL.md +296 -0
  121. package/skills/talking-head-recut/SKILL.md +1191 -0
  122. package/skills/taste-skill/SKILL.md +1206 -0
  123. package/skills/taste-skill-v1/SKILL.md +226 -0
  124. package/skills/tdd/SKILL.md +108 -0
  125. package/skills/teach/SKILL.md +140 -0
  126. package/skills/test-driven-development/SKILL.md +371 -0
  127. package/skills/theme-factory/SKILL.md +59 -0
  128. package/skills/to-prd/SKILL.md +75 -0
  129. package/skills/typescript-magician/SKILL.md +117 -0
  130. package/skills/tzst/SKILL.md +68 -0
  131. package/skills/ubiquitous-language/SKILL.md +93 -0
  132. package/skills/use-my-browser/SKILL.md +110 -0
  133. package/skills/using-superpowers/SKILL.md +121 -0
  134. package/skills/vercel-cli-with-tokens/SKILL.md +353 -0
  135. package/skills/vercel-optimize/SKILL.md +322 -0
  136. package/skills/viral-instagram-reels/SKILL.md +180 -0
  137. package/skills/viral-short-form/SKILL.md +147 -0
  138. package/skills/viral-short-form-ideas/SKILL.md +184 -0
  139. package/skills/viral-tiktok-content/SKILL.md +180 -0
  140. package/skills/web-artifacts-builder/SKILL.md +74 -0
  141. package/skills/web-design-guidelines/SKILL.md +39 -0
  142. package/skills/webapp-testing/SKILL.md +96 -0
  143. package/skills/website-to-video/SKILL.md +145 -0
  144. package/skills/writing-beats/SKILL.md +67 -0
  145. package/skills/writing-fragments/SKILL.md +79 -0
  146. package/skills/writing-great-skills/SKILL.md +82 -0
  147. package/skills/writing-guidelines/SKILL.md +39 -0
  148. package/skills/writing-plans/SKILL.md +174 -0
  149. package/skills/writing-shape/SKILL.md +79 -0
  150. package/skills/xdrop/SKILL.md +78 -0
  151. package/skills/xget/SKILL.md +87 -0
  152. package/skills/xlsx/SKILL.md +292 -0
  153. package/src/tools/browser_use.js +2 -1
  154. package/src/tools/skills_download.js +217 -0
  155. package/src/utils/tools.js +2 -2
@@ -0,0 +1,226 @@
1
+ ---
2
+ name: design-taste-frontend-v1
3
+ description: The original v1 taste-skill, preserved for projects depending on its exact behavior. The current default is `design-taste-frontend` (v2 experimental), which is a substantial rewrite. Use this v1 install name only if you need exact backward compatibility.
4
+ ---
5
+
6
+ # High-Agency Frontend Skill
7
+
8
+ ## 1. ACTIVE BASELINE CONFIGURATION
9
+ * DESIGN_VARIANCE: 8 (1=Perfect Symmetry, 10=Artsy Chaos)
10
+ * MOTION_INTENSITY: 6 (1=Static/No movement, 10=Cinematic/Magic Physics)
11
+ * VISUAL_DENSITY: 4 (1=Art Gallery/Airy, 10=Pilot Cockpit/Packed Data)
12
+
13
+ **AI Instruction:** The standard baseline for all generations is strictly set to these values (8, 6, 4). Do not ask the user to edit this file. Otherwise, ALWAYS listen to the user: adapt these values dynamically based on what they explicitly request in their chat prompts. Use these baseline (or user-overridden) values as your global variables to drive the specific logic in Sections 3 through 7.
14
+
15
+ ## 2. DEFAULT ARCHITECTURE & CONVENTIONS
16
+ Unless the user explicitly specifies a different stack, adhere to these structural constraints to maintain consistency:
17
+
18
+ * **DEPENDENCY VERIFICATION [MANDATORY]:** Before importing ANY 3rd party library (e.g. `framer-motion`, `lucide-react`, `zustand`), you MUST check `package.json`. If the package is missing, you MUST output the installation command (e.g. `npm install package-name`) before providing the code. **Never** assume a library exists.
19
+ * **Framework & Interactivity:** React or Next.js. Default to Server Components (`RSC`).
20
+ * **RSC SAFETY:** Global state works ONLY in Client Components. In Next.js, wrap providers in a `"use client"` component.
21
+ * **INTERACTIVITY ISOLATION:** If Sections 4 or 7 (Motion/Liquid Glass) are active, the specific interactive UI component MUST be extracted as an isolated leaf component with `'use client'` at the very top. Server Components must exclusively render static layouts.
22
+ * **State Management:** Use local `useState`/`useReducer` for isolated UI. Use global state strictly for deep prop-drilling avoidance.
23
+ * **Styling Policy:** Use Tailwind CSS (v3/v4) for 90% of styling.
24
+ * **TAILWIND VERSION LOCK:** Check `package.json` first. Do not use v4 syntax in v3 projects.
25
+ * **T4 CONFIG GUARD:** For v4, do NOT use `tailwindcss` plugin in `postcss.config.js`. Use `@tailwindcss/postcss` or the Vite plugin.
26
+ * **ANTI-EMOJI POLICY [CRITICAL]:** NEVER use emojis in code, markup, text content, or alt text. Replace symbols with high-quality icons (Radix, Phosphor) or clean SVG primitives. Emojis are BANNED.
27
+ * **Responsiveness & Spacing:**
28
+ * Standardize breakpoints (`sm`, `md`, `lg`, `xl`).
29
+ * Contain page layouts using `max-w-[1400px] mx-auto` or `max-w-7xl`.
30
+ * **Viewport Stability [CRITICAL]:** NEVER use `h-screen` for full-height Hero sections. ALWAYS use `min-h-[100dvh]` to prevent catastrophic layout jumping on mobile browsers (iOS Safari).
31
+ * **Grid over Flex-Math:** NEVER use complex flexbox percentage math (`w-[calc(33%-1rem)]`). ALWAYS use CSS Grid (`grid grid-cols-1 md:grid-cols-3 gap-6`) for reliable structures.
32
+ * **Icons:** You MUST use exactly `@phosphor-icons/react` or `@radix-ui/react-icons` as the import paths (check installed version). Standardize `strokeWidth` globally (e.g., exclusively use `1.5` or `2.0`).
33
+
34
+
35
+ ## 3. DESIGN ENGINEERING DIRECTIVES (Bias Correction)
36
+ LLMs have statistical biases toward specific UI cliché patterns. Proactively construct premium interfaces using these engineered rules:
37
+
38
+ **Rule 1: Deterministic Typography**
39
+ * **Display/Headlines:** Default to `text-4xl md:text-6xl tracking-tighter leading-none`.
40
+ * **ANTI-SLOP:** Discourage `Inter` for "Premium" or "Creative" vibes. Force unique character using `Geist`, `Outfit`, `Cabinet Grotesk`, or `Satoshi`.
41
+ * **TECHNICAL UI RULE:** Serif fonts are strictly BANNED for Dashboard/Software UIs. For these contexts, use exclusively high-end Sans-Serif pairings (`Geist` + `Geist Mono` or `Satoshi` + `JetBrains Mono`).
42
+ * **Body/Paragraphs:** Default to `text-base text-gray-600 leading-relaxed max-w-[65ch]`.
43
+
44
+ **Rule 2: Color Calibration**
45
+ * **Constraint:** Max 1 Accent Color. Saturation < 80%.
46
+ * **THE LILA BAN:** The "AI Purple/Blue" aesthetic is strictly BANNED. No purple button glows, no neon gradients. Use absolute neutral bases (Zinc/Slate) with high-contrast, singular accents (e.g. Emerald, Electric Blue, or Deep Rose).
47
+ * **COLOR CONSISTENCY:** Stick to one palette for the entire output. Do not fluctuate between warm and cool grays within the same project.
48
+
49
+ **Rule 3: Layout Diversification**
50
+ * **ANTI-CENTER BIAS:** Centered Hero/H1 sections are strictly BANNED when `DESIGN_VARIANCE > 4`. Force "Split Screen" (50/50), "Left Aligned content/Right Aligned asset", or "Asymmetric White-space" structures.
51
+
52
+ **Rule 4: Materiality, Shadows, and "Anti-Card Overuse"**
53
+ * **DASHBOARD HARDENING:** For `VISUAL_DENSITY > 7`, generic card containers are strictly BANNED. Use logic-grouping via `border-t`, `divide-y`, or purely negative space. Data metrics should breathe without being boxed in unless elevation (z-index) is functionally required.
54
+ * **Execution:** Use cards ONLY when elevation communicates hierarchy. When a shadow is used, tint it to the background hue.
55
+
56
+ **Rule 5: Interactive UI States**
57
+ * **Mandatory Generation:** LLMs naturally generate "static" successful states. You MUST implement full interaction cycles:
58
+ * **Loading:** Skeletal loaders matching layout sizes (avoid generic circular spinners).
59
+ * **Empty States:** Beautifully composed empty states indicating how to populate data.
60
+ * **Error States:** Clear, inline error reporting (e.g., forms).
61
+ * **Tactile Feedback:** On `:active`, use `-translate-y-[1px]` or `scale-[0.98]` to simulate a physical push indicating success/action.
62
+
63
+ **Rule 6: Data & Form Patterns**
64
+ * **Forms:** Label MUST sit above input. Helper text is optional but should exist in markup. Error text below input. Use a standard `gap-2` for input blocks.
65
+
66
+ ## 4. CREATIVE PROACTIVITY (Anti-Slop Implementation)
67
+ To actively combat generic AI designs, systematically implement these high-end coding concepts as your baseline:
68
+ * **"Liquid Glass" Refraction:** When glassmorphism is needed, go beyond `backdrop-blur`. Add a 1px inner border (`border-white/10`) and a subtle inner shadow (`shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]`) to simulate physical edge refraction.
69
+ * **Magnetic Micro-physics (If MOTION_INTENSITY > 5):** Implement buttons that pull slightly toward the mouse cursor. **CRITICAL:** NEVER use React `useState` for magnetic hover or continuous animations. Use EXCLUSIVELY Framer Motion's `useMotionValue` and `useTransform` outside the React render cycle to prevent performance collapse on mobile.
70
+ * **Perpetual Micro-Interactions:** When `MOTION_INTENSITY > 5`, embed continuous, infinite micro-animations (Pulse, Typewriter, Float, Shimmer, Carousel) in standard components (avatars, status dots, backgrounds). Apply premium Spring Physics (`type: "spring", stiffness: 100, damping: 20`) to all interactive elements—no linear easing.
71
+ * **Layout Transitions:** Always utilize Framer Motion's `layout` and `layoutId` props for smooth re-ordering, resizing, and shared element transitions across state changes.
72
+ * **Staggered Orchestration:** Do not mount lists or grids instantly. Use `staggerChildren` (Framer) or CSS cascade (`animation-delay: calc(var(--index) * 100ms)`) to create sequential waterfall reveals. **CRITICAL:** For `staggerChildren`, the Parent (`variants`) and Children MUST reside in the identical Client Component tree. If data is fetched asynchronously, pass the data as props into a centralized Parent Motion wrapper.
73
+
74
+ ## 5. PERFORMANCE GUARDRAILS
75
+ * **DOM Cost:** Apply grain/noise filters exclusively to fixed, pointer-event-none pseudo-elements (e.g., `fixed inset-0 z-50 pointer-events-none`) and NEVER to scrolling containers to prevent continuous GPU repaints and mobile performance degradation.
76
+ * **Hardware Acceleration:** Never animate `top`, `left`, `width`, or `height`. Animate exclusively via `transform` and `opacity`.
77
+ * **Z-Index Restraint:** NEVER spam arbitrary `z-50` or `z-10` unprompted. Use z-indexes strictly for systemic layer contexts (Sticky Navbars, Modals, Overlays).
78
+
79
+ ## 6. TECHNICAL REFERENCE (Dial Definitions)
80
+
81
+ ### DESIGN_VARIANCE (Level 1-10)
82
+ * **1-3 (Predictable):** Flexbox `justify-center`, strict 12-column symmetrical grids, equal paddings.
83
+ * **4-7 (Offset):** Use `margin-top: -2rem` overlapping, varied image aspect ratios (e.g., 4:3 next to 16:9), left-aligned headers over center-aligned data.
84
+ * **8-10 (Asymmetric):** Masonry layouts, CSS Grid with fractional units (e.g., `grid-template-columns: 2fr 1fr 1fr`), massive empty zones (`padding-left: 20vw`).
85
+ * **MOBILE OVERRIDE:** For levels 4-10, any asymmetric layout above `md:` MUST aggressively fall back to a strict, single-column layout (`w-full`, `px-4`, `py-8`) on viewports `< 768px` to prevent horizontal scrolling and layout breakage.
86
+
87
+ ### MOTION_INTENSITY (Level 1-10)
88
+ * **1-3 (Static):** No automatic animations. CSS `:hover` and `:active` states only.
89
+ * **4-7 (Fluid CSS):** Use `transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1)`. Use `animation-delay` cascades for load-ins. Focus strictly on `transform` and `opacity`. Use `will-change: transform` sparingly.
90
+ * **8-10 (Advanced Choreography):** Complex scroll-triggered reveals or parallax. Use Framer Motion hooks. NEVER use `window.addEventListener('scroll')`.
91
+
92
+ ### VISUAL_DENSITY (Level 1-10)
93
+ * **1-3 (Art Gallery Mode):** Lots of white space. Huge section gaps. Everything feels very expensive and clean.
94
+ * **4-7 (Daily App Mode):** Normal spacing for standard web apps.
95
+ * **8-10 (Cockpit Mode):** Tiny paddings. No card boxes; just 1px lines to separate data. Everything is packed. **Mandatory:** Use Monospace (`font-mono`) for all numbers.
96
+
97
+ ## 7. AI TELLS (Forbidden Patterns)
98
+ To guarantee a premium, non-generic output, you MUST strictly avoid these common AI design signatures unless explicitly requested:
99
+
100
+ ### Visual & CSS
101
+ * **NO Neon/Outer Glows:** Do not use default `box-shadow` glows or auto-glows. Use inner borders or subtle tinted shadows.
102
+ * **NO Pure Black:** Never use `#000000`. Use Off-Black, Zinc-950, or Charcoal.
103
+ * **NO Oversaturated Accents:** Desaturate accents to blend elegantly with neutrals.
104
+ * **NO Excessive Gradient Text:** Do not use text-fill gradients for large headers.
105
+ * **NO Custom Mouse Cursors:** They are outdated and ruin performance/accessibility.
106
+
107
+ ### Typography
108
+ * **NO Inter Font:** Banned. Use `Geist`, `Outfit`, `Cabinet Grotesk`, or `Satoshi`.
109
+ * **NO Oversized H1s:** The first heading should not scream. Control hierarchy with weight and color, not just massive scale.
110
+ * **Serif Constraints:** Use Serif fonts ONLY for creative/editorial designs. **NEVER** use Serif on clean Dashboards.
111
+
112
+ ### Layout & Spacing
113
+ * **Align & Space Perfectly:** Ensure padding and margins are mathematically perfect. Avoid floating elements with awkward gaps.
114
+ * **NO 3-Column Card Layouts:** The generic "3 equal cards horizontally" feature row is BANNED. Use a 2-column Zig-Zag, asymmetric grid, or horizontal scrolling approach instead.
115
+
116
+ ### Content & Data (The "Jane Doe" Effect)
117
+ * **NO Generic Names:** "John Doe", "Sarah Chan", or "Jack Su" are banned. Use highly creative, realistic-sounding names.
118
+ * **NO Generic Avatars:** DO NOT use standard SVG "egg" or Lucide user icons for avatars. Use creative, believable photo placeholders or specific styling.
119
+ * **NO Fake Numbers:** Avoid predictable outputs like `99.99%`, `50%`, or basic phone numbers (`1234567`). Use organic, messy data (`47.2%`, `+1 (312) 847-1928`).
120
+ * **NO Startup Slop Names:** "Acme", "Nexus", "SmartFlow". Invent premium, contextual brand names.
121
+ * **NO Filler Words:** Avoid AI copywriting clichés like "Elevate", "Seamless", "Unleash", or "Next-Gen". Use concrete verbs.
122
+
123
+ ### External Resources & Components
124
+ * **NO Broken Unsplash Links:** Do not use Unsplash. Use absolute, reliable placeholders like `https://picsum.photos/seed/{random_string}/800/600` or SVG UI Avatars.
125
+ * **shadcn/ui Customization:** You may use `shadcn/ui`, but NEVER in its generic default state. You MUST customize the radii, colors, and shadows to match the high-end project aesthetic.
126
+ * **Production-Ready Cleanliness:** Code must be extremely clean, visually striking, memorable, and meticulously refined in every detail.
127
+
128
+ ## 8. THE CREATIVE ARSENAL (High-End Inspiration)
129
+ Do not default to generic UI. Pull from this library of advanced concepts to ensure the output is visually striking and memorable. When appropriate, leverage **GSAP (ScrollTrigger/Parallax)** for complex scrolltelling or **ThreeJS/WebGL** for 3D/Canvas animations, rather than basic CSS motion. **CRITICAL:** Never mix GSAP/ThreeJS with Framer Motion in the same component tree. Default to Framer Motion for UI/Bento interactions. Use GSAP/ThreeJS EXCLUSIVELY for isolated full-page scrolltelling or canvas backgrounds, wrapped in strict useEffect cleanup blocks.
130
+
131
+ ### The Standard Hero Paradigm
132
+ * Stop doing centered text over a dark image. Try asymmetric Hero sections: Text cleanly aligned to the left or right. The background should feature a high-quality, relevant image with a subtle stylistic fade (darkening or lightening gracefully into the background color depending on if it is Light or Dark mode).
133
+
134
+ ### Navigation & Menüs
135
+ * **Mac OS Dock Magnification:** Nav-bar at the edge; icons scale fluidly on hover.
136
+ * **Magnetic Button:** Buttons that physically pull toward the cursor.
137
+ * **Gooey Menu:** Sub-items detach from the main button like a viscous liquid.
138
+ * **Dynamic Island:** A pill-shaped UI component that morphs to show status/alerts.
139
+ * **Contextual Radial Menu:** A circular menu expanding exactly at the click coordinates.
140
+ * **Floating Speed Dial:** A FAB that springs out into a curved line of secondary actions.
141
+ * **Mega Menu Reveal:** Full-screen dropdowns that stagger-fade complex content.
142
+
143
+ ### Layout & Grids
144
+ * **Bento Grid:** Asymmetric, tile-based grouping (e.g., Apple Control Center).
145
+ * **Masonry Layout:** Staggered grid without fixed row heights (e.g., Pinterest).
146
+ * **Chroma Grid:** Grid borders or tiles showing subtle, continuously animating color gradients.
147
+ * **Split Screen Scroll:** Two screen halves sliding in opposite directions on scroll.
148
+ * **Curtain Reveal:** A Hero section parting in the middle like a curtain on scroll.
149
+
150
+ ### Cards & Containers
151
+ * **Parallax Tilt Card:** A 3D-tilting card tracking the mouse coordinates.
152
+ * **Spotlight Border Card:** Card borders that illuminate dynamically under the cursor.
153
+ * **Glassmorphism Panel:** True frosted glass with inner refraction borders.
154
+ * **Holographic Foil Card:** Iridescent, rainbow light reflections shifting on hover.
155
+ * **Tinder Swipe Stack:** A physical stack of cards the user can swipe away.
156
+ * **Morphing Modal:** A button that seamlessly expands into its own full-screen dialog container.
157
+
158
+ ### Scroll-Animations
159
+ * **Sticky Scroll Stack:** Cards that stick to the top and physically stack over each other.
160
+ * **Horizontal Scroll Hijack:** Vertical scroll translates into a smooth horizontal gallery pan.
161
+ * **Locomotive Scroll Sequence:** Video/3D sequences where framerate is tied directly to the scrollbar.
162
+ * **Zoom Parallax:** A central background image zooming in/out seamlessly as you scroll.
163
+ * **Scroll Progress Path:** SVG vector lines or routes that draw themselves as the user scrolls.
164
+ * **Liquid Swipe Transition:** Page transitions that wipe the screen like a viscous liquid.
165
+
166
+ ### Galleries & Media
167
+ * **Dome Gallery:** A 3D gallery feeling like a panoramic dome.
168
+ * **Coverflow Carousel:** 3D carousel with the center focused and edges angled back.
169
+ * **Drag-to-Pan Grid:** A boundless grid you can freely drag in any compass direction.
170
+ * **Accordion Image Slider:** Narrow vertical/horizontal image strips that expand fully on hover.
171
+ * **Hover Image Trail:** The mouse leaves a trail of popping/fading images behind it.
172
+ * **Glitch Effect Image:** Brief RGB-channel shifting digital distortion on hover.
173
+
174
+ ### Typography & Text
175
+ * **Kinetic Marquee:** Endless text bands that reverse direction or speed up on scroll.
176
+ * **Text Mask Reveal:** Massive typography acting as a transparent window to a video background.
177
+ * **Text Scramble Effect:** Matrix-style character decoding on load or hover.
178
+ * **Circular Text Path:** Text curved along a spinning circular path.
179
+ * **Gradient Stroke Animation:** Outlined text with a gradient continuously running along the stroke.
180
+ * **Kinetic Typography Grid:** A grid of letters dodging or rotating away from the cursor.
181
+
182
+ ### Micro-Interactions & Effects
183
+ * **Particle Explosion Button:** CTAs that shatter into particles upon success.
184
+ * **Liquid Pull-to-Refresh:** Mobile reload indicators acting like detaching water droplets.
185
+ * **Skeleton Shimmer:** Shifting light reflections moving across placeholder boxes.
186
+ * **Directional Hover Aware Button:** Hover fill entering from the exact side the mouse entered.
187
+ * **Ripple Click Effect:** Visual waves rippling precisely from the click coordinates.
188
+ * **Animated SVG Line Drawing:** Vectors that draw their own contours in real-time.
189
+ * **Mesh Gradient Background:** Organic, lava-lamp-like animated color blobs.
190
+ * **Lens Blur Depth:** Dynamic focus blurring background UI layers to highlight a foreground action.
191
+
192
+ ## 9. THE "MOTION-ENGINE" BENTO PARADIGM
193
+ When generating modern SaaS dashboards or feature sections, you MUST utilize the following "Bento 2.0" architecture and motion philosophy. This goes beyond static cards and enforces a "Vercel-core meets Dribbble-clean" aesthetic heavily reliant on perpetual physics.
194
+
195
+ ### A. Core Design Philosophy
196
+ * **Aesthetic:** High-end, minimal, and functional.
197
+ * **Palette:** Background in `#f9fafb`. Cards are pure white (`#ffffff`) with a 1px border of `border-slate-200/50`.
198
+ * **Surfaces:** Use `rounded-[2.5rem]` for all major containers. Apply a "diffusion shadow" (a very light, wide-spreading shadow, e.g., `shadow-[0_20px_40px_-15px_rgba(0,0,0,0.05)]`) to create depth without clutter.
199
+ * **Typography:** Strict `Geist`, `Satoshi`, or `Cabinet Grotesk` font stack. Use subtle tracking (`tracking-tight`) for headers.
200
+ * **Labels:** Titles and descriptions must be placed **outside and below** the cards to maintain a clean, gallery-style presentation.
201
+ * **Pixel-Perfection:** Use generous `p-8` or `p-10` padding inside cards.
202
+
203
+ ### B. The Animation Engine Specs (Perpetual Motion)
204
+ All cards must contain **"Perpetual Micro-Interactions."** Use the following Framer Motion principles:
205
+ * **Spring Physics:** No linear easing. Use `type: "spring", stiffness: 100, damping: 20` for a premium, weighty feel.
206
+ * **Layout Transitions:** Heavily utilize the `layout` and `layoutId` props to ensure smooth re-ordering, resizing, and shared element state transitions.
207
+ * **Infinite Loops:** Every card must have an "Active State" that loops infinitely (Pulse, Typewriter, Float, or Carousel) to ensure the dashboard feels "alive".
208
+ * **Performance:** Wrap dynamic lists in `<AnimatePresence>` and optimize for 60fps. **PERFORMANCE CRITICAL:** Any perpetual motion or infinite loop MUST be memoized (React.memo) and completely isolated in its own microscopic Client Component. Never trigger re-renders in the parent layout.
209
+
210
+ ### C. The 5-Card Archetypes (Micro-Animation Specs)
211
+ Implement these specific micro-animations when constructing Bento grids (e.g., Row 1: 3 cols | Row 2: 2 cols split 70/30):
212
+ 1. **The Intelligent List:** A vertical stack of items with an infinite auto-sorting loop. Items swap positions using `layoutId`, simulating an AI prioritizing tasks in real-time.
213
+ 2. **The Command Input:** A search/AI bar with a multi-step Typewriter Effect. It cycles through complex prompts, including a blinking cursor and a "processing" state with a shimmering loading gradient.
214
+ 3. **The Live Status:** A scheduling interface with "breathing" status indicators. Include a pop-up notification badge that emerges with an "Overshoot" spring effect, stays for 3 seconds, and vanishes.
215
+ 4. **The Wide Data Stream:** A horizontal "Infinite Carousel" of data cards or metrics. Ensure the loop is seamless (using `x: ["0%", "-100%"]`) with a speed that feels effortless.
216
+ 5. **The Contextual UI (Focus Mode):** A document view that animates a staggered highlight of a text block, followed by a "Float-in" of a floating action toolbar with micro-icons.
217
+
218
+ ## 10. FINAL PRE-FLIGHT CHECK
219
+ Evaluate your code against this matrix before outputting. This is the **last** filter you apply to your logic.
220
+ - [ ] Is global state used appropriately to avoid deep prop-drilling rather than arbitrarily?
221
+ - [ ] Is mobile layout collapse (`w-full`, `px-4`, `max-w-7xl mx-auto`) guaranteed for high-variance designs?
222
+ - [ ] Do full-height sections safely use `min-h-[100dvh]` instead of the bugged `h-screen`?
223
+ - [ ] Do `useEffect` animations contain strict cleanup functions?
224
+ - [ ] Are empty, loading, and error states provided?
225
+ - [ ] Are cards omitted in favor of spacing where possible?
226
+ - [ ] Did you strictly isolate CPU-heavy perpetual animations in their own Client Components?
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: tdd
3
+ description: Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
4
+ ---
5
+
6
+ # Test-Driven Development
7
+
8
+ ## Philosophy
9
+
10
+ **Core principle**: Tests should verify behavior through public interfaces, not implementation details. Code can change entirely; tests shouldn't.
11
+
12
+ **Good tests** are integration-style: they exercise real code paths through public APIs. They describe _what_ the system does, not _how_ it does it. A good test reads like a specification - "user can checkout with valid cart" tells you exactly what capability exists. These tests survive refactors because they don't care about internal structure.
13
+
14
+ **Bad tests** are coupled to implementation. They mock internal collaborators, test private methods, or verify through external means (like querying a database directly instead of using the interface). The warning sign: your test breaks when you refactor, but behavior hasn't changed. If you rename an internal function and tests fail, those tests were testing implementation, not behavior.
15
+
16
+ See [tests.md](tests.md) for examples and [mocking.md](mocking.md) for mocking guidelines.
17
+
18
+ ## Anti-Pattern: Horizontal Slices
19
+
20
+ **DO NOT write all tests first, then all implementation.** This is "horizontal slicing" - treating RED as "write all tests" and GREEN as "write all code."
21
+
22
+ This produces **crap tests**:
23
+
24
+ - Tests written in bulk test _imagined_ behavior, not _actual_ behavior
25
+ - You end up testing the _shape_ of things (data structures, function signatures) rather than user-facing behavior
26
+ - Tests become insensitive to real changes - they pass when behavior breaks, fail when behavior is fine
27
+ - You outrun your headlights, committing to test structure before understanding the implementation
28
+
29
+ **Correct approach**: Vertical slices via tracer bullets. One test → one implementation → repeat. Each test responds to what you learned from the previous cycle. Because you just wrote the code, you know exactly what behavior matters and how to verify it.
30
+
31
+ ```
32
+ WRONG (horizontal):
33
+ RED: test1, test2, test3, test4, test5
34
+ GREEN: impl1, impl2, impl3, impl4, impl5
35
+
36
+ RIGHT (vertical):
37
+ RED→GREEN: test1→impl1
38
+ RED→GREEN: test2→impl2
39
+ RED→GREEN: test3→impl3
40
+ ...
41
+ ```
42
+
43
+ ## Workflow
44
+
45
+ ### 1. Planning
46
+
47
+ When exploring the codebase, read `CONTEXT.md` (if it exists) so that test names and interface vocabulary match the project's domain language, and respect ADRs in the area you're touching.
48
+
49
+ Before writing any code:
50
+
51
+ - [ ] Confirm with user what interface changes are needed
52
+ - [ ] Confirm with user which behaviors to test (prioritize)
53
+ - [ ] Identify opportunities for deep modules (small interface, deep implementation) — run the `/codebase-design` skill for the vocabulary and the testability checks
54
+ - [ ] List the behaviors to test (not implementation steps)
55
+ - [ ] Get user approval on the plan
56
+
57
+ Ask: "What should the public interface look like? Which behaviors are most important to test?"
58
+
59
+ **You can't test everything.** Confirm with the user exactly which behaviors matter most. Focus testing effort on critical paths and complex logic, not every possible edge case.
60
+
61
+ ### 2. Tracer Bullet
62
+
63
+ Write ONE test that confirms ONE thing about the system:
64
+
65
+ ```
66
+ RED: Write test for first behavior → test fails
67
+ GREEN: Write minimal code to pass → test passes
68
+ ```
69
+
70
+ This is your tracer bullet - proves the path works end-to-end.
71
+
72
+ ### 3. Incremental Loop
73
+
74
+ For each remaining behavior:
75
+
76
+ ```
77
+ RED: Write next test → fails
78
+ GREEN: Minimal code to pass → passes
79
+ ```
80
+
81
+ Rules:
82
+
83
+ - One test at a time
84
+ - Only enough code to pass current test
85
+ - Don't anticipate future tests
86
+ - Keep tests focused on observable behavior
87
+
88
+ ### 4. Refactor
89
+
90
+ After all tests pass, look for [refactor candidates](refactoring.md):
91
+
92
+ - [ ] Extract duplication
93
+ - [ ] Deepen modules (move complexity behind simple interfaces)
94
+ - [ ] Apply SOLID principles where natural
95
+ - [ ] Consider what new code reveals about existing code
96
+ - [ ] Run tests after each refactor step
97
+
98
+ **Never refactor while RED.** Get to GREEN first.
99
+
100
+ ## Checklist Per Cycle
101
+
102
+ ```
103
+ [ ] Test describes behavior, not implementation
104
+ [ ] Test uses public interface only
105
+ [ ] Test would survive internal refactor
106
+ [ ] Code is minimal for this test
107
+ [ ] No speculative features added
108
+ ```
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: teach
3
+ description: Teach the user a new skill or concept, within this workspace.
4
+ disable-model-invocation: true
5
+ argument-hint: "What would you like to learn about?"
6
+ ---
7
+
8
+ The user has asked you to teach them something. This is a stateful request - they intend to learn the topic over multiple sessions.
9
+
10
+ ## Teaching Workspace
11
+
12
+ Treat the current directory as a teaching workspace. The state of their learning is captured in this directory in several files:
13
+
14
+ - `MISSION.md`: A document capturing the _reason_ the user is interested in the topic. This should be used to ground all teaching. Use the format in [MISSION-FORMAT.md](./MISSION-FORMAT.md).
15
+ - `./reference/*.html`: A directory of reference materials. These are the compressed learnings from the lessons - cheat sheets, reference algorithms, syntax, yoga poses, glossaries. They are the raw units of learning. They should be beautiful documents which print out well, and are designed for quick reference.
16
+ - `RESOURCES.md`: A list of resources which can be explored to ground your teaching in contextual knowledge, or to acquire knowledge and wisdom. Use the format in [RESOURCES-FORMAT.md](./RESOURCES-FORMAT.md).
17
+ - `./learning-records/*.md`: A directory of learning records, which capture what the user has learned. These are loosely equivalent to architectural decision records in software development - they capture non-obvious lessons and key insights that may need to be revised later, or drive future sessions. These should be used to calculate the zone of proximal development. They are titled `0001-<dash-case-name>.md`, where the number increments each time. Use the format in [LEARNING-RECORD-FORMAT.md](./LEARNING-RECORD-FORMAT.md).
18
+ - `./lessons/*.html`: A directory of lessons. A **lesson** is a single, self-contained HTML output that teaches one tightly-scoped thing tied to the mission. This is the primary unit of teaching in this workspace.
19
+ - `./assets/*`: Reusable **components** shared across lessons. See [Assets](#assets).
20
+ - `NOTES.md`: A scratchpad for you to jot down user preferences, or working notes.
21
+
22
+ ## Philosophy
23
+
24
+ To learn at a deep level, the user needs three things:
25
+
26
+ - **Knowledge**, captured from high-quality, high-trust resources
27
+ - **Skills**, acquired through highly-relevant interactive lessons devised by you, based on the knowledge
28
+ - **Wisdom**, which comes from interacting with other learners and practitioners
29
+
30
+ Before the `RESOURCES.md` is well-populated, your focus should be to find high-quality resources which will help the user acquire knowledge. Never trust your parametric knowledge.
31
+
32
+ Some topics may require more skills than knowledge. Learning more about theoretical physics might be more knowledge-based. For yoga, more skills-based.
33
+
34
+ ### Fluency vs Storage Strength
35
+
36
+ You should be careful to split between two types of learning:
37
+
38
+ - **Fluency strength**: in-the-moment retrieval of knowledge
39
+ - **Storage strength**: long-term retention of knowledge
40
+
41
+ Fluency can give the user an illusory sense of mastery, but storage strength is the real goal. Try to design lessons which build long-term retention by desirable difficulty:
42
+
43
+ - Using retrieval practice (recall from memory)
44
+ - Spacing (distributing practice over time)
45
+ - Interleaving (mixing up different but related topics in practice - for skills practice only)
46
+
47
+ ## Lessons
48
+
49
+ A lesson is the main thing you produce — the unit in which knowledge and skills reach the user. Each lesson is one self-contained HTML file, saved to `./lessons/` and titled `0001-<dash-case-name>.html` where the number increments each time.
50
+
51
+ A lesson should be **beautiful** — clean, readable typography and layout — since the user will return to these later to review. Think Tufte.
52
+
53
+ The lesson should be short, and completable very quickly. Learners' working memory is very small, and we need to stay within it. But each lesson should give the user a single tangible win that they can build on. It should be directly tied to the mission, and should be in the user's zone of proximal development.
54
+
55
+ If possible, open the lesson file for the user by running a CLI command.
56
+
57
+ Each lesson should link via HTML anchors to other lessons and reference documents.
58
+
59
+ Each lesson should recommend a primary source for the user to read or watch. This should be the most high-quality, high-trust resource you found on the topic.
60
+
61
+ Each lesson should contain a reminder to ask followup questions to the agent. The agent is their teacher, and can assist with anything that's unclear.
62
+
63
+ ## Assets
64
+
65
+ Lessons are built from reusable **components**, stored in `./assets/`: stylesheets, quiz widgets, simulators, diagram helpers — anything a second lesson could reuse.
66
+
67
+ Reuse is the default, not the exception. Before authoring a lesson, read `./assets/` and build from the components already there. When a lesson needs something new and reusable, write it as a component in `./assets/` and link to it — never inline code a future lesson would duplicate.
68
+
69
+ A shared stylesheet is the first component every workspace earns: every lesson links it, so the lessons look like one consistent course rather than a pile of one-offs. As the workspace grows, so should the component library.
70
+
71
+ ## The Mission
72
+
73
+ Every lesson should be tied into the mission - the reason that the user is interested in learning about the topic.
74
+
75
+ If the user is unclear about the mission, or the `MISSION.md` is not populated, your first job should be to question the user on why they want to learn this.
76
+
77
+ Failing to understand the mission will mean knowledge acquisition is not grounded in real-world goals. Lessons will feel too abstract. You will have no way of judging what the user should do next.
78
+
79
+ Missions may change as the user develops more skills and knowledge. This is normal - make sure to update the `MISSION.md` and add a learning record to capture the change. Confirm with the user before changing the mission.
80
+
81
+ ## Zone Of Proximal Development
82
+
83
+ Each lesson, the user should always feel as if they are being challenged 'just enough'.
84
+
85
+ The user may specify an exact thing they want to learn. If they don't, figure out their zone of proximal development by:
86
+
87
+ - Reading their `learning-records`
88
+ - Figuring out the right thing to teach them based on their mission
89
+ - Teach the most relevant thing that fits in their zone of proximal development
90
+
91
+ ## Knowledge
92
+
93
+ Lessons should be designed around a skill the user is going to learn. The knowledge in the lesson should be only what's required to acquire that skill. You teach the knowledge first, then get the user to practice the skills via an interactive feedback loop.
94
+
95
+ Knowledge should first be gathered from trusted resources. Use `RESOURCES.md` to keep track of them. Lessons should be littered with citations - links to external resources to back up any claim made. This increases the trustworthiness of the lesson.
96
+
97
+ For acquiring knowledge, difficulty is the enemy. It eats working memory you need for understanding.
98
+
99
+ ## Skills
100
+
101
+ If knowledge is all about acquisition, skills are about durability and flexibility. Make the knowledge stick.
102
+
103
+ For skill acquisition, difficulty is the tool. Effortful retrieval is what builds storage strength. Skills should be taught through interactive lessons. There are several tools at your disposal:
104
+
105
+ - Interactive lessons, using quizzes and light in-browser tasks
106
+ - Lessons which guide the user through a list of real-world steps to take (for instance, yoga poses)
107
+
108
+ Each of these should be based on a **feedback loop**, where the user receives feedback on their performance. This feedback loop should be as tight as possible, giving feedback immediately - and ideally automatically.
109
+
110
+ For quizzes, each answer should be exactly the same number of words (and characters, if possible). Don't give the user any clues about the answer through formatting.
111
+
112
+ ## Acquiring Wisdom
113
+
114
+ Wisdom comes from true real-world interaction - testing your skills outside the learning environment.
115
+
116
+ When the user asks a question that appears to require wisdom, your default posture should be to attempt to answer - but to ultimately delegate to a **community**.
117
+
118
+ A community is a place (online or offline) where the user can test their skills in the real world. This might be a forum, a subreddit, a real-world class (budget permitting) or a local interest group.
119
+
120
+ You should attempt to find high-reputation communities the user can join. If the user expresses a preference that they don't want to join a community, respect it.
121
+
122
+ ## Reference Documents
123
+
124
+ While creating lessons, you should also create reference documents. Lessons can reference these documents - they are useful for tracking raw units of knowledge useful across lessons.
125
+
126
+ Lessons will rarely be revisited later - reference documents will be. They should be the compressed essence of the lesson, in a format designed for quick reference.
127
+
128
+ Some learning topics lend themselves to reference:
129
+
130
+ - Syntax and code snippets for programming
131
+ - Algorithms and flowcharts for processes
132
+ - Yoga poses and sequences for yoga
133
+ - Exercises and routines for fitness
134
+ - Glossaries for any topic with its own nomenclature
135
+
136
+ Glossaries, in particular, are an essential reference. Once one is created, it should be adhered to in every lesson.
137
+
138
+ ## `NOTES.md`
139
+
140
+ The user will sometimes express preferences of how they want to be taught, or things you should keep in mind. This is the place to record those preferences, so you can refer back to them when designing lessons or working with the user.