@fro.bot/systematic 2.0.2 → 2.0.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.
Files changed (56) hide show
  1. package/agents/design/figma-design-sync.md +1 -1
  2. package/agents/document-review/coherence-reviewer.md +40 -0
  3. package/agents/document-review/design-lens-reviewer.md +46 -0
  4. package/agents/document-review/feasibility-reviewer.md +42 -0
  5. package/agents/document-review/product-lens-reviewer.md +50 -0
  6. package/agents/document-review/scope-guardian-reviewer.md +54 -0
  7. package/agents/document-review/security-lens-reviewer.md +38 -0
  8. package/agents/research/best-practices-researcher.md +2 -1
  9. package/agents/research/git-history-analyzer.md +1 -1
  10. package/agents/research/repo-research-analyst.md +164 -9
  11. package/agents/review/api-contract-reviewer.md +49 -0
  12. package/agents/review/correctness-reviewer.md +49 -0
  13. package/agents/review/data-migrations-reviewer.md +53 -0
  14. package/agents/review/maintainability-reviewer.md +49 -0
  15. package/agents/review/pattern-recognition-specialist.md +2 -1
  16. package/agents/review/performance-reviewer.md +51 -0
  17. package/agents/review/reliability-reviewer.md +49 -0
  18. package/agents/review/schema-drift-detector.md +12 -10
  19. package/agents/review/security-reviewer.md +51 -0
  20. package/agents/review/testing-reviewer.md +48 -0
  21. package/agents/workflow/pr-comment-resolver.md +1 -1
  22. package/agents/workflow/spec-flow-analyzer.md +60 -89
  23. package/package.json +1 -1
  24. package/skills/agent-browser/SKILL.md +69 -48
  25. package/skills/ce-brainstorm/SKILL.md +2 -1
  26. package/skills/ce-compound/SKILL.md +26 -1
  27. package/skills/ce-compound-refresh/SKILL.md +11 -1
  28. package/skills/ce-ideate/SKILL.md +2 -1
  29. package/skills/ce-plan/SKILL.md +424 -414
  30. package/skills/ce-review/SKILL.md +12 -13
  31. package/skills/ce-review-beta/SKILL.md +506 -0
  32. package/skills/ce-review-beta/references/diff-scope.md +31 -0
  33. package/skills/ce-review-beta/references/findings-schema.json +128 -0
  34. package/skills/ce-review-beta/references/persona-catalog.md +50 -0
  35. package/skills/ce-review-beta/references/review-output-template.md +115 -0
  36. package/skills/ce-review-beta/references/subagent-template.md +56 -0
  37. package/skills/ce-work/SKILL.md +14 -6
  38. package/skills/ce-work-beta/SKILL.md +14 -8
  39. package/skills/claude-permissions-optimizer/SKILL.md +15 -14
  40. package/skills/deepen-plan/SKILL.md +348 -483
  41. package/skills/document-review/SKILL.md +160 -52
  42. package/skills/feature-video/SKILL.md +209 -178
  43. package/skills/file-todos/SKILL.md +72 -94
  44. package/skills/frontend-design/SKILL.md +243 -27
  45. package/skills/git-worktree/SKILL.md +37 -28
  46. package/skills/lfg/SKILL.md +7 -7
  47. package/skills/reproduce-bug/SKILL.md +154 -60
  48. package/skills/resolve-pr-parallel/SKILL.md +19 -12
  49. package/skills/resolve-todo-parallel/SKILL.md +9 -6
  50. package/skills/setup/SKILL.md +33 -56
  51. package/skills/slfg/SKILL.md +5 -5
  52. package/skills/test-browser/SKILL.md +69 -145
  53. package/skills/test-xcode/SKILL.md +61 -183
  54. package/skills/triage/SKILL.md +10 -10
  55. package/skills/ce-plan-beta/SKILL.md +0 -571
  56. package/skills/deepen-plan-beta/SKILL.md +0 -323
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: file-todos
3
- description: This skill should be used when managing the file-based todo tracking system in the todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with slash commands and code review processes.
3
+ description: This skill should be used when managing the file-based todo tracking system in the .context/systematic/todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with code review processes.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
@@ -8,26 +8,35 @@ disable-model-invocation: true
8
8
 
9
9
  ## Overview
10
10
 
