vibe-fabric 0.1.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 (271) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -0
  3. package/dist/cli/commands/claude.d.ts +19 -0
  4. package/dist/cli/commands/claude.d.ts.map +1 -0
  5. package/dist/cli/commands/claude.js +107 -0
  6. package/dist/cli/commands/claude.js.map +1 -0
  7. package/dist/cli/commands/coverage.d.ts +37 -0
  8. package/dist/cli/commands/coverage.d.ts.map +1 -0
  9. package/dist/cli/commands/coverage.js +374 -0
  10. package/dist/cli/commands/coverage.js.map +1 -0
  11. package/dist/cli/commands/doctor.d.ts +30 -0
  12. package/dist/cli/commands/doctor.d.ts.map +1 -0
  13. package/dist/cli/commands/doctor.js +187 -0
  14. package/dist/cli/commands/doctor.js.map +1 -0
  15. package/dist/cli/commands/gaps.d.ts +52 -0
  16. package/dist/cli/commands/gaps.d.ts.map +1 -0
  17. package/dist/cli/commands/gaps.js +487 -0
  18. package/dist/cli/commands/gaps.js.map +1 -0
  19. package/dist/cli/commands/help.d.ts +7 -0
  20. package/dist/cli/commands/help.d.ts.map +1 -0
  21. package/dist/cli/commands/help.js +51 -0
  22. package/dist/cli/commands/help.js.map +1 -0
  23. package/dist/cli/commands/init.d.ts +39 -0
  24. package/dist/cli/commands/init.d.ts.map +1 -0
  25. package/dist/cli/commands/init.js +246 -0
  26. package/dist/cli/commands/init.js.map +1 -0
  27. package/dist/cli/commands/prd.d.ts +30 -0
  28. package/dist/cli/commands/prd.d.ts.map +1 -0
  29. package/dist/cli/commands/prd.js +179 -0
  30. package/dist/cli/commands/prd.js.map +1 -0
  31. package/dist/cli/commands/repo/add.d.ts +36 -0
  32. package/dist/cli/commands/repo/add.d.ts.map +1 -0
  33. package/dist/cli/commands/repo/add.js +303 -0
  34. package/dist/cli/commands/repo/add.js.map +1 -0
  35. package/dist/cli/commands/scope.d.ts +36 -0
  36. package/dist/cli/commands/scope.d.ts.map +1 -0
  37. package/dist/cli/commands/scope.js +312 -0
  38. package/dist/cli/commands/scope.js.map +1 -0
  39. package/dist/cli/commands/send.d.ts +43 -0
  40. package/dist/cli/commands/send.d.ts.map +1 -0
  41. package/dist/cli/commands/send.js +469 -0
  42. package/dist/cli/commands/send.js.map +1 -0
  43. package/dist/cli/commands/status.d.ts +32 -0
  44. package/dist/cli/commands/status.d.ts.map +1 -0
  45. package/dist/cli/commands/status.js +422 -0
  46. package/dist/cli/commands/status.js.map +1 -0
  47. package/dist/cli/commands/sync.d.ts +37 -0
  48. package/dist/cli/commands/sync.d.ts.map +1 -0
  49. package/dist/cli/commands/sync.js +299 -0
  50. package/dist/cli/commands/sync.js.map +1 -0
  51. package/dist/cli/commands/version.d.ts +7 -0
  52. package/dist/cli/commands/version.d.ts.map +1 -0
  53. package/dist/cli/commands/version.js +45 -0
  54. package/dist/cli/commands/version.js.map +1 -0
  55. package/dist/cli/index.d.ts +3 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +65 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/ui/components/ActiveScopes.d.ts +13 -0
  60. package/dist/cli/ui/components/ActiveScopes.d.ts.map +1 -0
  61. package/dist/cli/ui/components/ActiveScopes.js +25 -0
  62. package/dist/cli/ui/components/ActiveScopes.js.map +1 -0
  63. package/dist/cli/ui/components/EmptyState.d.ts +24 -0
  64. package/dist/cli/ui/components/EmptyState.d.ts.map +1 -0
  65. package/dist/cli/ui/components/EmptyState.js +13 -0
  66. package/dist/cli/ui/components/EmptyState.js.map +1 -0
  67. package/dist/cli/ui/components/Header.d.ts +11 -0
  68. package/dist/cli/ui/components/Header.d.ts.map +1 -0
  69. package/dist/cli/ui/components/Header.js +32 -0
  70. package/dist/cli/ui/components/Header.js.map +1 -0
  71. package/dist/cli/ui/components/PrdCoverage.d.ts +12 -0
  72. package/dist/cli/ui/components/PrdCoverage.d.ts.map +1 -0
  73. package/dist/cli/ui/components/PrdCoverage.js +15 -0
  74. package/dist/cli/ui/components/PrdCoverage.js.map +1 -0
  75. package/dist/cli/ui/components/RecentActivity.d.ts +12 -0
  76. package/dist/cli/ui/components/RecentActivity.d.ts.map +1 -0
  77. package/dist/cli/ui/components/RecentActivity.js +40 -0
  78. package/dist/cli/ui/components/RecentActivity.js.map +1 -0
  79. package/dist/cli/ui/components/RepoList.d.ts +12 -0
  80. package/dist/cli/ui/components/RepoList.d.ts.map +1 -0
  81. package/dist/cli/ui/components/RepoList.js +24 -0
  82. package/dist/cli/ui/components/RepoList.js.map +1 -0
  83. package/dist/cli/ui/components/Shortcuts.d.ts +7 -0
  84. package/dist/cli/ui/components/Shortcuts.d.ts.map +1 -0
  85. package/dist/cli/ui/components/Shortcuts.js +7 -0
  86. package/dist/cli/ui/components/Shortcuts.js.map +1 -0
  87. package/dist/cli/ui/components/index.d.ts +12 -0
  88. package/dist/cli/ui/components/index.d.ts.map +1 -0
  89. package/dist/cli/ui/components/index.js +12 -0
  90. package/dist/cli/ui/components/index.js.map +1 -0
  91. package/dist/cli/ui/dashboard.d.ts +9 -0
  92. package/dist/cli/ui/dashboard.d.ts.map +1 -0
  93. package/dist/cli/ui/dashboard.js +102 -0
  94. package/dist/cli/ui/dashboard.js.map +1 -0
  95. package/dist/core/commands.d.ts +32 -0
  96. package/dist/core/commands.d.ts.map +1 -0
  97. package/dist/core/commands.js +361 -0
  98. package/dist/core/commands.js.map +1 -0
  99. package/dist/core/config.d.ts +18 -0
  100. package/dist/core/config.d.ts.map +1 -0
  101. package/dist/core/config.js +78 -0
  102. package/dist/core/config.js.map +1 -0
  103. package/dist/core/coverage.d.ts +32 -0
  104. package/dist/core/coverage.d.ts.map +1 -0
  105. package/dist/core/coverage.js +286 -0
  106. package/dist/core/coverage.js.map +1 -0
  107. package/dist/core/dashboard/data.d.ts +73 -0
  108. package/dist/core/dashboard/data.d.ts.map +1 -0
  109. package/dist/core/dashboard/data.js +250 -0
  110. package/dist/core/dashboard/data.js.map +1 -0
  111. package/dist/core/dependencies.d.ts +39 -0
  112. package/dist/core/dependencies.d.ts.map +1 -0
  113. package/dist/core/dependencies.js +160 -0
  114. package/dist/core/dependencies.js.map +1 -0
  115. package/dist/core/doctor/auth.d.ts +22 -0
  116. package/dist/core/doctor/auth.d.ts.map +1 -0
  117. package/dist/core/doctor/auth.js +147 -0
  118. package/dist/core/doctor/auth.js.map +1 -0
  119. package/dist/core/doctor/config.d.ts +26 -0
  120. package/dist/core/doctor/config.d.ts.map +1 -0
  121. package/dist/core/doctor/config.js +172 -0
  122. package/dist/core/doctor/config.js.map +1 -0
  123. package/dist/core/doctor/environment.d.ts +26 -0
  124. package/dist/core/doctor/environment.d.ts.map +1 -0
  125. package/dist/core/doctor/environment.js +145 -0
  126. package/dist/core/doctor/environment.js.map +1 -0
  127. package/dist/core/doctor/index.d.ts +44 -0
  128. package/dist/core/doctor/index.d.ts.map +1 -0
  129. package/dist/core/doctor/index.js +134 -0
  130. package/dist/core/doctor/index.js.map +1 -0
  131. package/dist/core/doctor/repos.d.ts +22 -0
  132. package/dist/core/doctor/repos.d.ts.map +1 -0
  133. package/dist/core/doctor/repos.js +262 -0
  134. package/dist/core/doctor/repos.js.map +1 -0
  135. package/dist/core/doctor/sync.d.ts +18 -0
  136. package/dist/core/doctor/sync.d.ts.map +1 -0
  137. package/dist/core/doctor/sync.js +146 -0
  138. package/dist/core/doctor/sync.js.map +1 -0
  139. package/dist/core/gaps.d.ts +70 -0
  140. package/dist/core/gaps.d.ts.map +1 -0
  141. package/dist/core/gaps.js +448 -0
  142. package/dist/core/gaps.js.map +1 -0
  143. package/dist/core/github.d.ts +38 -0
  144. package/dist/core/github.d.ts.map +1 -0
  145. package/dist/core/github.js +102 -0
  146. package/dist/core/github.js.map +1 -0
  147. package/dist/core/prd/analyzer.d.ts +44 -0
  148. package/dist/core/prd/analyzer.d.ts.map +1 -0
  149. package/dist/core/prd/analyzer.js +259 -0
  150. package/dist/core/prd/analyzer.js.map +1 -0
  151. package/dist/core/prd/check.d.ts +17 -0
  152. package/dist/core/prd/check.d.ts.map +1 -0
  153. package/dist/core/prd/check.js +154 -0
  154. package/dist/core/prd/check.js.map +1 -0
  155. package/dist/core/prd/index.d.ts +6 -0
  156. package/dist/core/prd/index.d.ts.map +1 -0
  157. package/dist/core/prd/index.js +6 -0
  158. package/dist/core/prd/index.js.map +1 -0
  159. package/dist/core/project.d.ts +13 -0
  160. package/dist/core/project.d.ts.map +1 -0
  161. package/dist/core/project.js +810 -0
  162. package/dist/core/project.js.map +1 -0
  163. package/dist/core/prompts.d.ts +52 -0
  164. package/dist/core/prompts.d.ts.map +1 -0
  165. package/dist/core/prompts.js +266 -0
  166. package/dist/core/prompts.js.map +1 -0
  167. package/dist/core/repo/framework.d.ts +38 -0
  168. package/dist/core/repo/framework.d.ts.map +1 -0
  169. package/dist/core/repo/framework.js +142 -0
  170. package/dist/core/repo/framework.js.map +1 -0
  171. package/dist/core/repo/index.d.ts +6 -0
  172. package/dist/core/repo/index.d.ts.map +1 -0
  173. package/dist/core/repo/index.js +6 -0
  174. package/dist/core/repo/index.js.map +1 -0
  175. package/dist/core/repo/templates/claude-agents.d.ts +6 -0
  176. package/dist/core/repo/templates/claude-agents.d.ts.map +1 -0
  177. package/dist/core/repo/templates/claude-agents.js +173 -0
  178. package/dist/core/repo/templates/claude-agents.js.map +1 -0
  179. package/dist/core/repo/templates/claude-commands.d.ts +6 -0
  180. package/dist/core/repo/templates/claude-commands.d.ts.map +1 -0
  181. package/dist/core/repo/templates/claude-commands.js +278 -0
  182. package/dist/core/repo/templates/claude-commands.js.map +1 -0
  183. package/dist/core/repo/templates/claude-prompts.d.ts +6 -0
  184. package/dist/core/repo/templates/claude-prompts.d.ts.map +1 -0
  185. package/dist/core/repo/templates/claude-prompts.js +258 -0
  186. package/dist/core/repo/templates/claude-prompts.js.map +1 -0
  187. package/dist/core/repo/templates/claude-scripts.d.ts +6 -0
  188. package/dist/core/repo/templates/claude-scripts.d.ts.map +1 -0
  189. package/dist/core/repo/templates/claude-scripts.js +212 -0
  190. package/dist/core/repo/templates/claude-scripts.js.map +1 -0
  191. package/dist/core/repo/templates/index.d.ts +22 -0
  192. package/dist/core/repo/templates/index.d.ts.map +1 -0
  193. package/dist/core/repo/templates/index.js +121 -0
  194. package/dist/core/repo/templates/index.js.map +1 -0
  195. package/dist/core/repo/templates/vibe-readme.d.ts +6 -0
  196. package/dist/core/repo/templates/vibe-readme.d.ts.map +1 -0
  197. package/dist/core/repo/templates/vibe-readme.js +204 -0
  198. package/dist/core/repo/templates/vibe-readme.js.map +1 -0
  199. package/dist/core/repo/templates/vibe-scripts.d.ts +6 -0
  200. package/dist/core/repo/templates/vibe-scripts.d.ts.map +1 -0
  201. package/dist/core/repo/templates/vibe-scripts.js +308 -0
  202. package/dist/core/repo/templates/vibe-scripts.js.map +1 -0
  203. package/dist/core/repo/validation.d.ts +46 -0
  204. package/dist/core/repo/validation.d.ts.map +1 -0
  205. package/dist/core/repo/validation.js +154 -0
  206. package/dist/core/repo/validation.js.map +1 -0
  207. package/dist/core/runner.d.ts +38 -0
  208. package/dist/core/runner.d.ts.map +1 -0
  209. package/dist/core/runner.js +124 -0
  210. package/dist/core/runner.js.map +1 -0
  211. package/dist/core/send.d.ts +83 -0
  212. package/dist/core/send.d.ts.map +1 -0
  213. package/dist/core/send.js +565 -0
  214. package/dist/core/send.js.map +1 -0
  215. package/dist/core/status.d.ts +76 -0
  216. package/dist/core/status.d.ts.map +1 -0
  217. package/dist/core/status.js +430 -0
  218. package/dist/core/status.js.map +1 -0
  219. package/dist/core/sync/aggregator.d.ts +22 -0
  220. package/dist/core/sync/aggregator.d.ts.map +1 -0
  221. package/dist/core/sync/aggregator.js +278 -0
  222. package/dist/core/sync/aggregator.js.map +1 -0
  223. package/dist/core/sync/completion.d.ts +37 -0
  224. package/dist/core/sync/completion.d.ts.map +1 -0
  225. package/dist/core/sync/completion.js +264 -0
  226. package/dist/core/sync/completion.js.map +1 -0
  227. package/dist/core/sync/index.d.ts +51 -0
  228. package/dist/core/sync/index.d.ts.map +1 -0
  229. package/dist/core/sync/index.js +200 -0
  230. package/dist/core/sync/index.js.map +1 -0
  231. package/dist/core/sync/scanner.d.ts +39 -0
  232. package/dist/core/sync/scanner.d.ts.map +1 -0
  233. package/dist/core/sync/scanner.js +364 -0
  234. package/dist/core/sync/scanner.js.map +1 -0
  235. package/dist/types/config.d.ts +157 -0
  236. package/dist/types/config.d.ts.map +1 -0
  237. package/dist/types/config.js +58 -0
  238. package/dist/types/config.js.map +1 -0
  239. package/dist/types/coverage.d.ts +100 -0
  240. package/dist/types/coverage.d.ts.map +1 -0
  241. package/dist/types/coverage.js +8 -0
  242. package/dist/types/coverage.js.map +1 -0
  243. package/dist/types/doctor.d.ts +68 -0
  244. package/dist/types/doctor.d.ts.map +1 -0
  245. package/dist/types/doctor.js +5 -0
  246. package/dist/types/doctor.js.map +1 -0
  247. package/dist/types/gaps.d.ts +129 -0
  248. package/dist/types/gaps.d.ts.map +1 -0
  249. package/dist/types/gaps.js +8 -0
  250. package/dist/types/gaps.js.map +1 -0
  251. package/dist/types/prompts.d.ts +99 -0
  252. package/dist/types/prompts.d.ts.map +1 -0
  253. package/dist/types/prompts.js +5 -0
  254. package/dist/types/prompts.js.map +1 -0
  255. package/dist/types/runner.d.ts +156 -0
  256. package/dist/types/runner.d.ts.map +1 -0
  257. package/dist/types/runner.js +41 -0
  258. package/dist/types/runner.js.map +1 -0
  259. package/dist/types/send.d.ts +157 -0
  260. package/dist/types/send.d.ts.map +1 -0
  261. package/dist/types/send.js +18 -0
  262. package/dist/types/send.js.map +1 -0
  263. package/dist/types/status.d.ts +150 -0
  264. package/dist/types/status.d.ts.map +1 -0
  265. package/dist/types/status.js +15 -0
  266. package/dist/types/status.js.map +1 -0
  267. package/dist/types/sync.d.ts +259 -0
  268. package/dist/types/sync.d.ts.map +1 -0
  269. package/dist/types/sync.js +38 -0
  270. package/dist/types/sync.js.map +1 -0
  271. package/package.json +72 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 vibe-fabric contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,171 @@
