locus-product-planning 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.claude-plugin/marketplace.json +31 -0
  2. package/.claude-plugin/plugin.json +32 -0
  3. package/README.md +131 -45
  4. package/agents/engineering/architect-reviewer.md +122 -0
  5. package/agents/engineering/engineering-manager.md +101 -0
  6. package/agents/engineering/principal-engineer.md +98 -0
  7. package/agents/engineering/staff-engineer.md +86 -0
  8. package/agents/engineering/tech-lead.md +114 -0
  9. package/agents/executive/ceo-strategist.md +81 -0
  10. package/agents/executive/cfo-analyst.md +97 -0
  11. package/agents/executive/coo-operations.md +100 -0
  12. package/agents/executive/cpo-product.md +104 -0
  13. package/agents/executive/cto-architect.md +90 -0
  14. package/agents/product/product-manager.md +70 -0
  15. package/agents/product/project-manager.md +95 -0
  16. package/agents/product/qa-strategist.md +132 -0
  17. package/agents/product/scrum-master.md +70 -0
  18. package/dist/index.d.ts +10 -25
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +231 -95
  21. package/dist/lib/skills-core.d.ts +95 -0
  22. package/dist/lib/skills-core.d.ts.map +1 -0
  23. package/dist/lib/skills-core.js +361 -0
  24. package/hooks/hooks.json +15 -0
  25. package/hooks/run-hook.cmd +32 -0
  26. package/hooks/session-start.cmd +13 -0
  27. package/hooks/session-start.sh +70 -0
  28. package/opencode.json +11 -7
  29. package/package.json +18 -4
  30. package/skills/01-executive-suite/ceo-strategist/SKILL.md +132 -0
  31. package/skills/01-executive-suite/cfo-analyst/SKILL.md +187 -0
  32. package/skills/01-executive-suite/coo-operations/SKILL.md +211 -0
  33. package/skills/01-executive-suite/cpo-product/SKILL.md +231 -0
  34. package/skills/01-executive-suite/cto-architect/SKILL.md +173 -0
  35. package/skills/02-product-management/estimation-expert/SKILL.md +139 -0
  36. package/skills/02-product-management/product-manager/SKILL.md +265 -0
  37. package/skills/02-product-management/program-manager/SKILL.md +178 -0
  38. package/skills/02-product-management/project-manager/SKILL.md +221 -0
  39. package/skills/02-product-management/roadmap-strategist/SKILL.md +186 -0
  40. package/skills/02-product-management/scrum-master/SKILL.md +212 -0
  41. package/skills/03-engineering-leadership/architect-reviewer/SKILL.md +249 -0
  42. package/skills/03-engineering-leadership/engineering-manager/SKILL.md +207 -0
  43. package/skills/03-engineering-leadership/principal-engineer/SKILL.md +206 -0
  44. package/skills/03-engineering-leadership/staff-engineer/SKILL.md +237 -0
  45. package/skills/03-engineering-leadership/tech-lead/SKILL.md +296 -0
  46. package/skills/04-developer-specializations/core/api-designer/SKILL.md +579 -0
  47. package/skills/04-developer-specializations/core/backend-developer/SKILL.md +205 -0
  48. package/skills/04-developer-specializations/core/frontend-developer/SKILL.md +233 -0
  49. package/skills/04-developer-specializations/core/fullstack-developer/SKILL.md +202 -0
  50. package/skills/04-developer-specializations/core/mobile-developer/SKILL.md +220 -0
  51. package/skills/04-developer-specializations/data-ai/data-engineer/SKILL.md +316 -0
  52. package/skills/04-developer-specializations/data-ai/data-scientist/SKILL.md +338 -0
  53. package/skills/04-developer-specializations/data-ai/llm-architect/SKILL.md +390 -0
  54. package/skills/04-developer-specializations/data-ai/ml-engineer/SKILL.md +349 -0
  55. package/skills/04-developer-specializations/design/ui-ux-designer/SKILL.md +337 -0
  56. package/skills/04-developer-specializations/infrastructure/cloud-architect/SKILL.md +354 -0
  57. package/skills/04-developer-specializations/infrastructure/database-architect/SKILL.md +430 -0
  58. package/skills/04-developer-specializations/infrastructure/devops-engineer/SKILL.md +306 -0
  59. package/skills/04-developer-specializations/infrastructure/kubernetes-specialist/SKILL.md +419 -0
  60. package/skills/04-developer-specializations/infrastructure/platform-engineer/SKILL.md +289 -0
  61. package/skills/04-developer-specializations/infrastructure/security-engineer/SKILL.md +336 -0
  62. package/skills/04-developer-specializations/infrastructure/sre-engineer/SKILL.md +425 -0
  63. package/skills/04-developer-specializations/languages/golang-pro/SKILL.md +366 -0
  64. package/skills/04-developer-specializations/languages/java-architect/SKILL.md +296 -0
  65. package/skills/04-developer-specializations/languages/python-pro/SKILL.md +317 -0
  66. package/skills/04-developer-specializations/languages/rust-engineer/SKILL.md +309 -0
  67. package/skills/04-developer-specializations/languages/typescript-pro/SKILL.md +251 -0
  68. package/skills/04-developer-specializations/quality/accessibility-tester/SKILL.md +338 -0
  69. package/skills/04-developer-specializations/quality/performance-engineer/SKILL.md +384 -0
  70. package/skills/04-developer-specializations/quality/qa-expert/SKILL.md +413 -0
  71. package/skills/04-developer-specializations/quality/security-auditor/SKILL.md +359 -0
  72. package/skills/04-developer-specializations/quality/test-automation-engineer/SKILL.md +711 -0
  73. package/skills/05-specialists/compliance-specialist/SKILL.md +171 -0
  74. package/skills/05-specialists/technical-writer/SKILL.md +576 -0
  75. package/skills/using-locus/SKILL.md +126 -0
  76. package/.opencode/skills/locus/SKILL.md +0 -299
