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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codymaster",
3
- "version": "4.4.1",
3
+ "version": "4.4.3",
4
4
  "description": "65 Skills. Ship 10x faster. AI-powered coding skill kit for Claude, Cursor, Gemini & more.",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -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: `brainstorm-output.md`
341
+ #### Handoff Output: OpenSpec Proposal
342
342
 
343
- Save to `docs/brainstorm/` or project root:
343
+ Save to `openspec/changes/[initiative-name]/proposal.md` (Fission-AI OpenSpec format):
344
344
 
345
345
  ```markdown
346
- # Brainstorm Output: [Initiative Name]
346
+ # Proposal: [Initiative Name]
347
347
  Generated by: cm-brainstorm-idea
348
348
  Date: [date]
349
349
 
350
- ## Qualified Problem
350
+ ## Why we're doing this
351
+ ### Qualified Problem
351
352
  [From Phase 2]
352
353
 
353
- ## 9 Windows Analysis
354
+ ### 9 Windows Analysis
354
355
  [Summary table from Phase 2]
355
356
 
356
- ## Options Evaluated
357
+ ## What's changing
358
+ ### Options Evaluated
357
359
  [Summary from Phase 3-4]
358
360
 
359
- ## Recommendation
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 brainstorm-output.md when relevant
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 implementation_plan.md
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 `task.md` (or `cm-tasks.json`) file in the current project directory (or artifacts directory).
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:** `brainstorm-output.md` — qualified problem + recommended option → passes to `cm-planning`.
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 `implementation_plan.md`.
64
- - **Output:** Design documentation and execution plan approved by user.
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 create `cm-tasks.json`, break down tasks, launch the tracking interface, and autonomously use CM skills to complete them.
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
- ### Plan Structure
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
- What and why.
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) 🧪
@@ -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 task breakdown)
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` with sprints
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 or update `cm-tasks.json` by breaking the objective into specific tasks
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-ux-master
3
- description: "Ultimate UI/UX design intelligence with Harvester v4 (AI-powered visual extraction), 48 UX Laws, 37 Design Tests, UX Heuristics (Nielsen + Krug), Figma & Google Stitch integration, MCP server for Claude/Cursor, Component Generator, and BM25 search across 16 domains. One command = Complete design system. 10x productivity boost."
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
- # 🚀 CM UX Master v4 Ultimate Design Intelligence Platform
6
+ # ContinuityWorking Memory Protocol
7
7
 
8
- **AI-powered design system platform combining:**
9
- - 🎯 **Harvester v4** One-command design system extraction from any website
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
- **One command = Complete design system. 10x productivity. Zero manual work.**
11
+ ## When to Use
19
12
 
20
- ## System Persona
13
+ **ALWAYS** This is a background protocol, not an explicit invocation.
21
14
 
22
- You are **"The MasterDesign Agent"** an Elite Principal Product Designer and Frontend Architect.
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
- Your core expertise is designing and developing complex, highly functional user interfaces for **Web Applications, Native-feel Mobile Apps, and Enterprise SaaS Dashboards**.
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
- python3 --version || python --version
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
- Extract key information from user request:
153
- - **Product type**: SaaS, e-commerce, portfolio, dashboard, landing page, etc.
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
- ### Step 2: Generate Design System (REQUIRED)
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
- ### Step 3: Query UX Laws (NEW)
33
+ ## The Protocol
189
34
 
190
- Search UX Laws applicable to specific product types:
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
- **48 UX Laws** mapped across 12 product types: Landing Page, Website/Web App, Mobile App, Game UI, Dashboard, SaaS, E-commerce, Healthcare, Fintech, Education, Responsive, Luxury.
199
-
200
- ### Step 4: Query Design Tests (NEW)
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
- **37 Design Tests** with measurable pass/fail criteria, test methods, and severity levels.
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
- | Need | Domain | Example |
219
- |------|--------|---------|
220
- | More style options | `style` | `"glassmorphism dark"` |
221
- | Chart recommendations | `chart` | `"real-time dashboard"` |
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
- Available: `html-tailwind`, `react`, `nextjs`, `astro`, `vue`, `nuxtjs`, `nuxt-ui`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`, `angular`, `htmx`, `electron`, `tauri`
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
- Outputs: `EXTRACTED.md`, `BRAND-SKILL.md`, `tailwind.config.js`, `design-tokens.css`
252
-
253
- ### Step 8: Multi-Project Registry + Multi-Page Harvest (v2) 🔒 PRO
254
-
255
- Manage multiple design system projects and scan multiple pages:
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
- ### Step 9: Design System Documentation Site (v2) 🔒 PRO
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
- Output includes: color palette swatches, typography specimens, geometry preview, component samples, token reference table, usage instructions, dark mode toggle.
290
-
291
- ### Step 10: Harvester v3 Comprehensive Design System Extraction 🔒 PRO
292
-
293
- Upgrade from basic extraction (~20 tokens) to comprehensive design system capture (50-80+ tokens):
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
- **v3 extracts:**
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
- ## Free vs Pro
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
- ## 🚀 NEW: Harvester v4 — AI-Powered Visual Extraction
96
+ ## Just Completed
97
+ - [Most recent accomplishment with file:line references]
98
+ - [Previous accomplishment]
99
+ - [etc — last 5 items]
356
100
 
357
- **Harvester v4** is a comprehensive upgrade with automatic design system extraction via browser automation and Semi Design architecture reconstruction.
101
+ ## Next Actions (Priority Order)
102
+ 1. [Immediate next step]
103
+ 2. [Following step]
104
+ 3. [etc]
358
105
 
359
- ### New Features in v4
106
+ ## Active Blockers
107
+ - [Any current blockers or waiting items]
360
108
 
361
- | Feature | v3 | v4 |
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
- ### Quick Start v4
112
+ ## Mistakes & Learnings
373
113
 
374
- ```bash
375
- # 1. Quick workflow - Extract + Index + Generate
376
- cd /path/to/your/ux-master-project
377
- python3 scripts/harvester_cli.py quick https://example.com --framework semi
378
-
379
- # 2. Multi-page harvest with component generation
380
- python3 scripts/harvester_cli.py extract \
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
- ### Harvester v4 Architecture
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
- #### A. Browser Automation
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
- # With mobile viewport
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
- **Semi Design Architecture:**
463
- - Color System: Primary, Secondary, Tertiary, Neutrals (50-900)
464
- - Background: bg-0 bg-4
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
- > **Upgrade to Pro:** [ux-master.dev/pro](https://ux-master.dev/pro) One-time payment, lifetime access, all future updates.
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
- ## Example Workflow
143
+ ## Integration
601
144
 
602
- **User request:** "Build a fintech crypto dashboard"
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
- ### Step 1: Generate Design System
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
- ### Step 3: Get Design Tests
615
- ```bash
616
- python3 scripts/search.py "dashboard data" --domain design-tests -n 5
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
- ### Step 4: Stack Guidelines
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
- ## Pre-Delivery Checklist
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.**