@nano-step/skill-manager 5.1.0 → 5.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.
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/skills/blog-workflow/SKILL.md +522 -0
- package/skills/blog-workflow/skill.json +16 -0
- package/skills/comprehensive-feature-builder/SKILL.md +558 -0
- package/skills/comprehensive-feature-builder/skill.json +9 -0
- package/skills/idea-workflow/SKILL.md +229 -0
- package/skills/idea-workflow/skill.json +14 -0
- package/skills/reddit-workflow/SKILL.md +187 -0
- package/skills/reddit-workflow/skill.json +14 -0
- package/skills/security-workflow/SKILL.md +258 -0
- package/skills/security-workflow/skill.json +15 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +309 -0
- package/skills/skill-creator/references/metadata-quality-criteria.md +76 -0
- package/skills/skill-creator/references/plugin-marketplace-hosting.md +101 -0
- package/skills/skill-creator/references/plugin-marketplace-overview.md +55 -0
- package/skills/skill-creator/references/plugin-marketplace-schema.md +88 -0
- package/skills/skill-creator/references/plugin-marketplace-sources.md +103 -0
- package/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +80 -0
- package/skills/skill-creator/references/script-quality-criteria.md +106 -0
- package/skills/skill-creator/references/structure-organization-criteria.md +114 -0
- package/skills/skill-creator/references/token-efficiency-criteria.md +74 -0
- package/skills/skill-creator/references/validation-checklist.md +83 -0
- package/skills/skill-creator/scripts/encoding_utils.py +36 -0
- package/skills/skill-creator/scripts/init_skill.py +308 -0
- package/skills/skill-creator/scripts/package_skill.py +115 -0
- package/skills/skill-creator/scripts/quick_validate.py +69 -0
- package/skills/skill-creator/skill.json +14 -0
- package/skills/team-workflow/SKILL.md +227 -0
- package/skills/team-workflow/skill.json +15 -0
- package/skills/ui-ux-pro-max/SKILL.md +292 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/ui-ux-pro-max/skill.json +16 -0
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comprehensive-feature-builder
|
|
3
|
+
description: Systematic 5-phase workflow for researching, designing, implementing, and testing ANY feature. Integrates explore/librarian agents, GraphQL inspector, Sequential Thinking, UI/UX Pro Max, OpenSpec proposals, and E2E test generator with Playwright MCP. Saves checkpoints to files to prevent token bloat. Loops on test failures until all pass.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comprehensive Feature Builder Skill
|
|
7
|
+
|
|
8
|
+
> **Purpose**: A systematic, checkpoint-based workflow for researching, designing, implementing, and testing ANY feature with full traceability.
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
This skill provides a 5-phase workflow that:
|
|
13
|
+
1. **Saves reports to files** at each phase (prevents token bloat)
|
|
14
|
+
2. **Uses checklists** for progress tracking
|
|
15
|
+
3. **Integrates OpenSpec** for proposal creation
|
|
16
|
+
4. **Uses E2E test generator** with Playwright MCP for verification
|
|
17
|
+
5. **Captures screenshots** at every step
|
|
18
|
+
6. **Loops on failures** until tests pass
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Trigger phrases:
|
|
23
|
+
- "Implement feature X comprehensively"
|
|
24
|
+
- "Research and build X"
|
|
25
|
+
- "Full feature implementation for X"
|
|
26
|
+
- "Create X with full testing"
|
|
27
|
+
|
|
28
|
+
## Prerequisites
|
|
29
|
+
|
|
30
|
+
Before starting:
|
|
31
|
+
- [ ] Identify feature name (kebab-case): `{feature-name}`
|
|
32
|
+
- [ ] Create output directory: `/ai/feature-research/{feature-name}/`
|
|
33
|
+
- [ ] Verify backend is running (GraphQL endpoint accessible)
|
|
34
|
+
- [ ] Verify frontend dev server is running
|
|
35
|
+
|
|
36
|
+
## Directory Structure
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
/ai/feature-research/{feature-name}/
|
|
40
|
+
├── progress.json # Current phase & status
|
|
41
|
+
├── 01-discovery/
|
|
42
|
+
│ ├── checklist.md # Phase 1 checklist
|
|
43
|
+
│ ├── report.md # Discovery findings
|
|
44
|
+
│ ├── codebase-analysis.md # Explore agent results
|
|
45
|
+
│ ├── external-research.md # Librarian agent results
|
|
46
|
+
│ └── graphql-schema.md # GraphQL inspector results
|
|
47
|
+
├── 02-analysis/
|
|
48
|
+
│ ├── checklist.md # Phase 2 checklist
|
|
49
|
+
│ ├── report.md # Gap analysis
|
|
50
|
+
│ ├── architecture-decisions.md # Oracle consultation
|
|
51
|
+
│ └── sequential-thinking.md # Structured analysis
|
|
52
|
+
├── 03-design/
|
|
53
|
+
│ ├── checklist.md # Phase 3 checklist
|
|
54
|
+
│ ├── report.md # Design summary
|
|
55
|
+
│ ├── ui-concept.md # UI/UX Pro Max output
|
|
56
|
+
│ ├── component-specs.md # Component hierarchy
|
|
57
|
+
│ └── ui-prompts.md # Implementation prompts
|
|
58
|
+
├── 04-implementation/
|
|
59
|
+
│ ├── checklist.md # Phase 4 checklist
|
|
60
|
+
│ ├── report.md # Implementation summary
|
|
61
|
+
│ ├── openspec-proposal/ # OpenSpec change proposal
|
|
62
|
+
│ └── code-changes.md # Files modified
|
|
63
|
+
├── 05-testing/
|
|
64
|
+
│ ├── checklist.md # Phase 5 checklist
|
|
65
|
+
│ ├── report.md # Test results
|
|
66
|
+
│ ├── e2e-tests/ # Generated test files
|
|
67
|
+
│ ├── screenshots/ # Step-by-step screenshots
|
|
68
|
+
│ └── bug-fixes.md # Bugs found and fixed
|
|
69
|
+
└── final-summary.md # Complete feature summary
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Phase 1: Discovery
|
|
75
|
+
|
|
76
|
+
### Objective
|
|
77
|
+
Gather all context about the feature from codebase, PRD, GraphQL schema, and external research.
|
|
78
|
+
|
|
79
|
+
### Checklist (`01-discovery/checklist.md`)
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Phase 1: Discovery Checklist
|
|
83
|
+
|
|
84
|
+
### 1.1 Codebase Exploration
|
|
85
|
+
- [ ] Launch explore agent for existing implementations
|
|
86
|
+
- [ ] Search for related pages, components, stores, hooks
|
|
87
|
+
- [ ] Identify existing patterns to follow
|
|
88
|
+
- [ ] Save results to `codebase-analysis.md`
|
|
89
|
+
|
|
90
|
+
### 1.2 PRD & Requirements
|
|
91
|
+
- [ ] Search PRD for feature requirements
|
|
92
|
+
- [ ] Find user stories and acceptance criteria
|
|
93
|
+
- [ ] Identify related epics and dependencies
|
|
94
|
+
- [ ] Document in `report.md`
|
|
95
|
+
|
|
96
|
+
### 1.3 GraphQL Schema Inspection
|
|
97
|
+
- [ ] Use graphql-tools MCP to inspect types
|
|
98
|
+
- [ ] List all related queries and mutations
|
|
99
|
+
- [ ] Document input/output types
|
|
100
|
+
- [ ] Save to `graphql-schema.md`
|
|
101
|
+
|
|
102
|
+
### 1.4 External Research (if needed)
|
|
103
|
+
- [ ] Launch librarian agent for best practices
|
|
104
|
+
- [ ] Research UI/UX patterns
|
|
105
|
+
- [ ] Find library documentation
|
|
106
|
+
- [ ] Save to `external-research.md`
|
|
107
|
+
|
|
108
|
+
### 1.5 Phase Completion
|
|
109
|
+
- [ ] All sub-checklists complete
|
|
110
|
+
- [ ] `report.md` summarizes findings
|
|
111
|
+
- [ ] Update `progress.json` to phase 2
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Actions
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// 1. Fire parallel background agents
|
|
118
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[],
|
|
119
|
+
description="Explore {feature} in codebase",
|
|
120
|
+
prompt="Find all code related to {feature}: pages, components, stores, hooks, GraphQL operations...")
|
|
121
|
+
|
|
122
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[],
|
|
123
|
+
description="Explore backend schema for {feature}",
|
|
124
|
+
prompt="Find all backend GraphQL types, queries, mutations for {feature}...")
|
|
125
|
+
|
|
126
|
+
task(subagent_type="librarian", run_in_background=true, load_skills=[],
|
|
127
|
+
description="Research {feature} best practices",
|
|
128
|
+
prompt="Find UI/UX best practices, patterns, and examples for {feature}...")
|
|
129
|
+
|
|
130
|
+
// 2. Use GraphQL inspector MCP
|
|
131
|
+
graphql-tools_filter_types(search="{feature}", detailed=false)
|
|
132
|
+
graphql-tools_filter_queries(search="{feature}", detailed=false)
|
|
133
|
+
graphql-tools_filter_mutations(search="{feature}", detailed=false)
|
|
134
|
+
// Then get details for specific types found
|
|
135
|
+
|
|
136
|
+
// 3. Search PRD
|
|
137
|
+
grep(pattern="Epic.*{feature}|Story.*{feature}", path="/ai/")
|
|
138
|
+
|
|
139
|
+
// 4. Collect background results
|
|
140
|
+
background_output(task_id="...")
|
|
141
|
+
|
|
142
|
+
// 5. Save reports to files
|
|
143
|
+
write(filePath="/ai/feature-research/{feature}/01-discovery/report.md", content="...")
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Output Template (`01-discovery/report.md`)
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
# Discovery Report: {Feature Name}
|
|
150
|
+
|
|
151
|
+
**Date**: {date}
|
|
152
|
+
**Phase**: 1 - Discovery
|
|
153
|
+
**Status**: Complete
|
|
154
|
+
|
|
155
|
+
## Executive Summary
|
|
156
|
+
{1-2 paragraph summary of findings}
|
|
157
|
+
|
|
158
|
+
## Existing Implementation
|
|
159
|
+
- **Pages**: {list of existing pages}
|
|
160
|
+
- **Components**: {list of components}
|
|
161
|
+
- **Stores**: {Zustand stores}
|
|
162
|
+
- **Hooks**: {custom hooks}
|
|
163
|
+
- **GraphQL Operations**: {queries, mutations}
|
|
164
|
+
|
|
165
|
+
## PRD Requirements
|
|
166
|
+
- **Epic**: {epic number and name}
|
|
167
|
+
- **Stories**: {list of user stories}
|
|
168
|
+
- **Acceptance Criteria**: {key AC}
|
|
169
|
+
|
|
170
|
+
## GraphQL Schema
|
|
171
|
+
### Types
|
|
172
|
+
{list of types with key fields}
|
|
173
|
+
|
|
174
|
+
### Queries
|
|
175
|
+
{list of queries with arguments}
|
|
176
|
+
|
|
177
|
+
### Mutations
|
|
178
|
+
{list of mutations with inputs}
|
|
179
|
+
|
|
180
|
+
## External Research
|
|
181
|
+
{key findings from librarian agent}
|
|
182
|
+
|
|
183
|
+
## Gaps Identified
|
|
184
|
+
- {gap 1}
|
|
185
|
+
- {gap 2}
|
|
186
|
+
|
|
187
|
+
## Next Phase
|
|
188
|
+
Ready for Phase 2: Analysis
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Phase 2: Analysis
|
|
194
|
+
|
|
195
|
+
### Objective
|
|
196
|
+
Analyze gaps, make architecture decisions, and plan implementation using Sequential Thinking.
|
|
197
|
+
|
|
198
|
+
### Checklist (`02-analysis/checklist.md`)
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
## Phase 2: Analysis Checklist
|
|
202
|
+
|
|
203
|
+
### 2.1 Gap Analysis
|
|
204
|
+
- [ ] Compare PRD requirements vs existing implementation
|
|
205
|
+
- [ ] Identify missing features
|
|
206
|
+
- [ ] Identify bugs or issues
|
|
207
|
+
- [ ] Document in `report.md`
|
|
208
|
+
|
|
209
|
+
### 2.2 Sequential Thinking
|
|
210
|
+
- [ ] Use Sequential-Thinking MCP for structured analysis
|
|
211
|
+
- [ ] Break down implementation into steps
|
|
212
|
+
- [ ] Identify dependencies and order
|
|
213
|
+
- [ ] Save to `sequential-thinking.md`
|
|
214
|
+
|
|
215
|
+
### 2.3 Architecture Decisions (if complex)
|
|
216
|
+
- [ ] Consult Oracle for architecture questions
|
|
217
|
+
- [ ] Document decisions and rationale
|
|
218
|
+
- [ ] Save to `architecture-decisions.md`
|
|
219
|
+
|
|
220
|
+
### 2.4 Phase Completion
|
|
221
|
+
- [ ] Gap analysis complete
|
|
222
|
+
- [ ] Implementation plan created
|
|
223
|
+
- [ ] Update `progress.json` to phase 3
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Actions
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
// 1. Use Sequential Thinking for structured analysis
|
|
230
|
+
Sequential-Thinking_sequentialthinking(
|
|
231
|
+
thought="Analyzing {feature} implementation...",
|
|
232
|
+
thoughtNumber=1,
|
|
233
|
+
totalThoughts=5,
|
|
234
|
+
nextThoughtNeeded=true
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
// 2. Consult Oracle if complex architecture decisions needed
|
|
238
|
+
task(subagent_type="oracle", run_in_background=false, load_skills=[],
|
|
239
|
+
description="Architecture consultation for {feature}",
|
|
240
|
+
prompt="Review the discovery report and advise on: {specific questions}...")
|
|
241
|
+
|
|
242
|
+
// 3. Save analysis report
|
|
243
|
+
write(filePath="/ai/feature-research/{feature}/02-analysis/report.md", content="...")
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Phase 3: Design
|
|
249
|
+
|
|
250
|
+
### Objective
|
|
251
|
+
Create UI/UX design using ui-ux-pro-max skill, define component specs.
|
|
252
|
+
|
|
253
|
+
### Checklist (`03-design/checklist.md`)
|
|
254
|
+
|
|
255
|
+
```markdown
|
|
256
|
+
## Phase 3: Design Checklist
|
|
257
|
+
|
|
258
|
+
### 3.1 UI/UX Design
|
|
259
|
+
- [ ] Load ui-ux-pro-max skill
|
|
260
|
+
- [ ] Create UI concept based on research
|
|
261
|
+
- [ ] Define visual style and patterns
|
|
262
|
+
- [ ] Save to `ui-concept.md`
|
|
263
|
+
|
|
264
|
+
### 3.2 Component Specification
|
|
265
|
+
- [ ] Define component hierarchy
|
|
266
|
+
- [ ] Specify props and state
|
|
267
|
+
- [ ] Define data flow
|
|
268
|
+
- [ ] Save to `component-specs.md`
|
|
269
|
+
|
|
270
|
+
### 3.3 UI Prompts
|
|
271
|
+
- [ ] Create detailed implementation prompts
|
|
272
|
+
- [ ] Include Vietnamese text requirements
|
|
273
|
+
- [ ] Include accessibility requirements
|
|
274
|
+
- [ ] Save to `ui-prompts.md`
|
|
275
|
+
|
|
276
|
+
### 3.4 Phase Completion
|
|
277
|
+
- [ ] UI concept approved
|
|
278
|
+
- [ ] Component specs complete
|
|
279
|
+
- [ ] Update `progress.json` to phase 4
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### Actions
|
|
283
|
+
|
|
284
|
+
```typescript
|
|
285
|
+
// 1. Load UI/UX Pro Max skill
|
|
286
|
+
skill("ui-ux-pro-max")
|
|
287
|
+
|
|
288
|
+
// 2. Create UI concept
|
|
289
|
+
task(category="visual-engineering", load_skills=["ui-ux-pro-max", "frontend-ui-ux"],
|
|
290
|
+
description="Design UI for {feature}",
|
|
291
|
+
prompt="Based on discovery report, create UI concept for {feature}...")
|
|
292
|
+
|
|
293
|
+
// 3. Save design documents
|
|
294
|
+
write(filePath="/ai/feature-research/{feature}/03-design/ui-concept.md", content="...")
|
|
295
|
+
write(filePath="/ai/feature-research/{feature}/03-design/component-specs.md", content="...")
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Phase 4: Implementation
|
|
301
|
+
|
|
302
|
+
### Objective
|
|
303
|
+
Create OpenSpec proposal, implement code changes, verify with LSP diagnostics.
|
|
304
|
+
|
|
305
|
+
### Checklist (`04-implementation/checklist.md`)
|
|
306
|
+
|
|
307
|
+
```markdown
|
|
308
|
+
## Phase 4: Implementation Checklist
|
|
309
|
+
|
|
310
|
+
### 4.1 OpenSpec Proposal
|
|
311
|
+
- [ ] Create change directory: `openspec/changes/{change-id}/`
|
|
312
|
+
- [ ] Write `proposal.md` with Why/What/Impact
|
|
313
|
+
- [ ] Write `tasks.md` with implementation steps
|
|
314
|
+
- [ ] Write spec deltas in `specs/{capability}/spec.md`
|
|
315
|
+
- [ ] Validate: `openspec validate {change-id} --strict --no-interactive`
|
|
316
|
+
- [ ] Copy proposal to `04-implementation/openspec-proposal/`
|
|
317
|
+
|
|
318
|
+
### 4.2 Code Implementation
|
|
319
|
+
- [ ] Implement tasks from `tasks.md` sequentially
|
|
320
|
+
- [ ] Mark each task complete as done
|
|
321
|
+
- [ ] Run `pnpm codegen` if GraphQL changes
|
|
322
|
+
- [ ] Verify with `lsp_diagnostics` on changed files
|
|
323
|
+
|
|
324
|
+
### 4.3 Build Verification
|
|
325
|
+
- [ ] Run `pnpm build` - must pass
|
|
326
|
+
- [ ] Fix any TypeScript errors
|
|
327
|
+
- [ ] Document changes in `code-changes.md`
|
|
328
|
+
|
|
329
|
+
### 4.4 Phase Completion
|
|
330
|
+
- [ ] All tasks in `tasks.md` marked complete
|
|
331
|
+
- [ ] Build passes
|
|
332
|
+
- [ ] Update `progress.json` to phase 5
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Actions
|
|
336
|
+
|
|
337
|
+
```typescript
|
|
338
|
+
// 1. Create OpenSpec proposal
|
|
339
|
+
bash("mkdir -p openspec/changes/{change-id}/specs/{capability}")
|
|
340
|
+
|
|
341
|
+
write(filePath="openspec/changes/{change-id}/proposal.md", content=`
|
|
342
|
+
# Change: {Feature Name}
|
|
343
|
+
|
|
344
|
+
## Why
|
|
345
|
+
{Problem/opportunity from discovery}
|
|
346
|
+
|
|
347
|
+
## What Changes
|
|
348
|
+
- {Change 1}
|
|
349
|
+
- {Change 2}
|
|
350
|
+
|
|
351
|
+
## Impact
|
|
352
|
+
- Affected specs: {capabilities}
|
|
353
|
+
- Affected code: {files}
|
|
354
|
+
`)
|
|
355
|
+
|
|
356
|
+
write(filePath="openspec/changes/{change-id}/tasks.md", content=`
|
|
357
|
+
## 1. Implementation
|
|
358
|
+
- [ ] 1.1 {Task 1}
|
|
359
|
+
- [ ] 1.2 {Task 2}
|
|
360
|
+
...
|
|
361
|
+
`)
|
|
362
|
+
|
|
363
|
+
write(filePath="openspec/changes/{change-id}/specs/{capability}/spec.md", content=`
|
|
364
|
+
## ADDED Requirements
|
|
365
|
+
### Requirement: {Feature}
|
|
366
|
+
{Description}
|
|
367
|
+
|
|
368
|
+
#### Scenario: {Success case}
|
|
369
|
+
- **WHEN** {action}
|
|
370
|
+
- **THEN** {result}
|
|
371
|
+
`)
|
|
372
|
+
|
|
373
|
+
// 2. Validate proposal
|
|
374
|
+
bash("openspec validate {change-id} --strict --no-interactive")
|
|
375
|
+
|
|
376
|
+
// 3. Implement code (delegate to coding agent)
|
|
377
|
+
task(category="quick", load_skills=["frontend-ui-ux"],
|
|
378
|
+
description="Implement {feature}",
|
|
379
|
+
prompt="Implement the following from tasks.md: ...")
|
|
380
|
+
|
|
381
|
+
// 4. Verify
|
|
382
|
+
lsp_diagnostics(filePath="{changed-file}", severity="error")
|
|
383
|
+
bash("cd sharex-frontend-v0 && pnpm build")
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Phase 5: Testing
|
|
389
|
+
|
|
390
|
+
### Objective
|
|
391
|
+
Generate E2E tests, run with Playwright MCP, capture screenshots, fix bugs until all pass.
|
|
392
|
+
|
|
393
|
+
### Checklist (`05-testing/checklist.md`)
|
|
394
|
+
|
|
395
|
+
```markdown
|
|
396
|
+
## Phase 5: Testing Checklist
|
|
397
|
+
|
|
398
|
+
### 5.1 E2E Test Generation
|
|
399
|
+
- [ ] Load e2e-test-generator skill
|
|
400
|
+
- [ ] Generate test cases from acceptance criteria
|
|
401
|
+
- [ ] Create page objects if needed
|
|
402
|
+
- [ ] Save tests to `e2e-tests/`
|
|
403
|
+
|
|
404
|
+
### 5.2 Test Execution with Playwright MCP
|
|
405
|
+
- [ ] Navigate to feature page
|
|
406
|
+
- [ ] Execute each test step
|
|
407
|
+
- [ ] Capture screenshot after each action
|
|
408
|
+
- [ ] Log all steps to `report.md`
|
|
409
|
+
|
|
410
|
+
### 5.3 Bug Fix Loop
|
|
411
|
+
- [ ] If test fails, document bug in `bug-fixes.md`
|
|
412
|
+
- [ ] Fix the bug
|
|
413
|
+
- [ ] Re-run test
|
|
414
|
+
- [ ] Repeat until pass
|
|
415
|
+
- [ ] Capture final passing screenshot
|
|
416
|
+
|
|
417
|
+
### 5.4 Phase Completion
|
|
418
|
+
- [ ] All E2E tests pass
|
|
419
|
+
- [ ] All screenshots captured
|
|
420
|
+
- [ ] Bug fixes documented
|
|
421
|
+
- [ ] Update `progress.json` to complete
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Actions
|
|
425
|
+
|
|
426
|
+
```typescript
|
|
427
|
+
// 1. Load E2E test generator skill
|
|
428
|
+
skill("e2e-test-generator")
|
|
429
|
+
|
|
430
|
+
// 2. Generate tests based on acceptance criteria
|
|
431
|
+
task(category="quick", load_skills=["e2e-test-generator", "playwright"],
|
|
432
|
+
description="Generate E2E tests for {feature}",
|
|
433
|
+
prompt="Generate E2E tests for {feature} based on acceptance criteria: ...")
|
|
434
|
+
|
|
435
|
+
// 3. Execute tests with Playwright MCP
|
|
436
|
+
playwright_browser_navigate(url="http://localhost:5123/{feature-page}")
|
|
437
|
+
playwright_browser_snapshot()
|
|
438
|
+
playwright_browser_take_screenshot(filename="/ai/feature-research/{feature}/05-testing/screenshots/01-initial.png")
|
|
439
|
+
|
|
440
|
+
// For each test step:
|
|
441
|
+
playwright_browser_click(ref="{element-ref}", element="{description}")
|
|
442
|
+
playwright_browser_take_screenshot(filename="/ai/feature-research/{feature}/05-testing/screenshots/02-after-click.png")
|
|
443
|
+
|
|
444
|
+
// 4. Bug fix loop
|
|
445
|
+
// IF test fails:
|
|
446
|
+
// - Document bug in bug-fixes.md
|
|
447
|
+
// - Fix the code
|
|
448
|
+
// - Re-run test
|
|
449
|
+
// - Repeat until pass
|
|
450
|
+
|
|
451
|
+
// 5. Save test report
|
|
452
|
+
write(filePath="/ai/feature-research/{feature}/05-testing/report.md", content=`
|
|
453
|
+
# E2E Test Report: {Feature}
|
|
454
|
+
|
|
455
|
+
## Test Results
|
|
456
|
+
| Test | Status | Screenshot |
|
|
457
|
+
|------|--------|------------|
|
|
458
|
+
| {test 1} | ✅ PASS | screenshots/01-xxx.png |
|
|
459
|
+
| {test 2} | ✅ PASS | screenshots/02-xxx.png |
|
|
460
|
+
|
|
461
|
+
## Bugs Found & Fixed
|
|
462
|
+
| Bug | Fix | Verified |
|
|
463
|
+
|-----|-----|----------|
|
|
464
|
+
| {bug 1} | {fix} | ✅ |
|
|
465
|
+
|
|
466
|
+
## Screenshots
|
|
467
|
+
{list of all screenshots with descriptions}
|
|
468
|
+
`)
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## Progress Tracking
|
|
474
|
+
|
|
475
|
+
### progress.json Schema
|
|
476
|
+
|
|
477
|
+
```json
|
|
478
|
+
{
|
|
479
|
+
"feature": "{feature-name}",
|
|
480
|
+
"currentPhase": 1,
|
|
481
|
+
"phases": {
|
|
482
|
+
"1-discovery": {
|
|
483
|
+
"status": "complete",
|
|
484
|
+
"completedAt": "2026-02-13T10:00:00Z",
|
|
485
|
+
"report": "01-discovery/report.md"
|
|
486
|
+
},
|
|
487
|
+
"2-analysis": {
|
|
488
|
+
"status": "in-progress",
|
|
489
|
+
"startedAt": "2026-02-13T10:30:00Z"
|
|
490
|
+
},
|
|
491
|
+
"3-design": { "status": "pending" },
|
|
492
|
+
"4-implementation": { "status": "pending" },
|
|
493
|
+
"5-testing": { "status": "pending" }
|
|
494
|
+
},
|
|
495
|
+
"lastUpdated": "2026-02-13T10:30:00Z"
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Resume Instructions
|
|
500
|
+
|
|
501
|
+
When resuming work:
|
|
502
|
+
1. Read `progress.json` to find current phase
|
|
503
|
+
2. Read the current phase's `checklist.md` to find incomplete items
|
|
504
|
+
3. Read previous phase's `report.md` for context
|
|
505
|
+
4. Continue from the first unchecked item
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## Tool Reference
|
|
510
|
+
|
|
511
|
+
| Phase | Tools | Purpose |
|
|
512
|
+
|-------|-------|---------|
|
|
513
|
+
| 1 | explore agent, librarian agent, graphql-tools MCP, grep | Gather context |
|
|
514
|
+
| 2 | Sequential-Thinking MCP, oracle agent | Analyze and plan |
|
|
515
|
+
| 3 | ui-ux-pro-max skill, visual-engineering category | Design UI |
|
|
516
|
+
| 4 | OpenSpec CLI, coding agents, lsp_diagnostics | Implement |
|
|
517
|
+
| 5 | e2e-test-generator skill, playwright MCP | Test and verify |
|
|
518
|
+
|
|
519
|
+
---
|
|
520
|
+
|
|
521
|
+
## Quick Start
|
|
522
|
+
|
|
523
|
+
```bash
|
|
524
|
+
# 1. Create feature directory
|
|
525
|
+
FEATURE="meal-planning-enhancement"
|
|
526
|
+
mkdir -p /ai/feature-research/$FEATURE/{01-discovery,02-analysis,03-design,04-implementation,05-testing/screenshots}
|
|
527
|
+
|
|
528
|
+
# 2. Initialize progress.json
|
|
529
|
+
echo '{"feature":"'$FEATURE'","currentPhase":1,"phases":{"1-discovery":{"status":"in-progress"},"2-analysis":{"status":"pending"},"3-design":{"status":"pending"},"4-implementation":{"status":"pending"},"5-testing":{"status":"pending"}}}' > /ai/feature-research/$FEATURE/progress.json
|
|
530
|
+
|
|
531
|
+
# 3. Start Phase 1: Discovery
|
|
532
|
+
# (Follow checklist above)
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## Anti-Patterns
|
|
538
|
+
|
|
539
|
+
| Don't | Do Instead |
|
|
540
|
+
|-------|------------|
|
|
541
|
+
| Skip phases | Complete each phase fully |
|
|
542
|
+
| Forget screenshots | Capture after EVERY action |
|
|
543
|
+
| Ignore test failures | Fix and re-test until pass |
|
|
544
|
+
| Skip OpenSpec | Always create proposal first |
|
|
545
|
+
| Manual testing only | Use Playwright MCP for E2E |
|
|
546
|
+
| Lose context | Save reports to files |
|
|
547
|
+
|
|
548
|
+
---
|
|
549
|
+
|
|
550
|
+
## Success Criteria
|
|
551
|
+
|
|
552
|
+
Feature is complete when:
|
|
553
|
+
- [ ] All 5 phase checklists are 100% complete
|
|
554
|
+
- [ ] All E2E tests pass
|
|
555
|
+
- [ ] All screenshots captured
|
|
556
|
+
- [ ] OpenSpec proposal validated
|
|
557
|
+
- [ ] Build passes without errors
|
|
558
|
+
- [ ] `final-summary.md` written
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "comprehensive-feature-builder",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Systematic 5-phase workflow for researching, designing, implementing, and testing features with checkpoint-based progress tracking",
|
|
5
|
+
"compatibility": "OpenCode",
|
|
6
|
+
"agent": null,
|
|
7
|
+
"commands": [],
|
|
8
|
+
"tags": ["feature", "workflow", "testing", "implementation", "design"]
|
|
9
|
+
}
|