@bastani/atomic 0.6.5 → 0.6.6-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/ado-commit/SKILL.md +2 -0
- package/.agents/skills/ado-create-pr/SKILL.md +2 -0
- package/.agents/skills/advanced-evaluation/SKILL.md +2 -0
- package/.agents/skills/ast-grep/SKILL.md +2 -0
- package/.agents/skills/bdi-mental-states/SKILL.md +2 -0
- package/.agents/skills/bun/SKILL.md +156 -122
- package/.agents/skills/context-compression/SKILL.md +2 -0
- package/.agents/skills/context-degradation/SKILL.md +2 -0
- package/.agents/skills/context-fundamentals/SKILL.md +2 -0
- package/.agents/skills/context-optimization/SKILL.md +2 -0
- package/.agents/skills/create-spec/SKILL.md +2 -0
- package/.agents/skills/docx/SKILL.md +2 -0
- package/.agents/skills/evaluation/SKILL.md +2 -0
- package/.agents/skills/explain-code/SKILL.md +2 -0
- package/.agents/skills/filesystem-context/SKILL.md +2 -0
- package/.agents/skills/find-skills/SKILL.md +2 -0
- package/.agents/skills/gh-commit/SKILL.md +2 -0
- package/.agents/skills/gh-create-pr/SKILL.md +2 -0
- package/.agents/skills/hosted-agents/SKILL.md +2 -0
- package/.agents/skills/impeccable/SKILL.md +117 -304
- package/.agents/skills/impeccable/agents/openai.yaml +4 -0
- package/.agents/skills/{adapt/SKILL.md → impeccable/reference/adapt.md} +2 -11
- package/.agents/skills/{animate/SKILL.md → impeccable/reference/animate.md} +15 -15
- package/.agents/skills/{audit/SKILL.md → impeccable/reference/audit.md} +8 -22
- package/.agents/skills/{bolder/SKILL.md → impeccable/reference/bolder.md} +9 -13
- package/.agents/skills/impeccable/reference/brand.md +114 -0
- package/.agents/skills/{clarify/SKILL.md → impeccable/reference/clarify.md} +2 -11
- package/.agents/skills/{colorize/SKILL.md → impeccable/reference/colorize.md} +23 -12
- package/.agents/skills/impeccable/reference/craft.md +152 -29
- package/.agents/skills/{critique/SKILL.md → impeccable/reference/critique.md} +25 -37
- package/.agents/skills/{delight/SKILL.md → impeccable/reference/delight.md} +9 -11
- package/.agents/skills/{distill/SKILL.md → impeccable/reference/distill.md} +2 -13
- package/.agents/skills/impeccable/reference/document.md +427 -0
- package/.agents/skills/impeccable/reference/extract.md +1 -1
- package/.agents/skills/{harden/SKILL.md → impeccable/reference/harden.md} +1 -43
- package/.agents/skills/{layout/SKILL.md → impeccable/reference/layout.md} +27 -11
- package/.agents/skills/impeccable/reference/live.md +594 -0
- package/.agents/skills/impeccable/reference/motion-design.md +12 -2
- package/.agents/skills/impeccable/reference/onboard.md +234 -0
- package/.agents/skills/{optimize/SKILL.md → impeccable/reference/optimize.md} +4 -12
- package/.agents/skills/{overdrive/SKILL.md → impeccable/reference/overdrive.md} +9 -21
- package/.agents/skills/{critique → impeccable}/reference/personas.md +1 -1
- package/.agents/skills/{polish/SKILL.md → impeccable/reference/polish.md} +31 -23
- package/.agents/skills/impeccable/reference/product.md +62 -0
- package/.agents/skills/{quieter/SKILL.md → impeccable/reference/quieter.md} +7 -11
- package/.agents/skills/impeccable/reference/shape.md +151 -0
- package/.agents/skills/impeccable/reference/teach.md +156 -0
- package/.agents/skills/{typeset/SKILL.md → impeccable/reference/typeset.md} +19 -11
- package/.agents/skills/impeccable/reference/typography.md +31 -14
- package/.agents/skills/impeccable/scripts/cleanup-deprecated.mjs +87 -17
- package/.agents/skills/impeccable/scripts/command-metadata.json +94 -0
- package/.agents/skills/impeccable/scripts/design-parser.mjs +820 -0
- package/.agents/skills/impeccable/scripts/detect-csp.mjs +198 -0
- package/.agents/skills/impeccable/scripts/is-generated.mjs +69 -0
- package/.agents/skills/impeccable/scripts/live-accept.mjs +595 -0
- package/.agents/skills/impeccable/scripts/live-browser.js +4781 -0
- package/.agents/skills/impeccable/scripts/live-inject.mjs +445 -0
- package/.agents/skills/impeccable/scripts/live-poll.mjs +186 -0
- package/.agents/skills/impeccable/scripts/live-server.mjs +694 -0
- package/.agents/skills/impeccable/scripts/live-wrap.mjs +571 -0
- package/.agents/skills/impeccable/scripts/live.mjs +247 -0
- package/.agents/skills/impeccable/scripts/load-context.mjs +141 -0
- package/.agents/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/.agents/skills/impeccable/scripts/pin.mjs +214 -0
- package/.agents/skills/init/SKILL.md +2 -0
- package/.agents/skills/liteparse/SKILL.md +1 -0
- package/.agents/skills/memory-systems/SKILL.md +2 -0
- package/.agents/skills/multi-agent-patterns/SKILL.md +2 -0
- package/.agents/skills/opentui/SKILL.md +1 -0
- package/.agents/skills/pdf/SKILL.md +2 -0
- package/.agents/skills/playwright-cli/SKILL.md +51 -5
- package/.agents/skills/playwright-cli/references/playwright-tests.md +1 -1
- package/.agents/skills/playwright-cli/references/running-code.md +10 -0
- package/.agents/skills/playwright-cli/references/session-management.md +56 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +49 -3
- package/.agents/skills/pptx/SKILL.md +2 -0
- package/.agents/skills/project-development/SKILL.md +2 -0
- package/.agents/skills/prompt-engineer/SKILL.md +2 -0
- package/.agents/skills/research-codebase/SKILL.md +2 -0
- package/.agents/skills/ripgrep/SKILL.md +2 -0
- package/.agents/skills/skill-creator/LICENSE.txt +1 -1
- package/.agents/skills/skill-creator/SKILL.md +2 -0
- package/.agents/skills/sl-commit/SKILL.md +2 -0
- package/.agents/skills/sl-submit-diff/SKILL.md +2 -0
- package/.agents/skills/tdd/SKILL.md +4 -0
- package/.agents/skills/tool-design/SKILL.md +2 -0
- package/.agents/skills/typescript-advanced-types/SKILL.md +2 -1
- package/.agents/skills/typescript-expert/SKILL.md +7 -1
- package/.agents/skills/typescript-react-reviewer/SKILL.md +2 -1
- package/.agents/skills/workflow-creator/SKILL.md +75 -72
- package/.agents/skills/workflow-creator/references/session-config.md +48 -1
- package/.agents/skills/xlsx/SKILL.md +2 -0
- package/.opencode/opencode.json +6 -2
- package/README.md +39 -38
- package/dist/lib/atomic-temp.d.ts +8 -0
- package/dist/lib/atomic-temp.d.ts.map +1 -0
- package/dist/lib/terminal-env.d.ts +9 -0
- package/dist/lib/terminal-env.d.ts.map +1 -0
- package/dist/sdk/providers/claude.d.ts.map +1 -1
- package/dist/sdk/providers/copilot.d.ts +24 -14
- package/dist/sdk/providers/copilot.d.ts.map +1 -1
- package/dist/sdk/runtime/executor.d.ts +8 -0
- package/dist/sdk/runtime/executor.d.ts.map +1 -1
- package/dist/sdk/runtime/port-discovery.d.ts +71 -0
- package/dist/sdk/runtime/port-discovery.d.ts.map +1 -0
- package/dist/sdk/runtime/tmux.d.ts +10 -0
- package/dist/sdk/runtime/tmux.d.ts.map +1 -1
- package/dist/sdk/types.d.ts +1 -0
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/deep-research-codebase/opencode/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/open-claude-design/opencode/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/claude/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/copilot/index.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts +15 -0
- package/dist/sdk/workflows/builtin/ralph/helpers/prompts.d.ts.map +1 -1
- package/dist/sdk/workflows/builtin/ralph/opencode/index.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/commands/cli/chat/index.test.ts +194 -2
- package/src/commands/cli/chat/index.ts +83 -28
- package/src/lib/atomic-temp.test.ts +86 -0
- package/src/lib/atomic-temp.ts +62 -0
- package/src/lib/terminal-env.test.ts +343 -0
- package/src/lib/terminal-env.ts +100 -0
- package/src/scripts/clean-dist.test.ts +53 -0
- package/src/scripts/clean-dist.ts +37 -0
- package/src/sdk/providers/claude.ts +42 -20
- package/src/sdk/providers/copilot.test.ts +365 -0
- package/src/sdk/providers/copilot.ts +117 -15
- package/src/sdk/runtime/cc-debounce.ts +2 -2
- package/src/sdk/runtime/executor.test.ts +322 -1
- package/src/sdk/runtime/executor.ts +159 -96
- package/src/sdk/runtime/port-discovery.test.ts +573 -0
- package/src/sdk/runtime/port-discovery.ts +496 -0
- package/src/sdk/runtime/tmux.ts +22 -2
- package/src/sdk/types.ts +1 -0
- package/src/sdk/workflows/builtin/deep-research-codebase/opencode/index.ts +24 -6
- package/src/sdk/workflows/builtin/open-claude-design/opencode/index.ts +52 -13
- package/src/sdk/workflows/builtin/ralph/claude/index.ts +31 -3
- package/src/sdk/workflows/builtin/ralph/copilot/index.ts +16 -0
- package/src/sdk/workflows/builtin/ralph/helpers/prompts.ts +70 -3
- package/src/sdk/workflows/builtin/ralph/opencode/index.ts +50 -6
- package/src/services/system/auth.test.ts +53 -0
- package/src/services/system/auth.ts +31 -28
- package/src/services/system/detect.ts +1 -1
- package/.agents/skills/shape/SKILL.md +0 -96
- /package/.agents/skills/{critique → impeccable}/reference/cognitive-load.md +0 -0
- /package/.agents/skills/{critique → impeccable}/reference/heuristics-scoring.md +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
> **Additional context needed**: the "aha moment" you want users to reach, and users' experience level.
|
|
2
|
+
|
|
3
|
+
Create or improve onboarding experiences that help users understand, adopt, and succeed with the product quickly.
|
|
4
|
+
|
|
5
|
+
## Assess Onboarding Needs
|
|
6
|
+
|
|
7
|
+
Understand what users need to learn and why:
|
|
8
|
+
|
|
9
|
+
1. **Identify the challenge**:
|
|
10
|
+
- What are users trying to accomplish?
|
|
11
|
+
- What's confusing or unclear about current experience?
|
|
12
|
+
- Where do users get stuck or drop off?
|
|
13
|
+
- What's the "aha moment" we want users to reach?
|
|
14
|
+
|
|
15
|
+
2. **Understand the users**:
|
|
16
|
+
- What's their experience level? (Beginners, power users, mixed?)
|
|
17
|
+
- What's their motivation? (Excited and exploring? Required by work?)
|
|
18
|
+
- What's their time commitment? (5 minutes? 30 minutes?)
|
|
19
|
+
- What alternatives do they know? (Coming from competitor? New to category?)
|
|
20
|
+
|
|
21
|
+
3. **Define success**:
|
|
22
|
+
- What's the minimum users need to learn to be successful?
|
|
23
|
+
- What's the key action we want them to take? (First project? First invite?)
|
|
24
|
+
- How do we know onboarding worked? (Completion rate? Time to value?)
|
|
25
|
+
|
|
26
|
+
**CRITICAL**: Onboarding should get users to value as quickly as possible, not teach everything possible.
|
|
27
|
+
|
|
28
|
+
## Onboarding Principles
|
|
29
|
+
|
|
30
|
+
Follow these core principles:
|
|
31
|
+
|
|
32
|
+
### Show, Don't Tell
|
|
33
|
+
- Demonstrate with working examples, not just descriptions
|
|
34
|
+
- Provide real functionality in onboarding, not separate tutorial mode
|
|
35
|
+
- Use progressive disclosure, teach one thing at a time
|
|
36
|
+
|
|
37
|
+
### Make It Optional (When Possible)
|
|
38
|
+
- Let experienced users skip onboarding
|
|
39
|
+
- Don't block access to product
|
|
40
|
+
- Provide "Skip" or "I'll explore on my own" options
|
|
41
|
+
|
|
42
|
+
### Time to Value
|
|
43
|
+
- Get users to their "aha moment" ASAP
|
|
44
|
+
- Front-load most important concepts
|
|
45
|
+
- Teach 20% that delivers 80% of value
|
|
46
|
+
- Save advanced features for contextual discovery
|
|
47
|
+
|
|
48
|
+
### Context Over Ceremony
|
|
49
|
+
- Teach features when users need them, not upfront
|
|
50
|
+
- Empty states are onboarding opportunities
|
|
51
|
+
- Tooltips and hints at point of use
|
|
52
|
+
|
|
53
|
+
### Respect User Intelligence
|
|
54
|
+
- Don't patronize or over-explain
|
|
55
|
+
- Be concise and clear
|
|
56
|
+
- Assume users can figure out standard patterns
|
|
57
|
+
|
|
58
|
+
## Design Onboarding Experiences
|
|
59
|
+
|
|
60
|
+
Create appropriate onboarding for the context:
|
|
61
|
+
|
|
62
|
+
### Initial Product Onboarding
|
|
63
|
+
|
|
64
|
+
**Welcome Screen**:
|
|
65
|
+
- Clear value proposition (what is this product?)
|
|
66
|
+
- What users will learn/accomplish
|
|
67
|
+
- Time estimate (honest about commitment)
|
|
68
|
+
- Option to skip (for experienced users)
|
|
69
|
+
|
|
70
|
+
**Account Setup**:
|
|
71
|
+
- Minimal required information (collect more later)
|
|
72
|
+
- Explain why you're asking for each piece of information
|
|
73
|
+
- Smart defaults where possible
|
|
74
|
+
- Social login when appropriate
|
|
75
|
+
|
|
76
|
+
**Core Concept Introduction**:
|
|
77
|
+
- Introduce 1-3 core concepts (not everything)
|
|
78
|
+
- Use simple language and examples
|
|
79
|
+
- Interactive when possible (do, don't just read)
|
|
80
|
+
- Progress indication (step 1 of 3)
|
|
81
|
+
|
|
82
|
+
**First Success**:
|
|
83
|
+
- Guide users to accomplish something real
|
|
84
|
+
- Pre-populated examples or templates
|
|
85
|
+
- Celebrate completion (but don't overdo it)
|
|
86
|
+
- Clear next steps
|
|
87
|
+
|
|
88
|
+
### Feature Discovery & Adoption
|
|
89
|
+
|
|
90
|
+
**Empty States**:
|
|
91
|
+
Instead of blank space, show:
|
|
92
|
+
- What will appear here (description + screenshot/illustration)
|
|
93
|
+
- Why it's valuable
|
|
94
|
+
- Clear CTA to create first item
|
|
95
|
+
- Example or template option
|
|
96
|
+
|
|
97
|
+
Example:
|
|
98
|
+
```
|
|
99
|
+
No projects yet
|
|
100
|
+
Projects help you organize your work and collaborate with your team.
|
|
101
|
+
[Create your first project] or [Start from template]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Contextual Tooltips**:
|
|
105
|
+
- Appear at relevant moment (first time user sees feature)
|
|
106
|
+
- Point directly at relevant UI element
|
|
107
|
+
- Brief explanation + benefit
|
|
108
|
+
- Dismissable (with "Don't show again" option)
|
|
109
|
+
- Optional "Learn more" link
|
|
110
|
+
|
|
111
|
+
**Feature Announcements**:
|
|
112
|
+
- Highlight new features when they're released
|
|
113
|
+
- Show what's new and why it matters
|
|
114
|
+
- Let users try immediately
|
|
115
|
+
- Dismissable
|
|
116
|
+
|
|
117
|
+
**Progressive Onboarding**:
|
|
118
|
+
- Teach features when users encounter them
|
|
119
|
+
- Badges or indicators on new/unused features
|
|
120
|
+
- Unlock complexity gradually (don't show all options immediately)
|
|
121
|
+
|
|
122
|
+
### Guided Tours & Walkthroughs
|
|
123
|
+
|
|
124
|
+
**When to use**:
|
|
125
|
+
- Complex interfaces with many features
|
|
126
|
+
- Significant changes to existing product
|
|
127
|
+
- Industry-specific tools needing domain knowledge
|
|
128
|
+
|
|
129
|
+
**How to design**:
|
|
130
|
+
- Spotlight specific UI elements (dim rest of page)
|
|
131
|
+
- Keep steps short (3-7 steps max per tour)
|
|
132
|
+
- Allow users to click through tour freely
|
|
133
|
+
- Include "Skip tour" option
|
|
134
|
+
- Make replayable (help menu)
|
|
135
|
+
|
|
136
|
+
**Best practices**:
|
|
137
|
+
- Interactive over passive (let users click real buttons)
|
|
138
|
+
- Focus on workflow, not features ("Create a project" not "This is the project button")
|
|
139
|
+
- Provide sample data so actions work
|
|
140
|
+
|
|
141
|
+
### Interactive Tutorials
|
|
142
|
+
|
|
143
|
+
**When to use**:
|
|
144
|
+
- Users need hands-on practice
|
|
145
|
+
- Concepts are complex or unfamiliar
|
|
146
|
+
- High stakes (better to practice in safe environment)
|
|
147
|
+
|
|
148
|
+
**How to design**:
|
|
149
|
+
- Sandbox environment with sample data
|
|
150
|
+
- Clear objectives ("Create a chart showing sales by region")
|
|
151
|
+
- Step-by-step guidance
|
|
152
|
+
- Validation (confirm they did it right)
|
|
153
|
+
- Graduation moment (you're ready!)
|
|
154
|
+
|
|
155
|
+
### Documentation & Help
|
|
156
|
+
|
|
157
|
+
**In-product help**:
|
|
158
|
+
- Contextual help links throughout interface
|
|
159
|
+
- Keyboard shortcut reference
|
|
160
|
+
- Search-able help center
|
|
161
|
+
- Video tutorials for complex workflows
|
|
162
|
+
|
|
163
|
+
**Help patterns**:
|
|
164
|
+
- `?` icon near complex features
|
|
165
|
+
- "Learn more" links in tooltips
|
|
166
|
+
- Keyboard shortcut hints (`⌘K` shown on search box)
|
|
167
|
+
|
|
168
|
+
## Empty State Design
|
|
169
|
+
|
|
170
|
+
Every empty state needs:
|
|
171
|
+
|
|
172
|
+
### What Will Be Here
|
|
173
|
+
"Your recent projects will appear here"
|
|
174
|
+
|
|
175
|
+
### Why It Matters
|
|
176
|
+
"Projects help you organize your work and collaborate with your team"
|
|
177
|
+
|
|
178
|
+
### How to Get Started
|
|
179
|
+
[Create project] or [Import from template]
|
|
180
|
+
|
|
181
|
+
### Visual Interest
|
|
182
|
+
Illustration or icon (not just text on blank page)
|
|
183
|
+
|
|
184
|
+
### Contextual Help
|
|
185
|
+
"Need help getting started? [Watch 2-min tutorial]"
|
|
186
|
+
|
|
187
|
+
**Empty state types**:
|
|
188
|
+
- **First use**: Never used this feature (emphasize value, provide template)
|
|
189
|
+
- **User cleared**: Intentionally deleted everything (light touch, easy to recreate)
|
|
190
|
+
- **No results**: Search or filter returned nothing (suggest different query, clear filters)
|
|
191
|
+
- **No permissions**: Can't access (explain why, how to get access)
|
|
192
|
+
- **Error state**: Failed to load (explain what happened, retry option)
|
|
193
|
+
|
|
194
|
+
## Implementation Patterns
|
|
195
|
+
|
|
196
|
+
### Technical approaches:
|
|
197
|
+
|
|
198
|
+
**Tooltip libraries**: Tippy.js, Popper.js
|
|
199
|
+
**Tour libraries**: Intro.js, Shepherd.js, React Joyride
|
|
200
|
+
**Modal patterns**: Focus trap, backdrop, ESC to close
|
|
201
|
+
**Progress tracking**: LocalStorage for "seen" states
|
|
202
|
+
**Analytics**: Track completion, drop-off points
|
|
203
|
+
|
|
204
|
+
**Storage patterns**:
|
|
205
|
+
```javascript
|
|
206
|
+
// Track which onboarding steps user has seen
|
|
207
|
+
localStorage.setItem('onboarding-completed', 'true');
|
|
208
|
+
localStorage.setItem('feature-tooltip-seen-reports', 'true');
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**IMPORTANT**: Don't show same onboarding twice (annoying). Track completion and respect dismissals.
|
|
212
|
+
|
|
213
|
+
**NEVER**:
|
|
214
|
+
- Force users through long onboarding before they can use product
|
|
215
|
+
- Patronize users with obvious explanations
|
|
216
|
+
- Show same tooltip repeatedly (respect dismissals)
|
|
217
|
+
- Block all UI during tour (let users explore)
|
|
218
|
+
- Create separate tutorial mode disconnected from real product
|
|
219
|
+
- Overwhelm with information upfront (progressive disclosure!)
|
|
220
|
+
- Hide "Skip" or make it hard to find
|
|
221
|
+
- Forget about returning users (don't show initial onboarding again)
|
|
222
|
+
|
|
223
|
+
## Verify Onboarding Quality
|
|
224
|
+
|
|
225
|
+
Test with real users:
|
|
226
|
+
|
|
227
|
+
- **Time to completion**: Can users complete onboarding quickly?
|
|
228
|
+
- **Comprehension**: Do users understand after completing?
|
|
229
|
+
- **Action**: Do users take desired next step?
|
|
230
|
+
- **Skip rate**: Are too many users skipping? (Maybe it's too long or not valuable)
|
|
231
|
+
- **Completion rate**: Are users completing? (If low, simplify)
|
|
232
|
+
- **Time to value**: How long until users get first value?
|
|
233
|
+
|
|
234
|
+
Remember: You're a product educator with excellent teaching instincts. Get users to their "aha moment" as quickly as possible. Teach the essential, make it contextual, respect user time and intelligence.
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: optimize
|
|
3
|
-
description: Diagnoses and fixes UI performance across loading speed, rendering, animations, images, and bundle size. Use when the user mentions slow, laggy, janky, performance, bundle size, load time, or wants a faster, smoother experience.
|
|
4
|
-
version: 2.1.1
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: "[target]"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
1
|
Identify and fix performance issues to create faster, smoother user experiences.
|
|
10
2
|
|
|
11
3
|
## Assess Performance Issues
|
|
@@ -117,10 +109,10 @@ elements.forEach((el, i) => {
|
|
|
117
109
|
- Virtual scrolling for very long lists (react-window, react-virtualized)
|
|
118
110
|
|
|
119
111
|
**Reduce Paint & Composite**:
|
|
120
|
-
- Use `transform` and `opacity` for
|
|
121
|
-
- Avoid
|
|
112
|
+
- Use `transform` and `opacity` for reliable movement, but allow blur, filters, masks, clip paths, shadows, and color shifts when they create meaningful polish
|
|
113
|
+
- Avoid casual animation of layout-driving properties (`width`, `height`, `top`, `left`, margins)
|
|
122
114
|
- Use `will-change` sparingly for known expensive operations
|
|
123
|
-
-
|
|
115
|
+
- Bound expensive paint areas for blur/filter/shadow effects (smaller and isolated is faster)
|
|
124
116
|
|
|
125
117
|
### Animation Performance
|
|
126
118
|
|
|
@@ -263,4 +255,4 @@ Test that optimizations worked:
|
|
|
263
255
|
- **No regressions**: Ensure functionality still works
|
|
264
256
|
- **User perception**: Does it *feel* faster?
|
|
265
257
|
|
|
266
|
-
Remember: Performance is a feature. Fast experiences feel more responsive, more polished, more professional. Optimize systematically, measure ruthlessly, and prioritize user-perceived performance.
|
|
258
|
+
Remember: Performance is a feature. Fast experiences feel more responsive, more polished, more professional. Optimize systematically, measure ruthlessly, and prioritize user-perceived performance.
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: overdrive
|
|
3
|
-
description: Pushes interfaces past conventional limits with technically ambitious implementations — shaders, spring physics, scroll-driven reveals, 60fps animations. Use when the user wants to wow, impress, go all-out, or make something that feels extraordinary.
|
|
4
|
-
version: 2.1.1
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: "[target]"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
1
|
Start your response with:
|
|
10
2
|
|
|
11
3
|
```
|
|
@@ -13,27 +5,23 @@ Start your response with:
|
|
|
13
5
|
》》》 Entering overdrive mode...
|
|
14
6
|
```
|
|
15
7
|
|
|
16
|
-
Push an interface past conventional limits. This isn't just about visual effects
|
|
17
|
-
|
|
18
|
-
## MANDATORY PREPARATION
|
|
19
|
-
|
|
20
|
-
Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding — if no design context exists yet, you MUST run /impeccable teach first.
|
|
8
|
+
Push an interface past conventional limits. This isn't just about visual effects. It's about using the full power of the browser to make any part of an interface feel extraordinary: a table that handles a million rows, a dialog that morphs from its trigger, a form that validates in real-time with streaming feedback, a page transition that feels cinematic.
|
|
21
9
|
|
|
22
|
-
**EXTRA IMPORTANT FOR THIS
|
|
10
|
+
**EXTRA IMPORTANT FOR THIS COMMAND**: Context determines what "extraordinary" means. A particle system on a creative portfolio is impressive. The same particle system on a settings page is embarrassing. But a settings page with instant optimistic saves and animated state transitions? That's extraordinary too. Understand the project's personality and goals before deciding what's appropriate.
|
|
23
11
|
|
|
24
12
|
### Propose Before Building
|
|
25
13
|
|
|
26
|
-
This
|
|
14
|
+
This command has the highest potential to misfire. Do NOT jump straight into implementation. You MUST:
|
|
27
15
|
|
|
28
|
-
1. **Think through 2-3 different directions
|
|
29
|
-
2. **
|
|
16
|
+
1. **Think through 2-3 different directions**: consider different techniques, levels of ambition, and aesthetic approaches. For each direction, briefly describe what the result would look and feel like.
|
|
17
|
+
2. **STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.** to present these directions and get the user's pick before writing any code. Explain trade-offs (browser support, performance cost, complexity).
|
|
30
18
|
3. Only proceed with the direction the user confirms.
|
|
31
19
|
|
|
32
20
|
Skipping this step risks building something embarrassing that needs to be thrown away.
|
|
33
21
|
|
|
34
22
|
### Iterate with Browser Automation
|
|
35
23
|
|
|
36
|
-
Technically ambitious effects almost never work on the first try. You MUST actively use browser automation tools to preview your work, visually verify the result, and iterate. Do not assume the effect looks right
|
|
24
|
+
Technically ambitious effects almost never work on the first try. You MUST actively use browser automation tools to preview your work, visually verify the result, and iterate. Do not assume the effect looks right, check it. Expect multiple rounds of refinement. The gap between "technically works" and "looks extraordinary" is closed through visual iteration, not code alone.
|
|
37
25
|
|
|
38
26
|
---
|
|
39
27
|
|
|
@@ -91,7 +79,7 @@ Organized by what you're trying to achieve, not by technology name.
|
|
|
91
79
|
- **Web Audio API** — spatial audio, audio-reactive visualizations, sonic feedback. Requires user gesture to start.
|
|
92
80
|
- **Device APIs** — orientation, ambient light, geolocation. Use sparingly and always with user permission.
|
|
93
81
|
|
|
94
|
-
**NOTE**: This
|
|
82
|
+
**NOTE**: This command is about enhancing how an interface FEELS, not changing what a product DOES. Adding real-time collaboration, offline support, or new backend capabilities are product decisions, not UI enhancements. Focus on making existing features feel extraordinary.
|
|
95
83
|
|
|
96
84
|
## Implement with Discipline
|
|
97
85
|
|
|
@@ -128,7 +116,7 @@ The gap between "cool" and "extraordinary" is in the last 20% of refinement: the
|
|
|
128
116
|
- Ship effects that cause jank on mid-range devices
|
|
129
117
|
- Use bleeding-edge APIs without a functional fallback
|
|
130
118
|
- Add sound without explicit user opt-in
|
|
131
|
-
- Use technical ambition to mask weak design fundamentals
|
|
119
|
+
- Use technical ambition to mask weak design fundamentals; fix those first with other commands
|
|
132
120
|
- Layer multiple competing extraordinary moments — focus creates impact, excess creates noise
|
|
133
121
|
|
|
134
122
|
## Verify the Result
|
|
@@ -139,4 +127,4 @@ The gap between "cool" and "extraordinary" is in the last 20% of refinement: the
|
|
|
139
127
|
- **The accessibility test**: Enable reduced motion. Still beautiful?
|
|
140
128
|
- **The context test**: Does this make sense for THIS brand and audience?
|
|
141
129
|
|
|
142
|
-
Remember: "Technically extraordinary" isn't about using the newest API. It's about making an interface do something users didn't think a website could do.
|
|
130
|
+
Remember: "Technically extraordinary" isn't about using the newest API. It's about making an interface do something users didn't think a website could do.
|
|
@@ -159,7 +159,7 @@ Choose personas based on the interface type:
|
|
|
159
159
|
|
|
160
160
|
## Project-Specific Personas
|
|
161
161
|
|
|
162
|
-
If
|
|
162
|
+
If `AGENTS.md` contains a `## Design Context` section (generated by `impeccable teach`), derive 1–2 additional personas from the audience and brand information:
|
|
163
163
|
|
|
164
164
|
1. Read the target audience description
|
|
165
165
|
2. Identify the primary user archetype not covered by the 5 predefined personas
|
|
@@ -1,32 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
name: polish
|
|
3
|
-
description: Performs a final quality pass fixing alignment, spacing, consistency, and micro-detail issues before shipping. Use when the user mentions polish, finishing touches, pre-launch review, something looks off, or wants to go from good to great.
|
|
4
|
-
version: 2.1.1
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: "[target]"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## MANDATORY PREPARATION
|
|
10
|
-
|
|
11
|
-
Invoke /impeccable — it contains design principles, anti-patterns, and the **Context Gathering Protocol**. Follow the protocol before proceeding — if no design context exists yet, you MUST run /impeccable teach first. Additionally gather: quality bar (MVP vs flagship).
|
|
12
|
-
|
|
13
|
-
---
|
|
1
|
+
> **Additional context needed**: quality bar (MVP vs flagship).
|
|
14
2
|
|
|
15
3
|
Perform a meticulous final pass to catch all the small details that separate good work from great work. The difference between shipped and polished.
|
|
16
4
|
|
|
17
5
|
## Design System Discovery
|
|
18
6
|
|
|
19
|
-
|
|
7
|
+
Aligning the feature to the design system is **not optional**. Polish without alignment is decoration on top of drift, and it makes the next person's job harder. Discovery comes before any other polish work.
|
|
20
8
|
|
|
21
|
-
1. **Find the design system**: Search for design system documentation, component libraries, style guides, or token definitions. Study the core patterns: color tokens, spacing scale, typography styles, component API.
|
|
22
|
-
2. **Note the conventions**: How are shared components imported? What spacing scale is used? Which colors come from tokens vs hard-coded values? What motion and interaction patterns are established?
|
|
23
|
-
3. **Identify drift**:
|
|
9
|
+
1. **Find the design system**: Search for design system documentation, component libraries, style guides, or token definitions. Study the core patterns: design principles, target audience, color tokens, spacing scale, typography styles, component API, motion conventions.
|
|
10
|
+
2. **Note the conventions**: How are shared components imported? What spacing scale is used? Which colors come from tokens vs hard-coded values? What motion and interaction patterns are established? What flow shapes are used for comparable actions (modal vs full-page, inline vs route, save-on-blur vs explicit submit)?
|
|
11
|
+
3. **Identify drift, then name the root cause**: For every deviation, classify it as a **missing token** (the value should exist in the system but doesn't), a **one-off implementation** (a shared component already exists but wasn't used), or a **conceptual misalignment** (the feature's flow, IA, or hierarchy doesn't match neighboring features). The fix differs by category — patch the value, swap to the shared component, or rework the flow. Fixing the symptom without naming the cause is how drift compounds.
|
|
24
12
|
|
|
25
|
-
If a design system exists, polish
|
|
13
|
+
If a design system exists, polish **must** align the feature with it. If none exists, polish against the conventions visible in the codebase. **If anything about the system is ambiguous, ask — never guess at design system principles.**
|
|
26
14
|
|
|
27
15
|
## Pre-Polish Assessment
|
|
28
16
|
|
|
29
|
-
Understand the current state and goals:
|
|
17
|
+
Understand the current state and goals before touching anything:
|
|
30
18
|
|
|
31
19
|
1. **Review completeness**:
|
|
32
20
|
- Is it functionally complete?
|
|
@@ -34,13 +22,18 @@ Understand the current state and goals:
|
|
|
34
22
|
- What's the quality bar? (MVP vs flagship feature?)
|
|
35
23
|
- When does it ship? (How much time for polish?)
|
|
36
24
|
|
|
37
|
-
2. **
|
|
25
|
+
2. **Think experience-first**: Who actually uses this, and what's the best possible experience for them? Effective design beats decorative polish — a feature that looks beautiful but fights the user's flow is not polished. Walk the path from their perspective before opening DevTools.
|
|
26
|
+
|
|
27
|
+
3. **Identify polish areas**:
|
|
38
28
|
- Visual inconsistencies
|
|
39
29
|
- Spacing and alignment issues
|
|
40
30
|
- Interaction state gaps
|
|
41
31
|
- Copy inconsistencies
|
|
42
32
|
- Edge cases and error states
|
|
43
33
|
- Loading and transition smoothness
|
|
34
|
+
- Information architecture and flow drift (does this feature reveal complexity the way neighboring features do?)
|
|
35
|
+
|
|
36
|
+
4. **Triage cosmetic vs functional**: Classify each issue as **cosmetic** (looks off, doesn't impede the user) or **functional** (breaks, blocks, or confuses the experience). When polish time is tight, functional issues ship first; cosmetic ones can land in a follow-up. Quality should be consistent — never perfect one corner while leaving another rough.
|
|
44
37
|
|
|
45
38
|
**CRITICAL**: Polish is the last step, not the first. Don't polish work that's not functionally complete.
|
|
46
39
|
|
|
@@ -62,6 +55,16 @@ Work through these dimensions methodically:
|
|
|
62
55
|
- Test at multiple viewport sizes
|
|
63
56
|
- Look for elements that "feel" off
|
|
64
57
|
|
|
58
|
+
### Information Architecture & Flow
|
|
59
|
+
|
|
60
|
+
Visual polish on a misshapen flow is wasted work. Match the *shape* of the experience to the system, not just the surface.
|
|
61
|
+
|
|
62
|
+
- **Progressive disclosure**: Match how much is revealed when, compared to neighboring features. A settings page exposing 40 fields when the rest of the app reveals 5 at a time is drift, even if every field is perfectly styled.
|
|
63
|
+
- **Established user flows**: Multi-step actions follow the same shape as comparable flows elsewhere — modal vs full-page, inline edit vs separate route, save-on-blur vs explicit submit, optimistic vs pessimistic updates.
|
|
64
|
+
- **Hierarchy & complexity**: The same conceptual weight gets the same visual weight throughout. Primary actions don't become tertiary in one corner of the product, and tertiary actions don't shout.
|
|
65
|
+
- **Empty, loading, and arrival transitions**: How content arrives, updates, and leaves matches how it does in adjacent features.
|
|
66
|
+
- **Naming and mental model**: The feature uses the same nouns and verbs as the rest of the system. A "Workspace" here shouldn't be a "Project" three screens away.
|
|
67
|
+
|
|
65
68
|
### Typography Refinement
|
|
66
69
|
|
|
67
70
|
- **Hierarchy consistency**: Same elements use same sizes/weights throughout
|
|
@@ -101,7 +104,7 @@ Every interactive element needs all states:
|
|
|
101
104
|
|
|
102
105
|
- **Smooth transitions**: All state changes animated appropriately (150-300ms)
|
|
103
106
|
- **Consistent easing**: Use ease-out-quart/quint/expo for natural deceleration. Never bounce or elastic—they feel dated.
|
|
104
|
-
- **No jank**:
|
|
107
|
+
- **No jank**: Smooth animations; use atmospheric blur/filter/mask/shadow effects when they add polish, but bound expensive paint areas and avoid casual layout-property animation
|
|
105
108
|
- **Appropriate motion**: Motion serves purpose, not decoration
|
|
106
109
|
- **Reduced motion**: Respects `prefers-reduced-motion`
|
|
107
110
|
|
|
@@ -170,6 +173,8 @@ Every interactive element needs all states:
|
|
|
170
173
|
|
|
171
174
|
Go through systematically:
|
|
172
175
|
|
|
176
|
+
- [ ] Aligned to the design system (drift named and resolved by root cause)
|
|
177
|
+
- [ ] Information architecture and flow shape match neighboring features
|
|
173
178
|
- [ ] Visual alignment perfect at all breakpoints
|
|
174
179
|
- [ ] Spacing uses design tokens consistently
|
|
175
180
|
- [ ] Typography hierarchy consistent
|
|
@@ -195,12 +200,15 @@ Go through systematically:
|
|
|
195
200
|
|
|
196
201
|
**NEVER**:
|
|
197
202
|
- Polish before it's functionally complete
|
|
203
|
+
- Polish without aligning to the design system — that's decoration on drift
|
|
204
|
+
- Guess at design system principles instead of asking when something is ambiguous
|
|
198
205
|
- Spend hours on polish if it ships in 30 minutes (triage)
|
|
199
206
|
- Introduce bugs while polishing (test thoroughly)
|
|
200
|
-
- Ignore systematic issues (if spacing is off everywhere, fix the system)
|
|
207
|
+
- Ignore systematic issues (if spacing is off everywhere, fix the system, not just one screen)
|
|
201
208
|
- Perfect one thing while leaving others rough (consistent quality level)
|
|
202
209
|
- Create new one-off components when design system equivalents exist
|
|
203
210
|
- Hard-code values that should use design tokens
|
|
211
|
+
- Introduce new patterns or flows that diverge from established ones
|
|
204
212
|
|
|
205
213
|
## Final Verification
|
|
206
214
|
|
|
@@ -221,4 +229,4 @@ After polishing, ensure code quality:
|
|
|
221
229
|
- **Consolidate tokens**: If you introduced new values, check whether they should be tokens.
|
|
222
230
|
- **Verify DRYness**: Look for duplication introduced during polishing and consolidate.
|
|
223
231
|
|
|
224
|
-
Remember: You have impeccable attention to detail and exquisite taste. Polish until it feels effortless, looks intentional, and works flawlessly. Sweat the details - they matter.
|
|
232
|
+
Remember: You have impeccable attention to detail and exquisite taste. Polish until it feels effortless, looks intentional, and works flawlessly. Sweat the details - they matter.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Product register
|
|
2
|
+
|
|
3
|
+
When design SERVES the product: app UIs, admin dashboards, settings panels, data tables, tools, authenticated surfaces, anything where the user is in a task.
|
|
4
|
+
|
|
5
|
+
## The product slop test
|
|
6
|
+
|
|
7
|
+
Not "would someone say AI made this" — familiarity is often a feature here. The test is: would a user fluent in the category's best tools (Linear, Figma, Notion, Raycast, Stripe come to mind) sit down and trust this interface, or pause at every subtly-off component?
|
|
8
|
+
|
|
9
|
+
Product UI's failure mode isn't flatness, it's strangeness without purpose: over-decorated buttons, mismatched form controls, gratuitous motion, display fonts where labels should be, invented affordances for standard tasks. The bar is earned familiarity. The tool should disappear into the task.
|
|
10
|
+
|
|
11
|
+
## Typography
|
|
12
|
+
|
|
13
|
+
- **System fonts are legitimate.** `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif` gives you native feel on every platform. Inter is the common cross-platform default for a reason.
|
|
14
|
+
- **One family is often right.** Product UIs don't need display/body pairing. A well-tuned sans carries headings, buttons, labels, body, data.
|
|
15
|
+
- **Fixed rem scale, not fluid.** Clamp-sized headings don't serve product UI. Users view at consistent DPI, and a fluid h1 that shrinks in a sidebar looks worse, not better.
|
|
16
|
+
- **Tighter scale ratio.** 1.125–1.2 between steps is typical. More type elements here than on brand surfaces; exaggerated contrast creates noise.
|
|
17
|
+
- **Line length still applies for prose** (65–75ch). Data and compact UI can run denser — tables at 120ch+ are fine.
|
|
18
|
+
|
|
19
|
+
## Color
|
|
20
|
+
|
|
21
|
+
Product defaults to Restrained. A single surface can earn Committed — a dashboard where one category color carries a report, an onboarding flow with a drenched welcome screen — but Restrained is the floor.
|
|
22
|
+
|
|
23
|
+
- State-rich semantic vocabulary: hover, focus, active, disabled, selected, loading, error, warning, success, info. Standardize these.
|
|
24
|
+
- Accent color used for primary actions, current selection, and state indicators only — not decoration.
|
|
25
|
+
- A second neutral layer for sidebars, toolbars, and panels (slightly cooler or warmer than the content surface).
|
|
26
|
+
|
|
27
|
+
## Layout
|
|
28
|
+
|
|
29
|
+
- Predictable grids. Consistency IS an affordance — users navigate faster when the structure is expected.
|
|
30
|
+
- Familiar patterns are features. Standard navigation (top bar, side nav), breadcrumbs, tabs, and form layouts have established user expectations. Don't reinvent for flavor.
|
|
31
|
+
- Responsive behavior is structural (collapse sidebar, responsive table, breakpoint-driven columns), not fluid typography.
|
|
32
|
+
|
|
33
|
+
## Components
|
|
34
|
+
|
|
35
|
+
Every interactive component has: default, hover, focus, active, disabled, loading, error. Don't ship with half of these.
|
|
36
|
+
|
|
37
|
+
- Skeleton states for loading, not spinners in the middle of content.
|
|
38
|
+
- Empty states that teach the interface, not "nothing here."
|
|
39
|
+
- Consistent affordances across the surface. Same button shape. Same form-control vocabulary. Same icon style.
|
|
40
|
+
|
|
41
|
+
## Motion
|
|
42
|
+
|
|
43
|
+
- 150–250 ms on most transitions. Users are in flow — don't make them wait for choreography.
|
|
44
|
+
- Motion conveys state, not decoration. State change, feedback, loading, reveal — nothing else.
|
|
45
|
+
- No orchestrated page-load sequences. Product loads into a task; users don't want to watch it load.
|
|
46
|
+
|
|
47
|
+
## Product bans (on top of the shared absolute bans)
|
|
48
|
+
|
|
49
|
+
- Decorative motion that doesn't convey state.
|
|
50
|
+
- Inconsistent component vocabulary across screens. If the "save" button looks different in two places, one is wrong.
|
|
51
|
+
- Display fonts in UI labels, buttons, data.
|
|
52
|
+
- Reinventing standard affordances for flavor (custom scrollbars, weird form controls, non-standard modals).
|
|
53
|
+
- Heavy color or full-saturation accents on inactive states.
|
|
54
|
+
|
|
55
|
+
## Product permissions
|
|
56
|
+
|
|
57
|
+
Product can afford things brand surfaces can't.
|
|
58
|
+
|
|
59
|
+
- System fonts and familiar sans defaults (Inter, SF Pro, system-ui stacks).
|
|
60
|
+
- Standard navigation patterns: top bar + side nav, breadcrumbs, tabs, command palettes.
|
|
61
|
+
- Density. Tables with many rows, panels with many labels, dense information when users need it.
|
|
62
|
+
- Consistency over surprise. The same visual vocabulary screen to screen is a virtue; delight is saved for moments, not pages.
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
description: Tones down visually aggressive or overstimulating designs, reducing intensity while preserving quality. Use when the user mentions too bold, too loud, overwhelming, aggressive, garish, or wants a calmer, more refined aesthetic.
|
|
4
|
-
version: 2.1.1
|
|
5
|
-
user-invocable: true
|
|
6
|
-
argument-hint: "[target]"
|
|
1
|
+
Reduce visual intensity in designs that are too bold, aggressive, or overstimulating, creating a more refined and approachable aesthetic without losing effectiveness.
|
|
2
|
+
|
|
7
3
|
---
|
|
8
4
|
|
|
9
|
-
|
|
5
|
+
## Register
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
Brand: "quieter" means more restrained palette, more whitespace, more typographic air. Drama is reduced, not eliminated — the POV stays intact.
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
Product: "quieter" means reducing visual noise — fewer background accents, flatter cards, less color, less motion. The tool should disappear more completely into the task.
|
|
14
10
|
|
|
15
11
|
---
|
|
16
12
|
|
|
@@ -32,7 +28,7 @@ Analyze what makes the design feel too intense:
|
|
|
32
28
|
- What's working? (Don't throw away good ideas)
|
|
33
29
|
- What's the core message? (Preserve what matters)
|
|
34
30
|
|
|
35
|
-
If any of these are unclear from the codebase,
|
|
31
|
+
If any of these are unclear from the codebase, STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.
|
|
36
32
|
|
|
37
33
|
**CRITICAL**: "Quieter" doesn't mean boring or generic. It means refined, sophisticated, and easier on the eyes. Think luxury, not laziness.
|
|
38
34
|
|
|
@@ -100,4 +96,4 @@ Ensure refinement maintains quality:
|
|
|
100
96
|
- **Better reading**: Is text easier to read for extended periods?
|
|
101
97
|
- **Sophistication**: Does it feel more refined and premium?
|
|
102
98
|
|
|
103
|
-
Remember: Quiet design is confident design. It doesn't need to shout. Less is more, but less is also harder. Refine with precision and maintain intentionality.
|
|
99
|
+
Remember: Quiet design is confident design. It doesn't need to shout. Less is more, but less is also harder. Refine with precision and maintain intentionality.
|