codymaster 4.4.1 → 4.4.3
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/CHANGELOG.md +9 -0
- package/README.md +3 -0
- package/package.json +1 -1
- package/skills/cm-brainstorm-idea/SKILL.md +9 -7
- package/skills/cm-codeintell/SKILL.md +2 -2
- package/skills/cm-dashboard/SKILL.md +1 -1
- package/skills/cm-execution/SKILL.md +4 -2
- package/skills/cm-how-it-work/SKILL.md +4 -4
- package/skills/cm-planning/SKILL.md +19 -6
- package/skills/cm-reactor/SKILL.md +1 -1
- package/skills/cm-skill-index/SKILL.md +1 -1
- package/skills/cm-start/SKILL.md +7 -4
- package/skills/cm-ux-master/SKILL.md +115 -767
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Categories: 🚀 **Improvements** | 🐛 **Bug Fixes** | 🔒 **Security**
|
|
6
6
|
|
|
7
|
+
## [4.4.2] - 2026-03-29
|
|
8
|
+
|
|
9
|
+
### 🚀 Improvements
|
|
10
|
+
|
|
11
|
+
- **cm-brainstorm-idea Phase 4.5 (UI Preview)** — Now integrates with `cm-ui-preview` to automatically generate visual mockups (via Google Stitch or Pencil MCP) *after* recommending an approach but *before* detailed planning begins. Provides instant visual validation of ideas.
|
|
12
|
+
- **OpenSpec Protocol Upgrade** — Enhanced integration with Fission-AI OpenSpec format (`openspec/changes/[initiative]/proposal.md`) for seamless context handoffs to downstream skills (`cm-planning` & `cm-execution`).
|
|
13
|
+
- **Skill Evolution Engine** — Successfully executed automated self-healing mechanisms (Mode: FIX) for `cm-tdd` and `cm-debugging` after health monitor alerts.
|
|
14
|
+
|
|
15
|
+
|
|
7
16
|
## [4.3.0] - 2026-03-27
|
|
8
17
|
|
|
9
18
|
### 🚀 Improvements
|
package/README.md
CHANGED
|
@@ -165,6 +165,9 @@ Don't know what the old code does? **`cm-dockit`** reads your entire codebase an
|
|
|
165
165
|
|
|
166
166
|
Before diving into code for complex requests, **`cm-brainstorm-idea`** evaluates your product using multi-dimensional analysis (Tech, Product, Design, Business). It generates 2-3 qualified options using the 9 Windows (TRIZ) framework and provides a visual UI Preview via **Pencil.dev** or **Google Stitch** to validate the direction before detailed planning.
|
|
167
167
|
|
|
168
|
+
📖 [Read more about the UI Preview Phase →](docs/Brainstorm-UI-Preview.md)
|
|
169
|
+
|
|
170
|
+
|
|
168
171
|
### 🏭 AI Content Factory v2.0 & Visual Dashboard
|
|
169
172
|
|
|
170
173
|
Need to scale content? **`cm-content-factory`** is a self-learning, multi-agent content engine. It automatically researches, writes, audits (SEO & Persuasion), and deploys high-converting articles with the Content Mastery framework (StoryBrand + Cialdini) to guarantee conversion.
|
package/package.json
CHANGED
|
@@ -338,25 +338,27 @@ User says "No" (Skip preview):
|
|
|
338
338
|
|
|
339
339
|
> **Goal:** Create a clean handoff document that `cm-planning` can use immediately.
|
|
340
340
|
|
|
341
|
-
#### Handoff Output:
|
|
341
|
+
#### Handoff Output: OpenSpec Proposal
|
|
342
342
|
|
|
343
|
-
Save to `
|
|
343
|
+
Save to `openspec/changes/[initiative-name]/proposal.md` (Fission-AI OpenSpec format):
|
|
344
344
|
|
|
345
345
|
```markdown
|
|
346
|
-
#
|
|
346
|
+
# Proposal: [Initiative Name]
|
|
347
347
|
Generated by: cm-brainstorm-idea
|
|
348
348
|
Date: [date]
|
|
349
349
|
|
|
350
|
-
##
|
|
350
|
+
## Why we're doing this
|
|
351
|
+
### Qualified Problem
|
|
351
352
|
[From Phase 2]
|
|
352
353
|
|
|
353
|
-
|
|
354
|
+
### 9 Windows Analysis
|
|
354
355
|
[Summary table from Phase 2]
|
|
355
356
|
|
|
356
|
-
##
|
|
357
|
+
## What's changing
|
|
358
|
+
### Options Evaluated
|
|
357
359
|
[Summary from Phase 3-4]
|
|
358
360
|
|
|
359
|
-
|
|
361
|
+
### Recommendation
|
|
360
362
|
[From Phase 4]
|
|
361
363
|
|
|
362
364
|
## Next Steps for cm-planning:
|
|
@@ -318,7 +318,7 @@ RE-GENERATE when:
|
|
|
318
318
|
|
|
319
319
|
STORE at:
|
|
320
320
|
→ .cm/architecture.mmd (Mermaid source)
|
|
321
|
-
→ Include in
|
|
321
|
+
→ Include in proposal.md when relevant
|
|
322
322
|
```
|
|
323
323
|
|
|
324
324
|
### Integration with Pencil MCP
|
|
@@ -436,7 +436,7 @@ NEW addition to Phase A:
|
|
|
436
436
|
2. If total impact > 20 files:
|
|
437
437
|
→ Flag as HIGH RISK in plan
|
|
438
438
|
→ Recommend cm-tdd coverage for all impacted callers
|
|
439
|
-
3. Include impact summary in
|
|
439
|
+
3. Include impact summary in OpenSpec `design.md`
|
|
440
440
|
```
|
|
441
441
|
|
|
442
442
|
### cm-debugging (Trace Analysis — enhanced)
|
|
@@ -7,7 +7,7 @@ description: Open visual Dashboard to track work status (Simulated Kanban board)
|
|
|
7
7
|
|
|
8
8
|
When this command is called, the AI Assistant should:
|
|
9
9
|
|
|
10
|
-
1. **Check status:** Find and read the `
|
|
10
|
+
1. **Check status:** Find and read the OpenSpec `openspec/changes/[init]/tasks.md` (and synced `cm-tasks.json`) file in the current project directory (or artifacts directory).
|
|
11
11
|
2. **Visual display:** Aggregate tasks and render them as a Kanban board (Markdown table) with 3 columns:
|
|
12
12
|
- **🔴 TO DO** (Not started)
|
|
13
13
|
- **🟡 IN PROGRESS** (In progress)
|
|
@@ -61,12 +61,13 @@ Have a plan with independent tasks?
|
|
|
61
61
|
## Mode A: Batch Execution
|
|
62
62
|
|
|
63
63
|
### Process
|
|
64
|
-
1. **Load plan** → review critically → raise concerns
|
|
64
|
+
1. **Load plan** from Fission-AI OpenSpec (`openspec/changes/[initiative-name]/tasks.md` and `design.md`) → review critically → raise concerns
|
|
65
65
|
2. **Execute batch** (default: 3 tasks)
|
|
66
66
|
- Mark in_progress → follow steps → verify → mark complete
|
|
67
67
|
3. **Report** → show what was done + verification output
|
|
68
68
|
4. **Continue** → apply feedback → next batch
|
|
69
69
|
5. **Complete** → use `cm-code-review` to finish
|
|
70
|
+
6. **Archive** → After all tasks complete, manually move the OpenSpec folder to `openspec/changes/archive/[date]-[name]/`
|
|
70
71
|
|
|
71
72
|
### Rules
|
|
72
73
|
- Follow plan steps exactly
|
|
@@ -79,7 +80,7 @@ Have a plan with independent tasks?
|
|
|
79
80
|
## Mode B: Subagent-Driven Development
|
|
80
81
|
|
|
81
82
|
### Process
|
|
82
|
-
1. **Read plan** → extract ALL tasks with full text
|
|
83
|
+
1. **Read plan** from `openspec/changes/[initiative-name]/tasks.md` → extract ALL tasks with full text
|
|
83
84
|
2. **Per task:**
|
|
84
85
|
- Dispatch implementer subagent with full task text
|
|
85
86
|
- Answer subagent questions if any
|
|
@@ -179,6 +180,7 @@ LOOP until backlog empty or user interrupts:
|
|
|
179
180
|
|
|
180
181
|
After EVERY phase, you MUST:
|
|
181
182
|
1. Read current `cm-tasks.json`
|
|
183
|
+
2. Sync state from `openspec/changes/[initiative-name]/tasks.md` (Keep both human-readable MD and AI-executable JSON in parallel sync)
|
|
182
184
|
2. Find the active task by `id`
|
|
183
185
|
3. Update `status`, `logs[]`, timestamps
|
|
184
186
|
4. Recalculate `stats` object:
|
|
@@ -49,7 +49,7 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
49
49
|
1. Scan codebase with **code intelligence** (AST graph + architecture diagram via `cm-codeintell`).
|
|
50
50
|
2. Interview user and analyze with 9 Windows (TRIZ).
|
|
51
51
|
3. Propose 2-3 options, evaluate multi-dimensionally, recommend the best option.
|
|
52
|
-
- **Output:** `
|
|
52
|
+
- **Output:** OpenSpec `openspec/changes/[initiative]/proposal.md` — qualified problem + recommended option → passes to `cm-planning`.
|
|
53
53
|
|
|
54
54
|
---
|
|
55
55
|
|
|
@@ -60,8 +60,8 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
60
60
|
- **Action:**
|
|
61
61
|
1. Brainstorm requirements and analyze i18n.
|
|
62
62
|
2. Propose architecture and tech stack.
|
|
63
|
-
3. Write detailed `
|
|
64
|
-
- **Output:** Design
|
|
63
|
+
3. Write detailed OpenSpec docs (`openspec/changes/[init]/design.md` and `tasks.md`).
|
|
64
|
+
- **Output:** Design docs and execution plan (OpenSpec tasks) approved by user.
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
@@ -161,7 +161,7 @@ The **CodyMaster (CM)** kit transforms ideas into production code through 13 spe
|
|
|
161
161
|
The kit supports autonomous mode by applying the **Reason → Act → Reflect → Verify (RARV)** loop.
|
|
162
162
|
|
|
163
163
|
### How to Use the Workflow:
|
|
164
|
-
1. **`/cm-start [objective]`**: Start work. The system will automatically
|
|
164
|
+
1. **`/cm-start [objective]`**: Start work. The system will automatically initialize the OpenSpec structure (`openspec/changes/[objective]/`), break down tasks into `tasks.md` and sync with `cm-tasks.json`, launch the tracking interface, and autonomously use CM skills to complete them.
|
|
165
165
|
2. **`/cm-dashboard`**: Open the visual tracking Dashboard in browser (shows Kanban board, reasoning log, and progress).
|
|
166
166
|
3. **`/cm-status`**: View quick progress summary in Terminal.
|
|
167
167
|
|
|
@@ -33,6 +33,7 @@ description: "You MUST use this before any creative work or multi-step task. Exp
|
|
|
33
33
|
- Must-haves vs nice-to-haves
|
|
34
34
|
- Edge cases to handle
|
|
35
35
|
- Edge cases to explicitly NOT handle
|
|
36
|
+
- **Output to:** `openspec/changes/[initiative-name]/specs/`
|
|
36
37
|
|
|
37
38
|
4. **Design** — How should it work?
|
|
38
39
|
- Data flow
|
|
@@ -47,7 +48,10 @@ description: "You MUST use this before any creative work or multi-step task. Exp
|
|
|
47
48
|
- Skipping scope definition
|
|
48
49
|
- "It's simple, no need to plan"
|
|
49
50
|
|
|
50
|
-
## Phase B: Write Implementation Plan
|
|
51
|
+
## Phase B: Write Implementation Plan (OpenSpec Format)
|
|
52
|
+
|
|
53
|
+
> **Standard:** Fission-AI OpenSpec (`https://github.com/Fission-AI/OpenSpec/`)
|
|
54
|
+
> Output artifacts exactly to `openspec/changes/[initiative-name]/` to ensure human/AI alignment.
|
|
51
55
|
|
|
52
56
|
### When to Write a Plan
|
|
53
57
|
|
|
@@ -56,16 +60,16 @@ description: "You MUST use this before any creative work or multi-step task. Exp
|
|
|
56
60
|
- Changes affect other components
|
|
57
61
|
- User explicitly asks for a plan
|
|
58
62
|
|
|
59
|
-
###
|
|
63
|
+
### OpenSpec Artifacts to Generate
|
|
60
64
|
|
|
65
|
+
**1. `openspec/changes/[initiative-name]/design.md`**
|
|
61
66
|
```markdown
|
|
62
|
-
# [Goal]
|
|
67
|
+
# Design: [Goal]
|
|
63
68
|
|
|
64
|
-
## Context
|
|
65
|
-
|
|
69
|
+
## Context & Technical Approach
|
|
70
|
+
Why this approach and how it works.
|
|
66
71
|
|
|
67
72
|
## Proposed Changes
|
|
68
|
-
|
|
69
73
|
### [Component/File]
|
|
70
74
|
- What changes
|
|
71
75
|
- Why this approach
|
|
@@ -74,6 +78,15 @@ What and why.
|
|
|
74
78
|
How to verify it works.
|
|
75
79
|
```
|
|
76
80
|
|
|
81
|
+
**2. `openspec/changes/[initiative-name]/tasks.md`**
|
|
82
|
+
```markdown
|
|
83
|
+
# Implementation Checklist
|
|
84
|
+
- [ ] 1.1 First component setup
|
|
85
|
+
- [ ] 1.2 First component logic
|
|
86
|
+
- [ ] 2.1 Next component integration
|
|
87
|
+
- [ ] Verification testing
|
|
88
|
+
```
|
|
89
|
+
|
|
77
90
|
### Plan Rules
|
|
78
91
|
|
|
79
92
|
```
|
|
@@ -196,7 +196,7 @@ For each migration step:
|
|
|
196
196
|
5. If tests fail → STOP, diagnose, fix before next step
|
|
197
197
|
|
|
198
198
|
Progress tracking:
|
|
199
|
-
→ Update cm-tasks.json with each completed migration step
|
|
199
|
+
→ Update OpenSpec `tasks.md` and `cm-tasks.json` with each completed migration step
|
|
200
200
|
→ Update CONTINUITY.md with migration status
|
|
201
201
|
```
|
|
202
202
|
|
|
@@ -109,7 +109,7 @@ Traditional approach: Load every SKILL.md to decide which skill to use.
|
|
|
109
109
|
| Skill | Triggers | Summary |
|
|
110
110
|
|-------|----------|---------|
|
|
111
111
|
| `cm-start` | /cm-start, start workflow, begin objective, new task | Orchestrate full cm-* workflow from objective to production code |
|
|
112
|
-
| `cm-dashboard` | /cm-dashboard, kanban, task board, show tasks, status board | Render Kanban board from cm-tasks.json — visual task overview |
|
|
112
|
+
| `cm-dashboard` | /cm-dashboard, kanban, task board, show tasks, status board | Render Kanban board from OpenSpec `tasks.md` and `cm-tasks.json` — visual task overview |
|
|
113
113
|
| `cm-status` | /cm-status, quick status, progress, what's next, blocked | Ultra-concise progress summary: done / next / blocked |
|
|
114
114
|
|
|
115
115
|
### Planned (not yet implemented) 🧪
|
package/skills/cm-start/SKILL.md
CHANGED
|
@@ -50,20 +50,23 @@ When this workflow is called, the AI Assistant should execute the following acti
|
|
|
50
50
|
- Apply `cm-tdd` + `cm-execution` → `cm-quality-gate`
|
|
51
51
|
|
|
52
52
|
**L2 (Medium):** Full analysis flow
|
|
53
|
+
- Init OpenSpec (create `openspec/changes/[initiative-name]/` folder and artifacts manually)
|
|
53
54
|
- Apply `cm-brainstorm-idea` if problem is ambiguous
|
|
54
|
-
- Apply `cm-planning` (full implementation plan with
|
|
55
|
-
- Create `cm-tasks.json` → launch RARV autonomous execution
|
|
55
|
+
- Apply `cm-planning` (full implementation plan with OpenSpec `tasks.md`)
|
|
56
|
+
- Create `cm-tasks.json` from `tasks.md` → launch RARV autonomous execution
|
|
56
57
|
- Apply `cm-quality-gate` → `cm-safe-deploy`
|
|
57
58
|
|
|
58
59
|
**L3 (Large):** Full + PRD + Architecture + Sprint
|
|
60
|
+
- Init OpenSpec (create `openspec/changes/[initiative-name]/` folder and artifacts manually)
|
|
59
61
|
- Apply `cm-brainstorm-idea` (mandatory)
|
|
60
62
|
- Apply `cm-planning` with FR/NFR requirement tracing
|
|
61
|
-
- Sprint planning → `cm-tasks.json`
|
|
63
|
+
- Sprint planning → `openspec/changes/[objective]/tasks.md` sync with `cm-tasks.json`
|
|
62
64
|
- Apply `cm-execution` (Mode E: TRIZ-Parallel for speed)
|
|
63
65
|
- Apply `cm-quality-gate` → `cm-safe-deploy`
|
|
64
66
|
|
|
65
67
|
3. **Track Progress:**
|
|
66
|
-
- Create
|
|
68
|
+
- Create `openspec/changes/[objective]/tasks.md` (for standardized spec tracking)
|
|
69
|
+
- Create or update `cm-tasks.json` (for autonomous agent execution)
|
|
67
70
|
- Suggest `/cm-dashboard` for visual tracking
|
|
68
71
|
- Suggest `/cm-status` for quick terminal summary
|
|
69
72
|
|
|
@@ -1,825 +1,173 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: cm-
|
|
3
|
-
description: "
|
|
2
|
+
name: cm-continuity
|
|
3
|
+
description: "Working memory protocol — maintains context across sessions via CONTINUITY.md. Inspired by Loki Mode. Read at turn start, update at turn end. Captures mistakes and learnings to prevent repeating errors."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Continuity — Working Memory Protocol
|
|
7
7
|
|
|
8
|
-
**
|
|
9
|
-
|
|
10
|
-
- 🤖 **MCP Server** — Native integration with Claude/Cursor/AI assistants
|
|
11
|
-
- 🎨 **Figma Bridge** — Bidirectional sync with Figma Tokens Studio
|
|
12
|
-
- ✨ **Google Stitch** — AI design generation with extracted tokens
|
|
13
|
-
- 📐 **48 UX Laws** — Behavioral psychology-based design rules
|
|
14
|
-
- ✅ **37 Design Tests** — TDD for design validation
|
|
15
|
-
- 💻 **Component Generator** — React/Vue/Semi Design components
|
|
16
|
-
- 🔍 **BM25 Search** — 1032+ design patterns across 16 domains
|
|
8
|
+
> **Context persistence across sessions. Mistakes captured. Learnings applied.**
|
|
9
|
+
> Inspired by Loki Mode's CONTINUITY.md protocol (Autonomi).
|
|
17
10
|
|
|
18
|
-
|
|
11
|
+
## When to Use
|
|
19
12
|
|
|
20
|
-
|
|
13
|
+
**ALWAYS** — This is a background protocol, not an explicit invocation.
|
|
21
14
|
|
|
22
|
-
|
|
15
|
+
- **Start of every session:** Read `.cm/CONTINUITY.md` to orient yourself
|
|
16
|
+
- **End of every session:** Update `.cm/CONTINUITY.md` with progress
|
|
17
|
+
- **On error:** Record in Mistakes & Learnings section
|
|
18
|
+
- **On key decision:** Record in Key Decisions section
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
**You DO NOT build generic marketing landing pages.** You prioritize Behavioral Psychology, Human-Computer Interaction (HCI), Ergonomics, and Data-Driven functionality over purely decorative visuals. No excessive glassmorphism, no useless infinite animations. **Form follows function.**
|
|
27
|
-
|
|
28
|
-
## When to Apply
|
|
29
|
-
|
|
30
|
-
Reference these guidelines when:
|
|
31
|
-
- Designing new UI components or pages
|
|
32
|
-
- Choosing color palettes and typography
|
|
33
|
-
- Reviewing code for UX issues
|
|
34
|
-
- Building Web App / SaaS dashboards
|
|
35
|
-
- Implementing accessibility requirements
|
|
36
|
-
- Extracting design systems from existing sites
|
|
37
|
-
- Validating designs against UX Laws
|
|
38
|
-
- Building Mobile App screens (iOS / Android / React Native / Flutter)
|
|
39
|
-
|
|
40
|
-
## Core Directives (MANDATORY Engineering Constraints)
|
|
41
|
-
|
|
42
|
-
Whenever generating, designing, or refactoring a UI component or screen, you **MUST** strictly apply these constraints and reflect them explicitly in your code:
|
|
43
|
-
|
|
44
|
-
### Directive 1: Mobile & Touch Ergonomics (Fitts's Law)
|
|
45
|
-
|
|
46
|
-
- **Constraint:** ALL interactive touch targets (buttons, links, inputs, dropdown tabs) on Mobile UIs MUST have a minimum size of 44×44px. Enforce via CSS: `min-h-[44px] min-w-[44px]`.
|
|
47
|
-
- **Architecture:** Place primary actions in the **Thumb Zone** (bottom 1/3 of screen). Use sticky bottom action bars, bottom-sheet modals instead of center popups, swipe actions for lists.
|
|
48
|
-
|
|
49
|
-
### Directive 2: Decision Architecture (Hick's Law)
|
|
50
|
-
|
|
51
|
-
- **Constraint:** Prevent cognitive overload in complex interfaces. Never present a "wall of buttons."
|
|
52
|
-
- **Architecture:** Use **Progressive Disclosure**. Hide advanced settings behind `...` (More) dropdown menus, accordions, or drill-down tabs. Limit primary CTAs to **1 or max 2 per view**.
|
|
53
|
-
|
|
54
|
-
### Directive 3: Data Density & Chunking (Miller's Law)
|
|
55
|
-
|
|
56
|
-
- **Constraint:** When designing Data Tables, Dashboards, or long forms, chunk information into logical groups of **5 to 9 items**.
|
|
57
|
-
- **Architecture:** Use clear visual hierarchy, ample whitespace (`gap`, `p`), and subtle separators (`border-slate-200`) to create distinct semantic blocks. Avoid heavy box-shadows that cause visual noise.
|
|
58
|
-
|
|
59
|
-
### Directive 4: Perceived Performance & UI States (Doherty Threshold)
|
|
60
|
-
|
|
61
|
-
- **Constraint:** The interface must feel instantaneous (<400ms feedback).
|
|
62
|
-
- **Architecture:** You MUST account for **all UI lifecycle states** in your code:
|
|
63
|
-
- **Skeleton Loader** — shimmer/pulse placeholder while fetching data
|
|
64
|
-
- **Empty State** — designed screen when no data exists (not just blank)
|
|
65
|
-
- **Interactive states** — `hover:`, `active:`, `disabled:`, `focus-visible:`
|
|
66
|
-
- **Error State** — clear error feedback near the problem source
|
|
67
|
-
|
|
68
|
-
### Directive 5: Accessibility & Error Prevention (A11y + Poka-Yoke)
|
|
69
|
-
|
|
70
|
-
- **Constraint:** Strictly adhere to WCAG 2.1 AA text contrast ratios.
|
|
71
|
-
- **Architecture:**
|
|
72
|
-
- Destructive actions (Delete, Remove) must be **visually distinct** (outlined red text) and **physically separated** from safe actions
|
|
73
|
-
- Include `focus-visible:ring-2 focus-visible:ring-offset-2` for ALL interactive elements (keyboard navigation)
|
|
74
|
-
- Use **Semantic HTML** (`<nav>`, `<aside>`, `<dialog>`) and **ARIA attributes** (`aria-expanded`, `aria-hidden`) where necessary
|
|
75
|
-
|
|
76
|
-
### Directive 6: i18n & Multi-Locale Design
|
|
77
|
-
|
|
78
|
-
> [!IMPORTANT]
|
|
79
|
-
> **Ask before designing:** "How many languages? Which is primary?" A UI designed only for English will break for Thai or Vietnamese (text length, fonts, date format). This must be in scope from day 0.
|
|
80
|
-
|
|
81
|
-
**Text Length Variance:**
|
|
82
|
-
- Vietnamese: ~10-20% longer than English
|
|
83
|
-
- Thai: ~30-40% longer than English (also uses different line-height rules)
|
|
84
|
-
- German/French: ~20-30% longer than English
|
|
85
|
-
- **Design with the longest string in mind.** Never use a fixed-width container that clips a translation.
|
|
86
|
-
- **Implementation:** Use `min-width` instead of `width`, allow text to wrap gracefully, test labels at 140% length.
|
|
87
|
-
|
|
88
|
-
**Font Requirements:**
|
|
89
|
-
- Verify your font supports ALL target language scripts:
|
|
90
|
-
- Thai requires fonts with extended Unicode support (Noto Sans Thai, Sarabun, Prompt)
|
|
91
|
-
- Vietnamese requires full diacritic support (most Latin fonts OK; some truncate)
|
|
92
|
-
- Filipino (Tagalog) uses Latin script — standard fonts work
|
|
93
|
-
- **Safe cross-language fonts:** Noto Sans (covers all), Inter (Latin+Vietnamese), IBM Plex Sans
|
|
94
|
-
|
|
95
|
-
**Locale-Aware Formatting (MANDATORY for multi-country):**
|
|
96
|
-
```javascript
|
|
97
|
-
// ❌ WRONG — hardcoded locale
|
|
98
|
-
new Date(d).toLocaleDateString() // Uses browser default
|
|
99
|
-
amount.toLocaleString('en-US') // Always English format
|
|
100
|
-
|
|
101
|
-
// ✅ CORRECT — explicit locale from user setting
|
|
102
|
-
new Date(d).toLocaleDateString(userLocale) // 'vi-VN', 'th-TH', 'en-US'
|
|
103
|
-
amount.toLocaleString(userLocale, { style: 'currency', currency: 'VND' })
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**Date/number format differences by locale:**
|
|
107
|
-
| Locale | Date Format | Number Format | Currency |
|
|
108
|
-
|--------|------------|---------------|----------|
|
|
109
|
-
| vi-VN | DD/MM/YYYY | 1.234,56 | 1.000 ₫ |
|
|
110
|
-
| en-US | MM/DD/YYYY | 1,234.56 | $1,000 |
|
|
111
|
-
| th-TH | DD/MM/YYYY (Buddhist calendar optional) | 1,234.56 | ฿1,000 |
|
|
112
|
-
| fil-PH | MM/DD/YYYY | 1,234.56 | ₱1,000 |
|
|
113
|
-
|
|
114
|
-
**RTL Layout (Arabic, Hebrew — if future target):**
|
|
115
|
-
- All flexbox directions flip: `flex-row` → `flex-row-reverse`
|
|
116
|
-
- Text alignment: `text-left` → `text-right`
|
|
117
|
-
- Padding/margin mirroring: `pl-4` → `pr-4`
|
|
118
|
-
- Use CSS logical properties from day 1: `margin-inline-start` instead of `margin-left`
|
|
119
|
-
- Implement via `dir="rtl"` on `<html>` tag + CSS `[dir='rtl']` overrides
|
|
120
|
-
|
|
121
|
-
## Rule Categories by Priority
|
|
122
|
-
|
|
123
|
-
| Priority | Category | Impact | Domain |
|
|
124
|
-
|----------|----------|--------|--------|
|
|
125
|
-
| 1 | UX Laws Compliance | CRITICAL | `ux-laws` |
|
|
126
|
-
| 2 | Design Test Validation | CRITICAL | `design-tests` |
|
|
127
|
-
| 3 | Accessibility | CRITICAL | `ux` |
|
|
128
|
-
| 4 | Touch & Interaction | CRITICAL | `ux` |
|
|
129
|
-
| 5 | Performance | HIGH | `ux` |
|
|
130
|
-
| 6 | Layout & Responsive | HIGH | `ux` |
|
|
131
|
-
| 7 | Typography & Color | MEDIUM | `typography`, `color` |
|
|
132
|
-
| 8 | Animation | MEDIUM | `ux` |
|
|
133
|
-
| 9 | Style Selection | MEDIUM | `style`, `product` |
|
|
134
|
-
| 10 | Charts & Data | LOW | `chart` |
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Prerequisites
|
|
20
|
+
## Setup
|
|
139
21
|
|
|
140
22
|
```bash
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
Python 3.x required. No external dependencies.
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## How to Use This Skill
|
|
149
|
-
|
|
150
|
-
### Step 1: Analyze User Requirements
|
|
23
|
+
# Initialize working memory for current project
|
|
24
|
+
cm continuity init
|
|
151
25
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
- **Style keywords**: minimal, playful, professional, elegant, dark mode, etc.
|
|
155
|
-
- **Industry**: healthcare, fintech, gaming, education, etc.
|
|
156
|
-
- **Stack**: React, Vue, Next.js, or default to `html-tailwind`
|
|
26
|
+
# Check current state
|
|
27
|
+
cm continuity status
|
|
157
28
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
**Always start with `--design-system`** to get comprehensive recommendations with UX Laws + Design Tests:
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
python3 scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
This command:
|
|
167
|
-
1. Searches 5 domains in parallel (product, style, color, landing, typography)
|
|
168
|
-
2. Applies reasoning rules from `ui-reasoning.csv`
|
|
169
|
-
3. **NEW:** Automatically includes applicable UX Laws and Design Tests
|
|
170
|
-
4. Returns complete design system: pattern, style, colors, typography, effects, UX laws, tests
|
|
171
|
-
|
|
172
|
-
**Example:**
|
|
173
|
-
```bash
|
|
174
|
-
python3 scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### Step 2b: Persist Design System (Master + Overrides)
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
python3 scripts/search.py "<query>" --design-system --persist -p "Project Name"
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
Creates `design-system/MASTER.md` + optional page overrides:
|
|
184
|
-
```bash
|
|
185
|
-
python3 scripts/search.py "<query>" --design-system --persist -p "Project Name" --page "dashboard"
|
|
29
|
+
# View captured learnings
|
|
30
|
+
cm continuity learnings
|
|
186
31
|
```
|
|
187
32
|
|
|
188
|
-
|
|
33
|
+
## The Protocol
|
|
189
34
|
|
|
190
|
-
|
|
35
|
+
### AT THE START OF EVERY SESSION:
|
|
191
36
|
|
|
192
|
-
```bash
|
|
193
|
-
python3 scripts/search.py "mobile app fitts" --domain ux-laws -n 5
|
|
194
|
-
python3 scripts/search.py "e-commerce checkout" --domain ux-laws
|
|
195
|
-
python3 scripts/search.py "dashboard cognitive load" --domain ux-laws
|
|
196
37
|
```
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
Get TDD-style test cases for design validation:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
python3 scripts/search.py "landing page hero" --domain design-tests -n 5
|
|
206
|
-
python3 scripts/search.py "mobile touch target" --domain design-tests
|
|
207
|
-
python3 scripts/search.py "checkout flow" --domain design-tests
|
|
38
|
+
1. Read .cm/CONTINUITY.md to understand current state
|
|
39
|
+
2. Read "Mistakes & Learnings" to avoid past errors
|
|
40
|
+
3. Check "Next Actions" to determine what to do
|
|
41
|
+
4. Reference Active Goal throughout your work
|
|
208
42
|
```
|
|
209
43
|
|
|
210
|
-
|
|
44
|
+
### DURING WORK:
|
|
211
45
|
|
|
212
|
-
### Step 5: Supplement with Detailed Searches
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
python3 scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
|
|
216
46
|
```
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
| UX best practices | `ux` | `"animation accessibility"` |
|
|
223
|
-
| Alternative fonts | `typography` | `"elegant luxury"` |
|
|
224
|
-
| Landing structure | `landing` | `"hero social-proof"` |
|
|
225
|
-
| UX Laws | `ux-laws` | `"hick's law landing"` |
|
|
226
|
-
| Design Tests | `design-tests` | `"mobile app navigation"` |
|
|
227
|
-
|
|
228
|
-
### Step 6: Stack Guidelines (Default: html-tailwind)
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
python3 scripts/search.py "<keyword>" --stack html-tailwind
|
|
47
|
+
PRE-ACT ATTENTION CHECK (before every significant action):
|
|
48
|
+
- Re-read Active Goal
|
|
49
|
+
- Ask: "Does my planned action serve this goal?"
|
|
50
|
+
- Ask: "Am I solving the original problem, not a tangent?"
|
|
51
|
+
- If DRIFT detected → log it → return to goal
|
|
232
52
|
```
|
|
233
53
|
|
|
234
|
-
|
|
54
|
+
### AT THE END OF EVERY SESSION:
|
|
235
55
|
|
|
236
|
-
### Step 7: Extract Design System from Existing Site (NEW)
|
|
237
|
-
|
|
238
|
-
Analyze an existing website and extract its design tokens:
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
# From URL
|
|
242
|
-
python3 scripts/extractor.py --url "https://example.com" -p "BrandName" --generate-skill --persist
|
|
243
|
-
|
|
244
|
-
# From local project directory
|
|
245
|
-
python3 scripts/extractor.py --directory ./src -p "MyApp" --generate-skill --persist
|
|
246
|
-
|
|
247
|
-
# From CSS files
|
|
248
|
-
python3 scripts/extractor.py --css style.css theme.css -p "MyProject" --format tailwind
|
|
249
56
|
```
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
# Create a project
|
|
259
|
-
python3 scripts/project_registry.py --create "Haravan" --url "https://showcase.myharavan.com"
|
|
260
|
-
|
|
261
|
-
# List all projects
|
|
262
|
-
python3 scripts/project_registry.py --list
|
|
263
|
-
|
|
264
|
-
# Get project info
|
|
265
|
-
python3 scripts/project_registry.py --get haravan
|
|
266
|
-
|
|
267
|
-
# Add page harvest to project
|
|
268
|
-
python3 scripts/project_registry.py --add-harvest haravan -i harvest.json
|
|
269
|
-
|
|
270
|
-
# Token mapper with project (auto-saves to output/<slug>/)
|
|
271
|
-
python3 scripts/token_mapper.py -i harvest.json --project haravan
|
|
272
|
-
|
|
273
|
-
# Merge multiple harvest files
|
|
274
|
-
python3 scripts/harvest_session.py page1.json page2.json page3.json -o merged.json --confidence
|
|
57
|
+
1. Update "Just Completed" with accomplishments
|
|
58
|
+
2. Update "Next Actions" with remaining work
|
|
59
|
+
3. Record any new "Mistakes & Learnings"
|
|
60
|
+
4. Record any "Key Decisions" made
|
|
61
|
+
5. Update "Files Modified" list
|
|
62
|
+
6. Set currentPhase and timestamp
|
|
275
63
|
```
|
|
276
64
|
|
|
277
|
-
###
|
|
278
|
-
|
|
279
|
-
Generate a self-contained HTML documentation page:
|
|
280
|
-
|
|
281
|
-
```bash
|
|
282
|
-
# From project
|
|
283
|
-
python3 scripts/design_doc_generator.py --project haravan --open
|
|
65
|
+
### ON ERROR (Self-Correction Loop):
|
|
284
66
|
|
|
285
|
-
# From harvest file directly
|
|
286
|
-
python3 scripts/design_doc_generator.py -i harvest.json -o design-system.html
|
|
287
67
|
```
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
# 1. Inject harvester_v3.js in browser console on target page
|
|
297
|
-
# Copy-paste scripts/harvester_v3.js → browser DevTools console → Enter
|
|
298
|
-
# Copy the JSON output
|
|
299
|
-
|
|
300
|
-
# 2. Save raw harvest
|
|
301
|
-
# Paste JSON into output/<project>/harvest-v3-raw.json
|
|
302
|
-
|
|
303
|
-
# 3. Map to Semi tokens (auto-detects v3 format)
|
|
304
|
-
python3 scripts/token_mapper.py -i output/<project>/harvest-v3-raw.json --project <slug>
|
|
305
|
-
|
|
306
|
-
# 4. Generate design system doc with all 9 sections
|
|
307
|
-
python3 scripts/design_doc_generator.py --project <slug> --open
|
|
68
|
+
ON_ERROR:
|
|
69
|
+
1. Capture error details (stack trace, context)
|
|
70
|
+
2. Analyze root cause (not just symptoms)
|
|
71
|
+
3. Write learning to CONTINUITY.md "Mistakes & Learnings"
|
|
72
|
+
4. Update approach based on learning
|
|
73
|
+
5. Retry with corrected approach
|
|
74
|
+
6. Max 3 retries per error pattern before ESCALATE
|
|
308
75
|
```
|
|
309
76
|
|
|
310
|
-
|
|
311
|
-
- Color histogram + semantic colors (primary, success, warning, danger, info, link, disabled)
|
|
312
|
-
- Neutral scale (10-shade gray ramp: 50→900)
|
|
313
|
-
- Expanded surfaces (app, card, sidebar, header, modal, hover, selected, input)
|
|
314
|
-
- Typography scale (heading+body families, 5-8 sizes, 4 weights)
|
|
315
|
-
- Spacing system (padding/margin/gap → 8-step scale)
|
|
316
|
-
- Border system (width, color, radius sm/md/lg/xl/full)
|
|
317
|
-
- Shadow system (sm/md/lg classified by blur depth)
|
|
318
|
-
- Layout metrics (sidebar width, header height, content max-width, grid gap)
|
|
319
|
-
- Component blueprints (button, input, card, table, nav_item, tag)
|
|
320
|
-
- Page type detection (dashboard/settings/report/orders)
|
|
77
|
+
## CONTINUITY.md Template
|
|
321
78
|
|
|
322
|
-
|
|
79
|
+
```markdown
|
|
80
|
+
# CodyMaster Working Memory
|
|
81
|
+
Last Updated: [ISO timestamp]
|
|
82
|
+
Current Phase: [planning|executing|testing|deploying|reviewing]
|
|
83
|
+
Current Iteration: [number]
|
|
84
|
+
Project: [project name]
|
|
323
85
|
|
|
324
|
-
##
|
|
325
|
-
|
|
326
|
-
| Feature | Free | Pro |
|
|
327
|
-
|---------|------|-----|
|
|
328
|
-
| Design Rules | 1032+ ✅ | 1032+ ✅ |
|
|
329
|
-
| UX Laws | 48 ✅ | 48 ✅ |
|
|
330
|
-
| Design Tests | 37 ✅ | 37 ✅ |
|
|
331
|
-
| UI Styles | 67 ✅ | 67 ✅ |
|
|
332
|
-
| Platform Support | 6 ✅ | 6 ✅ |
|
|
333
|
-
| Framework Stacks | 17 ✅ | 17 ✅ |
|
|
334
|
-
| Animation Patterns | 30 ✅ | 30 ✅ |
|
|
335
|
-
| Responsive Patterns | 25 ✅ | 25 ✅ |
|
|
336
|
-
| Accessibility (WCAG 2.2) | 25 ✅ | 25 ✅ |
|
|
337
|
-
| Device Profiles | 20 ✅ | 20 ✅ |
|
|
338
|
-
| Code Templates | 4 ✅ | 4 ✅ |
|
|
339
|
-
| **Harvester** | **v3 (80+ tokens)** | **v4 (120+ tokens)** 🔥 |
|
|
340
|
-
| Color Histogram | ❌ | ✅ |
|
|
341
|
-
| Semantic Colors | ❌ | ✅ |
|
|
342
|
-
| Neutral Scale | ❌ | ✅ |
|
|
343
|
-
| Component Blueprints | ❌ | ✅ |
|
|
344
|
-
| Typography Scale | ❌ | ✅ |
|
|
345
|
-
| Shadow/Border System | ❌ | ✅ |
|
|
346
|
-
| Layout Metrics | ❌ | ✅ |
|
|
347
|
-
| Token Mapper | ❌ | ✅ 🔥 |
|
|
348
|
-
| Design Doc Generator | ❌ | ✅ |
|
|
349
|
-
| Project Registry | ❌ | ✅ |
|
|
350
|
-
| Multi-harvest Merge | ❌ | ✅ |
|
|
351
|
-
| Semi MCP Bridge | ❌ | ✅ |
|
|
86
|
+
## Active Goal
|
|
87
|
+
[What we're currently trying to accomplish — 1-2 sentences max]
|
|
352
88
|
|
|
353
|
-
|
|
89
|
+
## Current Task
|
|
90
|
+
- ID: [task-id from dashboard]
|
|
91
|
+
- Title: [task title]
|
|
92
|
+
- Status: [in-progress|blocked|reviewing]
|
|
93
|
+
- Skill: [cm-skill being used]
|
|
94
|
+
- Started: [timestamp]
|
|
354
95
|
|
|
355
|
-
##
|
|
96
|
+
## Just Completed
|
|
97
|
+
- [Most recent accomplishment with file:line references]
|
|
98
|
+
- [Previous accomplishment]
|
|
99
|
+
- [etc — last 5 items]
|
|
356
100
|
|
|
357
|
-
|
|
101
|
+
## Next Actions (Priority Order)
|
|
102
|
+
1. [Immediate next step]
|
|
103
|
+
2. [Following step]
|
|
104
|
+
3. [etc]
|
|
358
105
|
|
|
359
|
-
|
|
106
|
+
## Active Blockers
|
|
107
|
+
- [Any current blockers or waiting items]
|
|
360
108
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
| Tokens | ~80 | **~120+** |
|
|
364
|
-
| Browser Automation | ❌ | ✅ Auto-open |
|
|
365
|
-
| Multi-page Crawl | ❌ | ✅ |
|
|
366
|
-
| AI Visual Analysis | ❌ | ✅ Psychology |
|
|
367
|
-
| Component Blueprints | Basic | ✅ Advanced |
|
|
368
|
-
| Auto Component Gen | ❌ | ✅ React/Semi/Vue |
|
|
369
|
-
| Design System Index | ❌ | ✅ Semi-architecture |
|
|
370
|
-
| CLI Integration | ❌ | ✅ Unified CLI |
|
|
109
|
+
## Key Decisions This Session
|
|
110
|
+
- [Decision]: [Rationale] — [timestamp]
|
|
371
111
|
|
|
372
|
-
|
|
112
|
+
## Mistakes & Learnings
|
|
373
113
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
--url https://example.com \
|
|
382
|
-
--crawl --max-pages 5 \
|
|
383
|
-
--generate --framework react-tailwind
|
|
384
|
-
|
|
385
|
-
# 3. Index existing harvest
|
|
386
|
-
python3 scripts/harvester_cli.py index \
|
|
387
|
-
--input output/harvest.json \
|
|
388
|
-
--name "MyApp" --figma
|
|
389
|
-
|
|
390
|
-
# 4. Generate components from design system
|
|
391
|
-
python3 scripts/harvester_cli.py generate \
|
|
392
|
-
--input output/design-system.json \
|
|
393
|
-
--all --framework semi
|
|
394
|
-
```
|
|
114
|
+
### Pattern: Error → Learning → Prevention
|
|
115
|
+
- **What Failed:** [Specific error that occurred]
|
|
116
|
+
- **Why It Failed:** [Root cause analysis]
|
|
117
|
+
- **How to Prevent:** [Concrete action to avoid this in future]
|
|
118
|
+
- **Timestamp:** [When learned]
|
|
119
|
+
- **Agent:** [Which agent]
|
|
120
|
+
- **Task:** [Which task ID]
|
|
395
121
|
|
|
396
|
-
|
|
122
|
+
## Working Context
|
|
123
|
+
[Critical information for current work — API keys paths,
|
|
124
|
+
architecture decisions, patterns being followed]
|
|
397
125
|
|
|
126
|
+
## Files Currently Being Modified
|
|
127
|
+
- [file path]: [what we're changing]
|
|
398
128
|
```
|
|
399
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
400
|
-
│ Harvester v4 Workflow │
|
|
401
|
-
├─────────────────────────────────────────────────────────────┤
|
|
402
|
-
│ │
|
|
403
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
404
|
-
│ │ Extract │───→│ Index │───→│ Generate │ │
|
|
405
|
-
│ │ (Browser) │ │ (Semi Arch) │ │ (Components) │ │
|
|
406
|
-
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
407
|
-
│ │ │ │ │
|
|
408
|
-
│ harvester_v4.js design_system_ component_ │
|
|
409
|
-
│ harvester_browser.py indexer.py generator.py │
|
|
410
|
-
│ │
|
|
411
|
-
└─────────────────────────────────────────────────────────────┘
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
### Step 11: Harvester v4 — Full Automation 🔥
|
|
415
129
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
```bash
|
|
419
|
-
# Single URL harvest
|
|
420
|
-
python3 scripts/harvester_browser.py --url https://example.com --output ./output
|
|
130
|
+
## Memory Hierarchy
|
|
421
131
|
|
|
422
|
-
|
|
423
|
-
python3 scripts/harvester_browser.py --url https://example.com --mobile
|
|
132
|
+
The memory systems complement each other:
|
|
424
133
|
|
|
425
|
-
# Multi-page crawl
|
|
426
|
-
python3 scripts/harvester_browser.py --url https://example.com --crawl --max-pages 10
|
|
427
|
-
|
|
428
|
-
# Interactive mode
|
|
429
|
-
python3 scripts/harvester_browser.py --interactive
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
**v4 extracts (120+ tokens):**
|
|
433
|
-
- Visual element detection & classification
|
|
434
|
-
- Color psychology analysis
|
|
435
|
-
- Layout pattern recognition (grid, flex, sidebar)
|
|
436
|
-
- Typography hierarchy with font pairing
|
|
437
|
-
- Component relationship mapping
|
|
438
|
-
- Animation & transition detection
|
|
439
|
-
- Accessibility audit (contrast, labels)
|
|
440
|
-
|
|
441
|
-
#### B. Design System Indexing (Semi Architecture)
|
|
442
|
-
|
|
443
|
-
```bash
|
|
444
|
-
# Index single harvest
|
|
445
|
-
python3 scripts/design_system_indexer.py \
|
|
446
|
-
--input harvest.json \
|
|
447
|
-
--name "MyApp" \
|
|
448
|
-
--output ./design-system
|
|
449
|
-
|
|
450
|
-
# Merge multiple harvests
|
|
451
|
-
python3 scripts/design_system_indexer.py \
|
|
452
|
-
--multi ./harvests/page1.json ./harvests/page2.json \
|
|
453
|
-
--name "MergedSystem"
|
|
454
|
-
|
|
455
|
-
# Generate Figma tokens
|
|
456
|
-
python3 scripts/design_system_indexer.py \
|
|
457
|
-
--input harvest.json \
|
|
458
|
-
--name "MyApp" \
|
|
459
|
-
--figma
|
|
460
134
|
```
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
-
|
|
465
|
-
- Fill: fill-0 → fill-2
|
|
466
|
-
- Text: text-0 → text-3
|
|
467
|
-
- Semantic: success, warning, danger, info, link
|
|
468
|
-
- Spacing: none → super-loose (10 steps)
|
|
469
|
-
- Border: radius xs → full
|
|
470
|
-
- Shadow: sm → elevated → lg
|
|
471
|
-
|
|
472
|
-
#### C. Component Generation
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
# Generate all components
|
|
476
|
-
python3 scripts/component_generator.py \
|
|
477
|
-
--input design-system.json \
|
|
478
|
-
--all --output ./components
|
|
479
|
-
|
|
480
|
-
# Generate specific component
|
|
481
|
-
python3 scripts/component_generator.py \
|
|
482
|
-
--input design-system.json \
|
|
483
|
-
--component button \
|
|
484
|
-
--framework semi
|
|
485
|
-
|
|
486
|
-
# Supported frameworks
|
|
487
|
-
# --framework react-tailwind (default)
|
|
488
|
-
# --framework semi (Semi Design)
|
|
489
|
-
# --framework vue (Vue 3 + Tailwind)
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
**Generated components:**
|
|
493
|
-
- Button (primary, secondary, outline, ghost, danger)
|
|
494
|
-
- Card (default, bordered, elevated)
|
|
495
|
-
- Input (text, password, textarea, select)
|
|
496
|
-
- Badge/Tag (default, success, warning, danger, info)
|
|
497
|
-
- Avatar (circle, square, sizes)
|
|
498
|
-
- Alert (info, success, warning, error)
|
|
499
|
-
- Modal/Dialog
|
|
500
|
-
- Table
|
|
501
|
-
- Tabs
|
|
502
|
-
- Dropdown
|
|
503
|
-
- Tooltip
|
|
504
|
-
- Divider
|
|
505
|
-
- Skeleton
|
|
506
|
-
- Empty state
|
|
507
|
-
|
|
508
|
-
#### D. Unified CLI
|
|
509
|
-
|
|
510
|
-
```bash
|
|
511
|
-
# Full workflow
|
|
512
|
-
python3 scripts/harvester_cli.py quick https://example.com
|
|
513
|
-
|
|
514
|
-
# Individual phases
|
|
515
|
-
python3 scripts/harvester_cli.py extract --url https://example.com --generate
|
|
516
|
-
python3 scripts/harvester_cli.py index --input harvest.json --name "MyApp"
|
|
517
|
-
python3 scripts/harvester_cli.py generate --input design-system.json --all
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### v4 Output Structure
|
|
521
|
-
|
|
522
|
-
```
|
|
523
|
-
output/
|
|
524
|
-
├── harvest-raw.json # Raw extraction data
|
|
525
|
-
├── design-system.json # Indexed design system
|
|
526
|
-
├── design-system.css # CSS variables (Semi spec)
|
|
527
|
-
├── figma-tokens.json # Figma Tokens Studio
|
|
528
|
-
├── component-blueprints.json # Component specs
|
|
529
|
-
├── screenshot-desktop.png # Visual reference
|
|
530
|
-
├── screenshot-mobile.png # Mobile viewport
|
|
531
|
-
└── components/ # Generated components
|
|
532
|
-
├── button/
|
|
533
|
-
│ ├── component.tsx
|
|
534
|
-
│ └── index.ts
|
|
535
|
-
├── card/
|
|
536
|
-
├── input/
|
|
537
|
-
└── ...
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
### Requirements
|
|
541
|
-
|
|
542
|
-
```bash
|
|
543
|
-
# Install Playwright for browser automation
|
|
544
|
-
pip install playwright
|
|
545
|
-
playwright install chromium
|
|
546
|
-
|
|
547
|
-
# Or all browsers
|
|
548
|
-
playwright install
|
|
135
|
+
1. CONTINUITY.md = Working memory (current session state)
|
|
136
|
+
2. learnings.json = Extracted error patterns (persists across sessions)
|
|
137
|
+
3. decisions.json = Architecture decisions (persists across projects)
|
|
138
|
+
4. tasks.md/cm-tasks.json = Task queue + RARV logs (Mode D integration)
|
|
549
139
|
```
|
|
550
140
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
---
|
|
554
|
-
|
|
555
|
-
## Available Domains (16)
|
|
556
|
-
|
|
557
|
-
| Domain | Entries | Description |
|
|
558
|
-
|--------|---------|-------------|
|
|
559
|
-
| `product` | 96 | Product type recommendations (SaaS, e-commerce, healthcare...) |
|
|
560
|
-
| `style` | 67 | UI styles + AI prompts + CSS keywords |
|
|
561
|
-
| `color` | 96 | Color palettes by product type |
|
|
562
|
-
| `typography` | 57 | Font pairings with Google Fonts |
|
|
563
|
-
| `landing` | 30 | Page structure and CTA strategies |
|
|
564
|
-
| `chart` | 25 | Chart types and library recommendations |
|
|
565
|
-
| `ux` | 99 | Best practices and anti-patterns |
|
|
566
|
-
| `icons` | 100 | Icon library recommendations |
|
|
567
|
-
| `react` | 44 | React/Next.js performance |
|
|
568
|
-
| `web` | 30 | Web interface guidelines |
|
|
569
|
-
| `ux-laws` | **48** | **UX Laws × Product Types matrix** |
|
|
570
|
-
| `design-tests` | **37** | **Design Test Cases (TDD for Design)** |
|
|
571
|
-
| `animation` | **30** | **Micro-interactions, transitions, performance** |
|
|
572
|
-
| `responsive` | **25** | **Breakpoints, container queries, fluid design** |
|
|
573
|
-
| `accessibility` | **25** | **WCAG 2.2 advanced patterns** |
|
|
574
|
-
| `devices` | **20** | **Device breakpoints — mobile, tablet, watch, TV, foldable, VR** |
|
|
575
|
-
| stacks (17) | varies | Stack-specific guidelines |
|
|
576
|
-
|
|
577
|
-
### Stack-Specific Guidelines (17)
|
|
578
|
-
|
|
579
|
-
| Stack | Description |
|
|
580
|
-
|-------|-------------|
|
|
581
|
-
| `html-tailwind` | Tailwind CSS utility patterns |
|
|
582
|
-
| `react` | React hooks, performance |
|
|
583
|
-
| `nextjs` | App Router, SSR, RSC |
|
|
584
|
-
| `astro` | Islands architecture |
|
|
585
|
-
| `vue` | Composition API, Pinia |
|
|
586
|
-
| `nuxtjs` / `nuxt-ui` | Nuxt 3, Nuxt UI components |
|
|
587
|
-
| `svelte` | Stores, transitions |
|
|
588
|
-
| `swiftui` | iOS/macOS native |
|
|
589
|
-
| `react-native` | Cross-platform mobile |
|
|
590
|
-
| `flutter` | Dart widgets, Material |
|
|
591
|
-
| `shadcn` | shadcn/ui components |
|
|
592
|
-
| `jetpack-compose` | Android Jetpack |
|
|
593
|
-
| `angular` | **Signals, standalone, NgRx SignalStore, Material 3** |
|
|
594
|
-
| `htmx` | **Progressive enhancement, Alpine.js** |
|
|
595
|
-
| `electron` | **Desktop — IPC, security, native integration** |
|
|
596
|
-
| `tauri` | **Desktop — Rust commands, permissions, plugins** |
|
|
597
|
-
|
|
598
|
-
---
|
|
141
|
+
**CONTINUITY.md is the PRIMARY source of truth for "what am I doing right now?"**
|
|
599
142
|
|
|
600
|
-
##
|
|
143
|
+
## Integration
|
|
601
144
|
|
|
602
|
-
|
|
145
|
+
| Skill | How it integrates |
|
|
146
|
+
|-------|-------------------|
|
|
147
|
+
| `cm-execution` | RARV Mode D reads CONTINUITY.md in REASON phase |
|
|
148
|
+
| `cm-planning` | Sets Active Goal and Next Actions |
|
|
149
|
+
| `cm-debugging` | Records errors in Mistakes & Learnings |
|
|
150
|
+
| `cm-quality-gate` | VERIFY phase updates CONTINUITY.md |
|
|
151
|
+
| `cm-code-review` | Records review feedback as learnings |
|
|
603
152
|
|
|
604
|
-
|
|
605
|
-
```bash
|
|
606
|
-
python3 scripts/search.py "fintech crypto dashboard" --design-system -p "CryptoApp"
|
|
607
|
-
```
|
|
153
|
+
## Rules
|
|
608
154
|
|
|
609
|
-
### Step 2: Get UX Laws for Fintech
|
|
610
|
-
```bash
|
|
611
|
-
python3 scripts/search.py "fintech banking" --domain ux-laws -n 5
|
|
612
155
|
```
|
|
156
|
+
✅ DO:
|
|
157
|
+
- Read CONTINUITY.md at session start (ALWAYS)
|
|
158
|
+
- Update CONTINUITY.md at session end (ALWAYS)
|
|
159
|
+
- Record EVERY error in Mistakes & Learnings
|
|
160
|
+
- Keep "Just Completed" to last 5 items
|
|
161
|
+
- Be specific: "Fixed auth bug in login.ts:42" not "Fixed stuff"
|
|
613
162
|
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
163
|
+
❌ DON'T:
|
|
164
|
+
- Skip reading CONTINUITY.md ("I remember what I was doing")
|
|
165
|
+
- Write vague learnings: "It didn't work" → WHY didn't it work?
|
|
166
|
+
- Ignore past learnings when they're relevant
|
|
167
|
+
- Let CONTINUITY.md grow beyond ~500 words (rotate old entries)
|
|
168
|
+
- Delete Mistakes & Learnings (archive to learnings.json instead)
|
|
617
169
|
```
|
|
618
170
|
|
|
619
|
-
|
|
620
|
-
```bash
|
|
621
|
-
python3 scripts/search.py "real-time data chart" --stack react
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
### Step 5: Implement → Validate against Design Tests
|
|
625
|
-
|
|
626
|
-
---
|
|
627
|
-
|
|
628
|
-
## Execution Workflow (MANDATORY Output Format)
|
|
629
|
-
|
|
630
|
-
When the user requests a UI component (e.g., "Build a mobile settings screen", "Create a SaaS data table"), you **MUST** output your response in this exact format:
|
|
631
|
-
|
|
632
|
-
### Step 1: 🧠 UX Reasoning
|
|
633
|
-
|
|
634
|
-
Briefly explain (2-3 bullet points) which specific UX Laws and psychological principles you applied to solve this specific product design problem.
|
|
635
|
-
|
|
636
|
-
**Example:**
|
|
637
|
-
- **Fitts's Law →** Primary "Save" action placed in sticky bottom bar within thumb zone. Touch target 48px height.
|
|
638
|
-
- **Hick's Law →** Advanced settings hidden behind "More Options" accordion. Only 2 visible CTAs.
|
|
639
|
-
- **Doherty Threshold →** Skeleton loader included for the data table while API fetches.
|
|
640
|
-
|
|
641
|
-
### Step 2: 💻 Production-Ready Code
|
|
642
|
-
|
|
643
|
-
Provide clean, modular code (Tailwind + framework of choice).
|
|
644
|
-
|
|
645
|
-
**CRUCIAL:** Add inline comments inside the code to demonstrate exactly **where and why** a UX Law was implemented:
|
|
646
|
-
|
|
647
|
-
```html
|
|
648
|
-
<!-- UX: Fitts's Law — Touch target ≥ 44px, in thumb zone -->
|
|
649
|
-
<button class="min-h-[44px] min-w-[44px] ...">
|
|
650
|
-
|
|
651
|
-
<!-- UX: Doherty Threshold — Skeleton loader while data fetches -->
|
|
652
|
-
<div class="animate-pulse bg-gray-200 rounded h-4 w-3/4"></div>
|
|
653
|
-
|
|
654
|
-
<!-- UX: Poka-Yoke — Destructive action separated + visually distinct -->
|
|
655
|
-
<button class="text-red-600 border border-red-300 ...">
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
### Step 3: ✅ Validation Checklist
|
|
659
|
-
|
|
660
|
-
Briefly confirm the UI passes the Core Directives:
|
|
661
|
-
|
|
662
|
-
```
|
|
663
|
-
✅ Fitts's Law: Touch targets ≥ 44px, primary action in thumb zone
|
|
664
|
-
✅ Hick's Law: 1 primary CTA, advanced options in accordion
|
|
665
|
-
✅ Miller's Law: Data chunked in groups of 6
|
|
666
|
-
✅ Doherty: Skeleton + Empty + Error states included
|
|
667
|
-
✅ A11y: focus-visible rings, WCAG AA contrast, semantic HTML
|
|
668
|
-
```
|
|
669
|
-
|
|
670
|
-
---
|
|
671
|
-
|
|
672
|
-
## Common Rules for Professional UI
|
|
673
|
-
|
|
674
|
-
### Icons & Visual Elements
|
|
675
|
-
|
|
676
|
-
| Rule | Do | Don't |
|
|
677
|
-
|------|----|-------|
|
|
678
|
-
| **No emoji icons** | Use SVG icons (Heroicons, Lucide, Simple Icons) | Use emojis like 🎨 🚀 as UI icons |
|
|
679
|
-
| **Stable hover states** | Use color/opacity transitions on hover | Use scale transforms that shift layout |
|
|
680
|
-
| **Correct brand logos** | Research official SVG from Simple Icons | Guess or use incorrect logo paths |
|
|
681
|
-
| **Consistent icon sizing** | Use fixed viewBox (24x24) with w-6 h-6 | Mix different icon sizes randomly |
|
|
682
|
-
|
|
683
|
-
### Interaction & Cursor
|
|
684
|
-
|
|
685
|
-
| Rule | Do | Don't |
|
|
686
|
-
|------|----|-------|
|
|
687
|
-
| **Cursor pointer** | Add `cursor-pointer` to all clickable elements | Leave default cursor on interactive elements |
|
|
688
|
-
| **Hover feedback** | Provide visual feedback (color, shadow, border) | No indication element is interactive |
|
|
689
|
-
| **Smooth transitions** | Use `transition-colors duration-200` | Instant state changes or too slow (>500ms) |
|
|
690
|
-
|
|
691
|
-
### Light/Dark Mode Contrast
|
|
692
|
-
|
|
693
|
-
| Rule | Do | Don't |
|
|
694
|
-
|------|----|-------|
|
|
695
|
-
| **Glass card light mode** | Use `bg-white/80` or higher opacity | Use `bg-white/10` (too transparent) |
|
|
696
|
-
| **Text contrast light** | Use `#0F172A` (slate-900) for text | Use `#94A3B8` (slate-400) for body text |
|
|
697
|
-
| **Border visibility** | Use `border-gray-200` in light mode | Use `border-white/10` (invisible) |
|
|
698
|
-
|
|
699
|
-
### Layout & Spacing
|
|
700
|
-
|
|
701
|
-
| Rule | Do | Don't |
|
|
702
|
-
|------|----|-------|
|
|
703
|
-
| **Floating navbar** | Add `top-4 left-4 right-4` spacing | Stick navbar to `top-0 left-0 right-0` |
|
|
704
|
-
| **Content padding** | Account for fixed navbar height | Let content hide behind fixed elements |
|
|
705
|
-
| **Consistent max-width** | Use same `max-w-6xl` or `max-w-7xl` | Mix different container widths |
|
|
706
|
-
|
|
707
|
-
---
|
|
708
|
-
|
|
709
|
-
## UX Heuristics Framework (Krug + Nielsen)
|
|
710
|
-
|
|
711
|
-
> Practical usability principles for evaluating and improving user interfaces. Based on a fundamental truth: users don't read, they scan. They don't make optimal choices, they satisfice. They don't figure out how things work, they muddle through.
|
|
712
|
-
|
|
713
|
-
**Core Principle: "Don't Make Me Think"** — Every page should be self-evident. If something requires thinking, it's a usability problem.
|
|
714
|
-
|
|
715
|
-
**Scoring — Goal: 10/10.** When reviewing or creating user interfaces, rate them 0-10 based on adherence to the principles below.
|
|
716
|
-
|
|
717
|
-
### Krug's Three Laws of Usability
|
|
718
|
-
|
|
719
|
-
**1. Don't Make Me Think** — Every question mark in a user's head adds cognitive load. Clever names lose to clear names. "Sign in" not "Access your account portal". If a label needs explanation, simplify the label.
|
|
720
|
-
|
|
721
|
-
**2. It Doesn't Matter How Many Clicks** — Users don't mind clicks if each is painless, obvious, and confidence-building. Three mindless clicks beat one confusing click. Users abandon when confused, not when they've clicked too many times.
|
|
722
|
-
|
|
723
|
-
**3. Get Rid of Half the Words** — Then get rid of half of what's left. Users scan, not read. Every unnecessary word competes with what matters. "Enter your password to continue." not "Please kindly note that you will need to enter your password in order to proceed."
|
|
724
|
-
|
|
725
|
-
**4. The Trunk Test** — Drop users on any random page. Can they instantly tell: what site? what page? major sections? options at this level? position in hierarchy? where is search?
|
|
726
|
-
|
|
727
|
-
### Nielsen's 10 Usability Heuristics
|
|
728
|
-
|
|
729
|
-
| # | Heuristic | Key Rule |
|
|
730
|
-
|---|-----------|----------|
|
|
731
|
-
| 1 | **Visibility of System Status** | Every action needs acknowledgment — progress bars, confirmations, skeleton screens |
|
|
732
|
-
| 2 | **Match Real World** | "Sign in" not "Authenticate", "Search" not "Query" |
|
|
733
|
-
| 3 | **User Control & Freedom** | Undo beats "Are you sure?" dialogs. Every flow needs cancel/exit |
|
|
734
|
-
| 4 | **Consistency & Standards** | Same words, styles, behaviors mean the same thing throughout |
|
|
735
|
-
| 5 | **Error Prevention** | Constrained inputs, autocomplete, sensible defaults, "unsaved changes" warnings |
|
|
736
|
-
| 6 | **Recognition Over Recall** | Show options, don't require memorization. Breadcrumbs, recent searches, pre-filled fields |
|
|
737
|
-
| 7 | **Flexibility & Efficiency** | Serve novices and experts. Keyboard shortcuts, bulk actions, Cmd+K |
|
|
738
|
-
| 8 | **Aesthetic & Minimalist** | Every element must earn its place. One primary CTA per page |
|
|
739
|
-
| 9 | **Help with Errors** | What happened, why, how to fix. "Password must be 8+ chars" not "Invalid" |
|
|
740
|
-
| 10 | **Help & Documentation** | Searchable, task-focused, contextual tooltips and inline hints |
|
|
741
|
-
|
|
742
|
-
### Severity Rating Scale
|
|
743
|
-
|
|
744
|
-
| Severity | Rating | Description | Priority |
|
|
745
|
-
|----------|--------|-------------|----------|
|
|
746
|
-
| 0 | Not a problem | Disagreement, not usability issue | Ignore |
|
|
747
|
-
| 1 | Cosmetic | Minor annoyance, low impact | Fix if time |
|
|
748
|
-
| 2 | Minor | Causes delay or frustration | Schedule fix |
|
|
749
|
-
| 3 | Major | Significant task failure | Fix soon |
|
|
750
|
-
| 4 | Catastrophic | Prevents task completion | Fix immediately |
|
|
751
|
-
|
|
752
|
-
### Quick Diagnostic
|
|
753
|
-
|
|
754
|
-
| Question | If No | Action |
|
|
755
|
-
|----------|-------|--------|
|
|
756
|
-
| Can I tell what site/page this is immediately? | Users are lost | Add clear logo, page title, breadcrumbs |
|
|
757
|
-
| Is the main action obvious? | Users don't know what to do | Single primary CTA, visual hierarchy |
|
|
758
|
-
| Is the navigation clear? | Users can't find their way | Trunk Test, "you are here" indicators |
|
|
759
|
-
| Does the system show what's happening? | Users lose trust | Loading states, confirmations, progress |
|
|
760
|
-
| Are error messages helpful? | Users get stuck | Plain language with specific fix |
|
|
761
|
-
| Can users undo or go back? | Users afraid to act | Add undo, cancel, back everywhere |
|
|
762
|
-
| Does it work without hover? | Mobile/keyboard excluded | Replace hover-only with visible alternatives |
|
|
763
|
-
| Does anything make me stop and think? | Cognitive load too high | Simplify — redesign if needs explanation |
|
|
764
|
-
|
|
765
|
-
### Heuristic Conflicts Resolution
|
|
766
|
-
|
|
767
|
-
- **Simplicity vs. Flexibility**: Use progressive disclosure
|
|
768
|
-
- **Consistency vs. Context**: Consistent patterns, contextual prominence
|
|
769
|
-
- **Efficiency vs. Error Prevention**: Prefer undo over confirmation dialogs
|
|
770
|
-
- **Discoverability vs. Minimalism**: Primary actions visible, secondary hidden
|
|
771
|
-
|
|
772
|
-
### Dark Patterns to Avoid
|
|
773
|
-
|
|
774
|
-
Never deliberately violate heuristics to manipulate users: forced continuity, roach motel, confirmshaming, hidden costs.
|
|
775
|
-
|
|
776
|
-
### Reference Files
|
|
777
|
-
|
|
778
|
-
- `references/krug-principles.md` — Full Krug methodology
|
|
779
|
-
- `references/nielsen-heuristics.md` — Detailed heuristic examples
|
|
780
|
-
- `references/audit-template.md` — Structured evaluation template
|
|
781
|
-
- `references/dark-patterns.md` — Categories and ethical alternatives
|
|
782
|
-
- `references/wcag-checklist.md` — WCAG 2.1 AA checklist
|
|
783
|
-
- `references/cultural-ux.md` — RTL, color meanings, localization
|
|
784
|
-
- `references/heuristic-conflicts.md` — Conflict resolution frameworks
|
|
785
|
-
|
|
786
|
-
---
|
|
171
|
+
## The Bottom Line
|
|
787
172
|
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
### Core Directive Compliance (MANDATORY — check every item)
|
|
791
|
-
- [ ] **Fitts's Law:** ALL touch targets ≥ 44×44px (`min-h-[44px] min-w-[44px]`), primary actions in thumb zone
|
|
792
|
-
- [ ] **Hick's Law:** Max 1-2 primary CTAs per view, advanced options use progressive disclosure
|
|
793
|
-
- [ ] **Miller's Law:** Info chunked in groups of 5-9, data tables have clear visual separators
|
|
794
|
-
- [ ] **Doherty Threshold:** Skeleton loader for data-fetching components, Empty State designed, all interactive states coded (`hover:`, `active:`, `disabled:`, `focus-visible:`)
|
|
795
|
-
- [ ] **A11y/Poka-Yoke:** WCAG 2.1 AA contrast (4.5:1), `focus-visible:ring-2 focus-visible:ring-offset-2` on all interactive elements, destructive actions visually distinct + separated, semantic HTML + ARIA
|
|
796
|
-
- [ ] **i18n/Multi-Locale:** Containers use `min-width` not `width` (text expands 30-40% in Thai), dates/numbers use `toLocaleDateString(userLocale)`, font supports ALL target scripts, no hardcoded currency symbols
|
|
797
|
-
- [ ] **Inline UX Comments:** Code contains `<!-- UX: Law Name -->` comments explaining constraint application
|
|
798
|
-
|
|
799
|
-
### Visual Quality
|
|
800
|
-
- [ ] No emojis used as icons (use SVG instead)
|
|
801
|
-
- [ ] All icons from consistent icon set (Heroicons/Lucide)
|
|
802
|
-
- [ ] Brand logos are correct (verified from Simple Icons)
|
|
803
|
-
- [ ] Hover states don't cause layout shift
|
|
804
|
-
|
|
805
|
-
### Interaction
|
|
806
|
-
- [ ] All clickable elements have `cursor-pointer`
|
|
807
|
-
- [ ] Hover states provide clear visual feedback
|
|
808
|
-
- [ ] Transitions are smooth (150-300ms)
|
|
809
|
-
- [ ] Focus states visible for keyboard navigation
|
|
810
|
-
|
|
811
|
-
### Light/Dark Mode
|
|
812
|
-
- [ ] Light mode text has sufficient contrast (4.5:1 minimum)
|
|
813
|
-
- [ ] Glass/transparent elements visible in light mode
|
|
814
|
-
- [ ] Borders visible in both modes
|
|
815
|
-
|
|
816
|
-
### Layout
|
|
817
|
-
- [ ] Responsive at 375px, 768px, 1024px, 1440px
|
|
818
|
-
- [ ] No horizontal scroll on mobile
|
|
819
|
-
- [ ] No content hidden behind fixed navbars
|
|
820
|
-
|
|
821
|
-
### Accessibility
|
|
822
|
-
- [ ] All images have alt text
|
|
823
|
-
- [ ] Form inputs have labels
|
|
824
|
-
- [ ] Color is not the only indicator
|
|
825
|
-
- [ ] `prefers-reduced-motion` respected
|
|
173
|
+
**Your memory is your superpower. Without it, you repeat every mistake forever.**
|