@luanpdd/kit-mcp 1.20.0 → 1.21.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 (259) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +648 -648
  3. package/gates/dept-cycle-prevention.md +179 -0
  4. package/gates/multi-tenant-rls-coverage.md +102 -0
  5. package/gates/service-role-not-in-user-facing.md +113 -0
  6. package/kit/COMANDOS.md +138 -138
  7. package/kit/README.md +52 -52
  8. package/kit/agents/advisor-researcher.md +106 -106
  9. package/kit/agents/assumptions-analyzer.md +107 -107
  10. package/kit/agents/audit-log-implementer.md +175 -0
  11. package/kit/agents/b2b-saas-architect.md +156 -0
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +150 -0
  14. package/kit/agents/debugger.md +772 -772
  15. package/kit/agents/evolution-go-integrator.md +179 -0
  16. package/kit/agents/example-reviewer.md +21 -21
  17. package/kit/agents/executor.md +523 -523
  18. package/kit/agents/integration-checker.md +200 -200
  19. package/kit/agents/invite-flow-implementer.md +137 -0
  20. package/kit/agents/lgpd-compliance-auditor.md +206 -0
  21. package/kit/agents/multi-tenant-isolation-auditor.md +243 -0
  22. package/kit/agents/multi-tenant-rls-writer.md +262 -0
  23. package/kit/agents/nyquist-auditor.md +178 -178
  24. package/kit/agents/org-onboarding-implementer.md +202 -0
  25. package/kit/agents/phase-researcher.md +696 -696
  26. package/kit/agents/plan-checker.md +272 -272
  27. package/kit/agents/planner.md +891 -891
  28. package/kit/agents/project-researcher.md +652 -652
  29. package/kit/agents/research-synthesizer.md +245 -245
  30. package/kit/agents/roadmapper.md +677 -677
  31. package/kit/agents/super-admin-implementer.md +182 -0
  32. package/kit/agents/ui-auditor.md +437 -437
  33. package/kit/agents/ui-checker.md +302 -302
  34. package/kit/agents/ui-researcher.md +355 -355
  35. package/kit/agents/user-profiler.md +175 -175
  36. package/kit/agents/verifier.md +728 -728
  37. package/kit/commands/adicionar-backlog.md +75 -75
  38. package/kit/commands/adicionar-fase.md +42 -42
  39. package/kit/commands/adicionar-tarefa.md +45 -45
  40. package/kit/commands/adicionar-testes.md +41 -41
  41. package/kit/commands/ajuda.md +21 -21
  42. package/kit/commands/atualizar.md +37 -37
  43. package/kit/commands/auditar-marco.md +179 -179
  44. package/kit/commands/auditar-uat.md +23 -23
  45. package/kit/commands/autonomo.md +40 -40
  46. package/kit/commands/branch-pr.md +24 -24
  47. package/kit/commands/concluir-marco.md +247 -247
  48. package/kit/commands/configuracoes.md +36 -36
  49. package/kit/commands/definir-perfil.md +10 -10
  50. package/kit/commands/depurar.md +190 -190
  51. package/kit/commands/discutir-fase.md +131 -131
  52. package/kit/commands/entrar-discord.md +17 -17
  53. package/kit/commands/estatisticas.md +18 -18
  54. package/kit/commands/example-greeting.md +33 -33
  55. package/kit/commands/executar-fase.md +58 -58
  56. package/kit/commands/expresso.md +56 -56
  57. package/kit/commands/fase-ui.md +34 -34
  58. package/kit/commands/fazer.md +57 -57
  59. package/kit/commands/fio.md +125 -125
  60. package/kit/commands/fluxos-trabalho.md +64 -64
  61. package/kit/commands/forense.md +176 -176
  62. package/kit/commands/gerenciador.md +38 -38
  63. package/kit/commands/inserir-fase.md +31 -31
  64. package/kit/commands/limpeza.md +17 -17
  65. package/kit/commands/listar-hipoteses-fase.md +45 -45
  66. package/kit/commands/listar-workspaces.md +18 -18
  67. package/kit/commands/mapear-codebase.md +70 -70
  68. package/kit/commands/multi-tenant.md +163 -0
  69. package/kit/commands/nota.md +33 -33
  70. package/kit/commands/novo-marco.md +43 -43
  71. package/kit/commands/novo-projeto.md +41 -41
  72. package/kit/commands/novo-workspace.md +43 -43
  73. package/kit/commands/pausar-trabalho.md +37 -37
  74. package/kit/commands/perfil-usuario.md +45 -45
  75. package/kit/commands/pesquisar-fase.md +195 -195
  76. package/kit/commands/planejar-fase.md +67 -67
  77. package/kit/commands/planejar-lacunas.md +33 -33
  78. package/kit/commands/plantar-ideia.md +25 -25
  79. package/kit/commands/progresso.md +24 -24
  80. package/kit/commands/proximo.md +30 -30
  81. package/kit/commands/publicar.md +490 -490
  82. package/kit/commands/rapido.md +35 -35
  83. package/kit/commands/reaplicar-patches.md +124 -124
  84. package/kit/commands/relatorio-sessao.md +19 -19
  85. package/kit/commands/remover-fase.md +31 -31
  86. package/kit/commands/remover-workspace.md +26 -26
  87. package/kit/commands/resumo-marco.md +50 -50
  88. package/kit/commands/retomar-trabalho.md +40 -40
  89. package/kit/commands/revisar-backlog.md +60 -60
  90. package/kit/commands/revisar-ui.md +32 -32
  91. package/kit/commands/revisar.md +37 -37
  92. package/kit/commands/saude.md +21 -21
  93. package/kit/commands/setup-notion.md +93 -93
  94. package/kit/commands/sync-main.md +68 -68
  95. package/kit/commands/validar-fase.md +35 -35
  96. package/kit/commands/verificar-tarefas.md +44 -44
  97. package/kit/commands/verificar-trabalho.md +64 -64
  98. package/kit/file-manifest.json +30 -3
  99. package/kit/framework/bin/lib/commands.cjs +959 -959
  100. package/kit/framework/bin/lib/config.cjs +442 -442
  101. package/kit/framework/bin/lib/core.cjs +1230 -1230
  102. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  103. package/kit/framework/bin/lib/init.cjs +1442 -1442
  104. package/kit/framework/bin/lib/milestone.cjs +252 -252
  105. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  106. package/kit/framework/bin/lib/phase.cjs +888 -888
  107. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  108. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  109. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  110. package/kit/framework/bin/lib/security.cjs +382 -382
  111. package/kit/framework/bin/lib/state.cjs +1031 -1031
  112. package/kit/framework/bin/lib/template.cjs +222 -222
  113. package/kit/framework/bin/lib/uat.cjs +282 -282
  114. package/kit/framework/bin/lib/verify.cjs +888 -888
  115. package/kit/framework/bin/lib/workstream.cjs +491 -491
  116. package/kit/framework/bin/tools.cjs +918 -918
  117. package/kit/framework/commands/workstreams.md +63 -63
  118. package/kit/framework/references/checkpoints.md +778 -778
  119. package/kit/framework/references/continuation-format.md +249 -249
  120. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  121. package/kit/framework/references/git-integration.md +295 -295
  122. package/kit/framework/references/git-planning-commit.md +38 -38
  123. package/kit/framework/references/model-profile-resolution.md +36 -36
  124. package/kit/framework/references/model-profiles.md +139 -139
  125. package/kit/framework/references/phase-argument-parsing.md +61 -61
  126. package/kit/framework/references/planning-config.md +202 -202
  127. package/kit/framework/references/questioning.md +162 -162
  128. package/kit/framework/references/tdd.md +263 -263
  129. package/kit/framework/references/ui-brand.md +160 -160
  130. package/kit/framework/references/user-profiling.md +657 -657
  131. package/kit/framework/references/verification-patterns.md +612 -612
  132. package/kit/framework/references/workstream-flag.md +58 -58
  133. package/kit/framework/templates/DEBUG.md +164 -164
  134. package/kit/framework/templates/UAT.md +265 -265
  135. package/kit/framework/templates/UI-SPEC.md +100 -100
  136. package/kit/framework/templates/VALIDATION.md +76 -76
  137. package/kit/framework/templates/claude-md.md +122 -122
  138. package/kit/framework/templates/codebase/architecture.md +185 -185
  139. package/kit/framework/templates/codebase/concerns.md +205 -205
  140. package/kit/framework/templates/codebase/conventions.md +204 -204
  141. package/kit/framework/templates/codebase/integrations.md +192 -192
  142. package/kit/framework/templates/codebase/stack.md +158 -158
  143. package/kit/framework/templates/codebase/structure.md +199 -199
  144. package/kit/framework/templates/codebase/testing.md +301 -301
  145. package/kit/framework/templates/config.json +44 -44
  146. package/kit/framework/templates/context.md +352 -352
  147. package/kit/framework/templates/continue-here.md +78 -78
  148. package/kit/framework/templates/copilot-instructions.md +7 -7
  149. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  150. package/kit/framework/templates/dev-preferences.md +20 -20
  151. package/kit/framework/templates/discovery.md +146 -146
  152. package/kit/framework/templates/discussion-log.md +63 -63
  153. package/kit/framework/templates/milestone-archive.md +123 -123
  154. package/kit/framework/templates/milestone.md +115 -115
  155. package/kit/framework/templates/phase-prompt.md +610 -610
  156. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  157. package/kit/framework/templates/project.md +186 -186
  158. package/kit/framework/templates/requirements.md +231 -231
  159. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  160. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  161. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  162. package/kit/framework/templates/research-project/STACK.md +120 -120
  163. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  164. package/kit/framework/templates/research.md +419 -419
  165. package/kit/framework/templates/retrospective.md +54 -54
  166. package/kit/framework/templates/roadmap.md +202 -202
  167. package/kit/framework/templates/state.md +176 -176
  168. package/kit/framework/templates/summary-complex.md +59 -59
  169. package/kit/framework/templates/summary-minimal.md +41 -41
  170. package/kit/framework/templates/summary-standard.md +48 -48
  171. package/kit/framework/templates/summary.md +209 -209
  172. package/kit/framework/templates/user-profile.md +146 -146
  173. package/kit/framework/templates/user-setup.md +256 -256
  174. package/kit/framework/templates/verification-report.md +258 -258
  175. package/kit/framework/workflows/add-phase.md +112 -112
  176. package/kit/framework/workflows/add-tests.md +351 -351
  177. package/kit/framework/workflows/add-todo.md +158 -158
  178. package/kit/framework/workflows/audit-milestone.md +340 -340
  179. package/kit/framework/workflows/audit-uat.md +109 -109
  180. package/kit/framework/workflows/autonomous.md +891 -891
  181. package/kit/framework/workflows/check-todos.md +177 -177
  182. package/kit/framework/workflows/cleanup.md +152 -152
  183. package/kit/framework/workflows/complete-milestone.md +696 -696
  184. package/kit/framework/workflows/diagnose-issues.md +231 -231
  185. package/kit/framework/workflows/discovery-phase.md +289 -289
  186. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  187. package/kit/framework/workflows/discuss-phase.md +784 -784
  188. package/kit/framework/workflows/do.md +104 -104
  189. package/kit/framework/workflows/execute-phase.md +838 -838
  190. package/kit/framework/workflows/execute-plan.md +510 -510
  191. package/kit/framework/workflows/fast.md +102 -102
  192. package/kit/framework/workflows/forensics.md +265 -265
  193. package/kit/framework/workflows/health.md +181 -181
  194. package/kit/framework/workflows/help.md +619 -619
  195. package/kit/framework/workflows/insert-phase.md +130 -130
  196. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  197. package/kit/framework/workflows/list-workspaces.md +56 -56
  198. package/kit/framework/workflows/manager.md +362 -362
  199. package/kit/framework/workflows/map-codebase.md +377 -377
  200. package/kit/framework/workflows/milestone-summary.md +223 -223
  201. package/kit/framework/workflows/new-milestone.md +486 -486
  202. package/kit/framework/workflows/new-project.md +1159 -1159
  203. package/kit/framework/workflows/new-workspace.md +237 -237
  204. package/kit/framework/workflows/next.md +97 -97
  205. package/kit/framework/workflows/node-repair.md +92 -92
  206. package/kit/framework/workflows/note.md +156 -156
  207. package/kit/framework/workflows/pause-work.md +176 -176
  208. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  209. package/kit/framework/workflows/plan-phase.md +765 -765
  210. package/kit/framework/workflows/plant-seed.md +169 -169
  211. package/kit/framework/workflows/pr-branch.md +129 -129
  212. package/kit/framework/workflows/profile-user.md +450 -450
  213. package/kit/framework/workflows/progress.md +507 -507
  214. package/kit/framework/workflows/quick.md +757 -757
  215. package/kit/framework/workflows/remove-phase.md +155 -155
  216. package/kit/framework/workflows/remove-workspace.md +90 -90
  217. package/kit/framework/workflows/research-phase.md +82 -82
  218. package/kit/framework/workflows/resume-project.md +326 -326
  219. package/kit/framework/workflows/review.md +228 -228
  220. package/kit/framework/workflows/session-report.md +146 -146
  221. package/kit/framework/workflows/settings.md +283 -283
  222. package/kit/framework/workflows/ship.md +228 -228
  223. package/kit/framework/workflows/stats.md +60 -60
  224. package/kit/framework/workflows/transition.md +671 -671
  225. package/kit/framework/workflows/ui-phase.md +302 -302
  226. package/kit/framework/workflows/ui-review.md +165 -165
  227. package/kit/framework/workflows/update.md +323 -323
  228. package/kit/framework/workflows/validate-phase.md +174 -174
  229. package/kit/framework/workflows/verify-phase.md +252 -252
  230. package/kit/framework/workflows/verify-work.md +637 -637
  231. package/kit/hooks/check-update.js +118 -118
  232. package/kit/hooks/context-monitor.js +163 -163
  233. package/kit/hooks/prompt-guard.js +103 -103
  234. package/kit/hooks/statusline.js +125 -125
  235. package/kit/hooks/workflow-guard.js +101 -101
  236. package/kit/settings.json +45 -45
  237. package/kit/skills/_shared-multi-tenant/glossary.md +186 -0
  238. package/kit/skills/audit-log-multi-tenant/SKILL.md +334 -0
  239. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -0
  240. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +326 -0
  241. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -0
  242. package/kit/skills/example-skill/SKILL.md +42 -42
  243. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -0
  244. package/kit/skills/member-invite-flow/SKILL.md +305 -0
  245. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -0
  246. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +312 -0
  247. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +338 -0
  248. package/kit/skills/org-onboarding-flow/SKILL.md +257 -0
  249. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -0
  250. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -0
  251. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +301 -0
  252. package/kit/skills/super-admin-platform-pattern/SKILL.md +322 -0
  253. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -0
  254. package/package.json +63 -63
  255. package/src/core/kit.js +216 -216
  256. package/src/core/reflect.js +247 -247
  257. package/src/core/reverse-sync.js +372 -372
  258. package/src/core/sync.js +418 -418
  259. package/src/core/watch.js +121 -121
