@hustle-together/api-dev-tools 3.10.1 → 3.12.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.
Files changed (178) hide show
  1. package/.claude/agents/code-reviewer.md +170 -0
  2. package/.claude/agents/docs-generator.md +80 -0
  3. package/.claude/agents/implementation-reviewer.md +119 -0
  4. package/.claude/agents/parallel-researcher.md +52 -0
  5. package/.claude/agents/research-validator.md +116 -0
  6. package/.claude/agents/schema-generator.md +70 -0
  7. package/.claude/agents/test-writer.md +104 -0
  8. package/.claude/api-dev-state.json +331 -0
  9. package/.claude/commands/README.md +196 -0
  10. package/.claude/commands/add-command.md +212 -0
  11. package/.claude/commands/api-create.md +510 -0
  12. package/.claude/commands/api-env.md +51 -0
  13. package/.claude/commands/api-interview.md +344 -0
  14. package/.claude/commands/api-research.md +357 -0
  15. package/.claude/commands/api-status.md +279 -0
  16. package/.claude/commands/api-verify.md +232 -0
  17. package/.claude/commands/beepboop.md +96 -0
  18. package/.claude/commands/busycommit.md +111 -0
  19. package/.claude/commands/commit.md +82 -0
  20. package/.claude/commands/cycle.md +137 -0
  21. package/.claude/commands/gap.md +85 -0
  22. package/.claude/commands/green.md +137 -0
  23. package/.claude/commands/issue.md +187 -0
  24. package/.claude/commands/ntfy-setup.md +91 -0
  25. package/.claude/commands/ntfy-test.md +74 -0
  26. package/.claude/commands/plan.md +167 -0
  27. package/.claude/commands/pr.md +121 -0
  28. package/.claude/commands/publish.md +40 -0
  29. package/.claude/commands/red.md +137 -0
  30. package/.claude/commands/refactor.md +137 -0
  31. package/.claude/commands/spike.md +137 -0
  32. package/.claude/commands/summarize.md +93 -0
  33. package/.claude/commands/tdd.md +139 -0
  34. package/.claude/commands/worktree-add.md +307 -0
  35. package/.claude/commands/worktree-cleanup.md +275 -0
  36. package/.claude/hooks/api-workflow-check.py +227 -0
  37. package/.claude/hooks/enforce-deep-research.py +185 -0
  38. package/.claude/hooks/enforce-disambiguation.py +155 -0
  39. package/.claude/hooks/enforce-documentation.py +192 -0
  40. package/.claude/hooks/enforce-environment.py +253 -0
  41. package/.claude/hooks/enforce-external-research.py +328 -0
  42. package/.claude/hooks/enforce-interview.py +421 -0
  43. package/.claude/hooks/enforce-refactor.py +189 -0
  44. package/.claude/hooks/enforce-research.py +159 -0
  45. package/.claude/hooks/enforce-schema.py +186 -0
  46. package/.claude/hooks/enforce-scope.py +160 -0
  47. package/.claude/hooks/enforce-tdd-red.py +250 -0
  48. package/.claude/hooks/enforce-verify.py +186 -0
  49. package/.claude/hooks/periodic-reground.py +154 -0
  50. package/.claude/hooks/session-startup.py +151 -0
  51. package/.claude/hooks/track-tool-use.py +626 -0
  52. package/.claude/hooks/verify-after-green.py +282 -0
  53. package/.claude/hooks/verify-implementation.py +225 -0
  54. package/.claude/research/index.json +6 -0
  55. package/.claude/settings.json +144 -0
  56. package/.claude/settings.local.json +12 -0
  57. package/.claude-plugin/marketplace.json +103 -0
  58. package/.skills/README.md +293 -0
  59. package/.skills/_shared/convert-commands.py +192 -0
  60. package/.skills/_shared/hooks/api-workflow-check.py +227 -0
  61. package/.skills/_shared/hooks/enforce-deep-research.py +185 -0
  62. package/.skills/_shared/hooks/enforce-disambiguation.py +155 -0
  63. package/.skills/_shared/hooks/enforce-documentation.py +192 -0
  64. package/.skills/_shared/hooks/enforce-environment.py +253 -0
  65. package/.skills/_shared/hooks/enforce-external-research.py +328 -0
  66. package/.skills/_shared/hooks/enforce-interview.py +421 -0
  67. package/.skills/_shared/hooks/enforce-refactor.py +189 -0
  68. package/.skills/_shared/hooks/enforce-research.py +159 -0
  69. package/.skills/_shared/hooks/enforce-schema.py +186 -0
  70. package/.skills/_shared/hooks/enforce-scope.py +160 -0
  71. package/.skills/_shared/hooks/enforce-tdd-red.py +250 -0
  72. package/.skills/_shared/hooks/enforce-verify.py +186 -0
  73. package/.skills/_shared/hooks/periodic-reground.py +154 -0
  74. package/.skills/_shared/hooks/session-startup.py +151 -0
  75. package/.skills/_shared/hooks/track-tool-use.py +626 -0
  76. package/.skills/_shared/hooks/verify-after-green.py +282 -0
  77. package/.skills/_shared/hooks/verify-implementation.py +225 -0
  78. package/.skills/_shared/install.sh +114 -0
  79. package/.skills/_shared/settings.json +93 -0
  80. package/.skills/add-command/SKILL.md +227 -0
  81. package/.skills/api-create/SKILL.md +623 -0
  82. package/.skills/api-env/SKILL.md +64 -0
  83. package/.skills/api-interview/SKILL.md +357 -0
  84. package/.skills/api-research/SKILL.md +370 -0
  85. package/.skills/api-status/SKILL.md +292 -0
  86. package/.skills/api-verify/SKILL.md +245 -0
  87. package/.skills/beepboop/SKILL.md +111 -0
  88. package/.skills/busycommit/SKILL.md +126 -0
  89. package/.skills/commit/SKILL.md +97 -0
  90. package/.skills/cycle/SKILL.md +152 -0
  91. package/.skills/gap/SKILL.md +100 -0
  92. package/.skills/green/SKILL.md +152 -0
  93. package/.skills/issue/SKILL.md +202 -0
  94. package/.skills/plan/SKILL.md +182 -0
  95. package/.skills/pr/SKILL.md +136 -0
  96. package/.skills/publish/SKILL.md +160 -0
  97. package/.skills/red/SKILL.md +152 -0
  98. package/.skills/refactor/SKILL.md +152 -0
  99. package/.skills/spike/SKILL.md +152 -0
  100. package/.skills/summarize/SKILL.md +108 -0
  101. package/.skills/tdd/SKILL.md +154 -0
  102. package/.skills/update-todos/SKILL.md +250 -0
  103. package/.skills/worktree-add/SKILL.md +322 -0
  104. package/.skills/worktree-cleanup/SKILL.md +290 -0
  105. package/CHANGELOG.md +115 -0
  106. package/README.md +161 -7101
  107. package/bin/cli.js +448 -805
  108. package/commands/README.md +66 -31
  109. package/commands/add-command.md +8 -5
  110. package/commands/beepboop.md +4 -5
  111. package/commands/busycommit.md +2 -3
  112. package/commands/commit.md +2 -3
  113. package/commands/cycle.md +2 -7
  114. package/commands/gap.md +2 -3
  115. package/commands/green.md +2 -7
  116. package/commands/hustle-api-continue.md +8 -5
  117. package/commands/hustle-api-create.md +70 -29
  118. package/commands/hustle-api-env.md +1 -0
  119. package/commands/hustle-api-interview.md +32 -19
  120. package/commands/hustle-api-research.md +47 -21
  121. package/commands/hustle-api-sessions.md +8 -7
  122. package/commands/hustle-api-status.md +21 -1
  123. package/commands/hustle-api-verify.md +14 -13
  124. package/commands/hustle-combine.md +488 -241
  125. package/commands/hustle-ui-create-page.md +113 -50
  126. package/commands/hustle-ui-create.md +179 -26
  127. package/commands/issue.md +3 -8
  128. package/commands/plan.md +2 -3
  129. package/commands/pr.md +2 -3
  130. package/commands/red.md +2 -7
  131. package/commands/refactor.md +2 -7
  132. package/commands/spike.md +2 -7
  133. package/commands/summarize.md +2 -3
  134. package/commands/tdd.md +2 -7
  135. package/commands/worktree-add.md +208 -216
  136. package/commands/worktree-cleanup.md +172 -178
  137. package/hooks/api-workflow-check.py +5 -3
  138. package/hooks/enforce-component-type-confirm.py +97 -0
  139. package/hooks/lib/__init__.py +1 -0
  140. package/hooks/lib/greptile.py +355 -0
  141. package/hooks/lib/ntfy.py +209 -0
  142. package/hooks/notify-input-needed.py +73 -0
  143. package/hooks/notify-phase-complete.py +90 -0
  144. package/hooks/run-code-review.py +246 -0
  145. package/hooks/track-token-usage.py +121 -0
  146. package/package.json +33 -12
  147. package/scripts/collect-test-results.ts +102 -77
  148. package/scripts/extract-parameters.ts +112 -70
  149. package/scripts/generate-test-manifest.ts +118 -77
  150. package/templates/.env.example +57 -0
  151. package/templates/BRAND_GUIDE.md +92 -52
  152. package/templates/CLAUDE-SECTION.md +40 -37
  153. package/templates/SPEC.json +186 -38
  154. package/templates/api-dev-state.json +33 -4
  155. package/templates/api-showcase/_components/APICard.tsx +22 -18
  156. package/templates/api-showcase/_components/APIModal.tsx +110 -64
  157. package/templates/api-showcase/_components/APIShowcase.tsx +53 -35
  158. package/templates/api-showcase/_components/APITester.tsx +128 -67
  159. package/templates/api-showcase/page.tsx +4 -4
  160. package/templates/api-test/page.tsx +51 -30
  161. package/templates/api-test/test-structure/route.ts +43 -34
  162. package/templates/component/Component.stories.tsx +41 -39
  163. package/templates/component/Component.test.tsx +96 -78
  164. package/templates/component/Component.tsx +63 -52
  165. package/templates/component/Component.types.ts +10 -6
  166. package/templates/component/Component.visual.spec.ts +170 -0
  167. package/templates/component/index.ts +2 -2
  168. package/templates/dev-tools/_components/DevToolsLanding.tsx +8 -8
  169. package/templates/dev-tools/page.tsx +4 -3
  170. package/templates/mcp-servers.json +30 -2
  171. package/templates/page/page.e2e.test.ts +56 -48
  172. package/templates/page/page.tsx +3 -3
  173. package/templates/shared/HeroHeader.tsx +16 -15
  174. package/templates/shared/index.ts +1 -1
  175. package/templates/ui-showcase/_components/PreviewCard.tsx +20 -20
  176. package/templates/ui-showcase/_components/PreviewModal.tsx +149 -108
  177. package/templates/ui-showcase/_components/UIShowcase.tsx +43 -35
  178. package/templates/ui-showcase/page.tsx +4 -4
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "api-dev-tools",
3
+ "owner": {
4
+ "name": "Hustle Together",
5
+ "email": "contact@hustletogether.dev"
6
+ },
7
+ "description": "Interview-driven, research-first API development toolkit with 13-phase TDD workflow, enforcement hooks, and continuous verification loops. Includes 23 agent skills for API creation, testing, documentation, and deployment.",
8
+ "version": "3.11.0",
9
+ "repository": "https://github.com/hustle-together/api-dev-tools",
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "api",
13
+ "tdd",
14
+ "workflow",
15
+ "research",
16
+ "interview",
17
+ "verification",
18
+ "hooks",
19
+ "mcp",
20
+ "agent-skills",
21
+ "testing",
22
+ "documentation"
23
+ ],
24
+ "plugins": [
25
+ {
26
+ "name": "api-dev-tools",
27
+ "source": ".",
28
+ "description": "Complete API development workflow with 13 phases, 23 skills, and 18 enforcement hooks",
29
+ "version": "3.11.0",
30
+ "author": {
31
+ "name": "Hustle Together",
32
+ "email": "contact@hustletogether.dev"
33
+ },
34
+ "category": "development",
35
+ "tags": ["api", "tdd", "workflow", "testing", "research"]
36
+ }
37
+ ],
38
+ "installation": {
39
+ "requirements": {
40
+ "claude_code": ">=1.0.0",
41
+ "python": ">=3.9",
42
+ "node": ">=18.0.0",
43
+ "pnpm": ">=10.11.0"
44
+ },
45
+ "mcp_servers": [
46
+ {
47
+ "name": "context7",
48
+ "description": "Documentation search and discovery",
49
+ "required": true,
50
+ "install": "Add to Claude Code MCP settings"
51
+ },
52
+ {
53
+ "name": "github",
54
+ "description": "GitHub integration for PRs and issues",
55
+ "required": true,
56
+ "install": "Add to Claude Code MCP settings"
57
+ }
58
+ ],
59
+ "post_install_instructions": [
60
+ "1. Copy .skills/_shared/hooks/ to .claude/hooks/ in your project",
61
+ "2. Copy .skills/_shared/settings.json to .claude/settings.json",
62
+ "3. Create .claude/api-dev-state.json from template",
63
+ "4. Create .claude/research/ directory",
64
+ "5. Install required MCP servers (Context7, GitHub)",
65
+ "6. Run '/api-status' to verify installation"
66
+ ]
67
+ },
68
+ "documentation": {
69
+ "readme": "https://github.com/hustle-together/api-dev-tools/blob/main/README.md",
70
+ "changelog": "https://github.com/hustle-together/api-dev-tools/blob/main/CHANGELOG.md",
71
+ "guides": {
72
+ "quickstart": "https://github.com/hustle-together/api-dev-tools/blob/main/.claude/commands/README.md",
73
+ "workflow": "https://github.com/hustle-together/api-dev-tools/blob/main/ENHANCEMENT_ROADMAP_v3.11.0.md",
74
+ "skills": "https://github.com/hustle-together/api-dev-tools/blob/main/.skills/README.md"
75
+ }
76
+ },
77
+ "skills": {
78
+ "api_development": [
79
+ "api-create",
80
+ "api-interview",
81
+ "api-research",
82
+ "api-verify",
83
+ "api-env",
84
+ "api-status"
85
+ ],
86
+ "tdd_workflow": ["red", "green", "refactor", "cycle"],
87
+ "planning": ["plan", "gap", "issue"],
88
+ "git_operations": [
89
+ "commit",
90
+ "pr",
91
+ "busycommit",
92
+ "worktree-add",
93
+ "worktree-cleanup"
94
+ ],
95
+ "workflow_utilities": [
96
+ "spike",
97
+ "beepboop",
98
+ "tdd",
99
+ "summarize",
100
+ "add-command"
101
+ ]
102
+ }
103
+ }
@@ -0,0 +1,293 @@
1
+ # API Development Tools - Agent Skills
2
+
3
+ **Version:** 1.0.0
4
+ **Standard:** [Agent Skills Open Format](https://agentskills.io)
5
+ **Platform:** Cross-platform (Claude Code, VS Code, Cursor, ChatGPT, GitHub Copilot)
6
+
7
+ ## 🚀 Quick Start
8
+
9
+ ### Installation via Claude Code Plugin
10
+
11
+ ```bash
12
+ /plugin marketplace add hustle-together/api-dev-tools
13
+ /plugin install api-dev-tools
14
+ ```
15
+
16
+ ### Installation via NPM
17
+
18
+ ```bash
19
+ npx @hustle-together/api-dev-tools --scope=project
20
+ ```
21
+
22
+ ### Manual Installation
23
+
24
+ 1. Clone the repository
25
+ 2. Copy `.skills/` to `~/.claude/skills/` (personal) or `.claude/skills/` (project)
26
+ 3. Copy `.skills/_shared/hooks/` to `.claude/hooks/` (for enforcement)
27
+ 4. Copy `.skills/_shared/settings.json` to `.claude/settings.json`
28
+ 5. Create `.claude/api-dev-state.json` (see template below)
29
+ 6. Create `.claude/research/` directory
30
+
31
+ ## 📚 Available Skills (23 Total)
32
+
33
+ ### API Development (6 skills)
34
+
35
+ | Skill | Usage | Description |
36
+ | ----------------- | --------------------------- | -------------------------------------------------------------------------- |
37
+ | **api-create** | `/api-create [endpoint]` | Complete 14-phase API workflow with interview, research, TDD, verification |
38
+ | **api-interview** | `/api-interview [endpoint]` | Structured requirements gathering with questions FROM research findings |
39
+ | **api-research** | `/api-research [library]` | Adaptive documentation research with 7-day caching |
40
+ | **api-verify** | `/api-verify [endpoint]` | Re-research after tests pass to catch implementation gaps |
41
+ | **api-env** | `/api-env [endpoint]` | Check API keys and environment variables |
42
+ | **api-status** | `/api-status [endpoint]` | Track progress through 14 phases |
43
+
44
+ ### TDD Workflow (4 skills)
45
+
46
+ | Skill | Usage | Description |
47
+ | ------------ | ---------------------- | -------------------------------------------------------------- |
48
+ | **red** | `/red` | Write ONE failing test (defines success before implementation) |
49
+ | **green** | `/green` | Minimal implementation to pass tests (no over-engineering) |
50
+ | **refactor** | `/refactor` | Clean up code while keeping tests green |
51
+ | **cycle** | `/cycle [description]` | Complete Red → Green → Refactor loop |
52
+
53
+ ### Planning & Analysis (3 skills)
54
+
55
+ | Skill | Usage | Description |
56
+ | --------- | ----------------- | --------------------------------------------------- |
57
+ | **plan** | `/plan [feature]` | Create implementation plan with PRD-style discovery |
58
+ | **gap** | `/gap` | Analyze code vs requirements for missing pieces |
59
+ | **issue** | `/issue [url]` | Create TDD plan from GitHub issue |
60
+
61
+ ### Git Operations (5 skills)
62
+
63
+ | Skill | Usage | Description |
64
+ | -------------------- | ------------------------------ | ---------------------------------------------- |
65
+ | **commit** | `/commit` | Semantic commit with co-author attribution |
66
+ | **pr** | `/pr` | Create pull request with summary and test plan |
67
+ | **busycommit** | `/busycommit` | Multiple atomic commits for complex changesets |
68
+ | **worktree-add** | `/worktree-add [branch/issue]` | Add git worktree from branch or issue |
69
+ | **worktree-cleanup** | `/worktree-cleanup` | Clean up merged worktrees |
70
+
71
+ ### Workflow Utilities (5 skills)
72
+
73
+ | Skill | Usage | Description |
74
+ | --------------- | -------------- | ------------------------------------ |
75
+ | **spike** | `/spike` | Exploratory coding before formal TDD |
76
+ | **tdd** | `/tdd` | Remind agent about TDD practices |
77
+ | **beepboop** | `/beepboop` | Transparent AI attribution markers |
78
+ | **summarize** | `/summarize` | Conversation progress summary |
79
+ | **add-command** | `/add-command` | Guide for creating new skills |
80
+
81
+ ## 🏗️ Architecture
82
+
83
+ ### 14-Phase Workflow
84
+
85
+ ```
86
+ Phase 1: DISAMBIGUATION - Clarify ambiguous terms before research
87
+ Phase 2: SCOPE - Confirm understanding of endpoint
88
+ Phase 3: INITIAL RESEARCH - 2-3 targeted searches (Context7, WebSearch)
89
+ Phase 4: INTERVIEW - Questions FROM discovered params
90
+ Phase 5: DEEP RESEARCH - Adaptive propose-approve searches
91
+ Phase 6: SCHEMA - Zod schema from research + interview
92
+ Phase 7: ENVIRONMENT - Verify API keys exist
93
+ Phase 8: TDD RED - Write failing tests from schema
94
+ Phase 9: TDD GREEN - Minimal implementation to pass
95
+ Phase 10: VERIFY - Re-research docs, compare to implementation
96
+ Phase 11: CODE REVIEW - Greptile AI review (bugs, security, performance)
97
+ Phase 12: TDD REFACTOR - Fix review issues, clean up code
98
+ Phase 13: DOCUMENTATION - Update manifests, cache research
99
+ Phase 14: COMPLETION - Final verification, commit
100
+ ```
101
+
102
+ ### Loop-Back Architecture
103
+
104
+ Every verification phase can loop back if not successful:
105
+
106
+ - Phase 1: Loop if disambiguation unclear
107
+ - Phase 3: Loop if more research needed
108
+ - Phase 4: Loop if interview incomplete
109
+ - Phase 6: Loop if schema incorrect
110
+ - Phase 8: Loop if test plan needs changes
111
+ - Phase 10: Loop if gaps found in implementation
112
+ - Phase 11: Loop if code review finds issues to fix
113
+ - Phase 13: Loop if documentation incomplete
114
+
115
+ ### State Tracking
116
+
117
+ All progress tracked in `.claude/api-dev-state.json`:
118
+
119
+ ```json
120
+ {
121
+ "version": "3.0.0",
122
+ "endpoint": null,
123
+ "turn_count": 0,
124
+ "phases": {},
125
+ "research_index": {}
126
+ }
127
+ ```
128
+
129
+ ### Research Cache
130
+
131
+ Documentation cached in `.claude/research/` with 7-day freshness:
132
+
133
+ ```
134
+ .claude/research/
135
+ ├── brandfetch/
136
+ │ ├── 2025-12-08_initial.md
137
+ │ ├── 2025-12-08_deep.md
138
+ │ └── CURRENT.md
139
+ └── index.json ← Freshness tracking
140
+ ```
141
+
142
+ ## ⚙️ Requirements
143
+
144
+ ### Required
145
+
146
+ - **Claude Code**: 1.0.0 or higher (or compatible platform)
147
+ - **Python**: 3.9+ (for enforcement hooks)
148
+ - **Node.js**: 18+ (for package management)
149
+ - **pnpm**: 10.11.0+ (package manager)
150
+
151
+ ### MCP Servers (Recommended)
152
+
153
+ - **Context7**: Documentation search and discovery
154
+ - **GitHub**: PR and issue integration
155
+
156
+ ### Optional but Recommended
157
+
158
+ - **Enforcement Hooks**: 22 Python scripts that enforce workflow rules
159
+ - **Settings.json**: Hook registration for lifecycle events
160
+
161
+ ## 🔒 Enforcement Hooks (22 Total)
162
+
163
+ For full workflow enforcement, install hooks to `hooks/`:
164
+
165
+ ### Hook Types
166
+
167
+ | Event | Hooks | Purpose |
168
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
169
+ | **SessionStart** | session-startup.py | Inject state context at session start |
170
+ | **UserPromptSubmit** | enforce-external-research.py | Detect API terms, require research |
171
+ | **PreToolUse** | enforce-research.py, enforce-interview.py, verify-implementation.py, enforce-component-type-confirm.py, notify-input-needed.py | Block writes until phases complete, inject decisions, confirm component type |
172
+ | **PostToolUse** | track-tool-use.py, periodic-reground.py, verify-after-green.py, notify-phase-complete.py, track-token-usage.py | Log research, re-ground every 7 turns, trigger verification, notify, track tokens |
173
+ | **Stop** | api-workflow-check.py | Block if phases incomplete |
174
+
175
+ ### What Hooks Enforce
176
+
177
+ 1. **Research Before Implementation**: Cannot write code without researching documentation
178
+ 2. **Interview Before Schema**: Cannot create Zod schema without user interview
179
+ 3. **Tests Before Implementation**: Cannot write route without test file
180
+ 4. **Verification After Green**: Automatically triggers re-research after tests pass
181
+ 5. **Documentation Completeness**: Blocks completion if docs not updated
182
+ 6. **7-Turn Re-grounding**: Prevents context dilution in long sessions
183
+
184
+ ## 🎯 Key Principles
185
+
186
+ 1. **Loop Until Green** - Every verification phase loops back if not successful
187
+ 2. **Questions FROM Research** - Never use generic template questions
188
+ 3. **Adaptive Research** - Propose searches based on context, not shotgun
189
+ 4. **7-Turn Re-grounding** - Context injected every 7 turns to prevent dilution
190
+ 5. **Verify After Green** - Re-research to catch memory-based implementation errors
191
+
192
+ ## 📖 Usage Examples
193
+
194
+ ### Example 1: Create New API Endpoint
195
+
196
+ ```bash
197
+ # Fully automated workflow
198
+ /api-create my-endpoint
199
+
200
+ # Follows all 14 phases automatically
201
+ # Asks for user input at each checkpoint
202
+ # Loops back if verification fails
203
+ # Creates tests, implementation, docs
204
+ ```
205
+
206
+ ### Example 2: Manual Step-by-Step
207
+
208
+ ```bash
209
+ # Research external API
210
+ /api-research stripe
211
+
212
+ # Interview for requirements
213
+ /api-interview payment
214
+
215
+ # Check environment
216
+ /api-env payment
217
+
218
+ # TDD workflow
219
+ /red
220
+ /green
221
+ /refactor
222
+
223
+ # Verify implementation
224
+ /api-verify payment
225
+
226
+ # Commit
227
+ /commit
228
+ ```
229
+
230
+ ### Example 3: From GitHub Issue
231
+
232
+ ```bash
233
+ # Create plan from issue
234
+ /issue https://github.com/org/repo/issues/123
235
+
236
+ # Execute plan
237
+ /cycle implement feature from issue
238
+
239
+ # Create PR
240
+ /pr
241
+ ```
242
+
243
+ ## 🌍 Platform Compatibility
244
+
245
+ ### ✅ Full Support (with hooks)
246
+
247
+ - **Claude Code**: Complete workflow with all enforcement hooks
248
+
249
+ ### ✅ Partial Support (skills only)
250
+
251
+ - **VS Code with GitHub Copilot**: Skills work, manual hook setup required
252
+ - **Cursor**: Skills work, manual hook setup required
253
+ - **ChatGPT**: Skills work, no hook support
254
+ - **Any Agent Skills-compatible platform**: Basic skill usage
255
+
256
+ ### Hook Setup for Non-Claude Code Platforms
257
+
258
+ 1. Copy `.skills/_shared/hooks/` to your project
259
+ 2. Copy `.skills/_shared/settings.json` to your project
260
+ 3. Configure your IDE/platform to run hooks (varies by platform)
261
+ 4. Hooks are OPTIONAL for basic usage
262
+ 5. Hooks are REQUIRED for full workflow enforcement
263
+
264
+ ## 📦 Distribution
265
+
266
+ - **GitHub**: [hustle-together/api-dev-tools](https://github.com/hustle-together/api-dev-tools)
267
+ - **NPM**: [@hustle-together/api-dev-tools](https://npmjs.com/package/@hustle-together/api-dev-tools)
268
+ - **SkillsMP**: [skillsmp.com](https://skillsmp.com) (pending submission)
269
+
270
+ ## 📄 License
271
+
272
+ MIT License - See [LICENSE](../../LICENSE) file
273
+
274
+ ## 🤝 Contributing
275
+
276
+ See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines
277
+
278
+ ## 📞 Support
279
+
280
+ - **Issues**: [GitHub Issues](https://github.com/hustle-together/api-dev-tools/issues)
281
+ - **Discussions**: [GitHub Discussions](https://github.com/hustle-together/api-dev-tools/discussions)
282
+ - **Email**: contact@hustletogether.dev
283
+
284
+ ## 🔗 Resources
285
+
286
+ - [Agent Skills Specification](https://agentskills.io/specification)
287
+ - [Claude Code Documentation](https://code.claude.com/docs)
288
+ - [Future Roadmap](../../ROADMAP.md)
289
+
290
+ ---
291
+
292
+ **Built with ❤️ by Hustle Together**
293
+ _Empowering developers with interview-driven, research-first API development_
@@ -0,0 +1,192 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Convert .claude/commands/*.md files to .skills/*/SKILL.md format
4
+ Adds YAML frontmatter while preserving all original content
5
+ """
6
+ import os
7
+ import re
8
+ from pathlib import Path
9
+
10
+ # Skill metadata templates
11
+ SKILL_METADATA = {
12
+ "api-interview": {
13
+ "description": "Structured interview for API requirements gathering. Questions generated FROM research findings, not templates. Use when you need to understand API parameter preferences, error handling, formats, and user decisions. Keywords: interview, requirements, api, questions, research, decisions",
14
+ "category": "development",
15
+ "tags": ["api", "interview", "requirements", "research"],
16
+ },
17
+ "api-research": {
18
+ "description": "Adaptive propose-approve research workflow for API documentation discovery. Use when researching external APIs, SDKs, or libraries. Caches research with 7-day freshness tracking. Keywords: research, documentation, api, discovery, cache, adaptive",
19
+ "category": "research",
20
+ "tags": ["api", "research", "documentation", "discovery", "cache"],
21
+ },
22
+ "api-verify": {
23
+ "description": "Manual Phase 10 verification - re-research documentation after tests pass to catch memory-based implementation errors. Compares implementation to docs, reports gaps. Use after TDD Green phase. Keywords: verification, testing, documentation, gaps, quality",
24
+ "category": "testing",
25
+ "tags": ["verification", "testing", "documentation", "quality"],
26
+ },
27
+ "api-env": {
28
+ "description": "Check required API keys and environment variables. Supports server env vars, NEXT_PUBLIC_ vars, and custom headers. Use before starting implementation. Keywords: environment, api-keys, configuration, setup, validation",
29
+ "category": "development",
30
+ "tags": ["environment", "api-keys", "configuration", "setup"],
31
+ },
32
+ "api-status": {
33
+ "description": "Track implementation progress through 13 phases. Shows completed, in-progress, and pending phases. Displays interview decisions and research cache info. Keywords: status, progress, tracking, phases, workflow",
34
+ "category": "workflow",
35
+ "tags": ["status", "progress", "tracking", "workflow"],
36
+ },
37
+ "red": {
38
+ "description": "TDD Red Phase - write ONE failing test that defines success before writing implementation. Use at the start of feature development to prevent over-engineering. Keywords: tdd, testing, red-phase, test-driven, failure",
39
+ "category": "testing",
40
+ "tags": ["tdd", "testing", "red-phase", "test-driven"],
41
+ },
42
+ "green": {
43
+ "description": "TDD Green Phase - write minimal implementation code to make the failing test pass. No over-engineering, just enough to pass. Use after writing failing tests. Keywords: tdd, testing, green-phase, implementation, minimal",
44
+ "category": "testing",
45
+ "tags": ["tdd", "testing", "green-phase", "implementation"],
46
+ },
47
+ "refactor": {
48
+ "description": "TDD Refactor Phase - improve code structure, readability, and performance while keeping all tests green. Use after tests pass to clean up code. Keywords: tdd, refactoring, cleanup, optimization, quality",
49
+ "category": "testing",
50
+ "tags": ["tdd", "refactoring", "cleanup", "optimization"],
51
+ },
52
+ "cycle": {
53
+ "description": "Execute complete TDD cycle - Red (write failing test) → Green (minimal implementation) → Refactor (cleanup). Use for feature development with single command. Keywords: tdd, cycle, workflow, testing, automation",
54
+ "category": "workflow",
55
+ "tags": ["tdd", "cycle", "workflow", "testing"],
56
+ },
57
+ "plan": {
58
+ "description": "Create implementation plan from feature or requirement with PRD-style discovery and TDD acceptance criteria. Generates step-by-step checklist. Use before starting complex features. Keywords: planning, prd, requirements, checklist, strategy",
59
+ "category": "planning",
60
+ "tags": ["planning", "prd", "requirements", "strategy"],
61
+ },
62
+ "gap": {
63
+ "description": "Analyze conversation context for unaddressed items and gaps. Scans code vs requirements to find missing pieces. Use during code review or planning. Keywords: analysis, gaps, requirements, review, completeness",
64
+ "category": "analysis",
65
+ "tags": ["analysis", "gaps", "requirements", "review"],
66
+ },
67
+ "issue": {
68
+ "description": "Analyze GitHub issue and create TDD implementation plan. Converts issue requirements into executable tasks with acceptance criteria. Use when starting work from issues. Keywords: github, issues, planning, tdd, requirements",
69
+ "category": "workflow",
70
+ "tags": ["github", "issues", "planning", "tdd"],
71
+ },
72
+ "commit": {
73
+ "description": "Create semantic git commit following project standards with co-author attribution. Analyzes staged changes, suggests commit message. Use after completing features. Keywords: git, commit, semantic, versioning, attribution",
74
+ "category": "git",
75
+ "tags": ["git", "commit", "semantic", "versioning"],
76
+ },
77
+ "pr": {
78
+ "description": "Create pull request using GitHub MCP. Generates PR summary from all commits, creates test plan. Use after pushing feature branch. Keywords: github, pull-request, pr, collaboration, review",
79
+ "category": "git",
80
+ "tags": ["github", "pull-request", "pr", "collaboration"],
81
+ },
82
+ "spike": {
83
+ "description": "Execute TDD Spike Phase - exploratory coding to understand problem space before formal TDD. Use when requirements are unclear or architecture needs exploration. Keywords: spike, exploration, prototyping, learning, architecture",
84
+ "category": "workflow",
85
+ "tags": ["spike", "exploration", "prototyping", "learning"],
86
+ },
87
+ "beepboop": {
88
+ "description": "Communicate AI-generated content with transparent attribution. Adds markers indicating AI authorship. Use when sharing AI-generated code or content. Keywords: attribution, transparency, ai-generated, ethics, communication",
89
+ "category": "workflow",
90
+ "tags": ["attribution", "transparency", "ai-generated", "ethics"],
91
+ },
92
+ "worktree-add": {
93
+ "description": "Add new git worktree from branch name or GitHub issue URL. Copies settings, installs deps, opens in IDE. Use for parallel feature development. Keywords: git, worktree, parallel, workflow, branches",
94
+ "category": "git",
95
+ "tags": ["git", "worktree", "parallel", "workflow"],
96
+ },
97
+ "worktree-cleanup": {
98
+ "description": "Clean up merged worktrees by verifying PR/issue status, consolidating settings, removing stale worktrees. Use after merging features. Keywords: git, worktree, cleanup, maintenance, branches",
99
+ "category": "git",
100
+ "tags": ["git", "worktree", "cleanup", "maintenance"],
101
+ },
102
+ "busycommit": {
103
+ "description": "Create multiple atomic git commits, one logical change at a time. Analyzes changes and separates into meaningful commits. Use for complex changesets. Keywords: git, commit, atomic, granular, organization",
104
+ "category": "git",
105
+ "tags": ["git", "commit", "atomic", "granular"],
106
+ },
107
+ "add-command": {
108
+ "description": "Guide for creating new slash commands or agent skills. Provides templates and best practices. Use when extending the toolkit. Keywords: meta, commands, skills, templates, development",
109
+ "category": "meta",
110
+ "tags": ["meta", "commands", "skills", "templates"],
111
+ },
112
+ "tdd": {
113
+ "description": "Remind agent about TDD approach and continue conversation. Reinforces test-first methodology. Use when agent deviates from TDD practices. Keywords: tdd, reminder, methodology, testing, practices",
114
+ "category": "workflow",
115
+ "tags": ["tdd", "reminder", "methodology", "testing"],
116
+ },
117
+ "summarize": {
118
+ "description": "Summarize conversation progress and next steps. Provides overview of completed work and remaining tasks. Use at end of sessions or before breaks. Keywords: summary, progress, overview, tracking, communication",
119
+ "category": "workflow",
120
+ "tags": ["summary", "progress", "overview", "tracking"],
121
+ },
122
+ }
123
+
124
+ def extract_title(content: str) -> str:
125
+ """Extract title from markdown heading"""
126
+ match = re.search(r'^#\s+(.+)$', content, re.MULTILINE)
127
+ return match.group(1) if match else "Untitled"
128
+
129
+ def convert_command_to_skill(command_file: Path, skills_dir: Path):
130
+ """Convert a command .md file to SKILL.md format"""
131
+ # Read original command
132
+ content = command_file.read_text()
133
+
134
+ # Extract skill name from filename
135
+ skill_name = command_file.stem
136
+
137
+ # Skip README and already converted
138
+ if skill_name in ["README", "api-create"]:
139
+ print(f"⏭️ Skipping {skill_name}")
140
+ return
141
+
142
+ # Get metadata or use defaults
143
+ metadata = SKILL_METADATA.get(skill_name, {
144
+ "description": f"{skill_name} command. Use when working with {skill_name} related tasks.",
145
+ "category": "workflow",
146
+ "tags": [skill_name],
147
+ })
148
+
149
+ # Create YAML frontmatter
150
+ frontmatter = f"""---
151
+ name: {skill_name}
152
+ description: {metadata['description']}
153
+ license: MIT
154
+ compatibility: Requires Claude Code with MCP servers (Context7, GitHub), Python 3.9+ for hooks, pnpm 10.11.0+
155
+ metadata:
156
+ version: "3.0.0"
157
+ category: "{metadata['category']}"
158
+ tags: {metadata['tags']}
159
+ author: "Hustle Together"
160
+ allowed-tools: WebSearch WebFetch mcp__context7 mcp__github AskUserQuestion Read Write Edit Bash TodoWrite
161
+ ---
162
+
163
+ """
164
+
165
+ # Combine frontmatter + original content
166
+ skill_content = frontmatter + content
167
+
168
+ # Create skill directory and write SKILL.md
169
+ skill_dir = skills_dir / skill_name
170
+ skill_dir.mkdir(exist_ok=True)
171
+ skill_file = skill_dir / "SKILL.md"
172
+ skill_file.write_text(skill_content)
173
+
174
+ print(f"✅ Converted {skill_name}")
175
+
176
+ def main():
177
+ # Set up paths
178
+ repo_root = Path(__file__).parent.parent.parent
179
+ commands_dir = repo_root / ".claude" / "commands"
180
+ skills_dir = repo_root / ".skills"
181
+
182
+ print("🔄 Converting commands to Agent Skills format...\n")
183
+
184
+ # Convert all command files
185
+ for command_file in sorted(commands_dir.glob("*.md")):
186
+ convert_command_to_skill(command_file, skills_dir)
187
+
188
+ print("\n✨ Conversion complete!")
189
+ print(f"📁 Skills created in: {skills_dir}")
190
+
191
+ if __name__ == "__main__":
192
+ main()