11
- The `todos/` directory contains a file-based tracking system for managing code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter and structured sections.
11
+ The `.context/systematic/todos/` directory contains a file-based tracking system for managing code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter and structured sections.
12
+
13
+ > **Legacy support:** During the transition period, always check both `.context/systematic/todos/` (canonical) and `todos/` (legacy) when reading or searching for todos. Write new todos only to the canonical path. Unlike per-run scratch directories, `.context/systematic/todos/` has a multi-session lifecycle -- do not clean it up as part of post-run scratch cleanup.
12
14
 
13
15
  This skill should be used when:
14
16
  - Creating new todos from findings or feedback
15
- - Managing todo lifecycle (pending ready complete)
17
+ - Managing todo lifecycle (pending -> ready -> complete)
16
18
  - Triaging pending items for approval
17
19
  - Checking or managing dependencies
18
20
  - Converting PR comments or code findings into tracked work
19
21
  - Updating work logs during todo execution
20
22
 
21
- ## File Naming Convention
23
+ ## Directory Paths
24
+
25
+ | Purpose | Path |
26
+ |---------|------|
27
+ | **Canonical (write here)** | `.context/systematic/todos/` |
28
+ | **Legacy (read-only)** | `todos/` |
22
29
 
23
- Todo files follow this naming pattern:
30
+ When searching or listing todos, always search both paths. When creating new todos, always write to the canonical path.
31
+
32
+ ## File Naming Convention
24
33
 
25
34
  ```
26
35
  {issue_id}-{status}-{priority}-{description}.md
27
36
  ```
28
37
 
29
38
  **Components:**
30
- - **issue_id**: Sequential number (001, 002, 003...) - never reused
39
+ - **issue_id**: Sequential number (001, 002, 003...) -- never reused
31
40
  - **status**: `pending` (needs triage), `ready` (approved), `complete` (done)
32
41
  - **priority**: `p1` (critical), `p2` (important), `p3` (nice-to-have)
33
42
  - **description**: kebab-case, brief description
@@ -44,17 +53,17 @@ Todo files follow this naming pattern:
44
53
  Each todo is a markdown file with YAML frontmatter and structured sections. Use the template at [todo-template.md](./assets/todo-template.md) as a starting point when creating new todos.
45
54
 
46
55
  **Required sections:**
47
- - **Problem Statement** - What is broken, missing, or needs improvement?
48
- - **Findings** - Investigation results, root cause, key discoveries
49
- - **Proposed Solutions** - Multiple options with pros/cons, effort, risk
50
- - **Recommended Action** - Clear plan (filled during triage)
51
- - **Acceptance Criteria** - Testable checklist items
52
- - **Work Log** - Chronological record with date, actions, learnings
56
+ - **Problem Statement** -- What is broken, missing, or needs improvement?
57
+ - **Findings** -- Investigation results, root cause, key discoveries
58
+ - **Proposed Solutions** -- Multiple options with pros/cons, effort, risk
59
+ - **Recommended Action** -- Clear plan (filled during triage)
60
+ - **Acceptance Criteria** -- Testable checklist items
61
+ - **Work Log** -- Chronological record with date, actions, learnings
53
62
 
54
63
  **Optional sections:**
55
- - **Technical Details** - Affected files, related components, DB changes
56
- - **Resources** - Links to errors, tests, PRs, documentation
57
- - **Notes** - Additional context or decisions
64
+ - **Technical Details** -- Affected files, related components, DB changes
65
+ - **Resources** -- Links to errors, tests, PRs, documentation
66
+ - **Notes** -- Additional context or decisions
58
67
 
59
68
  **YAML frontmatter fields:**