@@ -1,237 +1,237 @@
1
- <purpose>
2
- Create an isolated workspace directory with git repo copies (worktrees or clones) and an independent `.planning/` directory. Supports multi-repo orchestration and single-repo feature branch isolation.
3
- </purpose>
4
-
5
- <required_reading>
6
- Read all files referenced by the invoking prompt's execution_context before starting.
7
- </required_reading>
8
-
9
- <process>
10
-
11
- ## 1. Setup
12
-
13
- **MANDATORY FIRST STEP — Execute init command:**
14
-
15
- ```bash
16
- INIT=$(node "./.claude/framework/bin/tools.cjs" init new-workspace)
17
- if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
18
- ```
19
-
20
- Parse JSON for: `default_workspace_base`, `child_repos`, `child_repo_count`, `worktree_available`, `is_git_repo`, `cwd_repo_name`, `project_root`.
21
-
22
- ## 2. Parse Arguments
23
-
24
- Extract from $ARGUMENTS:
25
- - `--name` → `WORKSPACE_NAME` (required)
26
- - `--repos` → `REPO_LIST` (comma-separated paths or names)
27
- - `--path` → `TARGET_PATH` (defaults to `$default_workspace_base/$WORKSPACE_NAME`)
28
- - `--strategy` → `STRATEGY` (defaults to `worktree`)
29
- - `--branch` → `BRANCH_NAME` (defaults to `workspace/$WORKSPACE_NAME`)
30
- - `--auto` → skip interactive questions
31
-
32
- **If `--name` is missing and not `--auto`:**
33
-
34
- Use AskUserQuestion:
35
- - header: "Workspace Name"
36
- - question: "What should this workspace be called?"
37
- - requireAnswer: true
38
-
39
- ## 3. Select Repos
40
-
41
- **If `--repos` is provided:** Parse comma-separated values. For each value:
42
- - If it's an absolute path, use it directly
43
- - If it's a relative path or name, resolve against `$project_root`
44
- - Special case: `.` means current repo (use `$project_root`, name it `$cwd_repo_name`)
45
-
46
- **If `--repos` is NOT provided and not `--auto`:**
47
-
48
- **If `child_repo_count` > 0:**
49
-
50
- Present child repos for selection:
51
-
52
- Use AskUserQuestion:
53
- - header: "Select Repos"
54
- - question: "Which repos should be included in the workspace?"
55
- - options: List each child repo from `child_repos` array by name
56
- - multiSelect: true
57
-
58
- **If `child_repo_count` is 0 and `is_git_repo` is true:**
59
-
60
- Use AskUserQuestion:
61
- - header: "Current Repo"
62
- - question: "No child repos found. Create a workspace with the current repo?"
63
- - options:
64
- - "Yes — create workspace with current repo" → use current repo
65
- - "Cancel" → exit
66
-
67
- **If `child_repo_count` is 0 and `is_git_repo` is false:**
68
-
69
- Error:
70
- ```
71
- No git repos found in the current directory and this is not a git repo.
72
-
73
- Run this command from a directory containing git repos, or specify repos explicitly:
74
- /new-workspace --name my-workspace --repos /path/to/repo1,/path/to/repo2
75
- ```
76
- Exit.
77
-
78
- **If `--auto` and `--repos` is NOT provided:**
79
-
80
- Error:
81
- ```
82
- Error: --auto requires --repos to specify which repos to include.
83
-
84
- Usage:
85
- /new-workspace --name my-workspace --repos repo1,repo2 --auto
86
- ```
87
- Exit.
88
-
89
- ## 4. Select Strategy
90
-
91
- **If `--strategy` is provided:** Use it (validate: must be `worktree` or `clone`).
92
-
93
- **If `--strategy` is NOT provided and not `--auto`:**
94
-
95
- Use AskUserQuestion:
96
- - header: "Strategy"
97
- - question: "How should repos be copied into the workspace?"
98
- - options:
99
- - "Worktree (recommended) — lightweight, shares .git objects with source repo" → `worktree`
100
- - "Clone — fully independent copy, no connection to source repo" → `clone`
101
-
102
- **If `--auto`:** Default to `worktree`.
103
-
104
- ## 5. Validate
105
-
106
- Before creating anything, validate:
107
-
108
- 1. **Target path** — must not exist or must be empty:
109
- ```bash
110
- if [ -d "$TARGET_PATH" ] && [ "$(ls -A "$TARGET_PATH" 2>/dev/null)" ]; then
111
- echo "Error: Target path already exists and is not empty: $TARGET_PATH"
112
- echo "Choose a different --name or --path."
113
- exit 1
114
- fi
115
- ```
116
-
117
- 2. **Source repos exist and are git repos** — for each repo path:
118
- ```bash
119
- if [ ! -d "$REPO_PATH/.git" ]; then
120
- echo "Error: Not a git repo: $REPO_PATH"
121
- exit 1
122
- fi
123
- ```
124
-
125
- 3. **Worktree availability** — if strategy is `worktree` and `worktree_available` is false:
126
- ```
127
- Error: git is not available. Install git or use --strategy clone.
128
- ```
129
-
130
- Report all validation errors at once, not one at a time.
131
-
132
- ## 6. Create Workspace
133
-
134
- ```bash
135
- mkdir -p "$TARGET_PATH"
136
- ```
137
-
138
- ### For each repo:
139
-
140
- **Worktree strategy:**
141
- ```bash
142
- cd "$SOURCE_REPO_PATH"
143
- git worktree add "$TARGET_PATH/$REPO_NAME" -b "$BRANCH_NAME" 2>&1
144
- ```
145
-
146
- If `git worktree add` fails because the branch already exists, try with a timestamped branch:
147
- ```bash
148
- TIMESTAMP=$(date +%Y%m%d%H%M%S)
149
- git worktree add "$TARGET_PATH/$REPO_NAME" -b "${BRANCH_NAME}-${TIMESTAMP}" 2>&1
150
- ```
151
-
152
- If that also fails, report the error and continue with remaining repos.
153
-
154
- **Clone strategy:**
155
- ```bash
156
- git clone "$SOURCE_REPO_PATH" "$TARGET_PATH/$REPO_NAME" 2>&1
157
- cd "$TARGET_PATH/$REPO_NAME"
158
- git checkout -b "$BRANCH_NAME" 2>&1
159
- ```
160
-
161
- Track results: which repos succeeded, which failed, what branch was used.
162
-
163
- ## 7. Write WORKSPACE.md
164
-
165
- Write the workspace manifest at `$TARGET_PATH/WORKSPACE.md`:
166
-
167
- ```markdown
168
- # Workspace: $WORKSPACE_NAME
169
-
170
- Created: $DATE
171
- Strategy: $STRATEGY
172
-
173
- ## Member Repos
174
-
175
- | Repo | Source | Branch | Strategy |
176
- |------|--------|--------|----------|
177
- | $REPO_NAME | $SOURCE_PATH | $BRANCH | $STRATEGY |
178
- ...for each repo...
179
-
180
- ## Notes
181
-
182
- [Add context about what this workspace is for]
183
- ```
184
-
185
- ## 8. Initialize .planning/
186
-
187
- ```bash
188
- mkdir -p "$TARGET_PATH/.planning"
189
- ```
190
-
191
- ## 9. Report and Next Steps
192
-
193
- **If all repos succeeded:**
194
-
195
- ```
196
- Workspace created: $TARGET_PATH
197
-
198
- Repos: $REPO_COUNT
199
- Strategy: $STRATEGY
200
- Branch: $BRANCH_NAME
201
-
202
- Next steps:
203
- cd $TARGET_PATH
204
- /new-project # Initialize framework in the workspace
205
- ```
206
-
207
- **If some repos failed:**
208
-
209
- ```
210
- Workspace created with $SUCCESS_COUNT of $TOTAL_COUNT repos: $TARGET_PATH
211
-
212
- Succeeded: repo1, repo2
213
- Failed: repo3 (branch already exists), repo4 (not a git repo)
214
-
215
- Next steps:
216
- cd $TARGET_PATH
217
- /new-project # Initialize framework in the workspace
218
- ```
219
-
220
- **Offer to initialize framework (if not `--auto`):**
221
-
222
- Use AskUserQuestion:
223
- - header: "Initialize framework"
224
- - question: "Would you like to initialize a framework project in the new workspace?"
225
- - options:
226
- - "Yes — run /new-project" → tell user to `cd $TARGET_PATH` first, then run `/new-project`
227
- - "No — I'll set it up later" → done
228
-
229
- </process>
230
-
231
- <success_criteria>
232
- - [ ] Workspace directory created at target path
233
- - [ ] All specified repos copied (worktree or clone) into workspace
234
- - [ ] WORKSPACE.md manifest written with correct repo table
235
- - [ ] `.planning/` directory initialized at workspace root
236
- - [ ] User informed of workspace path and next steps
237
- </success_criteria>
1
+ <purpose>
2
+ Create an isolated workspace directory with git repo copies (worktrees or clones) and an independent `.planning/` directory. Supports multi-repo orchestration and single-repo feature branch isolation.
3
+ </purpose>
4
+
5
+ <required_reading>
6
+ Read all files referenced by the invoking prompt's execution_context before starting.
7
+ </required_reading>
8
+
9
+ <process>
10
+
11
+ ## 1. Setup
12
+
13
+ **MANDATORY FIRST STEP — Execute init command:**
14
+
15
+ ```bash
16
+ INIT=$(node "./.claude/framework/bin/tools.cjs" init new-workspace)
17
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
18
+ ```
19
+
20
+ Parse JSON for: `default_workspace_base`, `child_repos`, `child_repo_count`, `worktree_available`, `is_git_repo`, `cwd_repo_name`, `project_root`.
21
+
22
+ ## 2. Parse Arguments
23
+
24
+ Extract from $ARGUMENTS:
25
+ - `--name` → `WORKSPACE_NAME` (required)
26
+ - `--repos` → `REPO_LIST` (comma-separated paths or names)
27
+ - `--path` → `TARGET_PATH` (defaults to `$default_workspace_base/$WORKSPACE_NAME`)
28
+ - `--strategy` → `STRATEGY` (defaults to `worktree`)
29
+ - `--branch` → `BRANCH_NAME` (defaults to `workspace/$WORKSPACE_NAME`)
30
+ - `--auto` → skip interactive questions
31
+
32
+ **If `--name` is missing and not `--auto`:**
33
+
34
+ Use AskUserQuestion:
35
+ - header: "Workspace Name"
36
+ - question: "What should this workspace be called?"
37
+ - requireAnswer: true
38
+
39
+ ## 3. Select Repos
40
+
41
+ **If `--repos` is provided:** Parse comma-separated values. For each value:
42
+ - If it's an absolute path, use it directly
43
+ - If it's a relative path or name, resolve against `$project_root`
44
+ - Special case: `.` means current repo (use `$project_root`, name it `$cwd_repo_name`)
45
+
46
+ **If `--repos` is NOT provided and not `--auto`:**
47
+
48
+ **If `child_repo_count` > 0:**
49
+
50
+ Present child repos for selection:
51
+
52
+ Use AskUserQuestion:
53
+ - header: "Select Repos"
54
+ - question: "Which repos should be included in the workspace?"
55
+ - options: List each child repo from `child_repos` array by name
56
+ - multiSelect: true
57
+
58
+ **If `child_repo_count` is 0 and `is_git_repo` is true:**
59
+
60
+ Use AskUserQuestion:
61
+ - header: "Current Repo"
62
+ - question: "No child repos found. Create a workspace with the current repo?"
63
+ - options:
64
+ - "Yes — create workspace with current repo" → use current repo
65
+ - "Cancel" → exit
66
+
67
+ **If `child_repo_count` is 0 and `is_git_repo` is false:**
68
+
69
+ Error:
70
+ ```
71
+ No git repos found in the current directory and this is not a git repo.
72
+
73
+ Run this command from a directory containing git repos, or specify repos explicitly:
74
+ /new-workspace --name my-workspace --repos /path/to/repo1,/path/to/repo2
75
+ ```
76
+ Exit.
77
+
78
+ **If `--auto` and `--repos` is NOT provided:**
79
+
80
+ Error:
81
+ ```
82
+ Error: --auto requires --repos to specify which repos to include.
83
+
84
+ Usage:
85
+ /new-workspace --name my-workspace --repos repo1,repo2 --auto
86
+ ```
87
+ Exit.
88
+
89
+ ## 4. Select Strategy
90
+
91
+ **If `--strategy` is provided:** Use it (validate: must be `worktree` or `clone`).
92
+
93
+ **If `--strategy` is NOT provided and not `--auto`:**
94
+
95
+ Use AskUserQuestion:
96
+ - header: "Strategy"
97
+ - question: "How should repos be copied into the workspace?"
98
+ - options:
99
+ - "Worktree (recommended) — lightweight, shares .git objects with source repo" → `worktree`
100
+ - "Clone — fully independent copy, no connection to source repo" → `clone`
101
+
102
+ **If `--auto`:** Default to `worktree`.
103
+
104
+ ## 5. Validate
105
+
106
+ Before creating anything, validate:
107
+
108
+ 1. **Target path** — must not exist or must be empty:
109
+ ```bash
110
+ if [ -d "$TARGET_PATH" ] && [ "$(ls -A "$TARGET_PATH" 2>/dev/null)" ]; then
111
+ echo "Error: Target path already exists and is not empty: $TARGET_PATH"
112
+ echo "Choose a different --name or --path."
113
+ exit 1
114
+ fi
115
+ ```
116
+
117
+ 2. **Source repos exist and are git repos** — for each repo path:
118
+ ```bash
119
+ if [ ! -d "$REPO_PATH/.git" ]; then
120
+ echo "Error: Not a git repo: $REPO_PATH"
121
+ exit 1
122
+ fi
123
+ ```
124
+
125
+ 3. **Worktree availability** — if strategy is `worktree` and `worktree_available` is false:
126
+ ```
127
+ Error: git is not available. Install git or use --strategy clone.
128
+ ```
129
+
130
+ Report all validation errors at once, not one at a time.
131
+
132
+ ## 6. Create Workspace
133
+
134
+ ```bash
135
+ mkdir -p "$TARGET_PATH"
136
+ ```
137
+
138
+ ### For each repo:
139
+
140
+ **Worktree strategy:**
141
+ ```bash
142
+ cd "$SOURCE_REPO_PATH"
143
+ git worktree add "$TARGET_PATH/$REPO_NAME" -b "$BRANCH_NAME" 2>&1
144
+ ```
145
+
146
+ If `git worktree add` fails because the branch already exists, try with a timestamped branch:
147
+ ```bash
148
+ TIMESTAMP=$(date +%Y%m%d%H%M%S)
149
+ git worktree add "$TARGET_PATH/$REPO_NAME" -b "${BRANCH_NAME}-${TIMESTAMP}" 2>&1
150
+ ```
151
+
152
+ If that also fails, report the error and continue with remaining repos.
153
+
154
+ **Clone strategy:**
155
+ ```bash
156
+ git clone "$SOURCE_REPO_PATH" "$TARGET_PATH/$REPO_NAME" 2>&1
157
+ cd "$TARGET_PATH/$REPO_NAME"
158
+ git checkout -b "$BRANCH_NAME" 2>&1
159
+ ```
160
+
161
+ Track results: which repos succeeded, which failed, what branch was used.
162
+
163
+ ## 7. Write WORKSPACE.md
164
+
165
+ Write the workspace manifest at `$TARGET_PATH/WORKSPACE.md`:
166
+
167
+ ```markdown
168
+ # Workspace: $WORKSPACE_NAME
169
+
170
+ Created: $DATE
171
+ Strategy: $STRATEGY
172
+
173
+ ## Member Repos
174
+
175
+ | Repo | Source | Branch | Strategy |
176
+ |------|--------|--------|----------|
177
+ | $REPO_NAME | $SOURCE_PATH | $BRANCH | $STRATEGY |
178
+ ...for each repo...
179
+
180
+ ## Notes
181
+
182
+ [Add context about what this workspace is for]
183
+ ```
184
+
185
+ ## 8. Initialize .planning/
186
+
187
+ ```bash
188
+ mkdir -p "$TARGET_PATH/.planning"
189
+ ```
190
+
191
+ ## 9. Report and Next Steps
192
+
193
+ **If all repos succeeded:**
194
+
195
+ ```
196
+ Workspace created: $TARGET_PATH
197
+
198
+ Repos: $REPO_COUNT
199
+ Strategy: $STRATEGY
200
+ Branch: $BRANCH_NAME
201
+
202
+ Next steps:
203
+ cd $TARGET_PATH
204
+ /new-project # Initialize framework in the workspace
205
+ ```
206
+
207
+ **If some repos failed:**
208
+
209
+ ```
210
+ Workspace created with $SUCCESS_COUNT of $TOTAL_COUNT repos: $TARGET_PATH
211
+
212
+ Succeeded: repo1, repo2
213
+ Failed: repo3 (branch already exists), repo4 (not a git repo)
214
+
215
+ Next steps:
216
+ cd $TARGET_PATH
217
+ /new-project # Initialize framework in the workspace
218
+ ```
219
+
220
+ **Offer to initialize framework (if not `--auto`):**
221
+
222
+ Use AskUserQuestion:
223
+ - header: "Initialize framework"
224
+ - question: "Would you like to initialize a framework project in the new workspace?"
225
+ - options:
226
+ - "Yes — run /new-project" → tell user to `cd $TARGET_PATH` first, then run `/new-project`
227
+ - "No — I'll set it up later" → done
228
+
229
+ </process>
230
+
231
+ <success_criteria>
232
+ - [ ] Workspace directory created at target path
233
+ - [ ] All specified repos copied (worktree or clone) into workspace
234
+ - [ ] WORKSPACE.md manifest written with correct repo table
235
+ - [ ] `.planning/` directory initialized at workspace root
236
+ - [ ] User informed of workspace path and next steps
237
+ </success_criteria>
@@ -1,97 +1,97 @@
1
- <purpose>
2
- Detectar o estado atual do projeto e avançar automaticamente para o próximo passo lógico do workflow framework.
3
- Lê o estado do projeto para determinar a progressão: discussão → planejamento → execução → verificação → conclusão.
4
- </purpose>
5
-
6
- <required_reading>
7
- Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
8
- </required_reading>
9
-
10
- <process>
11
-
12
- <step name="detect_state">
13
- Ler o estado do projeto para determinar a posição atual:
14
-
15
- ```bash
16
- # Obter snapshot do estado
17
- node "./.claude/framework/bin/tools.cjs" state json 2>/dev/null || echo "{}"
18
- ```
19
-
20
- Também ler:
21
- - `.planning/STATE.md` — fase atual, progresso, contagens de planos
22
- - `.planning/ROADMAP.md` — estrutura do milestone e lista de fases
23
-
24
- Extrair:
25
- - `current_phase` — qual fase está ativa
26
- - `plan_of` / `plans_total` — progresso de execução de planos
27
- - `progress` — percentual geral
28
- - `status` — ativo, pausado, etc.
29
-
30
- Se o diretório `.planning/` não existir:
31
- ```
32
- Nenhum projeto framework detectado. Execute `/novo-projeto` para começar.
33
- ```
34
- Sair.
35
- </step>
36
-
37
- <step name="determine_next_action">
38
- Aplicar regras de roteamento com base no estado:
39
-
40
- **Rota 1: Nenhuma fase existe ainda → discussão**
41
- Se o ROADMAP tem fases mas nenhum diretório de fase existe no disco:
42
- → Próxima ação: `/discutir-fase <primeira-fase>`
43
-
44
- **Rota 2: Fase existe mas não tem CONTEXT.md ou RESEARCH.md → discussão**
45
- Se o diretório da fase atual existe mas não tem CONTEXT.md nem RESEARCH.md:
46
- → Próxima ação: `/discutir-fase <fase-atual>`
47
-
48
- **Rota 3: Fase tem contexto mas sem planos → planejamento**
49
- Se a fase atual tem CONTEXT.md (ou RESEARCH.md) mas nenhum arquivo PLAN.md:
50
- → Próxima ação: `/planejar-fase <fase-atual>`
51
-
52
- **Rota 4: Fase tem planos mas summaries incompletos → execução**
53
- Se planos existem mas nem todos têm summaries correspondentes:
54
- → Próxima ação: `/executar-fase <fase-atual>`
55
-
56
- **Rota 5: Todos os planos têm summaries → verificar e concluir**
57
- Se todos os planos na fase atual têm summaries:
58
- → Próxima ação: `/verificar-trabalho` então `/complete-phase`
59
-
60
- **Rota 6: Fase concluída, próxima fase existe → avançar**
61
- Se a fase atual está concluída e a próxima fase existe no ROADMAP:
62
- → Próxima ação: `/discutir-fase <proxima-fase>`
63
-
64
- **Rota 7: Todas as fases concluídas → concluir milestone**
65
- Se todas as fases estão concluídas:
66
- → Próxima ação: `/concluir-marco`
67
-
68
- **Rota 8: Pausado → retomar**
69
- Se STATE.md mostra paused_at:
70
- → Próxima ação: `/retomar-trabalho`
71
- </step>
72
-
73
- <step name="show_and_execute">
74
- Exibir a determinação:
75
-
76
- ```
77
- ## framework Próximo
78
-
79
- **Atual:** Fase [N] — [nome] | [progresso]%
80
- **Status:** [descrição do status]
81
-
82
- ▶ **Próximo passo:** `/[comando] [args]`
83
- [Explicação em uma linha de por que este é o próximo passo]
84
- ```
85
-
86
- Então invocar imediatamente o comando determinado via SlashCommand.
87
- Não pedir confirmação — o objetivo do `/proximo` é avanço sem fricção.
88
- </step>
89
-
90
- </process>
91
-
92
- <success_criteria>
93
- - [ ] Estado do projeto detectado corretamente
94
- - [ ] Próxima ação determinada corretamente pelas regras de roteamento
95
- - [ ] Comando invocado imediatamente sem confirmação do usuário
96
- - [ ] Status claro mostrado antes de invocar
97
- </success_criteria>
1
+ <purpose>
2
+ Detectar o estado atual do projeto e avançar automaticamente para o próximo passo lógico do workflow framework.
3
+ Lê o estado do projeto para determinar a progressão: discussão → planejamento → execução → verificação → conclusão.
4
+ </purpose>
5
+
6
+ <required_reading>
7
+ Ler todos os arquivos referenciados pelo execution_context do prompt invocador antes de começar.
8
+ </required_reading>
9
+
10
+ <process>
11
+
12
+ <step name="detect_state">
13
+ Ler o estado do projeto para determinar a posição atual:
14
+
15
+ ```bash
16
+ # Obter snapshot do estado
17
+ node "./.claude/framework/bin/tools.cjs" state json 2>/dev/null || echo "{}"
18
+ ```
19
+
20
+ Também ler:
21
+ - `.planning/STATE.md` — fase atual, progresso, contagens de planos
22
+ - `.planning/ROADMAP.md` — estrutura do milestone e lista de fases
23
+
24
+ Extrair:
25
+ - `current_phase` — qual fase está ativa
26
+ - `plan_of` / `plans_total` — progresso de execução de planos
27
+ - `progress` — percentual geral
28
+ - `status` — ativo, pausado, etc.
29
+
30
+ Se o diretório `.planning/` não existir:
31
+ ```
32
+ Nenhum projeto framework detectado. Execute `/novo-projeto` para começar.
33
+ ```
34
+ Sair.
35
+ </step>
36
+
37
+ <step name="determine_next_action">
38
+ Aplicar regras de roteamento com base no estado:
39
+
40
+ **Rota 1: Nenhuma fase existe ainda → discussão**
41
+ Se o ROADMAP tem fases mas nenhum diretório de fase existe no disco:
42
+ → Próxima ação: `/discutir-fase <primeira-fase>`
43
+
44
+ **Rota 2: Fase existe mas não tem CONTEXT.md ou RESEARCH.md → discussão**
45
+ Se o diretório da fase atual existe mas não tem CONTEXT.md nem RESEARCH.md:
46
+ → Próxima ação: `/discutir-fase <fase-atual>`
47
+
48
+ **Rota 3: Fase tem contexto mas sem planos → planejamento**
49
+ Se a fase atual tem CONTEXT.md (ou RESEARCH.md) mas nenhum arquivo PLAN.md:
50
+ → Próxima ação: `/planejar-fase <fase-atual>`
51
+
52
+ **Rota 4: Fase tem planos mas summaries incompletos → execução**
53
+ Se planos existem mas nem todos têm summaries correspondentes:
54
+ → Próxima ação: `/executar-fase <fase-atual>`
55
+
56
+ **Rota 5: Todos os planos têm summaries → verificar e concluir**
57
+ Se todos os planos na fase atual têm summaries:
58
+ → Próxima ação: `/verificar-trabalho` então `/complete-phase`
59
+
60
+ **Rota 6: Fase concluída, próxima fase existe → avançar**
61
+ Se a fase atual está concluída e a próxima fase existe no ROADMAP:
62
+ → Próxima ação: `/discutir-fase <proxima-fase>`
63
+
64
+ **Rota 7: Todas as fases concluídas → concluir milestone**
65
+ Se todas as fases estão concluídas:
66
+ → Próxima ação: `/concluir-marco`
67
+
68
+ **Rota 8: Pausado → retomar**
69
+ Se STATE.md mostra paused_at:
70
+ → Próxima ação: `/retomar-trabalho`
71
+ </step>
72
+
73
+ <step name="show_and_execute">
74
+ Exibir a determinação:
75
+
76
+ ```
77
+ ## framework Próximo
78
+
79
+ **Atual:** Fase [N] — [nome] | [progresso]%
80
+ **Status:** [descrição do status]
81
+
82
+ ▶ **Próximo passo:** `/[comando] [args]`
83
+ [Explicação em uma linha de por que este é o próximo passo]
84
+ ```
85
+
86
+ Então invocar imediatamente o comando determinado via SlashCommand.
87
+ Não pedir confirmação — o objetivo do `/proximo` é avanço sem fricção.
88
+ </step>
89
+
90
+ </process>
91
+
92
+ <success_criteria>
93
+ - [ ] Estado do projeto detectado corretamente
94
+ - [ ] Próxima ação determinada corretamente pelas regras de roteamento
95
+ - [ ] Comando invocado imediatamente sem confirmação do usuário
96
+ - [ ] Status claro mostrado antes de invocar
97
+ </success_criteria>