@hustle-together/api-dev-tools 3.12.3 → 3.12.16

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 (96) hide show
  1. package/.claude/commands/hustle-build.md +259 -0
  2. package/.claude/commands/hustle-combine.md +1089 -0
  3. package/.claude/commands/hustle-ui-create-page.md +1078 -0
  4. package/.claude/commands/hustle-ui-create.md +1058 -0
  5. package/.claude/hooks/auto-answer.py +305 -0
  6. package/.claude/hooks/cache-research.py +337 -0
  7. package/.claude/hooks/check-api-routes.py +168 -0
  8. package/.claude/hooks/check-playwright-setup.py +103 -0
  9. package/.claude/hooks/check-storybook-setup.py +81 -0
  10. package/.claude/hooks/check-update.py +132 -0
  11. package/.claude/hooks/completion-promise-detector.py +293 -0
  12. package/.claude/hooks/context-capacity-warning.py +171 -0
  13. package/.claude/hooks/detect-interruption.py +165 -0
  14. package/.claude/hooks/docs-update-check.py +120 -0
  15. package/.claude/hooks/enforce-a11y-audit.py +202 -0
  16. package/.claude/hooks/enforce-brand-guide.py +241 -0
  17. package/.claude/hooks/enforce-component-type-confirm.py +97 -0
  18. package/.claude/hooks/enforce-dry-run.py +134 -0
  19. package/.claude/hooks/enforce-freshness.py +184 -0
  20. package/.claude/hooks/enforce-page-components.py +186 -0
  21. package/.claude/hooks/enforce-page-data-schema.py +155 -0
  22. package/.claude/hooks/enforce-questions-sourced.py +146 -0
  23. package/.claude/hooks/enforce-schema-from-interview.py +248 -0
  24. package/.claude/hooks/enforce-ui-disambiguation.py +108 -0
  25. package/.claude/hooks/enforce-ui-interview.py +130 -0
  26. package/.claude/hooks/generate-adr-options.py +282 -0
  27. package/.claude/hooks/generate-manifest-entry.py +1161 -0
  28. package/.claude/hooks/hook_utils.py +609 -0
  29. package/.claude/hooks/lib/__init__.py +1 -0
  30. package/.claude/hooks/lib/__pycache__/__init__.cpython-314.pyc +0 -0
  31. package/.claude/hooks/lib/__pycache__/greptile.cpython-314.pyc +0 -0
  32. package/.claude/hooks/lib/__pycache__/ntfy.cpython-314.pyc +0 -0
  33. package/.claude/hooks/lib/greptile.py +355 -0
  34. package/.claude/hooks/lib/ntfy.py +209 -0
  35. package/.claude/hooks/notify-input-needed.py +73 -0
  36. package/.claude/hooks/notify-phase-complete.py +90 -0
  37. package/.claude/hooks/ntfy-on-question.py +240 -0
  38. package/.claude/hooks/orchestrator-completion.py +313 -0
  39. package/.claude/hooks/orchestrator-handoff.py +267 -0
  40. package/.claude/hooks/orchestrator-session-startup.py +146 -0
  41. package/.claude/hooks/parallel-orchestrator.py +451 -0
  42. package/.claude/hooks/project-document-prompt.py +302 -0
  43. package/.claude/hooks/remote-question-proxy.py +284 -0
  44. package/.claude/hooks/remote-question-server.py +1224 -0
  45. package/.claude/hooks/run-code-review.py +393 -0
  46. package/.claude/hooks/run-visual-qa.py +338 -0
  47. package/.claude/hooks/session-logger.py +323 -0
  48. package/.claude/hooks/test-orchestrator-reground.py +248 -0
  49. package/.claude/hooks/track-scope-coverage.py +220 -0
  50. package/.claude/hooks/track-token-usage.py +121 -0
  51. package/.claude/hooks/update-adr-decision.py +236 -0
  52. package/.claude/hooks/update-api-showcase.py +161 -0
  53. package/.claude/hooks/update-registry.py +352 -0
  54. package/.claude/hooks/update-testing-checklist.py +195 -0
  55. package/.claude/hooks/update-ui-showcase.py +224 -0
  56. package/.claude/settings.local.json +7 -1
  57. package/.claude/test-auto-answer-bot.py +183 -0
  58. package/.claude/test-completion-detector.py +263 -0
  59. package/.claude/test-orchestrator-state.json +20 -0
  60. package/.claude/test-orchestrator.sh +271 -0
  61. package/.skills/api-create/SKILL.md +88 -3
  62. package/.skills/docs-sync/SKILL.md +260 -0
  63. package/.skills/hustle-build/SKILL.md +459 -0
  64. package/.skills/hustle-build-review/SKILL.md +518 -0
  65. package/CHANGELOG.md +87 -0
  66. package/README.md +86 -9
  67. package/bin/cli.js +1302 -88
  68. package/commands/hustle-api-create.md +22 -0
  69. package/commands/hustle-combine.md +81 -2
  70. package/commands/hustle-ui-create-page.md +84 -2
  71. package/commands/hustle-ui-create.md +82 -2
  72. package/hooks/auto-answer.py +228 -0
  73. package/hooks/check-update.py +132 -0
  74. package/hooks/ntfy-on-question.py +227 -0
  75. package/hooks/orchestrator-completion.py +313 -0
  76. package/hooks/orchestrator-handoff.py +189 -0
  77. package/hooks/orchestrator-session-startup.py +146 -0
  78. package/hooks/periodic-reground.py +230 -67
  79. package/hooks/update-api-showcase.py +13 -1
  80. package/hooks/update-ui-showcase.py +13 -1
  81. package/package.json +7 -3
  82. package/scripts/extract-schema-docs.cjs +322 -0
  83. package/templates/CLAUDE-SECTION.md +89 -64
  84. package/templates/api-showcase/_components/APIModal.tsx +100 -8
  85. package/templates/api-showcase/_components/APIShowcase.tsx +36 -4
  86. package/templates/api-showcase/_components/APITester.tsx +367 -58
  87. package/templates/docs/page.tsx +230 -0
  88. package/templates/hustle-build-defaults.json +84 -0
  89. package/templates/hustle-dev-dashboard/page.tsx +365 -0
  90. package/templates/playwright-report/page.tsx +258 -0
  91. package/templates/settings.json +88 -7
  92. package/templates/test-results/page.tsx +237 -0
  93. package/templates/typedoc.json +19 -0
  94. package/templates/ui-showcase/_components/UIShowcase.tsx +1 -1
  95. package/templates/ui-showcase/page.tsx +1 -1
  96. package/.claude/api-dev-state.json +0 -466
