@hustle-together/api-dev-tools 2.0.7 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +283 -478
  2. package/bin/cli.js +55 -11
  3. package/commands/README.md +124 -251
  4. package/commands/api-create.md +318 -136
  5. package/commands/api-interview.md +252 -256
  6. package/commands/api-research.md +209 -234
  7. package/commands/api-verify.md +231 -0
  8. package/demo/audio/generate-all-narrations.js +516 -0
  9. package/demo/audio/generate-voice-previews.js +140 -0
  10. package/demo/audio/narration-adam-timing.json +3666 -0
  11. package/demo/audio/narration-adam.mp3 +0 -0
  12. package/demo/audio/narration-creature-timing.json +3666 -0
  13. package/demo/audio/narration-creature.mp3 +0 -0
  14. package/demo/audio/narration-gaming-timing.json +3666 -0
  15. package/demo/audio/narration-gaming.mp3 +0 -0
  16. package/demo/audio/narration-hope-timing.json +3666 -0
  17. package/demo/audio/narration-hope.mp3 +0 -0
  18. package/demo/audio/narration-mark-timing.json +3666 -0
  19. package/demo/audio/narration-mark.mp3 +0 -0
  20. package/demo/audio/previews/manifest.json +30 -0
  21. package/demo/audio/previews/preview-creature.mp3 +0 -0
  22. package/demo/audio/previews/preview-gaming.mp3 +0 -0
  23. package/demo/audio/previews/preview-hope.mp3 +0 -0
  24. package/demo/audio/previews/preview-mark.mp3 +0 -0
  25. package/demo/audio/voices-manifest.json +50 -0
  26. package/demo/hustle-together/blog/gemini-vs-claude-widgets.html +30 -28
  27. package/demo/hustle-together/blog/interview-driven-api-development.html +37 -23
  28. package/demo/hustle-together/index.html +142 -109
  29. package/demo/workflow-demo.html +1023 -558
  30. package/hooks/periodic-reground.py +154 -0
  31. package/hooks/session-startup.py +151 -0
  32. package/hooks/track-tool-use.py +109 -17
  33. package/hooks/verify-after-green.py +152 -0
  34. package/package.json +2 -2
  35. package/templates/api-dev-state.json +42 -7
  36. package/templates/research-index.json +6 -0
  37. package/templates/settings.json +23 -0
@@ -1,52 +1,81 @@
1
1
  {
2
- "version": "1.1.0",
2
+ "version": "3.0.0",
3
3
  "created_at": null,
4
4
  "endpoint": null,
5
5
  "library": null,
6
+ "session_id": null,
7
+ "turn_count": 0,
8
+ "last_turn_timestamp": null,
6
9
  "research_queries": [],
7
10
  "prompt_detections": [],
8
11
  "phases": {
12
+ "disambiguation": {
13
+ "status": "not_started",
14
+ "clarified": null,
15
+ "search_variations": [],
16
+ "description": "Pre-research disambiguation to clarify ambiguous requests"
17
+ },
9
18
  "scope": {
10
19
  "status": "not_started",
11
- "description": "Initial scope understanding"
20
+ "confirmed": false,
21
+ "description": "Initial scope understanding and confirmation"
12
22
  },
13
23
  "research_initial": {
14
24
  "status": "not_started",
15
25
  "sources": [],
26
+ "summary_approved": false,
16
27
  "description": "Context7/WebSearch research for live documentation"
17
28
  },
18
29
  "interview": {
19
30
  "status": "not_started",
20
31
  "questions": [],
21
- "description": "Structured interview about requirements"
32
+ "user_question_count": 0,
33
+ "structured_question_count": 0,
34
+ "decisions": {},
35
+ "description": "Structured interview about requirements (generated FROM research)"
22
36
  },
23
37
  "research_deep": {
24
38
  "status": "not_started",
25
39
  "sources": [],
26
- "description": "Deep dive based on interview answers"
40
+ "proposed_searches": [],
41
+ "approved_searches": [],
42
+ "skipped_searches": [],
43
+ "description": "Deep dive based on interview answers (adaptive, not shotgun)"
27
44
  },
28
45
  "schema_creation": {
29
46
  "status": "not_started",
30
47
  "schema_file": null,
48
+ "schema_approved": false,
31
49
  "description": "Zod schema creation from research"
32
50
  },
33
51
  "environment_check": {
34
52
  "status": "not_started",
35
53
  "keys_verified": [],
36
54
  "keys_missing": [],
55
+ "confirmed": false,
37
56
  "description": "API key and environment verification"
38
57
  },
39
58
  "tdd_red": {
40
59
  "status": "not_started",
41
60
  "test_file": null,
42
61
  "test_count": 0,
62
+ "test_matrix_approved": false,
43
63
  "description": "Write failing tests first"
44
64
  },
45
65
  "tdd_green": {
46
66
  "status": "not_started",
47
67
  "implementation_file": null,
68
+ "all_tests_passing": false,
48
69
  "description": "Minimal implementation to pass tests"
49
70
  },
71
+ "verify": {
72
+ "status": "not_started",
73
+ "gaps_found": 0,
74
+ "gaps_fixed": 0,
75
+ "intentional_omissions": [],
76
+ "re_research_done": false,
77
+ "description": "Re-research after Green to verify implementation matches docs"
78
+ },
50
79
  "tdd_refactor": {
51
80
  "status": "not_started",
52
81
  "description": "Code cleanup while keeping tests green"
@@ -54,7 +83,10 @@
54
83
  "documentation": {
55
84
  "status": "not_started",
56
85
  "files_updated": [],
57
- "description": "Update manifests, OpenAPI, examples"
86
+ "manifest_updated": false,
87
+ "openapi_updated": false,
88
+ "research_cached": false,
89
+ "description": "Update manifests, OpenAPI, cache research"
58
90
  }
59
91
  },
60
92
  "verification": {
@@ -62,6 +94,9 @@
62
94
  "schema_matches_docs": false,
63
95
  "tests_cover_params": false,
64
96
  "all_tests_passing": false,
65
- "coverage_percent": null
66
- }
97
+ "coverage_percent": null,
98
+ "post_green_verification": false
99
+ },
100
+ "research_index": {},
101
+ "reground_history": []
67
102
  }
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": "3.0.0",
3
+ "description": "Research cache index with freshness tracking",
4
+ "freshness_threshold_days": 7,
5
+ "apis": {}
6
+ }
@@ -16,6 +16,16 @@
16
16
  ]
17
17
  },
18
18
  "hooks": {
19
+ "SessionStart": [
20
+ {
21
+ "hooks": [
22
+ {
23
+ "type": "command",
24
+ "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-startup.py"
25
+ }
26
+ ]
27
+ }
28
+ ],
19
29
  "UserPromptSubmit": [
20
30
  {
21
31
  "hooks": [
@@ -52,6 +62,19 @@
52
62
  {
53
63
  "type": "command",
54
64
  "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/track-tool-use.py"
65
+ },
66
+ {
67
+ "type": "command",
68
+ "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/periodic-reground.py"
69
+ }
70
+ ]
71
+ },
72
+ {
73
+ "matcher": "Bash",
74
+ "hooks": [
75
+ {
76
+ "type": "command",
77
+ "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/verify-after-green.py"
55
78
  }
56
79
  ]
57
80
  }