@hustle-together/api-dev-tools 3.12.3 → 4.5.1
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/.claude/adr-requests/.gitkeep +10 -0
- package/.claude/agents/adr-researcher.md +109 -0
- package/.claude/agents/visual-analyzer.md +183 -0
- package/.claude/api-dev-state.json +7 -463
- package/.claude/documentation-audit.json +114 -0
- package/.claude/registry.json +289 -0
- package/.claude/settings.json +45 -1
- package/.claude/workflow-logs/None.json +49 -0
- package/.claude/workflow-logs/session-20251230-143727.json +106 -0
- package/.skills/adr-deep-research/SKILL.md +351 -0
- package/.skills/api-create/SKILL.md +116 -17
- package/.skills/api-research/SKILL.md +130 -0
- package/.skills/docs-sync/SKILL.md +260 -0
- package/.skills/docs-update/SKILL.md +205 -0
- package/.skills/hustle-brand/SKILL.md +368 -0
- package/.skills/hustle-build/SKILL.md +786 -0
- package/.skills/hustle-build-review/SKILL.md +518 -0
- package/.skills/parallel-spawn/SKILL.md +212 -0
- package/.skills/ralph-continue/SKILL.md +151 -0
- package/.skills/ralph-loop/SKILL.md +341 -0
- package/.skills/ralph-status/SKILL.md +87 -0
- package/.skills/refactor/SKILL.md +59 -0
- package/.skills/shadcn/SKILL.md +522 -0
- package/.skills/test-all/SKILL.md +210 -0
- package/.skills/test-builds/SKILL.md +208 -0
- package/.skills/test-debug/SKILL.md +212 -0
- package/.skills/test-e2e/SKILL.md +168 -0
- package/.skills/test-review/SKILL.md +707 -0
- package/.skills/test-unit/SKILL.md +143 -0
- package/.skills/test-visual/SKILL.md +301 -0
- package/.skills/token-report/SKILL.md +132 -0
- package/CHANGELOG.md +575 -0
- package/README.md +426 -56
- package/bin/cli.js +1538 -88
- package/commands/hustle-api-create.md +22 -0
- package/commands/hustle-build.md +259 -0
- package/commands/hustle-combine.md +81 -2
- package/commands/hustle-ui-create-page.md +84 -2
- package/commands/hustle-ui-create.md +82 -2
- package/hooks/__pycache__/api-workflow-check.cpython-314.pyc +0 -0
- package/hooks/__pycache__/auto-answer.cpython-314.pyc +0 -0
- package/hooks/__pycache__/cache-research.cpython-314.pyc +0 -0
- package/hooks/__pycache__/check-api-routes.cpython-314.pyc +0 -0
- package/hooks/__pycache__/check-playwright-setup.cpython-314.pyc +0 -0
- package/hooks/__pycache__/check-storybook-setup.cpython-314.pyc +0 -0
- package/hooks/__pycache__/check-update.cpython-314.pyc +0 -0
- package/hooks/__pycache__/completion-promise-detector.cpython-314.pyc +0 -0
- package/hooks/__pycache__/context-capacity-warning.cpython-314.pyc +0 -0
- package/hooks/__pycache__/detect-interruption.cpython-314.pyc +0 -0
- package/hooks/__pycache__/docs-update-check.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-a11y-audit.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-brand-guide.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-component-type-confirm.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-deep-research.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-disambiguation.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-documentation.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-dry-run.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-environment.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-external-research.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-freshness.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-interview.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-page-components.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-page-data-schema.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-questions-sourced.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-refactor.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-research.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-schema-from-interview.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-schema.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-scope.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-tdd-red.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-ui-disambiguation.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-ui-interview.cpython-314.pyc +0 -0
- package/hooks/__pycache__/enforce-verify.cpython-314.pyc +0 -0
- package/hooks/__pycache__/generate-adr-options.cpython-314.pyc +0 -0
- package/hooks/__pycache__/generate-manifest-entry.cpython-314.pyc +0 -0
- package/hooks/__pycache__/hook_utils.cpython-314.pyc +0 -0
- package/hooks/__pycache__/notify-input-needed.cpython-314.pyc +0 -0
- package/hooks/__pycache__/notify-phase-complete.cpython-314.pyc +0 -0
- package/hooks/__pycache__/ntfy-on-question.cpython-314.pyc +0 -0
- package/hooks/__pycache__/orchestrator-completion.cpython-314.pyc +0 -0
- package/hooks/__pycache__/orchestrator-handoff.cpython-314.pyc +0 -0
- package/hooks/__pycache__/orchestrator-session-startup.cpython-314.pyc +0 -0
- package/hooks/__pycache__/parallel-orchestrator.cpython-314.pyc +0 -0
- package/hooks/__pycache__/periodic-reground.cpython-314.pyc +0 -0
- package/hooks/__pycache__/project-document-prompt.cpython-314.pyc +0 -0
- package/hooks/__pycache__/remote-question-proxy.cpython-314.pyc +0 -0
- package/hooks/__pycache__/remote-question-server.cpython-314.pyc +0 -0
- package/hooks/__pycache__/run-code-review.cpython-314.pyc +0 -0
- package/hooks/__pycache__/run-visual-qa.cpython-314.pyc +0 -0
- package/hooks/__pycache__/session-logger.cpython-314.pyc +0 -0
- package/hooks/__pycache__/session-startup.cpython-314.pyc +0 -0
- package/hooks/__pycache__/track-scope-coverage.cpython-314.pyc +0 -0
- package/hooks/__pycache__/track-token-usage.cpython-314.pyc +0 -0
- package/hooks/__pycache__/track-tool-use.cpython-314.pyc +0 -0
- package/hooks/__pycache__/update-adr-decision.cpython-314.pyc +0 -0
- package/hooks/__pycache__/update-api-showcase.cpython-314.pyc +0 -0
- package/hooks/__pycache__/update-registry.cpython-314.pyc +0 -0
- package/hooks/__pycache__/update-ui-showcase.cpython-314.pyc +0 -0
- package/hooks/__pycache__/verify-after-green.cpython-314.pyc +0 -0
- package/hooks/__pycache__/verify-implementation.cpython-314.pyc +0 -0
- package/hooks/api-workflow-check.py +34 -0
- package/hooks/auto-answer.py +305 -0
- package/hooks/check-update.py +132 -0
- package/hooks/completion-promise-detector.py +293 -0
- package/hooks/context-capacity-warning.py +171 -0
- package/hooks/docs-update-check.py +120 -0
- package/hooks/enforce-dry-run.py +134 -0
- package/hooks/enforce-external-research.py +25 -0
- package/hooks/enforce-interview.py +20 -0
- package/hooks/generate-adr-options.py +282 -0
- package/hooks/hook_utils.py +609 -0
- package/hooks/lib/__pycache__/__init__.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/greptile.cpython-314.pyc +0 -0
- package/hooks/lib/__pycache__/ntfy.cpython-314.pyc +0 -0
- package/hooks/ntfy-on-question.py +240 -0
- package/hooks/orchestrator-completion.py +313 -0
- package/hooks/orchestrator-handoff.py +267 -0
- package/hooks/orchestrator-session-startup.py +146 -0
- package/hooks/parallel-orchestrator.py +451 -0
- package/hooks/periodic-reground.py +270 -67
- package/hooks/project-document-prompt.py +302 -0
- package/hooks/remote-question-proxy.py +284 -0
- package/hooks/remote-question-server.py +1224 -0
- package/hooks/run-code-review.py +176 -29
- package/hooks/run-visual-qa.py +338 -0
- package/hooks/session-logger.py +27 -1
- package/hooks/session-startup.py +113 -0
- package/hooks/update-adr-decision.py +236 -0
- package/hooks/update-api-showcase.py +13 -1
- package/hooks/update-testing-checklist.py +195 -0
- package/hooks/update-ui-showcase.py +13 -1
- package/package.json +7 -3
- package/scripts/extract-schema-docs.cjs +322 -0
- package/templates/.skills/hustle-interview/SKILL.md +174 -0
- package/templates/CLAUDE-SECTION.md +89 -64
- package/templates/adr-viewer/_components/ADRViewer.tsx +326 -0
- package/templates/api-dev-state.json +33 -1
- package/templates/api-showcase/_components/APIModal.tsx +100 -8
- package/templates/api-showcase/_components/APIShowcase.tsx +36 -4
- package/templates/api-showcase/_components/APITester.tsx +367 -58
- package/templates/brand-page/page.tsx +645 -0
- package/templates/component/Component.visual.spec.ts +30 -24
- package/templates/docs/page.tsx +230 -0
- package/templates/eslint-plugin-zod-schema/index.js +446 -0
- package/templates/eslint-plugin-zod-schema/package.json +26 -0
- package/templates/github-workflows/security.yml +274 -0
- package/templates/hustle-build-defaults.json +136 -0
- package/templates/hustle-dev-dashboard/page.tsx +365 -0
- package/templates/page/page.e2e.test.ts +30 -26
- package/templates/performance-budgets.json +63 -5
- package/templates/playwright-report/page.tsx +258 -0
- package/templates/registry.json +279 -3
- package/templates/review-dashboard/page.tsx +510 -0
- package/templates/settings.json +155 -7
- package/templates/test-results/page.tsx +237 -0
- package/templates/typedoc.json +19 -0
- package/templates/ui-showcase/_components/UIShowcase.tsx +48 -1
- package/templates/ui-showcase/_components/VisualTestingDashboard.tsx +579 -0
- package/templates/ui-showcase/page.tsx +1 -1
|
@@ -468,6 +468,28 @@ Both conditions must be true for the flag to be set.
|
|
|
468
468
|
└───────────────────────────────────────────────────────────┘
|
|
469
469
|
```
|
|
470
470
|
|
|
471
|
+
### End-of-Workflow Summary
|
|
472
|
+
|
|
473
|
+
After successful API creation, display:
|
|
474
|
+
|
|
475
|
+
```
|
|
476
|
+
═══════════════════════════════════════════════════════════════
|
|
477
|
+
✅ API CREATED: [endpoint-name]
|
|
478
|
+
|
|
479
|
+
📍 Quick Links:
|
|
480
|
+
• Test it: /api-showcase
|
|
481
|
+
• API Docs: /docs/api/[endpoint-name]
|
|
482
|
+
• Run tests: pnpm test src/app/api/v2/[endpoint-name]
|
|
483
|
+
• TypeDoc: pnpm typedoc
|
|
484
|
+
|
|
485
|
+
📊 Dashboard: /hustle-dev-dashboard
|
|
486
|
+
|
|
487
|
+
Next Steps:
|
|
488
|
+
• /hustle-combine - Combine with other APIs
|
|
489
|
+
• /commit - Commit your changes
|
|
490
|
+
═══════════════════════════════════════════════════════════════
|
|
491
|
+
```
|
|
492
|
+
|
|
471
493
|
### Showcase Redirect
|
|
472
494
|
|
|
473
495
|
After successful API creation, output:
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# Hustle Build - Master Orchestrator v4.6.0
|
|
2
|
+
|
|
3
|
+
**Usage:** `/hustle-build [description] [--auto] [--parallel] [--resume] [--dry-run]`
|
|
4
|
+
|
|
5
|
+
**Purpose:** Build complete features from natural language descriptions. Orchestrates API, Component, Page, and Combined workflows automatically with shared decisions.
|
|
6
|
+
|
|
7
|
+
## Arguments
|
|
8
|
+
|
|
9
|
+
- `$ARGUMENTS` - Natural language description of what to build
|
|
10
|
+
- `--auto` - Fully autonomous mode, auto-answers questions with comprehensive defaults
|
|
11
|
+
- `--parallel` - Run up to 5 Opus agents in parallel (requires worktrees)
|
|
12
|
+
- `--resume [id]` - Resume an interrupted build from last checkpoint
|
|
13
|
+
- `--dry-run` - Show what would be created without executing
|
|
14
|
+
- `--max-iterations [N]` - Max retry iterations per phase (default: 5)
|
|
15
|
+
- `--skip-document` - Skip the project document prompt
|
|
16
|
+
- `--from-document [path]` - Use specified file as project document (PRD, spec)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Simple build
|
|
24
|
+
/hustle-build weather dashboard with search and forecast
|
|
25
|
+
|
|
26
|
+
# With a PRD/spec document
|
|
27
|
+
/hustle-build --from-document ./specs/feature.md
|
|
28
|
+
|
|
29
|
+
# Fully autonomous
|
|
30
|
+
/hustle-build --auto e-commerce checkout with cart and payments
|
|
31
|
+
|
|
32
|
+
# Parallel execution (5 agents)
|
|
33
|
+
/hustle-build --parallel dashboard with stats, charts, and user settings
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 10-Phase Workflow
|
|
39
|
+
|
|
40
|
+
### Phase 1: Document Intake & Parsing
|
|
41
|
+
- Prompts for project document (PRD, spec, requirements)
|
|
42
|
+
- Parses document to extract pages, components, APIs
|
|
43
|
+
- Builds dependency graph
|
|
44
|
+
- User approves decomposition
|
|
45
|
+
|
|
46
|
+
### Phase 2: Decomposition
|
|
47
|
+
- Analyzes request to identify:
|
|
48
|
+
- **APIs** needed (Tier 1 - no dependencies)
|
|
49
|
+
- **Components** needed (Tier 2 - depend on APIs)
|
|
50
|
+
- **Pages** needed (Tier 3 - depend on components)
|
|
51
|
+
- Determines execution order based on dependencies
|
|
52
|
+
|
|
53
|
+
### Phase 3: Orchestrator Interview
|
|
54
|
+
- Single interview for shared decisions:
|
|
55
|
+
- Authentication method
|
|
56
|
+
- Error handling strategy
|
|
57
|
+
- Brand guide usage
|
|
58
|
+
- Caching strategy
|
|
59
|
+
- Answers propagate to ALL sub-workflows
|
|
60
|
+
|
|
61
|
+
### Phases 4-6: Sub-Workflow Execution
|
|
62
|
+
- Executes each workflow with injected context
|
|
63
|
+
- Uses `/api-create` for APIs
|
|
64
|
+
- Uses `/hustle-ui-create` for components
|
|
65
|
+
- Uses `/hustle-ui-create-page` for pages
|
|
66
|
+
- Ralph Wiggum loops ensure quality
|
|
67
|
+
|
|
68
|
+
### Phase 7: Integration & Wiring
|
|
69
|
+
- Connects components to API data
|
|
70
|
+
- Wires up state management
|
|
71
|
+
- Creates data flow patterns
|
|
72
|
+
|
|
73
|
+
### Phase 8: Unified Testing
|
|
74
|
+
- Runs full test suite across all created elements
|
|
75
|
+
- Integration tests for API → Component → Page flow
|
|
76
|
+
- Visual regression tests
|
|
77
|
+
|
|
78
|
+
### Phase 9: Documentation
|
|
79
|
+
- Updates registry with all new elements
|
|
80
|
+
- Generates API documentation
|
|
81
|
+
- Creates component Storybook stories
|
|
82
|
+
|
|
83
|
+
### Phase 10: Completion
|
|
84
|
+
- Final verification
|
|
85
|
+
- Commits all changes
|
|
86
|
+
- Summary of created elements
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Auto Mode (`--auto`)
|
|
91
|
+
|
|
92
|
+
When `--auto` flag is used:
|
|
93
|
+
|
|
94
|
+
1. **No Interactive Questions:**
|
|
95
|
+
- All questions auto-answered with comprehensive defaults
|
|
96
|
+
- Uses `.claude/hustle-build-defaults.json` for configured answers
|
|
97
|
+
- Falls back to "most comprehensive" option when no default exists
|
|
98
|
+
|
|
99
|
+
2. **Default Selections:**
|
|
100
|
+
- Auth: As configured in defaults (typically JWT or API Key)
|
|
101
|
+
- Error Handling: partial-success
|
|
102
|
+
- Brand Guide: enabled
|
|
103
|
+
- Testing: full coverage
|
|
104
|
+
|
|
105
|
+
3. **Logging:**
|
|
106
|
+
- All decisions logged to `.claude/hustle-build-state.json`
|
|
107
|
+
- Review with `/hustle-build-review [build-id]`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Parallel Execution (`--parallel`)
|
|
112
|
+
|
|
113
|
+
When `--parallel` flag is used:
|
|
114
|
+
|
|
115
|
+
1. **Creates git worktrees** for each independent workflow
|
|
116
|
+
2. **Spawns up to 5 Opus agents** simultaneously
|
|
117
|
+
3. **Injects shared decisions** from interview into each agent
|
|
118
|
+
4. **Merges results** when all complete
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
122
|
+
│ PARALLEL ORCHESTRATOR │
|
|
123
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
124
|
+
│ Shared Context (from Interview) │
|
|
125
|
+
│ ┌───────────────────────────────────────────────────────┐ │
|
|
126
|
+
│ │ Auth: JWT | Errors: partial-success | Brand: yes │ │
|
|
127
|
+
│ └───────────────────────────────────────────────────────┘ │
|
|
128
|
+
│ │ │
|
|
129
|
+
│ ┌───────────────┼───────────────┐ │
|
|
130
|
+
│ ▼ ▼ ▼ │
|
|
131
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
132
|
+
│ │ Agent #1 │ │ Agent #2 │ │ Agent #3 │ │
|
|
133
|
+
│ │ /api-create │ │ /api-create │ │ /hustle-ui │ │
|
|
134
|
+
│ │ user-stats │ │ chart-data │ │ StatCard │ │
|
|
135
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
136
|
+
│ │ │ │ │
|
|
137
|
+
│ └───────────────┼───────────────┘ │
|
|
138
|
+
│ ▼ │
|
|
139
|
+
│ ┌───────────────────────────────────────────────────────┐ │
|
|
140
|
+
│ │ MERGE COORDINATOR │ │
|
|
141
|
+
│ │ • Combines registry entries │ │
|
|
142
|
+
│ │ • Resolves conflicts │ │
|
|
143
|
+
│ │ • Creates unified PR │ │
|
|
144
|
+
│ └───────────────────────────────────────────────────────┘ │
|
|
145
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Ralph Wiggum Loops (Self-Terminating)
|
|
151
|
+
|
|
152
|
+
Each quality gate loops until passing:
|
|
153
|
+
|
|
154
|
+
| Phase | Loop Until | Promise Signal |
|
|
155
|
+
|-------|-----------|----------------|
|
|
156
|
+
| TDD Green | All tests pass | `<promise>TESTS_PASSING</promise>` |
|
|
157
|
+
| Code Review | Greptile clean | `<promise>REVIEW_CLEAN</promise>` |
|
|
158
|
+
| Visual QA | Haiku approves | `<promise>VISUAL_CLEAN</promise>` |
|
|
159
|
+
| Verification | Docs match code | `<promise>VERIFIED</promise>` |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## State Tracking
|
|
164
|
+
|
|
165
|
+
All progress tracked in `.claude/hustle-build-state.json`:
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"build_id": "weather-dashboard-20231215",
|
|
170
|
+
"status": "in_progress",
|
|
171
|
+
"current_phase": 4,
|
|
172
|
+
"decomposition": {
|
|
173
|
+
"apis": ["weather-current", "weather-forecast"],
|
|
174
|
+
"components": ["SearchBar", "WeatherCard", "ForecastList"],
|
|
175
|
+
"pages": ["WeatherDashboard"]
|
|
176
|
+
},
|
|
177
|
+
"shared_decisions": {
|
|
178
|
+
"auth": "none",
|
|
179
|
+
"error_handling": "partial-success",
|
|
180
|
+
"brand_guide": true
|
|
181
|
+
},
|
|
182
|
+
"completed_workflows": ["weather-current", "weather-forecast"],
|
|
183
|
+
"pending_workflows": ["SearchBar", "WeatherCard"]
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Remote Dashboard
|
|
190
|
+
|
|
191
|
+
Monitor builds from your phone:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Start the dashboard server
|
|
195
|
+
python hooks/remote-question-server.py
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Access at `http://localhost:8765` or `http://YOUR_COMPUTER_IP:8765` on same network.
|
|
199
|
+
|
|
200
|
+
Features:
|
|
201
|
+
- Real-time phase progress
|
|
202
|
+
- Answer questions remotely
|
|
203
|
+
- Browser notifications for new questions
|
|
204
|
+
- Build queue visualization
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Examples
|
|
209
|
+
|
|
210
|
+
### Example 1: Weather Dashboard
|
|
211
|
+
```
|
|
212
|
+
/hustle-build weather dashboard with city search, current conditions, and 5-day forecast
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Creates:
|
|
216
|
+
- `weather-geocoding` API (Open-Meteo)
|
|
217
|
+
- `weather-forecast` API (Open-Meteo)
|
|
218
|
+
- `SearchBar` component
|
|
219
|
+
- `WeatherCard` component
|
|
220
|
+
- `ForecastList` component
|
|
221
|
+
- `WeatherDashboard` page
|
|
222
|
+
|
|
223
|
+
### Example 2: E-commerce Checkout
|
|
224
|
+
```
|
|
225
|
+
/hustle-build --auto checkout flow with cart summary, payment form, and order confirmation
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Creates:
|
|
229
|
+
- `cart` API
|
|
230
|
+
- `payments` API (Stripe)
|
|
231
|
+
- `orders` API
|
|
232
|
+
- `CartSummary` component
|
|
233
|
+
- `PaymentForm` component
|
|
234
|
+
- `OrderConfirmation` component
|
|
235
|
+
- `CheckoutPage` page
|
|
236
|
+
|
|
237
|
+
### Example 3: User Dashboard
|
|
238
|
+
```
|
|
239
|
+
/hustle-build --parallel user dashboard with profile, stats, activity feed, and settings
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Creates (in parallel):
|
|
243
|
+
- `user-profile` API
|
|
244
|
+
- `user-stats` API
|
|
245
|
+
- `activity-feed` API
|
|
246
|
+
- `ProfileCard` component
|
|
247
|
+
- `StatsGrid` component
|
|
248
|
+
- `ActivityFeed` component
|
|
249
|
+
- `SettingsPanel` component
|
|
250
|
+
- `DashboardPage` page
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## See Also
|
|
255
|
+
|
|
256
|
+
- `/hustle-combine` - Combine existing APIs/components
|
|
257
|
+
- `/hustle-ui-create` - Create single component
|
|
258
|
+
- `/hustle-ui-create-page` - Create single page
|
|
259
|
+
- `/api-create` - Create single API integration
|
|
@@ -1,9 +1,65 @@
|
|
|
1
|
-
# Hustle Combine - API and UI Orchestration Workflow
|
|
1
|
+
# Hustle Combine - API and UI Orchestration Workflow v4.0.0
|
|
2
2
|
|
|
3
|
-
**Usage:** `/hustle-combine [api|ui]`
|
|
3
|
+
**Usage:** `/hustle-combine [api|ui] [--auto] [--resume [workflow-id]]`
|
|
4
4
|
|
|
5
5
|
**Purpose:** Combines existing APIs or UI elements from the registry into new orchestration endpoints or composed components.
|
|
6
6
|
|
|
7
|
+
## Arguments
|
|
8
|
+
|
|
9
|
+
- `[api|ui]` - Mode: combine APIs or UI elements
|
|
10
|
+
- `--auto` - Fully autonomous mode, auto-answers all questions with comprehensive defaults
|
|
11
|
+
- `--resume [workflow-id]` - Resume an interrupted workflow from its last phase
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Auto Mode (`--auto`)
|
|
16
|
+
|
|
17
|
+
When `--auto` flag is used:
|
|
18
|
+
|
|
19
|
+
1. **No Interactive Questions:**
|
|
20
|
+
- All questions auto-answered with comprehensive defaults
|
|
21
|
+
- Uses `.claude/hustle-build-defaults.json` for configured answers
|
|
22
|
+
- Falls back to "most comprehensive" option when no default exists
|
|
23
|
+
|
|
24
|
+
2. **Comprehensive Selection Logic:**
|
|
25
|
+
- Selects parallel execution (when APIs are independent)
|
|
26
|
+
- Uses partial-success error handling
|
|
27
|
+
- Enables unified caching strategy
|
|
28
|
+
- Uses exponential retry with 30s timeout
|
|
29
|
+
|
|
30
|
+
3. **API Selection in Orchestrated Mode:**
|
|
31
|
+
- When `orchestrated: true`, APIs are pre-selected by orchestrator
|
|
32
|
+
- Selection phase is skipped, proceeds directly to Scope
|
|
33
|
+
|
|
34
|
+
4. **Logging:**
|
|
35
|
+
- All decisions logged to `.claude/workflow-logs/hustle-combine/[workflow-id].json`
|
|
36
|
+
- Review with `/hustle-combine-review [workflow-id]`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Resume Mode (`--resume`)
|
|
41
|
+
|
|
42
|
+
When `--resume [workflow-id]` is used:
|
|
43
|
+
|
|
44
|
+
1. Load state from `.claude/api-dev-state.json`
|
|
45
|
+
2. Find the last incomplete phase
|
|
46
|
+
3. Continue from that point
|
|
47
|
+
4. Preserve all previous decisions and API selections
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Orchestrated Mode
|
|
52
|
+
|
|
53
|
+
When running as part of `/hustle-build`:
|
|
54
|
+
|
|
55
|
+
1. `orchestrated: true` flag is set in state
|
|
56
|
+
2. `shared_decisions` are pre-filled from orchestrator interview
|
|
57
|
+
3. Source APIs are pre-selected based on orchestrator decomposition
|
|
58
|
+
4. Questions covered by shared_decisions are SKIPPED
|
|
59
|
+
5. Only combination-specific questions are asked (execution order, caching)
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
7
63
|
## Overview
|
|
8
64
|
|
|
9
65
|
This command reads from `.claude/registry.json` to present available elements for combination. It creates NEW orchestration layers using EXISTING, tested components.
|
|
@@ -837,6 +893,29 @@ Update registry.json with the new combined API:
|
|
|
837
893
|
}
|
|
838
894
|
```
|
|
839
895
|
|
|
896
|
+
### End-of-Workflow Summary
|
|
897
|
+
|
|
898
|
+
After successful combination, display:
|
|
899
|
+
|
|
900
|
+
```
|
|
901
|
+
═══════════════════════════════════════════════════════════════
|
|
902
|
+
✅ COMBINED API CREATED: [combined-name]
|
|
903
|
+
|
|
904
|
+
📍 Quick Links:
|
|
905
|
+
• Test it: /api-showcase
|
|
906
|
+
• API Docs: /docs/api/[combined-name]
|
|
907
|
+
• Run tests: pnpm test src/app/api/v2/[combined-name]
|
|
908
|
+
• TypeDoc: pnpm typedoc
|
|
909
|
+
|
|
910
|
+
📦 Combined: [api1] + [api2]
|
|
911
|
+
📊 Dashboard: /hustle-dev-dashboard
|
|
912
|
+
|
|
913
|
+
Next Steps:
|
|
914
|
+
• /commit - Commit your changes
|
|
915
|
+
• /hustle-api-create - Create another API
|
|
916
|
+
═══════════════════════════════════════════════════════════════
|
|
917
|
+
```
|
|
918
|
+
|
|
840
919
|
---
|
|
841
920
|
|
|
842
921
|
## Mode B: Combine UI (Coming Soon)
|
|
@@ -5,11 +5,71 @@ argument-hint: [page-name]
|
|
|
5
5
|
|
|
6
6
|
# Hustle UI Create - Page Mode
|
|
7
7
|
|
|
8
|
-
**Version:**
|
|
8
|
+
**Version:** 4.0.0
|
|
9
9
|
**14-phase workflow for creating Next.js App Router pages**
|
|
10
10
|
|
|
11
|
+
**Usage:** `/hustle-ui-create-page [page-name] [--auto] [--resume [workflow-id]]`
|
|
12
|
+
|
|
11
13
|
You are creating a page using the Hustle Together interview-driven workflow.
|
|
12
14
|
|
|
15
|
+
## Arguments
|
|
16
|
+
|
|
17
|
+
- `[page-name]` - Name of the page to create
|
|
18
|
+
- `--auto` - Fully autonomous mode, auto-answers all questions with comprehensive defaults
|
|
19
|
+
- `--resume [workflow-id]` - Resume an interrupted workflow from its last phase
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Auto Mode (`--auto`)
|
|
24
|
+
|
|
25
|
+
When `--auto` flag is used:
|
|
26
|
+
|
|
27
|
+
1. **No Interactive Questions:**
|
|
28
|
+
- All questions auto-answered with comprehensive defaults
|
|
29
|
+
- Uses `.claude/hustle-build-defaults.json` for configured answers
|
|
30
|
+
- Falls back to "most comprehensive" option when no default exists
|
|
31
|
+
|
|
32
|
+
2. **Comprehensive Selection Logic:**
|
|
33
|
+
- Uses responsive-grid layout
|
|
34
|
+
- Enables full SEO (Open Graph, Twitter cards, JSON-LD)
|
|
35
|
+
- Creates loading states and error boundaries
|
|
36
|
+
- Enables prefetching and Suspense
|
|
37
|
+
- Uses all available components from registry
|
|
38
|
+
|
|
39
|
+
3. **Error Handling:**
|
|
40
|
+
- E2E test failures: Retry 3x, then log and continue
|
|
41
|
+
- Missing API routes: Log warning, create stubs
|
|
42
|
+
- Performance budget exceeded: Log warning, continue
|
|
43
|
+
|
|
44
|
+
4. **Logging:**
|
|
45
|
+
- All decisions logged to `.claude/workflow-logs/ui-create-page/[workflow-id].json`
|
|
46
|
+
- Review with `/hustle-ui-create-page-review [workflow-id]`
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Resume Mode (`--resume`)
|
|
51
|
+
|
|
52
|
+
When `--resume [workflow-id]` is used:
|
|
53
|
+
|
|
54
|
+
1. Load state from `.claude/api-dev-state.json`
|
|
55
|
+
2. Find the last incomplete phase
|
|
56
|
+
3. Continue from that point
|
|
57
|
+
4. Preserve all previous decisions
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Orchestrated Mode
|
|
62
|
+
|
|
63
|
+
When running as part of `/hustle-build`:
|
|
64
|
+
|
|
65
|
+
1. `orchestrated: true` flag is set in state
|
|
66
|
+
2. `shared_decisions` are pre-filled from orchestrator interview
|
|
67
|
+
3. Questions covered by shared_decisions are SKIPPED (e.g., auth, brand guide, testing level)
|
|
68
|
+
4. Components to use are pre-selected based on orchestrator decomposition
|
|
69
|
+
5. Only page-specific questions are asked (layout, SEO details)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
13
73
|
## Pre-Flight Check
|
|
14
74
|
|
|
15
75
|
Before starting, verify state file exists:
|
|
@@ -911,6 +971,28 @@ Run `pnpm dev` and navigate to /ui-showcase to see it.
|
|
|
911
971
|
|
|
912
972
|
Update state: `phases.completion.status = "complete"`
|
|
913
973
|
|
|
974
|
+
### End-of-Workflow Summary
|
|
975
|
+
|
|
976
|
+
After successful page creation, display:
|
|
977
|
+
|
|
978
|
+
```
|
|
979
|
+
═══════════════════════════════════════════════════════════════
|
|
980
|
+
✅ PAGE CREATED: [PageName]
|
|
981
|
+
|
|
982
|
+
📍 Quick Links:
|
|
983
|
+
• View page: /[page-name]
|
|
984
|
+
• UI Showcase: /ui-showcase
|
|
985
|
+
• Run E2E: pnpm playwright test src/app/[page-name]
|
|
986
|
+
|
|
987
|
+
📊 Dashboard: /hustle-dev-dashboard
|
|
988
|
+
|
|
989
|
+
Next Steps:
|
|
990
|
+
• /hustle-ui-create - Create components for this page
|
|
991
|
+
• /hustle-api-create - Create APIs this page needs
|
|
992
|
+
• /commit - Commit your changes
|
|
993
|
+
═══════════════════════════════════════════════════════════════
|
|
994
|
+
```
|
|
995
|
+
|
|
914
996
|
---
|
|
915
997
|
|
|
916
998
|
# State File Structure
|
|
@@ -992,5 +1074,5 @@ Update state: `phases.completion.status = "complete"`
|
|
|
992
1074
|
|
|
993
1075
|
---
|
|
994
1076
|
|
|
995
|
-
**Version:**
|
|
1077
|
+
**Version:** 4.0.0
|
|
996
1078
|
**Last Updated:** 2025-12-28
|
|
@@ -5,11 +5,69 @@ argument-hint: [component-name]
|
|
|
5
5
|
|
|
6
6
|
# Hustle UI Create
|
|
7
7
|
|
|
8
|
-
**Version:**
|
|
8
|
+
**Version:** 4.0.0
|
|
9
9
|
**14-phase workflow for creating UI components and pages**
|
|
10
10
|
|
|
11
|
+
**Usage:** `/hustle-ui-create [component-name] [--auto] [--resume [workflow-id]]`
|
|
12
|
+
|
|
11
13
|
You are creating a UI element using the Hustle Together interview-driven workflow.
|
|
12
14
|
|
|
15
|
+
## Arguments
|
|
16
|
+
|
|
17
|
+
- `[component-name]` - Name of the component to create
|
|
18
|
+
- `--auto` - Fully autonomous mode, auto-answers all questions with comprehensive defaults
|
|
19
|
+
- `--resume [workflow-id]` - Resume an interrupted workflow from its last phase
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Auto Mode (`--auto`)
|
|
24
|
+
|
|
25
|
+
When `--auto` flag is used:
|
|
26
|
+
|
|
27
|
+
1. **No Interactive Questions:**
|
|
28
|
+
- All questions auto-answered with comprehensive defaults
|
|
29
|
+
- Uses `.claude/hustle-build-defaults.json` for configured answers
|
|
30
|
+
- Falls back to "most comprehensive" option when no default exists
|
|
31
|
+
|
|
32
|
+
2. **Comprehensive Selection Logic:**
|
|
33
|
+
- Selects ALL variants (size, color, state)
|
|
34
|
+
- Enables full accessibility (WCAG 2.1 AA)
|
|
35
|
+
- Enables animations and responsive design
|
|
36
|
+
- Creates all Storybook stories
|
|
37
|
+
|
|
38
|
+
3. **Error Handling:**
|
|
39
|
+
- Test failures: Retry 3x, then log and continue
|
|
40
|
+
- Visual regression: Update baselines automatically
|
|
41
|
+
- Missing packages: Install automatically
|
|
42
|
+
|
|
43
|
+
4. **Logging:**
|
|
44
|
+
- All decisions logged to `.claude/workflow-logs/ui-create/[workflow-id].json`
|
|
45
|
+
- Review with `/hustle-ui-create-review [workflow-id]`
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Resume Mode (`--resume`)
|
|
50
|
+
|
|
51
|
+
When `--resume [workflow-id]` is used:
|
|
52
|
+
|
|
53
|
+
1. Load state from `.claude/api-dev-state.json`
|
|
54
|
+
2. Find the last incomplete phase
|
|
55
|
+
3. Continue from that point
|
|
56
|
+
4. Preserve all previous decisions
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Orchestrated Mode
|
|
61
|
+
|
|
62
|
+
When running as part of `/hustle-build`:
|
|
63
|
+
|
|
64
|
+
1. `orchestrated: true` flag is set in state
|
|
65
|
+
2. `shared_decisions` are pre-filled from orchestrator interview
|
|
66
|
+
3. Questions covered by shared_decisions are SKIPPED (e.g., brand guide, testing level)
|
|
67
|
+
4. Only component-specific questions are asked (variants, props)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
13
71
|
## Pre-Flight Check
|
|
14
72
|
|
|
15
73
|
Before starting, verify state file exists:
|
|
@@ -901,6 +959,28 @@ For Sandpack live editing, install: `pnpm add @codesandbox/sandpack-react`
|
|
|
901
959
|
|
|
902
960
|
Update state: `phases.completion.status = "complete"`
|
|
903
961
|
|
|
962
|
+
### End-of-Workflow Summary
|
|
963
|
+
|
|
964
|
+
After successful component creation, display:
|
|
965
|
+
|
|
966
|
+
```
|
|
967
|
+
═══════════════════════════════════════════════════════════════
|
|
968
|
+
✅ COMPONENT CREATED: [ComponentName]
|
|
969
|
+
|
|
970
|
+
📍 Quick Links:
|
|
971
|
+
• Preview it: /ui-showcase
|
|
972
|
+
• Storybook: http://localhost:6006
|
|
973
|
+
• Run tests: pnpm test src/components/[ComponentName]
|
|
974
|
+
• Visual tests: pnpm playwright test --grep "[ComponentName]"
|
|
975
|
+
|
|
976
|
+
📊 Dashboard: /hustle-dev-dashboard
|
|
977
|
+
|
|
978
|
+
Next Steps:
|
|
979
|
+
• /hustle-ui-create-page - Create a page using this component
|
|
980
|
+
• /commit - Commit your changes
|
|
981
|
+
═══════════════════════════════════════════════════════════════
|
|
982
|
+
```
|
|
983
|
+
|
|
904
984
|
---
|
|
905
985
|
|
|
906
986
|
# Page Mode (14 Phases)
|
|
@@ -974,5 +1054,5 @@ See full page mode documentation in `/hustle-ui-create-page.md` (if implementing
|
|
|
974
1054
|
|
|
975
1055
|
---
|
|
976
1056
|
|
|
977
|
-
**Version:**
|
|
1057
|
+
**Version:** 4.0.0
|
|
978
1058
|
**Last Updated:** 2025-12-28
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|