60
69
  ```yaml
@@ -69,20 +78,21 @@ dependencies: ["001"] # Issue IDs this is blocked by
69
78
 
70
79
  ## Common Workflows
71
80
 
72
- ### Creating a New Todo
81
+ > **Tool preference:** Use native file-search (e.g., Glob in OpenCode) and content-search (e.g., Grep in OpenCode) tools instead of shell commands for finding and reading todo files. This avoids unnecessary permission prompts in sub-agent workflows. Use shell only for operations that have no native equivalent (e.g., `mv` for renames, `mkdir -p` for directory creation).
73
82
 
74
- **To create a new todo from findings or feedback:**
83
+ ### Creating a New Todo
75
84
 
76
- 1. Determine next issue ID: `ls todos/ | grep -o '^[0-9]\+' | sort -n | tail -1`
77
- 2. Copy template: `cp assets/todo-template.md todos/{NEXT_ID}-pending-{priority}-{description}.md`
78
- 3. Edit and fill required sections:
85
+ 1. Ensure directory exists: `mkdir -p .context/systematic/todos/`
86
+ 2. Determine next issue ID by searching both canonical and legacy paths for files matching `[0-9]*-*.md` using the native file-search/glob tool. Extract the numeric prefix from each filename, find the highest, and increment by one. Zero-pad to 3 digits (e.g., `007`).
87
+ 3. Read the template at [todo-template.md](./assets/todo-template.md), then write it to `.context/systematic/todos/{NEXT_ID}-pending-{priority}-{description}.md` using the native file-write tool.
88
+ 4. Edit and fill required sections:
79
89
  - Problem Statement
80
90
  - Findings (if from investigation)
81
91
  - Proposed Solutions (multiple options)
82
92
  - Acceptance Criteria
83
93
  - Add initial Work Log entry
84
- 4. Determine status: `pending` (needs triage) or `ready` (pre-approved)
85
- 5. Add relevant tags for filtering
94
+ 5. Determine status: `pending` (needs triage) or `ready` (pre-approved)
95
+ 6. Add relevant tags for filtering
86
96
 
87
97
  **When to create a todo:**
88
98
  - Requires more than 15-20 minutes of work
@@ -101,21 +111,19 @@ dependencies: ["001"] # Issue IDs this is blocked by
101
111
 
102
112
  ### Triaging Pending Items
103
113
 
104
- **To triage pending todos:**
105
-
106
- 1. List pending items: `ls todos/*-pending-*.md`
114
+ 1. Find pending items using the native file-search/glob tool with pattern `*-pending-*.md` in both directory paths.
107
115
  2. For each todo:
108
116
  - Read Problem Statement and Findings
109
117
  - Review Proposed Solutions
110
118
  - Make decision: approve, defer, or modify priority
111
119
  3. Update approved todos:
112
120
  - Rename file: `mv {file}-pending-{pri}-{desc}.md {file}-ready-{pri}-{desc}.md`
113
- - Update frontmatter: `status: pending` `status: ready`
121
+ - Update frontmatter: `status: pending` -> `status: ready`
114
122
  - Fill "Recommended Action" section with clear plan
115
123
  - Adjust priority if different from initial assessment
116
124
  4. Deferred todos stay in `pending` status
117
125
 
118
- **Use slash command:** `/triage` for interactive approval workflow
126
+ Load the `triage` skill for an interactive approval workflow.
119
127
 
120
128
  ### Managing Dependencies
121
129
 
@@ -126,31 +134,20 @@ dependencies: ["002", "005"] # This todo blocked by issues 002 and 005
126
134
  dependencies: [] # No blockers - can work immediately
127
135
  ```
128
136
 
129
- **To check what blocks a todo:**
130
- ```bash
131
- grep "^dependencies:" todos/003-*.md
132
- ```
137
+ **To check what blocks a todo:** Use the native content-search tool (e.g., Grep in OpenCode) to search for `^dependencies:` in the todo file.
133
138
 
134
- **To find what a todo blocks:**
135
- ```bash
136
- grep -l 'dependencies:.*"002"' todos/*.md
137
- ```
139
+ **To find what a todo blocks:** Search both directory paths for files containing `dependencies:.*"002"` using the native content-search tool.
138
140
 
139
- **To verify blockers are complete before starting:**
140
- ```bash
141
- for dep in 001 002 003; do
142
- [ -f "todos/${dep}-complete-*.md" ] || echo "Issue $dep not complete"
143
- done
144
- ```
141
+ **To verify blockers are complete before starting:** For each dependency ID, use the native file-search/glob tool to look for `{dep_id}-complete-*.md` in both directory paths. Any missing matches indicate incomplete blockers.
145
142
 
146
143
  ### Updating Work Logs
147
144
 
148
- **When working on a todo, always add a work log entry:**
145
+ When working on a todo, always add a work log entry:
149
146
 
150
147
  ```markdown
151
148
  ### YYYY-MM-DD - Session Title
152
149
 
153
- **By:** OpenCode / Developer Name
150
+ **By:** Agent name / Developer Name
154
151
 
155
152
  **Actions:**
156
153
  - Specific changes made (include file:line references)
@@ -172,82 +169,63 @@ Work logs serve as:
172
169
 
173
170
  ### Completing a Todo
174
171
 
175
- **To mark a todo as complete:**
176
-
177
172
  1. Verify all acceptance criteria checked off
178
173
  2. Update Work Log with final session and results
179
174
  3. Rename file: `mv {file}-ready-{pri}-{desc}.md {file}-complete-{pri}-{desc}.md`
180
- 4. Update frontmatter: `status: ready` `status: complete`
181
- 5. Check for unblocked work: `grep -l 'dependencies:.*"002"' todos/*-ready-*.md`
175
+ 4. Update frontmatter: `status: ready` -> `status: complete`
176
+ 5. Check for unblocked work: search both directory paths for `*-ready-*.md` files containing `dependencies:.*"{issue_id}"` using the native content-search tool
182
177
  6. Commit with issue reference: `feat: resolve issue 002`
183
178
 
184
179
  ## Integration with Development Workflows
185
180
 
186
181
  | Trigger | Flow | Tool |
187
182
  |---------|------|------|
188
- | Code review | `/ce:review` Findings `/triage` Todos | Review agent + skill |
189
- | PR comments | `/resolve_pr_parallel` Individual fixes Todos | gh CLI + skill |
190
- | Code TODOs | `/resolve_todo_parallel` Fixes + Complex todos | Agent + skill |
191
- | Planning | Brainstorm Create todo Work Complete | Skill |
192
- | Feedback | Discussion Create todo Triage Work | Skill + slash |
183
+ | Code review | `/ce:review` -> Findings -> `/triage` -> Todos | Review agent + skill |
184
+ | Beta autonomous review | `/ce:review-beta mode:autonomous` -> Downstream-resolver residual todos -> `/resolve-todo-parallel` | Review skill + todos |
185
+ | PR comments | `/resolve_pr_parallel` -> Individual fixes -> Todos | gh CLI + skill |
186
+ | Code TODOs | `/resolve-todo-parallel` -> Fixes + Complex todos | Agent + skill |
187
+ | Planning | Brainstorm -> Create todo -> Work -> Complete | Skill |
188
+ | Feedback | Discussion -> Create todo -> Triage -> Work | Skill |
193
189
 
194
- ## Quick Reference Commands
190
+ ## Quick Reference Patterns
195
191
 
196
- **Finding work:**
197
- ```bash
198
- # List highest priority unblocked work
199
- grep -l 'dependencies: \[\]' todos/*-ready-p1-*.md
192
+ Use the native file-search/glob tool (e.g., Glob in OpenCode) and content-search tool (e.g., Grep in OpenCode) for these operations. Search both canonical and legacy directory paths.
200
193
 
201
- # List all pending items needing triage
202
- ls todos/*-pending-*.md
203
-
204
- # Find next issue ID
205
- ls todos/ | grep -o '^[0-9]\+' | sort -n | tail -1 | awk '{printf "%03d", $1+1}'
194
+ **Finding work:**
206
195
 
207
- # Count by status
208
- for status in pending ready complete; do
209
- echo "$status: $(ls -1 todos/*-$status-*.md 2>/dev/null | wc -l)"
210
- done
211
- ```
196
+ | Goal | Tool | Pattern |
197
+ |------|------|---------|
198
+ | List highest priority unblocked work | Content-search | `dependencies: \[\]` in `*-ready-p1-*.md` |
199
+ | List all pending items needing triage | File-search | `*-pending-*.md` |
200
+ | Find next issue ID | File-search | `[0-9]*-*.md`, extract highest numeric prefix |
201
+ | Count by status | File-search | `*-pending-*.md`, `*-ready-*.md`, `*-complete-*.md` |
212
202
 
213
203
  **Dependency management:**
214
- ```bash
215
- # What blocks this todo?
216
- grep "^dependencies:" todos/003-*.md
217
204
 
218
- # What does this todo block?
219
- grep -l 'dependencies:.*"002"' todos/*.md
220
- ```
205
+ | Goal | Tool | Pattern |
206
+ |------|------|---------|
207
+ | What blocks this todo? | Content-search | `^dependencies:` in the specific todo file |
208
+ | What does this todo block? | Content-search | `dependencies:.*"{id}"` across all todo files |
221
209
 
222
210
  **Searching:**
223
- ```bash
224
- # Search by tag
225
- grep -l "tags:.*rails" todos/*.md
226
211
 
227
- # Search by priority
228
- ls todos/*-p1-*.md
229
-
230
- # Full-text search
231
- grep -r "payment" todos/
232
- ```
212
+ | Goal | Tool | Pattern |
213
+ |------|------|---------|
214
+ | Search by tag | Content-search | `tags:.*{tag}` across all todo files |
215
+ | Search by priority | File-search | `*-p1-*.md` (or p2, p3) |
216
+ | Full-text search | Content-search | `{keyword}` across both directory paths |
233
217
 
234
218
  ## Key Distinctions
235
219
 
236
220
  **File-todos system (this skill):**
237
- - Markdown files in `todos/` directory
238
- - Development/project tracking
221
+ - Markdown files in `.context/systematic/todos/` (legacy: `todos/`)
222
+ - Development/project tracking across sessions and agents
239
223
  - Standalone markdown files with YAML frontmatter
240
- - Used by humans and agents
241
-
242
- **Rails Todo model:**
243
- - Database model in `app/models/todo.rb`
244
- - User-facing feature in the application
245
- - Active Record CRUD operations
246
- - Different from this file-based system
224
+ - Persisted to disk, cross-agent accessible
247
225
 
248
- **todowrite tool:**
226
+ **In-session task tracking (e.g., todowrite/TaskUpdate in OpenCode, update_plan in Codex):**
249
227
  - In-memory task tracking during agent sessions
250
228
  - Temporary tracking for single conversation
251
- - Not persisted to disk
252
- - Different from both systems above
229
+ - Not persisted to disk after session ends
230
+ - Different purpose: use for tracking steps within a session, not for durable cross-session work items
253
231
 
@@ -1,43 +1,259 @@
1
1
  ---
2
2
  name: frontend-design
3
- description: This skill should be used when creating distinctive, production-grade frontend interfaces with high design quality. It applies when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
4
- license: Complete terms in LICENSE.txt
3
+ description: Build web interfaces with genuine design quality, not AI slop. Use for any frontend work - landing pages, web apps, dashboards, admin panels, components, interactive experiences. Activates for both greenfield builds and modifications to existing applications. Detects existing design systems and respects them. Covers composition, typography, color, motion, and copy. Verifies results via screenshots before declaring done.
5
4
  ---
6
5
 
7
- This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
6
+ # Frontend Design
8
7
 
9
- The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
8
+ Guide creation of distinctive, production-grade frontend interfaces that avoid generic AI aesthetics. This skill covers the full lifecycle: detect what exists, plan the design, build with intention, and verify visually.
10
9
 
11
- ## Design Thinking
10
+ ## Authority Hierarchy
12
11
 
13
- Before coding, understand the context and commit to a BOLD aesthetic direction:
14
- - **Purpose**: What problem does this interface solve? Who uses it?
15
- - **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
16
- - **Constraints**: Technical requirements (framework, performance, accessibility).
17
- - **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
12
+ Every rule in this skill is a default, not a mandate.
18
13
 
19
- **CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
14
+ 1. **Existing design system / codebase patterns** -- highest priority, always respected
15
+ 2. **User's explicit instructions** -- override skill defaults
16
+ 3. **Skill defaults** -- apply in greenfield work or when the user asks for design guidance
20
17
 
21
- Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
22
- - Production-grade and functional
23
- - Visually striking and memorable
24
- - Cohesive with a clear aesthetic point-of-view
25
- - Meticulously refined in every detail
18
+ When working in an existing codebase with established patterns, follow those patterns. When the user specifies a direction that contradicts a default, follow the user.
26
19
 
27
- ## Frontend Aesthetics Guidelines
20
+ ## Workflow
28
21
 
29
- Focus on:
30
- - **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
31
- - **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
32
- - **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
33
- - **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
34
- - **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
22
+ ```
23
+ Detect context -> Plan the design -> Build -> Verify visually
24
+ ```
35
25
 
36
- NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
26
+ ---
27
+
28
+ ## Layer 0: Context Detection
29
+
30
+ Before any design work, examine the codebase for existing design signals. This determines how much of the skill's opinionated guidance applies.
31
+
32
+ ### What to Look For
33
+
34
+ - **Design tokens / CSS variables**: `--color-*`, `--spacing-*`, `--font-*` custom properties, theme files
35
+ - **Component libraries**: shadcn/ui, Material UI, Chakra, Ant Design, Radix, or project-specific component directories
36
+ - **CSS frameworks**: `tailwind.config.*`, `styled-components` theme, Bootstrap imports, CSS modules with consistent naming
37
+ - **Typography**: Font imports in HTML/CSS, `@font-face` declarations, Google Fonts links
38
+ - **Color palette**: Defined color scales, brand color files, design token exports
39
+ - **Animation libraries**: Framer Motion, GSAP, anime.js, Motion One, Vue Transition imports
40
+ - **Spacing / layout patterns**: Consistent spacing scale usage, grid systems, layout components
41
+
42
+ Use the platform's native file-search and content-search tools (e.g., Glob/Grep in OpenCode) to scan for these signals. Do not use shell commands for routine file exploration.
43
+
44
+ ### Mode Classification
45
+
46
+ Based on detected signals, choose a mode:
47
+
48
+ - **Existing system** (4+ signals across multiple categories): Defer to it. The skill's aesthetic opinions (typography, color, motion) yield to the established system. Structural guidance (composition, copy, accessibility, verification) still applies.
49
+ - **Partial system** (1-3 signals): Follow what exists; apply skill defaults only for areas where no convention was detected. For example, if Tailwind is configured but no component library exists, follow the Tailwind tokens and apply skill guidance for component structure.
50
+ - **Greenfield** (no signals detected): Full skill guidance applies.
51
+ - **Ambiguous** (signals are contradictory or unclear): Ask the user before proceeding.
52
+
53
+ ### Asking the User
54
+
55
+ When context is ambiguous, use the platform's blocking question tool (`question` in OpenCode, `request_user_input` in Codex, `ask_user` in Gemini). If no question tool is available, assume "partial" mode and proceed conservatively.
56
+
57
+ Example question: "I found [detected signals]. Should I follow your existing design patterns or create something distinctive?"
58
+
59
+ ---
60
+
61
+ ## Layer 1: Pre-Build Planning
62
+
63
+ Before writing code, write three short statements. These create coherence and give the user a checkpoint to redirect before code is written.
64
+
65
+ 1. **Visual thesis** -- one sentence describing the mood, material, and energy
66
+ - Greenfield examples: "Clean editorial feel, lots of whitespace, serif headlines, muted earth tones" or "Dense data-forward dashboard, monospace accents, dark surface hierarchy"
67
+ - Existing codebase: Describe the *existing* aesthetic and how the new work will extend it
68
+
69
+ 2. **Content plan** -- what goes on the page and in what order
70
+ - Landing page: hero, support, detail, CTA
71
+ - App: primary workspace, nav, secondary context
72
+ - Component: what states it has, what it communicates
73
+
74
+ 3. **Interaction plan** -- 2-3 specific motion ideas that change the feel
75
+ - Not "add animations" but "staggered fade-in on hero load, parallax on scroll between sections, scale-up on card hover"
76
+ - In an existing codebase, describe only the interactions being added, using the existing motion library
77
+
78
+ ---
79
+
80
+ ## Layer 2: Design Guidance Core
81
+
82
+ These principles apply across all context types. Each yields to existing design systems and user instructions per the authority hierarchy.
83
+
84
+ ### Typography
85
+
86
+ - Choose distinctive, characterful fonts. Avoid the usual suspects (Inter, Roboto, Arial, system defaults) unless the existing codebase uses them.
87
+ - Two typefaces maximum without a clear reason for more. Pair a display/headline font with a body font.
88
+ - *Yields to existing font choices when detected in Layer 0.*
89
+
90
+ ### Color & Theme
91
+
92
+ - Commit to a cohesive palette using CSS variables. A dominant color with sharp accents outperforms timid, evenly-distributed palettes.
93
+ - No purple-on-white bias, no dark-mode bias. Vary between light and dark based on context.
94
+ - One accent color by default unless the product already has a multi-color system.
95
+ - *Yields to existing color tokens when detected.*
96
+
97
+ ### Composition
98
+
99
+ - Start with composition, not components. Treat the first viewport as a poster, not a document.
100
+ - Use whitespace, alignment, scale, cropping, and contrast before adding chrome (borders, shadows, cards).
101
+ - Default to cardless layouts. Cards are allowed when they serve as the container for a user interaction (clickable item, draggable unit, selectable option). If removing the card styling would not hurt comprehension, it should not be a card.
102
+ - *All composition rules are defaults. The user can override them.*
103
+
104
+ ### Motion
105
+
106
+ - Ship 2-3 intentional motions for visually-led work: one entrance sequence, one scroll-linked or depth effect, one hover/reveal transition.
107
+ - Use the project's existing animation library if one is present.
108
+ - When no existing library is found, use framework-conditional defaults:
109
+ - **CSS animations** as the universal baseline
110
+ - **Framer Motion** for React projects
111
+ - **Vue Transition / Motion One** for Vue projects
112
+ - **Svelte transitions** for Svelte projects
113
+ - Motion should be noticeable in a quick recording, smooth on mobile, and consistent across the page. Remove if purely ornamental.
114
+
115
+ ### Accessibility
116
+
117
+ - Semantic HTML by default: `nav`, `main`, `section`, `article`, `button` -- not divs for everything.
118
+ - Color contrast meeting WCAG AA minimum.
119
+ - Focus states on all interactive elements.
120
+ - Accessibility and aesthetics are not in tension when done well.
121
+
122
+ ### Imagery
123
+
124
+ - When images are needed, prefer real or realistic photography over abstract gradients or fake 3D objects.
125
+ - Choose or generate images with a stable tonal area for text overlay.
126
+ - If image generation tools are available in the environment, use them to create contextually appropriate visuals rather than placeholder stock.
127
+
128
+ ---
129
+
130
+ ## Context Modules
131
+
132
+ Select the module that fits what is being built. When working inside an existing application, default to Module C regardless of what the feature is.
133
+
134
+ ### Module A: Landing Pages & Marketing (Greenfield)
135
+
136
+ **Default section sequence:**
137
+ 1. Hero -- brand/product, promise, CTA, one dominant visual
138
+ 2. Support -- one concrete feature, offer, or proof point
139
+ 3. Detail -- atmosphere, workflow, product depth, or story
140
+ 4. Final CTA -- convert, start, visit, or contact
141
+
142
+ **Hero rules (defaults):**
143
+ - One composition, not a dashboard. Full-bleed image or dominant visual plane.
144
+ - Brand first, headline second, body third, CTA fourth.
145
+ - Keep the text column narrow and anchored to a calm area of the image.
146
+ - No more than 6 sections total without a clear reason.
147
+ - One H1 headline. One primary CTA above the fold.
148
+
149
+ **Copy:**
150
+ - Let the headline carry the meaning. Supporting copy is usually one short sentence.
151
+ - Write in product language, not design commentary. No prompt language or AI commentary in the UI.
152
+ - Each section gets one job: explain, prove, deepen, or convert.
153
+ - Every sentence should earn its place. Default to less copy, not more.
154
+
155
+ ### Module B: Apps & Dashboards (Greenfield)
156
+
157
+ **Default patterns:**
158
+ - Calm surface hierarchy, strong typography and spacing, few colors, dense but readable information, minimal chrome.
159
+ - Organize around: primary workspace, navigation, secondary context/inspector, one clear accent for action or state.
160
+ - Cards only when the card is the interaction (clickable item, draggable unit, selectable option). If a panel can become plain layout without losing meaning, remove the card treatment.
161
+
162
+ **Copy (utility, not marketing):**
163
+ - Prioritize orientation, status, and action over promise, mood, or brand voice.
164
+ - Section headings should say what the area is or what the user can do there. Good: "Plan status", "Search metrics". Bad: "Unlock Your Potential".
165
+ - If a sentence could appear in a homepage hero, rewrite it until it sounds like product UI.
166
+ - Litmus: if an operator scans only headings, labels, and numbers, can they understand the page immediately?
167
+
168
+ ### Module C: Components & Features (Default in Existing Apps)
169
+
170
+ For adding to an existing application:
171
+
172
+ - Match the existing visual language. This module is about making something that belongs, not something that stands out.
173
+ - Inherit spacing scale, border radius, color tokens, and typography from surrounding code.
174
+ - Focus on interaction quality: clear states (default, hover, active, disabled, loading, error), smooth transitions between states, obvious affordances.
175
+ - One new component should not introduce a new design system. If the existing app uses 4px border radius, do not add a component with 8px.
176
+
177
+ ---
178
+
179
+ ## Hard Rules & Anti-Patterns
180
+
181
+ ### Default Against (Overridable)
182
+
183
+ These are the skill being opinionated. The user can override any of them.
184
+
185
+ - Generic SaaS card grid as the first impression
186
+ - Purple-on-white color schemes, dark-mode bias
187
+ - Overused fonts (Inter, Roboto, Arial, Space Grotesk, system defaults) in greenfield work
188
+ - Hero sections cluttered with stats, schedules, pill clusters, logo clouds
189
+ - Sections that repeat the same mood statement in different words
190
+ - Carousel with no narrative purpose
191
+ - Multiple competing accent colors
192
+ - Decorative gradients or abstract backgrounds standing in for real visual content
193
+ - Copy that sounds like design commentary ("Experience the seamless integration")
194
+ - Split-screen heroes where text sits on the busy side of an image
195
+
196
+ ### Always Avoid (Quality Floor)
197
+
198
+ These are genuine quality failures no user would want.
199
+
200
+ - Prompt language or AI commentary leaking into the UI
201
+ - Broken contrast -- text unreadable over images or backgrounds
202
+ - Interactive elements without visible focus states
203
+ - Semantic div soup when proper HTML elements exist
204
+
205
+ ---
206
+
207
+ ## Litmus Checks
208
+
209
+ Quick self-review before moving to visual verification. Not all checks apply in every context -- apply judgment about which are relevant.
210
+
211
+ - Is the brand or product unmistakable in the first screen?
212
+ - Is there one strong visual anchor?
213
+ - Can the page be understood by scanning headlines only?
214
+ - Does each section have one job?
215
+ - Are cards actually necessary where they are used?
216
+ - Does motion improve hierarchy or atmosphere, or is it just there?
217
+ - Would the design feel premium if all decorative shadows were removed?
218
+ - Does the copy sound like the product, not like a prompt?
219
+ - Does the new work match the existing design system? (Module C)
220
+
221
+ ---
222
+
223
+ ## Visual Verification
224
+
225
+ After implementing, verify visually. This is a sanity check, not a pixel-perfect review. One pass. If there is a glaring issue, fix it. If it looks solid, move on.
226
+
227
+ ### Tool Preference Cascade
228
+
229
+ Use the first available option:
230
+
231
+ 1. **Existing project browser tooling** -- if Playwright, Puppeteer, Cypress, or similar is already in the project's dependencies, use it. Do not introduce new dependencies just for verification.
232
+ 2. **Browser MCP tools** -- if browser automation tools (e.g., claude-in-chrome) are available in the agent's environment, use them.
233
+ 3. **agent-browser CLI** -- if nothing else is available, this is the default. Load the `agent-browser` skill for installation and usage instructions.
234
+ 4. **Mental review** -- if no browser access is possible (headless CI, no permissions to install), apply the litmus checks as a self-review and note that visual verification was skipped.
235
+
236
+ ### What to Assess
237
+
238
+ - Does the output match the visual thesis from the pre-build plan?
239
+ - Are there obvious visual problems (broken layout, unreadable text, missing images)?
240
+ - Does it look like the context module intended (landing page feels like a landing page, dashboard feels like a dashboard, component fits its surroundings)?
241
+
242
+ ### Scope Control
243
+
244
+ One iteration. Take a screenshot, assess against the litmus checks, fix any glaring issues, and move on. Include the screenshot in the deliverable (PR description, conversation output, etc.).
245
+
246
+ For iterative refinement beyond a single pass (multiple rounds of screenshot-assess-fix), see the `systematic:design:design-iterator` agent.
247
+
248
+ ---
249
+
250
+ ## Creative Energy
251
+
252
+ This skill provides structure, but the goal is distinctive work that avoids AI slop -- not formulaic output.
37
253
 
38
- Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
254
+ For greenfield work, commit to a bold aesthetic direction. Consider the tone: brutally minimal, maximalist, retro-futuristic, organic/natural, luxury/refined, playful, editorial, brutalist, art deco, soft/pastel, industrial -- or invent something that fits the context. There are endless flavors. Use these for inspiration but design one that is true to the project.
39
255
 
40
- **IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
256
+ Ask: what makes this unforgettable? What is the one thing someone will remember?
41
257
 
42
- Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
258
+ Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well, not from intensity.
43
259