@hustle-together/api-dev-tools 3.2.0 → 3.5.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/README.md +712 -377
- package/commands/api-create.md +300 -149
- package/demo/hustle-together/blog/gemini-vs-claude-widgets.html +1 -1
- package/demo/hustle-together/blog/interview-driven-api-development.html +1 -1
- package/demo/hustle-together/blog/tdd-for-ai.html +1 -1
- package/demo/hustle-together/index.html +2 -2
- package/demo/workflow-demo-v3.5-backup.html +5008 -0
- package/demo/workflow-demo.html +5137 -3805
- package/hooks/enforce-deep-research.py +6 -1
- package/hooks/enforce-disambiguation.py +7 -1
- package/hooks/enforce-documentation.py +6 -1
- package/hooks/enforce-environment.py +5 -1
- package/hooks/enforce-interview.py +5 -1
- package/hooks/enforce-refactor.py +3 -1
- package/hooks/enforce-schema.py +0 -0
- package/hooks/enforce-scope.py +5 -1
- package/hooks/enforce-tdd-red.py +5 -1
- package/hooks/enforce-verify.py +0 -0
- package/hooks/track-tool-use.py +167 -0
- package/hooks/verify-implementation.py +0 -0
- package/package.json +1 -1
- package/templates/api-dev-state.json +24 -0
- package/demo/audio/audio-sync.js +0 -295
- package/demo/audio/generate-all-narrations.js +0 -581
- package/demo/audio/generate-narration.js +0 -486
- package/demo/audio/generate-voice-previews.js +0 -140
- package/demo/audio/narration-adam-timing.json +0 -4675
- package/demo/audio/narration-adam.mp3 +0 -0
- package/demo/audio/narration-creature-timing.json +0 -4675
- package/demo/audio/narration-creature.mp3 +0 -0
- package/demo/audio/narration-gaming-timing.json +0 -4675
- package/demo/audio/narration-gaming.mp3 +0 -0
- package/demo/audio/narration-hope-timing.json +0 -4675
- package/demo/audio/narration-hope.mp3 +0 -0
- package/demo/audio/narration-mark-timing.json +0 -4675
- package/demo/audio/narration-mark.mp3 +0 -0
- package/demo/audio/narration-timing.json +0 -3614
- package/demo/audio/narration-timing.sample.json +0 -48
- package/demo/audio/narration.mp3 +0 -0
- package/demo/audio/previews/manifest.json +0 -30
- package/demo/audio/previews/preview-creature.mp3 +0 -0
- package/demo/audio/previews/preview-gaming.mp3 +0 -0
- package/demo/audio/previews/preview-hope.mp3 +0 -0
- package/demo/audio/previews/preview-mark.mp3 +0 -0
- package/demo/audio/voices-manifest.json +0 -50
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"generated": "2025-12-08T00:00:00.000Z",
|
|
3
|
-
"duration": 300,
|
|
4
|
-
"wordCount": 850,
|
|
5
|
-
"sections": [
|
|
6
|
-
{ "id": "intro", "timestamp": 0 },
|
|
7
|
-
{ "id": "problems", "timestamp": 35 },
|
|
8
|
-
{ "id": "solution", "timestamp": 95 },
|
|
9
|
-
{ "id": "workflow", "timestamp": 140 },
|
|
10
|
-
{ "id": "installation", "timestamp": 220 },
|
|
11
|
-
{ "id": "credits", "timestamp": 260 },
|
|
12
|
-
{ "id": "outro", "timestamp": 285 }
|
|
13
|
-
],
|
|
14
|
-
"highlights": [
|
|
15
|
-
{ "selector": "#hustleBrand", "section": "intro", "timestamp": 2 },
|
|
16
|
-
{ "selector": "[data-phase='research']", "section": "intro", "timestamp": 8 },
|
|
17
|
-
{ "selector": "[data-phase='interview']", "section": "intro", "timestamp": 14 },
|
|
18
|
-
{ "selector": "[data-phase='test']", "section": "intro", "timestamp": 20 },
|
|
19
|
-
{ "selector": "[data-phase='code']", "section": "intro", "timestamp": 26 },
|
|
20
|
-
{ "selector": "[data-phase='docs']", "section": "intro", "timestamp": 32 },
|
|
21
|
-
{ "selector": "#problems h2", "section": "problems", "timestamp": 36 },
|
|
22
|
-
{ "selector": ".gap-item:nth-child(1)", "section": "problems", "timestamp": 42 },
|
|
23
|
-
{ "selector": ".gap-item:nth-child(2)", "section": "problems", "timestamp": 54 },
|
|
24
|
-
{ "selector": ".gap-item:nth-child(3)", "section": "problems", "timestamp": 66 },
|
|
25
|
-
{ "selector": ".gap-item:nth-child(4)", "section": "problems", "timestamp": 78 },
|
|
26
|
-
{ "selector": ".gap-item:nth-child(5)", "section": "problems", "timestamp": 88 },
|
|
27
|
-
{ "selector": "#solution h2", "section": "solution", "timestamp": 96 },
|
|
28
|
-
{ "selector": ".hook-box:nth-child(1)", "section": "solution", "timestamp": 104 },
|
|
29
|
-
{ "selector": ".hook-box:nth-child(2)", "section": "solution", "timestamp": 118 },
|
|
30
|
-
{ "selector": ".hook-box:nth-child(3)", "section": "solution", "timestamp": 130 },
|
|
31
|
-
{ "selector": "#workflow h2", "section": "workflow", "timestamp": 141 },
|
|
32
|
-
{ "selector": ".workflow-phase:nth-child(1)", "section": "workflow", "timestamp": 148 },
|
|
33
|
-
{ "selector": ".workflow-phase:nth-child(2)", "section": "workflow", "timestamp": 155 },
|
|
34
|
-
{ "selector": ".workflow-phase:nth-child(3)", "section": "workflow", "timestamp": 162 },
|
|
35
|
-
{ "selector": ".workflow-phase:nth-child(4)", "section": "workflow", "timestamp": 172 },
|
|
36
|
-
{ "selector": ".workflow-phase:nth-child(5)", "section": "workflow", "timestamp": 180 },
|
|
37
|
-
{ "selector": ".workflow-phase:nth-child(6)", "section": "workflow", "timestamp": 188 },
|
|
38
|
-
{ "selector": ".workflow-phase:nth-child(7)", "section": "workflow", "timestamp": 196 },
|
|
39
|
-
{ "selector": ".workflow-phase:nth-child(8)", "section": "workflow", "timestamp": 204 },
|
|
40
|
-
{ "selector": ".workflow-phase:nth-child(9)", "section": "workflow", "timestamp": 211 },
|
|
41
|
-
{ "selector": ".workflow-phase:nth-child(10)", "section": "workflow", "timestamp": 218 },
|
|
42
|
-
{ "selector": "#installation h2", "section": "installation", "timestamp": 221 },
|
|
43
|
-
{ "selector": ".install-command", "section": "installation", "timestamp": 228 },
|
|
44
|
-
{ "selector": "#credits h2", "section": "credits", "timestamp": 261 },
|
|
45
|
-
{ "selector": "#intro", "section": "outro", "timestamp": 286 }
|
|
46
|
-
],
|
|
47
|
-
"words": []
|
|
48
|
-
}
|
package/demo/audio/narration.mp3
DELETED
|
Binary file
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"generated": "2025-12-08T06:50:32.727Z",
|
|
3
|
-
"text": "Welcome to Hustle API Dev Tools. Build APIs the right way. Research first. Interview second. Test before code. Document everything.",
|
|
4
|
-
"voices": [
|
|
5
|
-
{
|
|
6
|
-
"voice": "Mark",
|
|
7
|
-
"id": "UgBBYS2sOqTuMpoF3BR0",
|
|
8
|
-
"file": "preview-mark.mp3",
|
|
9
|
-
"size": 164302
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"voice": "Hope",
|
|
13
|
-
"id": "tnSpp4vdxKPjI9w0GnoV",
|
|
14
|
-
"file": "preview-hope.mp3",
|
|
15
|
-
"size": 135881
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"voice": "Creature",
|
|
19
|
-
"id": "Z7RrOqZFTyLpIlzCgfsp",
|
|
20
|
-
"file": "preview-creature.mp3",
|
|
21
|
-
"size": 288018
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"voice": "Gaming",
|
|
25
|
-
"id": "YOq2y2Up4RgXP2HyXjE5",
|
|
26
|
-
"file": "preview-gaming.mp3",
|
|
27
|
-
"size": 329814
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"generated": "2025-12-09T04:43:32.000Z",
|
|
3
|
-
"voices": [
|
|
4
|
-
{
|
|
5
|
-
"voice": "Adam",
|
|
6
|
-
"name": "adam",
|
|
7
|
-
"audioFile": "narration-adam.mp3",
|
|
8
|
-
"timingFile": "narration-adam-timing.json",
|
|
9
|
-
"duration": 507.543,
|
|
10
|
-
"wordCount": 875,
|
|
11
|
-
"audioSize": 8121409
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"voice": "Mark",
|
|
15
|
-
"name": "mark",
|
|
16
|
-
"audioFile": "narration-mark.mp3",
|
|
17
|
-
"timingFile": "narration-mark-timing.json",
|
|
18
|
-
"duration": 440.671,
|
|
19
|
-
"wordCount": 875,
|
|
20
|
-
"audioSize": 7051434
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"voice": "Hope",
|
|
24
|
-
"name": "hope",
|
|
25
|
-
"audioFile": "narration-hope.mp3",
|
|
26
|
-
"timingFile": "narration-hope-timing.json",
|
|
27
|
-
"duration": 407.181,
|
|
28
|
-
"wordCount": 875,
|
|
29
|
-
"audioSize": 6515610
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"voice": "Creature",
|
|
33
|
-
"name": "creature",
|
|
34
|
-
"audioFile": "narration-creature.mp3",
|
|
35
|
-
"timingFile": "narration-creature-timing.json",
|
|
36
|
-
"duration": 620.62,
|
|
37
|
-
"wordCount": 875,
|
|
38
|
-
"audioSize": 9930755
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"voice": "Gaming",
|
|
42
|
-
"name": "gaming",
|
|
43
|
-
"audioFile": "narration-gaming.mp3",
|
|
44
|
-
"timingFile": "narration-gaming-timing.json",
|
|
45
|
-
"duration": 845.811,
|
|
46
|
-
"wordCount": 875,
|
|
47
|
-
"audioSize": 13533563
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|