1
+ # vibe-fabric
2
+
3
+ > AI-Collaborative Development Coordination Framework
4
+
5
+ A CLI tool that helps you coordinate software development across multiple repositories using AI assistance. Create a **planning hub** where you manage requirements, create work scopes, and track implementation progress.
6
+
7
+ ## Features
8
+
9
+ - **Planning Hub** - Central coordination point for multi-repo projects
10
+ - **AI-Powered PRD Management** - Create and maintain living requirements documents
11
+ - **Scope Management** - Break requirements into actionable work packages
12
+ - **Repository Sync** - Track implementation progress across repositories
13
+ - **Gap Analysis** - Identify what's implemented vs. what's planned
14
+ - **Claude Code Integration** - Slash commands and multi-session AI runner
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Install globally
20
+ npm install -g vibe-fabric
21
+
22
+ # Create a planning hub
23
+ vibe init my-project
24
+ cd my-project
25
+
26
+ # Add a repository to coordinate
27
+ vibe repo add https://github.com/your-org/your-repo
28
+
29
+ # Create/manage PRD with AI assistance
30
+ vibe prd
31
+
32
+ # Create scopes from requirements
33
+ vibe scope
34
+
35
+ # Send scopes to dev repos
36
+ vibe send SCOPE-001
37
+
38
+ # Check project status
39
+ vibe status
40
+ ```
41
+
42
+ ## Prerequisites
43
+
44
+ | Requirement | Purpose |
45
+ |-------------|---------|
46
+ | **Node.js 18+** | Runtime for CLI |
47
+ | **Claude Code** | AI-powered commands |
48
+ | **GitHub Token** | Repository operations |
49
+ | **UV** (optional) | Python runner for AI scripts |
50
+
51
+ ### Install UV (for AI commands)
52
+
53
+ ```bash
54
+ curl -LsSf https://astral.sh/uv/install.sh | sh
55
+ ```
56
+
57
+ ## Commands
58
+
59
+ ### Core Commands
60
+
61
+ | Command | Description |
62
+ |---------|-------------|
63
+ | `vibe init [name]` | Initialize a planning hub |
64
+ | `vibe repo add <url>` | Add repository to hub |
65
+ | `vibe prd` | AI-powered PRD management |
66
+ | `vibe scope` | AI-powered scope management |
67
+ | `vibe send [scope-id]` | Send scopes to repositories |
68
+ | `vibe sync` | Sync progress from repositories |
69
+ | `vibe status` | Show project status overview |
70
+ | `vibe coverage` | PRD coverage analysis |
71
+ | `vibe gaps` | Gap analysis (PRD vs implementation) |
72
+ | `vibe doctor` | Health check and diagnostics |
73
+ | `vibe claude commands` | Manage Claude Code slash commands |
74
+
75
+ ### Examples
76
+
77
+ ```bash
78
+ # Initialize and set up
79
+ vibe init my-project
80
+ vibe repo add https://github.com/org/backend
81
+ vibe repo add https://github.com/org/frontend
82
+
83
+ # AI-assisted workflow
84
+ vibe prd # Create/update requirements
85
+ vibe scope # Generate work scopes
86
+ vibe send SCOPE-001 # Send to dev repo
87
+
88
+ # Monitor progress
89
+ vibe sync # Pull progress from repos
90
+ vibe status # Overview dashboard
91
+ vibe coverage # Detailed coverage report
92
+ vibe gaps # Find implementation gaps
93
+ ```
94
+
95
+ ## Architecture
96
+
97
+ ```
98
+ PLANNING HUB (your-project/)
99
+ ├── docs/prd/ Product requirements
100
+ ├── docs/scopes/ Work packages (drafts/completed)
101
+ ├── docs/sync-cache/ Synced data from repositories
102
+ ├── .claude/ AI commands and scripts
103
+ └── vibe-fabric.toml Configuration
104
+
105
+ │ vibe send vibe sync
106
+ ▼ ▲
107
+ ┌─────────────────┐ ┌─────────────────┐
108
+ │ DEV REPO 1 │ │ DEV REPO 2 │
109
+ │ (backend) │ │ (frontend) │
110
+ ├─────────────────┤ ├─────────────────┤
111
+ │ vibe/ │ │ vibe/ │
112
+ │ ├── incoming/ │ │ ├── incoming/ │
113
+ │ └── impl-plans/ │ │ └── impl-plans/ │
114
+ └─────────────────┘ └─────────────────┘
115
+ ```
116
+
117
+ ## Documentation
118
+
119
+ - [Installation Guide](docs/wiki/getting-started/installation.md)
120
+ - [Quick Start Tutorial](docs/wiki/getting-started/quick-start.md)
121
+ - [Core Concepts](docs/wiki/getting-started/concepts.md)
122
+ - [Command Reference](docs/wiki/README.md)
123
+
124
+ ## Development
125
+
126
+ ```bash
127
+ # Clone the repository
128
+ git clone https://github.com/jneaimi/vibe-fabric.git
129
+ cd vibe-fabric
130
+
131
+ # Install dependencies
132
+ npm install
133
+
134
+ # Build
135
+ npm run build
136
+
137
+ # Run tests
138
+ npm test
139
+
140
+ # Run CLI locally
141
+ node dist/cli/index.js --help
142
+ ```
143
+
144
+ ## Project Structure
145
+
146
+ ```
147
+ vibe-fabric/
148
+ ├── src/
149
+ │ ├── cli/ CLI commands (Clipanion)
150
+ │ ├── core/ Core business logic
151
+ │ └── types/ TypeScript types
152
+ ├── tests/ Test suite (Vitest)
153
+ ├── docs/
154
+ │ ├── prd/ Product requirements
155
+ │ ├── scopes/ Implementation scopes
156
+ │ └── wiki/ User documentation
157
+ └── .claude/ Claude Code integration
158
+ ```
159
+
160
+ ## Contributing
161
+
162
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
163
+
164
+ ## License
165
+
166
+ [MIT](LICENSE)
167
+
168
+ ## Support
169
+
170
+ - **Issues**: [GitHub Issues](https://github.com/jneaimi/vibe-fabric/issues)
171
+ - **Discussions**: [GitHub Discussions](https://github.com/jneaimi/vibe-fabric/discussions)
@@ -0,0 +1,19 @@
1
+ import { Command } from 'clipanion';
2
+ /**
3
+ * vibe claude commands - Manage Claude Code commands
4
+ */
5
+ export declare class ClaudeCommandsCommand extends Command {
6
+ static paths: string[][];
7
+ static usage: import("clipanion").Usage;
8
+ list: boolean;
9
+ execute(): Promise<number>;
10
+ /**
11
+ * List all available commands
12
+ */
13
+ private listAllCommands;
14
+ /**
15
+ * Regenerate built-in commands
16
+ */
17
+ private regenerateCommands;
18
+ }
19
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAU5C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,OAAgB,KAAK,aAA4B;IAEjD,OAAgB,KAAK,4BAYlB;IAEH,IAAI,UAED;IAEG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAmBhC;;OAEG;YACW,eAAe;IAqD7B;;OAEG;YACW,kBAAkB;CAiCjC"}
@@ -0,0 +1,107 @@
1
+ import { Command, Option } from 'clipanion';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { isVibeProject } from '../../core/config.js';
5
+ import { generatePlanningHubCommands, listCommands, ensureCustomCommandsDir, } from '../../core/commands.js';
6
+ /**
7
+ * vibe claude commands - Manage Claude Code commands
8
+ */
9
+ export class ClaudeCommandsCommand extends Command {
10
+ static paths = [['claude', 'commands']];
11
+ static usage = Command.Usage({
12
+ description: 'Generate and manage Claude Code commands',
13
+ details: `
14
+ Manages the .claude/commands/ directory for slash commands.
15
+
16
+ Without flags, regenerates all built-in planning hub commands.
17
+ Custom commands in .claude/commands/custom/ are never overwritten.
18
+ `,
19
+ examples: [
20
+ ['Regenerate commands', 'vibe claude commands'],
21
+ ['List all commands', 'vibe claude commands --list'],
22
+ ],
23
+ });
24
+ list = Option.Boolean('--list,-l', false, {
25
+ description: 'List all available commands',
26
+ });
27
+ async execute() {
28
+ // Check if in a vibe project
29
+ if (!isVibeProject(process.cwd())) {
30
+ this.context.stderr.write(chalk.red('Error: Not in a vibe-fabric project.\n'));
31
+ this.context.stderr.write(chalk.gray('Run `vibe init` to create a project first.\n'));
32
+ return 1;
33
+ }
34
+ if (this.list) {
35
+ return this.listAllCommands();
36
+ }
37
+ return this.regenerateCommands();
38
+ }
39
+ /**
40
+ * List all available commands
41
+ */
42
+ async listAllCommands() {
43
+ const spinner = ora('Scanning commands...').start();
44
+ try {
45
+ const { builtin, custom } = await listCommands(process.cwd());
46
+ spinner.stop();
47
+ this.context.stdout.write('\n');
48
+ this.context.stdout.write(chalk.bold('Planning Hub Commands:\n'));
49
+ this.context.stdout.write(chalk.gray('─'.repeat(50)) + '\n');
50
+ if (builtin.length === 0) {
51
+ this.context.stdout.write(chalk.gray(' No commands found. Run `vibe claude commands` to generate.\n'));
52
+ }
53
+ else {
54
+ for (const cmd of builtin) {
55
+ const modelTag = cmd.model ? chalk.dim(` [${cmd.model}]`) : '';
56
+ this.context.stdout.write(` ${chalk.cyan('/' + cmd.name.padEnd(18))} ${cmd.description}${modelTag}\n`);
57
+ }
58
+ }
59
+ if (custom.length > 0) {
60
+ this.context.stdout.write('\n');
61
+ this.context.stdout.write(chalk.bold('Custom Commands:\n'));
62
+ this.context.stdout.write(chalk.gray('─'.repeat(50)) + '\n');
63
+ for (const cmd of custom) {
64
+ const modelTag = cmd.model ? chalk.dim(` [${cmd.model}]`) : '';
65
+ this.context.stdout.write(` ${chalk.green('/' + cmd.name.padEnd(18))} ${cmd.description}${modelTag}\n`);
66
+ }
67
+ }
68
+ this.context.stdout.write('\n');
69
+ this.context.stdout.write(chalk.gray('Use these commands in Claude Code with /<command-name>\n'));
70
+ this.context.stdout.write('\n');
71
+ return 0;
72
+ }
73
+ catch (error) {
74
+ spinner.fail('Failed to list commands');
75
+ this.context.stderr.write(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
76
+ return 1;
77
+ }
78
+ }
79
+ /**
80
+ * Regenerate built-in commands
81
+ */
82
+ async regenerateCommands() {
83
+ const spinner = ora('Regenerating commands...').start();
84
+ try {
85
+ // Ensure custom directory exists (won't be overwritten)
86
+ await ensureCustomCommandsDir(process.cwd());
87
+ // Generate planning hub commands
88
+ const created = await generatePlanningHubCommands(process.cwd());
89
+ spinner.succeed(`Generated ${created.length} commands`);
90
+ this.context.stdout.write('\n');
91
+ this.context.stdout.write(chalk.bold('Commands created:\n'));
92
+ for (const name of created) {
93
+ this.context.stdout.write(` ${chalk.green('✓')} ${name}\n`);
94
+ }
95
+ this.context.stdout.write('\n');
96
+ this.context.stdout.write(chalk.gray('Run `vibe claude commands --list` to see all commands.\n'));
97
+ this.context.stdout.write('\n');
98
+ return 0;
99
+ }
100
+ catch (error) {
101
+ spinner.fail('Failed to generate commands');
102
+ this.context.stderr.write(chalk.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}\n`));
103
+ return 1;
104
+ }
105
+ }
106
+ }
107
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/cli/commands/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * vibe coverage - Detailed PRD coverage analysis
3
+ *
4
+ * Displays detailed coverage of PRD requirements including
5
+ * per-requirement breakdowns, module filtering, and status grouping.
6
+ */
7
+ import { Command } from 'clipanion';
8
+ export declare class CoverageCommand extends Command {
9
+ static paths: string[][];
10
+ static usage: import("clipanion").Usage;
11
+ byModule: boolean;
12
+ byStatus: boolean;
13
+ module: string | undefined;
14
+ json: boolean;
15
+ execute(): Promise<number>;
16
+ /**
17
+ * Output JSON format
18
+ */
19
+ private outputJson;
20
+ /**
21
+ * Output summary view (default)
22
+ */
23
+ private outputSummary;
24
+ /**
25
+ * Output by-module view (detailed breakdown)
26
+ */
27
+ private outputByModule;
28
+ /**
29
+ * Output by-status view
30
+ */
31
+ private outputByStatus;
32
+ /**
33
+ * Output single module detail view
34
+ */
35
+ private outputModuleDetail;
36
+ }
37
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/coverage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAoC5C,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,OAAgB,KAAK,aAAkB;IAEvC,OAAgB,KAAK,4BAkBlB;IAGH,QAAQ,UAEL;IAEH,QAAQ,UAEL;IAEH,MAAM,qBAEH;IAEH,IAAI,UAED;IAEG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAiGhC;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,CAAC,aAAa;IA4ErB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqCtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsDtB;;OAEG;YACW,kBAAkB;CA+HjC"}