@@ -0,0 +1,518 @@
1
+ ---
2
+ name: hustle-build-review
3
+ description: Review auto-build results, decisions, and logs. Analyze what happened during a /hustle-build execution.
4
+ license: MIT
5
+ compatibility: Requires Claude Code with hooks configured
6
+ metadata:
7
+ version: "4.0.0"
8
+ category: "review"
9
+ tags: ["review", "audit", "analysis", "auto-mode"]
10
+ author: "Hustle Together"
11
+ allowed-tools: Read Glob Grep WebFetch AskUserQuestion TodoWrite
12
+ ---
13
+
14
+ # Hustle Build Review - Auto-Build Analysis
15
+
16
+ Review and analyze the results of a `/hustle-build` execution. Essential for understanding what decisions were made in auto-mode and identifying areas for improvement.
17
+
18
+ ## Usage
19
+
20
+ ```
21
+ /hustle-build-review [build-id]
22
+ /hustle-build-review --latest
23
+ /hustle-build-review --list
24
+ ```
25
+
26
+ ## Arguments
27
+
28
+ - `$ARGUMENTS` - Build ID to review (e.g., `build-2025-12-28-dashboard`)
29
+ - `--latest` - Review the most recent build
30
+ - `--list` - List all available build logs
31
+
32
+ ---
33
+
34
+ ## Phase 1: Load Build Data
35
+
36
+ ### 1.1 Find Build Log
37
+
38
+ If `--list`:
39
+ ```bash
40
+ ls -la .claude/workflow-logs/build-*.json
41
+ ```
42
+
43
+ Display table:
44
+ ```
45
+ Available Builds:
46
+ | Build ID | Date | Status | Elements |
47
+ |-----------------------------|------------|----------|----------|
48
+ | build-2025-12-28-dashboard | 2025-12-28 | complete | 8 |
49
+ | build-2025-12-27-checkout | 2025-12-27 | complete | 5 |
50
+ | build-2025-12-26-auth | 2025-12-26 | failed | 3 |
51
+ ```
52
+
53
+ If `--latest`:
54
+ - Find most recent `build-*.json` file
55
+ - Load that build ID
56
+
57
+ ### 1.2 Load Files
58
+
59
+ Load from `.claude/`:
60
+ - `hustle-build-state.json` - Orchestration state
61
+ - `workflow-logs/[build-id].json` - Detailed log
62
+ - `registry.json` - Created elements
63
+
64
+ ---
65
+
66
+ ## Phase 2: Executive Summary
67
+
68
+ Present high-level overview:
69
+
70
+ ```
71
+ BUILD REVIEW: [Build ID]
72
+ ============================================================
73
+
74
+ Status: [complete/failed/interrupted]
75
+ Duration: [X minutes]
76
+ Mode: [interactive/auto]
77
+
78
+ CREATED:
79
+ APIs: X new + Y combined
80
+ Components: X new
81
+ Pages: X new
82
+
83
+ TESTS:
84
+ Total: X tests
85
+ Passed: X (XX%)
86
+ Failed: X
87
+
88
+ DECISIONS:
89
+ Total Questions: X
90
+ Auto-Answered: X (if auto mode)
91
+ User-Answered: X
92
+
93
+ ============================================================
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Phase 3: Decision Audit
99
+
100
+ ### 3.1 Orchestrator Decisions
101
+
102
+ Show high-level decisions from orchestrator interview:
103
+
104
+ ```
105
+ ORCHESTRATOR DECISIONS
106
+ ----------------------
107
+
108
+ Q1: Authentication
109
+ Answer: Protected (requires login)
110
+ Source: [user | auto-comprehensive | default]
111
+ Applied: All 8 elements
112
+
113
+ Q2: Error Handling
114
+ Answer: Partial success
115
+ Source: [user | auto-comprehensive | default]
116
+ Applied: Combined API, individual APIs
117
+
118
+ Q3: Brand Guide
119
+ Answer: Yes, use BRAND_GUIDE.md
120
+ Source: [user | auto-comprehensive | default]
121
+ Applied: All components, page
122
+
123
+ Q4: Testing Level
124
+ Answer: Full TDD (all 14 phases)
125
+ Source: [user | auto-comprehensive | default]
126
+ Applied: All elements
127
+ ```
128
+
129
+ ### 3.2 Per-Element Decisions
130
+
131
+ For each element, show workflow-specific decisions:
132
+
133
+ ```
134
+ ELEMENT: user-stats (API)
135
+ -------------------------
136
+
137
+ Interview Questions:
138
+ Q: "Which stats to include?"
139
+ Answer: Comprehensive (all available)
140
+ Source: auto-comprehensive
141
+ Reason: "Selected most comprehensive option"
142
+
143
+ Q: "Rate limiting?"
144
+ Answer: Yes, 100 req/min
145
+ Source: default (hustle-build-defaults.json)
146
+
147
+ Q: "Caching strategy?"
148
+ Answer: Individual (per-endpoint)
149
+ Source: shared_decisions (orchestrator)
150
+
151
+ Would you have answered differently? [View code to adjust]
152
+ ```
153
+
154
+ ### 3.3 Decision Summary Table
155
+
156
+ ```
157
+ DECISION SUMMARY
158
+ ----------------
159
+
160
+ | Element | Questions | Auto | User | Default | Shared |
161
+ |--------------|-----------|------|------|---------|--------|
162
+ | user-stats | 3 | 1 | 0 | 1 | 1 |
163
+ | chart-data | 3 | 2 | 0 | 0 | 1 |
164
+ | StatCard | 4 | 3 | 0 | 0 | 1 |
165
+ | Dashboard | 2 | 1 | 0 | 0 | 1 |
166
+ | TOTAL | 12 | 7 | 0 | 1 | 4 |
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Phase 4: Workflow Analysis
172
+
173
+ ### 4.1 Execution Timeline
174
+
175
+ Show how workflows executed:
176
+
177
+ ```
178
+ EXECUTION TIMELINE
179
+ ------------------
180
+
181
+ 10:00:00 BUILD START
182
+ 10:00:15 Orchestrator interview complete (4 questions)
183
+
184
+ TIER 1 (APIs - parallel eligible):
185
+ 10:00:30 [api] user-stats START
186
+ 10:08:45 [api] user-stats COMPLETE (8m 15s, 4 tests)
187
+ 10:08:50 [api] chart-data START
188
+ 10:17:22 [api] chart-data COMPLETE (8m 32s, 4 tests)
189
+ 10:17:25 [api] dashboard-metrics START
190
+ 10:25:40 [api] dashboard-metrics COMPLETE (8m 15s, 4 tests)
191
+
192
+ TIER 2 (Combined API):
193
+ 10:25:45 [combined] dashboard-data START
194
+ 10:38:20 [combined] dashboard-data COMPLETE (12m 35s, 8 tests)
195
+
196
+ TIER 3 (Components):
197
+ 10:38:25 [component] StatCard START
198
+ 10:50:10 [component] StatCard COMPLETE (11m 45s, 5 tests)
199
+ 10:50:15 [component] ChartWidget START
200
+ 11:02:30 [component] ChartWidget COMPLETE (12m 15s, 5 tests)
201
+
202
+ TIER 4 (Page):
203
+ 11:02:35 [page] Dashboard START
204
+ 11:22:50 [page] Dashboard COMPLETE (20m 15s, 17 tests)
205
+
206
+ 11:23:00 Cross-workflow wiring
207
+ 11:25:00 Final verification (47 tests)
208
+ 11:26:30 Documentation rollup
209
+
210
+ 11:27:00 BUILD COMPLETE
211
+
212
+ Total Duration: 87 minutes
213
+ ```
214
+
215
+ ### 4.2 Per-Element Details
216
+
217
+ For each element, show:
218
+
219
+ ```
220
+ ELEMENT DETAIL: user-stats (API)
221
+ ================================
222
+
223
+ Phases Completed: 14/14
224
+ Duration: 8m 15s
225
+ Tests: 4 passed, 0 failed
226
+
227
+ Files Created:
228
+ - src/app/api/v2/user-stats/route.ts
229
+ - src/lib/schemas/user-stats.schema.ts
230
+ - src/app/api/v2/user-stats/__tests__/route.test.ts
231
+
232
+ Registry Entry:
233
+ {
234
+ "name": "user-stats",
235
+ "type": "api",
236
+ "path": "/api/v2/user-stats",
237
+ "schema": "src/lib/schemas/user-stats.schema.ts",
238
+ "exportedTypes": ["UserStatsResponse", "UserStatsParams"]
239
+ }
240
+
241
+ Research Sources:
242
+ - Context7: /supabase/supabase (user stats patterns)
243
+ - WebSearch: "user statistics API best practices 2025"
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Phase 5: Issues & Resolutions
249
+
250
+ ### 5.1 Issues Encountered
251
+
252
+ ```
253
+ ISSUES ENCOUNTERED
254
+ ------------------
255
+
256
+ Issue #1:
257
+ Workflow: chart-data
258
+ Phase: TDD Green (Phase 9)
259
+ Problem: Test failed on first attempt
260
+ Error: "TypeError: chartType is not defined"
261
+
262
+ Resolution: Retried, passed on attempt 2
263
+ Auto-fix: Yes (retry logic)
264
+
265
+ Code diff:
266
+ - const type = chartType;
267
+ + const type = params.chartType ?? 'line';
268
+
269
+ Issue #2:
270
+ Workflow: Dashboard (page)
271
+ Phase: Verification (Phase 10)
272
+ Problem: Missing loading state
273
+
274
+ Resolution: Added Suspense boundary
275
+ Auto-fix: Yes (verification loop)
276
+
277
+ Code added:
278
+ + <Suspense fallback={<DashboardSkeleton />}>
279
+ ```
280
+
281
+ ### 5.2 Unresolved Issues
282
+
283
+ If any:
284
+
285
+ ```
286
+ UNRESOLVED ISSUES
287
+ -----------------
288
+
289
+ Issue #1:
290
+ Workflow: ChartWidget
291
+ Phase: Code Review (Phase 11)
292
+ Problem: "Consider adding aria-label for accessibility"
293
+ Status: Logged for future improvement
294
+
295
+ Recommended action:
296
+ Edit src/components/ChartWidget/ChartWidget.tsx
297
+ Add: aria-label={`${chartType} chart showing ${dataLabel}`}
298
+ ```
299
+
300
+ ---
301
+
302
+ ## Phase 6: Test Results
303
+
304
+ ### 6.1 Test Summary
305
+
306
+ ```
307
+ TEST RESULTS
308
+ ------------
309
+
310
+ Unit Tests:
311
+ src/app/api/v2/user-stats/__tests__/route.test.ts 4/4 PASS
312
+ src/app/api/v2/chart-data/__tests__/route.test.ts 4/4 PASS
313
+ src/app/api/v2/dashboard-data/__tests__/route.test.ts 8/8 PASS
314
+ src/components/StatCard/__tests__/StatCard.test.ts 5/5 PASS
315
+ src/components/ChartWidget/__tests__/ChartWidget.test.ts 5/5 PASS
316
+
317
+ E2E Tests:
318
+ e2e/dashboard.spec.ts 12/12 PASS
319
+
320
+ Integration Tests:
321
+ src/app/dashboard/__tests__/page.test.ts 9/9 PASS
322
+
323
+ TOTAL: 47/47 tests passing (100%)
324
+ Coverage: 94%
325
+ ```
326
+
327
+ ### 6.2 Coverage Breakdown
328
+
329
+ ```
330
+ COVERAGE BY ELEMENT
331
+ -------------------
332
+
333
+ | Element | Statements | Branches | Functions | Lines |
334
+ |------------------|------------|----------|-----------|-------|
335
+ | user-stats | 98% | 95% | 100% | 98% |
336
+ | chart-data | 96% | 92% | 100% | 96% |
337
+ | dashboard-data | 94% | 90% | 100% | 94% |
338
+ | StatCard | 100% | 100% | 100% | 100% |
339
+ | ChartWidget | 92% | 88% | 100% | 92% |
340
+ | Dashboard page | 89% | 85% | 100% | 89% |
341
+ ```
342
+
343
+ ---
344
+
345
+ ## Phase 7: Registry Impact
346
+
347
+ ### 7.1 Elements Added
348
+
349
+ ```
350
+ REGISTRY ADDITIONS
351
+ ------------------
352
+
353
+ APIs (3 new):
354
+ apis.user-stats
355
+ apis.chart-data
356
+ apis.dashboard-metrics
357
+
358
+ Combined APIs (1 new):
359
+ combined.dashboard-data
360
+ Sources: [user-stats, chart-data, dashboard-metrics]
361
+
362
+ Components (2 new):
363
+ components.StatCard
364
+ components.ChartWidget
365
+
366
+ Pages (1 new):
367
+ pages.Dashboard
368
+ Route: /dashboard
369
+ Components: [StatCard, ChartWidget]
370
+ Data: dashboard-data
371
+
372
+ Type Exports (8 new):
373
+ UserStatsResponse, UserStatsParams
374
+ ChartDataResponse, ChartDataParams
375
+ DashboardMetricsResponse
376
+ DashboardDataResponse
377
+ StatCardProps
378
+ ChartWidgetProps
379
+ ```
380
+
381
+ ### 7.2 Relationships
382
+
383
+ ```
384
+ DEPENDENCY GRAPH
385
+ ----------------
386
+
387
+ dashboard-data (combined)
388
+ ├── user-stats (api)
389
+ ├── chart-data (api)
390
+ └── dashboard-metrics (api)
391
+
392
+ Dashboard (page)
393
+ ├── StatCard (component)
394
+ │ └── uses: UserStatsResponse
395
+ ├── ChartWidget (component)
396
+ │ └── uses: ChartDataResponse
397
+ └── fetches: dashboard-data
398
+ ```
399
+
400
+ ---
401
+
402
+ ## Phase 8: Recommendations
403
+
404
+ Based on the build analysis:
405
+
406
+ ### 8.1 Auto-Mode Tuning
407
+
408
+ If decisions seem suboptimal:
409
+
410
+ ```
411
+ RECOMMENDED DEFAULT CHANGES
412
+ ---------------------------
413
+
414
+ Based on this build, consider updating .claude/hustle-build-defaults.json:
415
+
416
+ {
417
+ "component": {
418
+ - "all_variants": true,
419
+ + "all_variants": false, // Only 2 variants used in practice
420
+
421
+ - "animations": true,
422
+ + "animations": false, // Animations not used in dashboard
423
+ }
424
+ }
425
+ ```
426
+
427
+ ### 8.2 Future Improvements
428
+
429
+ ```
430
+ SUGGESTED IMPROVEMENTS
431
+ ----------------------
432
+
433
+ 1. StatCard could benefit from skeleton loading state
434
+ File: src/components/StatCard/StatCard.tsx
435
+
436
+ 2. ChartWidget accessibility could be improved
437
+ Add: aria-label, role="img"
438
+
439
+ 3. Dashboard page could use error boundary
440
+ Currently: No error boundary
441
+ Suggested: Add ErrorBoundary component
442
+ ```
443
+
444
+ ---
445
+
446
+ ## Phase 9: Actions
447
+
448
+ Offer next steps:
449
+
450
+ ```
451
+ AVAILABLE ACTIONS
452
+ -----------------
453
+
454
+ 1. View specific element details:
455
+ /hustle-build-review [build-id] --element user-stats
456
+
457
+ 2. Re-run with different decisions:
458
+ /hustle-build --resume [build-id] --interactive
459
+
460
+ 3. Apply recommended improvements:
461
+ /hustle-build-improve [build-id]
462
+
463
+ 4. Export review as markdown:
464
+ /hustle-build-review [build-id] --export
465
+
466
+ 5. Compare with previous build:
467
+ /hustle-build-review --compare [build-id-1] [build-id-2]
468
+ ```
469
+
470
+ Ask user:
471
+ ```
472
+ What would you like to do?
473
+ - View more details on a specific element
474
+ - Apply recommended changes
475
+ - Export this review
476
+ - Return to development
477
+ ```
478
+
479
+ ---
480
+
481
+ ## Output Format
482
+
483
+ Final summary displayed:
484
+
485
+ ```
486
+ ============================================================
487
+ BUILD REVIEW COMPLETE: [build-id]
488
+ ============================================================
489
+
490
+ Key Metrics:
491
+ - 8 elements created
492
+ - 47 tests passing (100%)
493
+ - 94% code coverage
494
+ - 87 minute build time
495
+
496
+ Decision Quality:
497
+ - 7/12 questions auto-answered
498
+ - 1 issue auto-resolved
499
+ - 0 unresolved issues
500
+
501
+ Recommendations:
502
+ - 2 optional improvements identified
503
+ - 1 default setting could be tuned
504
+
505
+ Review exported to: docs/reviews/[build-id].md
506
+ ============================================================
507
+ ```
508
+
509
+ ---
510
+
511
+ ## Integration with Other Skills
512
+
513
+ This skill integrates with:
514
+
515
+ - `/hustle-build --resume [id]` - Resume interrupted build
516
+ - `/api-create-review [id]` - Review single API workflow
517
+ - `/hustle-ui-create-review [id]` - Review single component workflow
518
+ - `/commit` - Commit after review approval
package/CHANGELOG.md CHANGED
@@ -2,6 +2,93 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [3.12.12] - 2025-12-28
6
+
7
+ ### Added
8
+
9
+ - **Dashboard Page Templates** - All dashboard links now work (no more 404s)
10
+ - `/docs` - TypeDoc documentation viewer with generation instructions
11
+ - `/test-results` - Vitest results page with test commands reference
12
+ - `/playwright-report` - E2E test report viewer with Playwright commands
13
+
14
+ - **Interactive Query Parameter Builder** - Enhanced API testing UX
15
+ - Checkbox toggle to include/exclude each parameter in query string
16
+ - Type-aware inline editors:
17
+ - Dropdown `<select>` for enum types (order_by, color, orientation)
18
+ - Number inputs with min/max validation for numeric types
19
+ - Text inputs with placeholder examples for strings
20
+ - Auto-updates query string as you check params and edit values
21
+ - Required params locked on (can't uncheck)
22
+ - Example preset buttons still work as quick templates
23
+
24
+ ### Changed
25
+
26
+ - **ParameterDocs component** renamed to `InteractiveParamBuilder` for GET requests
27
+ - Query params now sync bidirectionally between builder and input field
28
+
29
+ ### Documentation
30
+
31
+ - **[docs/HOOKS.md](./docs/HOOKS.md)** - Complete hook reference (45+ hooks)
32
+ - **[docs/SKILLS.md](./docs/SKILLS.md)** - All slash commands with usage examples
33
+ - **[docs/AGENTS.md](./docs/AGENTS.md)** - Specialized subagent reference
34
+ - **[docs/PLUGIN_ARCHITECTURE.md](./docs/PLUGIN_ARCHITECTURE.md)** - How the plugin system works
35
+
36
+ ---
37
+
38
+ ## [3.12.11] - 2025-12-28
39
+
40
+ ### Added
41
+
42
+ - **Hustle Dev Dashboard** (`/hustle-dev-dashboard`) - Central hub page template
43
+ - Links to API Showcase, UI Showcase, Storybook, TypeDoc, Test Results
44
+ - Shows registry stats (APIs, Combined, Components, Pages)
45
+ - Quick Commands section with common pnpm commands
46
+ - Brand-themed design matching Hustle Together style
47
+
48
+ - **End-of-Workflow Summaries** - All 4 main commands now show completion summaries
49
+ - `/hustle-api-create` - Shows API quick links and next steps
50
+ - `/hustle-combine` - Shows combined API info and dashboard link
51
+ - `/hustle-ui-create` - Shows component preview links and Storybook
52
+ - `/hustle-ui-create-page` - Shows page URL and E2E test commands
53
+
54
+ ### Changed
55
+
56
+ - **API Modal UX Improvements** - Better testing experience
57
+ - Modal widened from `max-w-5xl` to `max-w-7xl` for more content space
58
+ - "Send Request" button moved to footer (alongside View Tests/Copy Schema)
59
+ - Reduces scrolling when testing APIs
60
+
61
+ ---
62
+
63
+ ## [3.12.10] - 2025-12-28
64
+
65
+ ### Added
66
+
67
+ - **TypeDoc Integration** - Generate API documentation from TSDoc comments
68
+ - `pnpm typedoc` script to generate Markdown docs
69
+ - `pnpm typedoc:watch` for development mode
70
+ - `templates/typedoc.json` configuration template
71
+ - Runs during Phase 13 (Documentation)
72
+
73
+ - **API Showcase Example Requests** - Pre-built, runnable examples in the testing UI
74
+ - Example selector UI with clickable buttons
75
+ - Auto-fills query parameters when clicked
76
+ - "Copy curl" button for each example
77
+ - Examples auto-generated from Zod schema parameters
78
+
79
+ - **Enhanced extract-schema-docs.cjs** - Generates working examples from schemas
80
+ - Detects required params, enums, and defaults
81
+ - Builds query strings and curl commands
82
+ - Outputs `examples` section for registry.json
83
+
84
+ ### Fixed
85
+
86
+ - **APIModal 404 errors** - Fixed endpoint path building for action-based APIs
87
+ - Action-based APIs now use query params (`/api/v2/unsplash?action=search`)
88
+ - No longer incorrectly builds sub-paths (`/api/v2/unsplash/search`)
89
+
90
+ ---
91
+
5
92
  ## [1.0.1] - 2025-12-28
6
93
 
7
94
  ### Fixed