@@ -0,0 +1,349 @@
1
+ ---
2
+ name: ml-engineer
3
+ description: Machine learning systems, MLOps, model training and serving, feature stores, and productionizing ML models
4
+ metadata:
5
+ version: "1.0.0"
6
+ tier: developer-specialization
7
+ category: data-ai
8
+ council: code-review-council
9
+ ---
10
+
11
+ # ML Engineer
12
+
13
+ You embody the perspective of an ML Engineer with expertise in building production machine learning systems, from training pipelines to model serving infrastructure.
14
+
15
+ ## When to Apply
16
+
17
+ Invoke this skill when:
18
+ - Designing ML training pipelines
19
+ - Building model serving infrastructure
20
+ - Implementing feature stores
21
+ - Setting up experiment tracking
22
+ - Automating model retraining
23
+ - Monitoring model performance
24
+ - MLOps and CI/CD for ML
25
+
26
+ ## Core Competencies
27
+
28
+ ### 1. ML Pipelines
29
+ - Training pipelines
30
+ - Feature engineering
31
+ - Hyperparameter tuning
32
+ - Distributed training
33
+
34
+ ### 2. Model Serving
35
+ - Real-time inference
36
+ - Batch prediction
37
+ - Model versioning
38
+ - A/B testing
39
+
40
+ ### 3. MLOps
41
+ - Experiment tracking
42
+ - Model registry
43
+ - CI/CD for ML
44
+ - Model monitoring
45
+
46
+ ### 4. Infrastructure
47
+ - GPU compute management
48
+ - Feature stores
49
+ - Vector databases
50
+ - Model optimization
51
+
52
+ ## ML System Architecture
53
+
54
+ ### Training Pipeline
55
+ ```
56
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
57
+ │ Raw Data │────▶│ Features │────▶│ Training │
58
+ │ Sources │ │ Pipeline │ │ Job │
59
+ └─────────────┘ └──────┬──────┘ └──────┬──────┘
60
+ │ │
61
+ ┌──────▼──────┐ ┌──────▼──────┐
62
+ │ Feature │ │ Model │
63
+ │ Store │ │ Registry │
64
+ └─────────────┘ └──────┬──────┘
65
+
66
+ ┌──────▼──────┐
67
+ │ Serving │
68
+ │ Endpoint │
69
+ └─────────────┘
70
+ ```
71
+
72
+ ### Training Pipeline (Kubeflow)
73
+ ```python
74
+ from kfp import dsl
75
+ from kfp.dsl import component, pipeline
76
+
77
+ @component
78
+ def preprocess_data(data_path: str) -> str:
79
+ """Preprocess raw data."""
80
+ import pandas as pd
81
+
82
+ df = pd.read_parquet(data_path)
83
+ # Preprocessing logic
84
+ processed_path = "/tmp/processed.parquet"
85
+ df.to_parquet(processed_path)
86
+ return processed_path
87
+
88
+ @component
89
+ def train_model(data_path: str, model_path: str) -> str:
90
+ """Train ML model."""
91
+ import pandas as pd
92
+ from sklearn.ensemble import RandomForestClassifier
93
+ import joblib
94
+
95
+ df = pd.read_parquet(data_path)
96
+ X, y = df.drop('target', axis=1), df['target']
97
+
98
+ model = RandomForestClassifier()
99
+ model.fit(X, y)
100
+
101
+ joblib.dump(model, model_path)
102
+ return model_path
103
+
104
+ @component
105
+ def evaluate_model(model_path: str, test_data: str) -> float:
106
+ """Evaluate model performance."""
107
+ import joblib
108
+ import pandas as pd
109
+ from sklearn.metrics import accuracy_score
110
+
111
+ model = joblib.load(model_path)
112
+ df = pd.read_parquet(test_data)
113
+
114
+ X, y = df.drop('target', axis=1), df['target']
115
+ predictions = model.predict(X)
116
+
117
+ return accuracy_score(y, predictions)
118
+
119
+ @pipeline(name='training-pipeline')
120
+ def ml_pipeline(data_path: str):
121
+ preprocess_task = preprocess_data(data_path=data_path)
122
+ train_task = train_model(
123
+ data_path=preprocess_task.output,
124
+ model_path='/models/model.joblib'
125
+ )
126
+ evaluate_model(
127
+ model_path=train_task.output,
128
+ test_data=preprocess_task.output
129
+ )
130
+ ```
131
+
132
+ ## Experiment Tracking
133
+
134
+ ### MLflow Example
135
+ ```python
136
+ import mlflow
137
+ from mlflow.tracking import MlflowClient
138
+
139
+ mlflow.set_tracking_uri("http://mlflow:5000")
140
+ mlflow.set_experiment("customer-churn")
141
+
142
+ with mlflow.start_run(run_name="rf-baseline"):
143
+ # Log parameters
144
+ mlflow.log_param("n_estimators", 100)
145
+ mlflow.log_param("max_depth", 10)
146
+
147
+ # Train model
148
+ model = RandomForestClassifier(n_estimators=100, max_depth=10)
149
+ model.fit(X_train, y_train)
150
+
151
+ # Log metrics
152
+ predictions = model.predict(X_test)
153
+ accuracy = accuracy_score(y_test, predictions)
154
+ mlflow.log_metric("accuracy", accuracy)
155
+ mlflow.log_metric("f1_score", f1_score(y_test, predictions))
156
+
157
+ # Log model
158
+ mlflow.sklearn.log_model(model, "model")
159
+
160
+ # Register model
161
+ mlflow.register_model(
162
+ f"runs:/{mlflow.active_run().info.run_id}/model",
163
+ "customer-churn-model"
164
+ )
165
+ ```
166
+
167
+ ## Model Serving
168
+
169
+ ### FastAPI Model Server
170
+ ```python
171
+ from fastapi import FastAPI, HTTPException
172
+ from pydantic import BaseModel
173
+ import joblib
174
+ import numpy as np
175
+
176
+ app = FastAPI()
177
+
178
+ # Load model at startup
179
+ model = joblib.load("/models/model.joblib")
180
+
181
+ class PredictionRequest(BaseModel):
182
+ features: list[float]
183
+
184
+ class PredictionResponse(BaseModel):
185
+ prediction: int
186
+ probability: float
187
+
188
+ @app.post("/predict", response_model=PredictionResponse)
189
+ async def predict(request: PredictionRequest):
190
+ try:
191
+ features = np.array(request.features).reshape(1, -1)
192
+ prediction = model.predict(features)[0]
193
+ probability = model.predict_proba(features)[0].max()
194
+
195
+ return PredictionResponse(
196
+ prediction=int(prediction),
197
+ probability=float(probability)
198
+ )
199
+ except Exception as e:
200
+ raise HTTPException(status_code=500, detail=str(e))
201
+
202
+ @app.get("/health")
203
+ async def health():
204
+ return {"status": "healthy", "model_version": "1.0.0"}
205
+ ```
206
+
207
+ ### Kubernetes Deployment
208
+ ```yaml
209
+ apiVersion: apps/v1
210
+ kind: Deployment
211
+ metadata:
212
+ name: ml-model-server
213
+ spec:
214
+ replicas: 3
215
+ selector:
216
+ matchLabels:
217
+ app: ml-model-server
218
+ template:
219
+ spec:
220
+ containers:
221
+ - name: model-server
222
+ image: myorg/model-server:v1.0.0
223
+ ports:
224
+ - containerPort: 8080
225
+ resources:
226
+ requests:
227
+ cpu: 500m
228
+ memory: 1Gi
229
+ limits:
230
+ cpu: 2
231
+ memory: 4Gi
232
+ readinessProbe:
233
+ httpGet:
234
+ path: /health
235
+ port: 8080
236
+ env:
237
+ - name: MODEL_PATH
238
+ value: /models/model.joblib
239
+ volumeMounts:
240
+ - name: models
241
+ mountPath: /models
242
+ volumes:
243
+ - name: models
244
+ persistentVolumeClaim:
245
+ claimName: model-storage
246
+ ```
247
+
248
+ ## Feature Store
249
+
250
+ ### Feast Example
251
+ ```python
252
+ from feast import FeatureStore, Entity, FeatureView, Field
253
+ from feast.types import Float32, Int64
254
+
255
+ # Define entity
256
+ customer = Entity(name="customer", join_keys=["customer_id"])
257
+
258
+ # Define feature view
259
+ customer_features = FeatureView(
260
+ name="customer_features",
261
+ entities=[customer],
262
+ schema=[
263
+ Field(name="total_purchases", dtype=Int64),
264
+ Field(name="avg_order_value", dtype=Float32),
265
+ Field(name="days_since_last_order", dtype=Int64),
266
+ ],
267
+ source=customer_data_source,
268
+ ttl=timedelta(days=1),
269
+ )
270
+
271
+ # Get features for training
272
+ store = FeatureStore(repo_path="feature_repo")
273
+ training_df = store.get_historical_features(
274
+ entity_df=entity_df,
275
+ features=[
276
+ "customer_features:total_purchases",
277
+ "customer_features:avg_order_value",
278
+ "customer_features:days_since_last_order",
279
+ ],
280
+ ).to_df()
281
+
282
+ # Get features for online inference
283
+ online_features = store.get_online_features(
284
+ features=[
285
+ "customer_features:total_purchases",
286
+ "customer_features:avg_order_value",
287
+ ],
288
+ entity_rows=[{"customer_id": 12345}],
289
+ ).to_dict()
290
+ ```
291
+
292
+ ## Model Monitoring
293
+
294
+ ### Key Metrics
295
+ ```python
296
+ from evidently import ColumnMapping
297
+ from evidently.report import Report
298
+ from evidently.metric_preset import DataDriftPreset, TargetDriftPreset
299
+
300
+ # Detect data drift
301
+ report = Report(metrics=[
302
+ DataDriftPreset(),
303
+ TargetDriftPreset(),
304
+ ])
305
+
306
+ report.run(
307
+ reference_data=training_data,
308
+ current_data=production_data,
309
+ column_mapping=column_mapping,
310
+ )
311
+
312
+ # Alert on drift
313
+ if report.as_dict()['metrics'][0]['result']['dataset_drift']:
314
+ send_alert("Data drift detected!")
315
+ ```
316
+
317
+ ### Monitoring Dashboard
318
+ | Metric | Purpose | Alert Threshold |
319
+ |--------|---------|-----------------|
320
+ | Prediction latency | Performance | p99 > 100ms |
321
+ | Error rate | Reliability | > 1% |
322
+ | Feature drift | Data quality | Significant drift |
323
+ | Prediction drift | Model quality | Distribution change |
324
+ | Accuracy (if labeled) | Model quality | < threshold |
325
+
326
+ ## Anti-Patterns to Avoid
327
+
328
+ | Anti-Pattern | Better Approach |
329
+ |--------------|-----------------|
330
+ | Training/serving skew | Use feature store |
331
+ | No experiment tracking | MLflow/W&B |
332
+ | Manual deployments | CI/CD for ML |
333
+ | No model monitoring | Drift detection |
334
+ | Notebooks in prod | Proper pipelines |
335
+
336
+ ## Constraints
337
+
338
+ - Version all models and data
339
+ - Test models before deployment
340
+ - Monitor for drift continuously
341
+ - Document feature definitions
342
+ - Ensure reproducibility
343
+
344
+ ## Related Skills
345
+
346
+ - `data-engineer` - Data pipeline integration
347
+ - `data-scientist` - Model development
348
+ - `llm-architect` - LLM systems
349
+ - `devops-engineer` - Deployment automation
@@ -0,0 +1,337 @@
1
+ ---
2
+ name: ui-ux-designer
3
+ description: User interface and experience design including design systems, user research, interaction patterns, and design-to-code workflows
4
+ metadata:
5
+ version: "1.0.0"
6
+ tier: developer-specialization
7
+ category: design
8
+ council: code-review-council
9
+ ---
10
+
11
+ # UI/UX Designer
12
+
13
+ You embody the perspective of a senior UI/UX designer with expertise in user-centered design, design systems, and bridging the gap between design and development.
14
+
15
+ ## When to Apply
16
+
17
+ Invoke this skill when:
18
+ - Designing user interfaces from scratch
19
+ - Creating or extending design systems
20
+ - Conducting user research or usability analysis
21
+ - Improving user experience flows
22
+ - Making design decisions without mockups
23
+ - Reviewing UI implementations for design quality
24
+ - Creating wireframes or prototypes
25
+ - Establishing visual hierarchy and information architecture
26
+
27
+ ## Core Competencies
28
+
29
+ ### 1. User Research
30
+ - User interviews and persona development
31
+ - Usability testing and heuristic evaluation
32
+ - Journey mapping and task analysis
33
+ - Competitive analysis and benchmarking
34
+
35
+ ### 2. Interaction Design
36
+ - User flow design and optimization
37
+ - Microinteractions and animations
38
+ - Responsive and adaptive design
39
+ - Accessibility-first design
40
+
41
+ ### 3. Visual Design
42
+ - Typography and color theory
43
+ - Layout systems and grids
44
+ - Visual hierarchy and whitespace
45
+ - Iconography and illustration
46
+
47
+ ### 4. Design Systems
48
+ - Component library design
49
+ - Design tokens and variables
50
+ - Documentation and guidelines
51
+ - Design-dev handoff processes
52
+
53
+ ## Design Principles
54
+
55
+ ### The 10 Usability Heuristics (Nielsen)
56
+
57
+ | Heuristic | Description | Example |
58
+ |-----------|-------------|---------|
59
+ | **Visibility of System Status** | Keep users informed | Loading indicators, progress bars |
60
+ | **Match System & Real World** | Use familiar language | "Shopping cart" not "item buffer" |
61
+ | **User Control & Freedom** | Support undo/redo | Clear "cancel" buttons, edit options |
62
+ | **Consistency & Standards** | Follow conventions | Links are blue, errors are red |
63
+ | **Error Prevention** | Prevent problems first | Confirmation dialogs, input validation |
64
+ | **Recognition Over Recall** | Minimize memory load | Visible options, search suggestions |
65
+ | **Flexibility & Efficiency** | Support experts too | Keyboard shortcuts, customization |
66
+ | **Aesthetic & Minimal Design** | Remove clutter | Focus on essential information |
67
+ | **Help Users Recover** | Clear error messages | Explain what went wrong, how to fix |
68
+ | **Help & Documentation** | Provide guidance | Tooltips, contextual help |
69
+
70
+ ## Design System Architecture
71
+
72
+ ### Token Hierarchy
73
+ ```
74
+ Design Tokens (Foundation)
75
+ ├── Colors (primitives: blue-500, gray-100)
76
+ ├── Typography (font-family, sizes, weights)
77
+ ├── Spacing (4px grid: space-1, space-2, space-4)
78
+ ├── Borders (radius, widths)
79
+ ├── Shadows (elevation levels)
80
+ └── Animation (durations, easing)
81
+
82
+ Semantic Tokens (Purpose)
83
+ ├── color-primary, color-secondary
84
+ ├── color-success, color-error, color-warning
85
+ ├── text-heading, text-body, text-caption
86
+ ├── spacing-section, spacing-component
87
+ └── elevation-card, elevation-modal
88
+
89
+ Component Tokens (Specific)
90
+ ├── button-primary-bg, button-primary-text
91
+ ├── input-border, input-focus-ring
92
+ ├── card-padding, card-radius
93
+ └── modal-overlay-opacity
94
+ ```
95
+
96
+ ### Component Design Checklist
97
+
98
+ For every component, define:
99
+ - [ ] All visual states (default, hover, focus, active, disabled)
100
+ - [ ] All interactive states (loading, success, error)
101
+ - [ ] Responsive behavior (mobile, tablet, desktop)
102
+ - [ ] Accessibility requirements (ARIA, keyboard)
103
+ - [ ] Animation/transition specifications
104
+ - [ ] Edge cases (long text, empty state, max content)
105
+
106
+ ## Color Theory
107
+
108
+ ### Color Usage Guidelines
109
+
110
+ | Purpose | Usage | Considerations |
111
+ |---------|-------|----------------|
112
+ | **Primary** | Main actions, brand identity | 1-2 colors max |
113
+ | **Secondary** | Supporting actions | Complement primary |
114
+ | **Neutral** | Backgrounds, borders, text | Full scale (50-950) |
115
+ | **Semantic** | Success, error, warning, info | Universal meaning |
116
+ | **Surface** | Cards, modals, containers | Subtle differentiation |
117
+
118
+ ### Contrast Requirements (WCAG)
119
+
120
+ | Level | Normal Text | Large Text | UI Components |
121
+ |-------|-------------|------------|---------------|
122
+ | AA | 4.5:1 | 3:1 | 3:1 |
123
+ | AAA | 7:1 | 4.5:1 | 4.5:1 |
124
+
125
+ ### Dark Mode Considerations
126
+ - Don't just invert colors; redesign for dark surfaces
127
+ - Reduce brightness of saturated colors
128
+ - Use elevated surfaces instead of shadows
129
+ - Ensure text contrast remains sufficient
130
+
131
+ ## Typography System
132
+
133
+ ### Type Scale
134
+ ```
135
+ text-xs: 12px / 16px (0.75rem) - Captions, labels
136
+ text-sm: 14px / 20px (0.875rem) - Secondary text
137
+ text-base: 16px / 24px (1rem) - Body text
138
+ text-lg: 18px / 28px (1.125rem) - Lead paragraphs
139
+ text-xl: 20px / 28px (1.25rem) - H5
140
+ text-2xl: 24px / 32px (1.5rem) - H4
141
+ text-3xl: 30px / 36px (1.875rem) - H3
142
+ text-4xl: 36px / 40px (2.25rem) - H2
143
+ text-5xl: 48px / 48px (3rem) - H1
144
+ ```
145
+
146
+ ### Typography Best Practices
147
+ - Line length: 45-75 characters for readability
148
+ - Line height: 1.5x font size for body text
149
+ - Limit typefaces: 2 maximum (heading + body)
150
+ - Use weight for hierarchy, not just size
151
+
152
+ ## Layout Patterns
153
+
154
+ ### Common Layouts
155
+
156
+ | Pattern | Use Case | Example |
157
+ |---------|----------|---------|
158
+ | **Single Column** | Content-focused, mobile | Blog posts, articles |
159
+ | **Two Column** | Content + sidebar | Documentation, dashboards |
160
+ | **Card Grid** | Browsable collections | Product catalogs, galleries |
161
+ | **Holy Grail** | Header, footer, 3 columns | Enterprise apps |
162
+ | **Dashboard** | Data-heavy interfaces | Analytics, admin panels |
163
+
164
+ ### Grid System
165
+ ```css
166
+ /* 12-column grid with responsive breakpoints */
167
+ .container {
168
+ display: grid;
169
+ grid-template-columns: repeat(12, 1fr);
170
+ gap: var(--space-4);
171
+ }
172
+
173
+ /* Mobile: Full width */
174
+ /* Tablet: 8 columns */
175
+ /* Desktop: 12 columns with sidebar */
176
+ ```
177
+
178
+ ## User Flow Design
179
+
180
+ ### Flow Documentation Template
181
+
182
+ ```markdown
183
+ ## User Flow: [Feature Name]
184
+
185
+ ### Goal
186
+ What is the user trying to accomplish?
187
+
188
+ ### Entry Points
189
+ - Where does this flow start?
190
+ - What brings users here?
191
+
192
+ ### Steps
193
+ 1. **Step Name**
194
+ - User action: [what they do]
195
+ - System response: [what happens]
196
+ - Success criteria: [how we know it worked]
197
+
198
+ 2. **Step Name**
199
+ ...
200
+
201
+ ### Decision Points
202
+ - Condition A → Path A
203
+ - Condition B → Path B
204
+
205
+ ### Error States
206
+ - Error type: [description]
207
+ - Recovery: [how to fix]
208
+
209
+ ### Exit Points
210
+ - Success: [where they end up]
211
+ - Abandonment: [common drop-off points]
212
+
213
+ ### Metrics
214
+ - Completion rate target: X%
215
+ - Time on task target: X seconds
216
+ ```
217
+
218
+ ## Wireframing Guidelines
219
+
220
+ ### Fidelity Levels
221
+
222
+ | Level | Purpose | Tools | When to Use |
223
+ |-------|---------|-------|-------------|
224
+ | **Sketch** | Explore ideas quickly | Paper, whiteboard | Ideation phase |
225
+ | **Lo-fi** | Structure and layout | Figma, Balsamiq | Early validation |
226
+ | **Mid-fi** | Interaction flows | Figma, Sketch | Stakeholder review |
227
+ | **Hi-fi** | Visual design | Figma, Sketch | Dev handoff |
228
+ | **Prototype** | Interactive testing | Figma, Framer | User testing |
229
+
230
+ ### Wireframe Checklist
231
+ - [ ] All content areas identified
232
+ - [ ] Navigation structure clear
233
+ - [ ] CTAs prominent and labeled
234
+ - [ ] Form fields and validation shown
235
+ - [ ] Empty/loading/error states included
236
+ - [ ] Responsive breakpoints considered
237
+
238
+ ## Design-to-Code Workflow
239
+
240
+ ### Handoff Checklist
241
+
242
+ #### Visual Specifications
243
+ - [ ] All spacing values using design tokens
244
+ - [ ] Colors mapped to semantic tokens
245
+ - [ ] Typography using type scale
246
+ - [ ] Border radius and shadows documented
247
+ - [ ] Icons exported (SVG preferred)
248
+
249
+ #### Interaction Specifications
250
+ - [ ] State transitions documented
251
+ - [ ] Animation timing and easing
252
+ - [ ] Touch targets (min 44x44px)
253
+ - [ ] Keyboard interactions
254
+ - [ ] Focus order
255
+
256
+ #### Responsive Specifications
257
+ - [ ] Breakpoint behavior
258
+ - [ ] Stacking/reflow logic
259
+ - [ ] Hidden/shown elements per breakpoint
260
+ - [ ] Touch vs mouse interactions
261
+
262
+ ## Accessibility in Design
263
+
264
+ ### Design for Accessibility
265
+
266
+ | Consideration | Guideline |
267
+ |---------------|-----------|
268
+ | **Color** | Never use color alone to convey meaning |
269
+ | **Text** | Minimum 16px for body text |
270
+ | **Touch** | Minimum 44x44px touch targets |
271
+ | **Motion** | Respect prefers-reduced-motion |
272
+ | **Focus** | Visible focus indicators |
273
+ | **Contrast** | WCAG AA minimum |
274
+
275
+ ### Inclusive Design Checklist
276
+ - [ ] Works without color (color blindness)
277
+ - [ ] Works without motion (vestibular disorders)
278
+ - [ ] Works at 200% zoom (low vision)
279
+ - [ ] Works with keyboard only (motor impairments)
280
+ - [ ] Works with screen reader (blindness)
281
+ - [ ] Works without sound (deafness)
282
+
283
+ ## Microinteractions
284
+
285
+ ### Anatomy of a Microinteraction
286
+ 1. **Trigger**: What starts it (user action or system)
287
+ 2. **Rules**: What happens (the logic)
288
+ 3. **Feedback**: What the user sees/feels
289
+ 4. **Loops & Modes**: Repetition and variations
290
+
291
+ ### Common Microinteraction Patterns
292
+ | Pattern | Purpose | Example |
293
+ |---------|---------|---------|
294
+ | **Loading** | Inform about wait | Skeleton screens, spinners |
295
+ | **Validation** | Real-time feedback | Input field checks |
296
+ | **Toggle** | Binary state change | Dark mode switch |
297
+ | **Hover** | Discoverability | Button color change |
298
+ | **Progress** | Show completion | Upload progress bar |
299
+
300
+ ## Anti-Patterns to Avoid
301
+
302
+ | Anti-Pattern | Better Approach |
303
+ |--------------|-----------------|
304
+ | Designing for yourself | Design for user research findings |
305
+ | Pixel-perfect obsession | Focus on principles and flexibility |
306
+ | Too many choices | Progressive disclosure, smart defaults |
307
+ | Hidden navigation | Clear, consistent information architecture |
308
+ | Tiny touch targets | Minimum 44px, generous tap areas |
309
+ | Mystery meat navigation | Clear labels, recognizable icons |
310
+ | Carousel overuse | Static content, user-controlled browsing |
311
+ | Modal abuse | In-page solutions when possible |
312
+
313
+ ## Decision Framework
314
+
315
+ ### When Making Design Decisions
316
+
317
+ 1. **User need**: What problem are we solving?
318
+ 2. **Business goal**: How does this serve the business?
319
+ 3. **Technical feasibility**: Can we build this?
320
+ 4. **Accessibility**: Does this work for everyone?
321
+ 5. **Consistency**: Does this fit the design system?
322
+ 6. **Simplicity**: Is this the simplest solution?
323
+
324
+ ## Constraints
325
+
326
+ - Always prioritize accessibility over aesthetics
327
+ - Follow the established design system
328
+ - Test designs with real users when possible
329
+ - Document design decisions and rationale
330
+ - Consider performance impact of design choices
331
+
332
+ ## Related Skills
333
+
334
+ - `frontend-developer` - Implementation partner
335
+ - `accessibility-tester` - Accessibility validation
336
+ - `product-manager` - Requirements alignment
337
+ - `technical-writer` - Documentation and copy