@planu/cli 0.90.2 → 0.91.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 (226) hide show
  1. package/dist/config/license-plans.json +3 -1
  2. package/dist/engine/batch-script-generator/index.d.ts +6 -0
  3. package/dist/engine/batch-script-generator/index.d.ts.map +1 -0
  4. package/dist/engine/batch-script-generator/index.js +126 -0
  5. package/dist/engine/batch-script-generator/index.js.map +1 -0
  6. package/dist/engine/ci-generator/index.d.ts.map +1 -1
  7. package/dist/engine/ci-generator/index.js +32 -1
  8. package/dist/engine/ci-generator/index.js.map +1 -1
  9. package/dist/engine/ci-generator/output-formats.d.ts +15 -0
  10. package/dist/engine/ci-generator/output-formats.d.ts.map +1 -0
  11. package/dist/engine/ci-generator/output-formats.js +52 -0
  12. package/dist/engine/ci-generator/output-formats.js.map +1 -0
  13. package/dist/engine/claude-config-auditor/claudemd-auditor.d.ts.map +1 -1
  14. package/dist/engine/claude-config-auditor/claudemd-auditor.js +139 -31
  15. package/dist/engine/claude-config-auditor/claudemd-auditor.js.map +1 -1
  16. package/dist/engine/claude-config-auditor/rules-auditor.d.ts.map +1 -1
  17. package/dist/engine/claude-config-auditor/rules-auditor.js +87 -49
  18. package/dist/engine/claude-config-auditor/rules-auditor.js.map +1 -1
  19. package/dist/engine/claude-config-auditor/scoring.d.ts.map +1 -1
  20. package/dist/engine/claude-config-auditor/scoring.js +37 -1
  21. package/dist/engine/claude-config-auditor/scoring.js.map +1 -1
  22. package/dist/engine/claude-config-auditor/settings-auditor.d.ts.map +1 -1
  23. package/dist/engine/claude-config-auditor/settings-auditor.js +55 -40
  24. package/dist/engine/claude-config-auditor/settings-auditor.js.map +1 -1
  25. package/dist/engine/config-schemas.d.ts.map +1 -1
  26. package/dist/engine/config-schemas.js +1 -0
  27. package/dist/engine/config-schemas.js.map +1 -1
  28. package/dist/engine/context-advisor/btw-advisor.d.ts +11 -0
  29. package/dist/engine/context-advisor/btw-advisor.d.ts.map +1 -0
  30. package/dist/engine/context-advisor/btw-advisor.js +29 -0
  31. package/dist/engine/context-advisor/btw-advisor.js.map +1 -0
  32. package/dist/engine/facilitate/context-loader.d.ts +12 -0
  33. package/dist/engine/facilitate/context-loader.d.ts.map +1 -0
  34. package/dist/engine/facilitate/context-loader.js +156 -0
  35. package/dist/engine/facilitate/context-loader.js.map +1 -0
  36. package/dist/engine/facilitate/intent-classifier.d.ts +6 -0
  37. package/dist/engine/facilitate/intent-classifier.d.ts.map +1 -0
  38. package/dist/engine/facilitate/intent-classifier.js +153 -0
  39. package/dist/engine/facilitate/intent-classifier.js.map +1 -0
  40. package/dist/engine/facilitate/plan-parser.d.ts +7 -0
  41. package/dist/engine/facilitate/plan-parser.d.ts.map +1 -0
  42. package/dist/engine/facilitate/plan-parser.js +115 -0
  43. package/dist/engine/facilitate/plan-parser.js.map +1 -0
  44. package/dist/engine/facilitate/router.d.ts +6 -0
  45. package/dist/engine/facilitate/router.d.ts.map +1 -0
  46. package/dist/engine/facilitate/router.js +71 -0
  47. package/dist/engine/facilitate/router.js.map +1 -0
  48. package/dist/engine/hooks/context-injector.d.ts +11 -0
  49. package/dist/engine/hooks/context-injector.d.ts.map +1 -0
  50. package/dist/engine/hooks/context-injector.js +163 -0
  51. package/dist/engine/hooks/context-injector.js.map +1 -0
  52. package/dist/engine/hooks/hook-templates.d.ts +16 -0
  53. package/dist/engine/hooks/hook-templates.d.ts.map +1 -0
  54. package/dist/engine/hooks/hook-templates.js +148 -0
  55. package/dist/engine/hooks/hook-templates.js.map +1 -0
  56. package/dist/engine/hooks/plan-mode-detector.d.ts +27 -0
  57. package/dist/engine/hooks/plan-mode-detector.d.ts.map +1 -0
  58. package/dist/engine/hooks/plan-mode-detector.js +68 -0
  59. package/dist/engine/hooks/plan-mode-detector.js.map +1 -0
  60. package/dist/engine/hooks/plan-mode-scripts.d.ts +10 -0
  61. package/dist/engine/hooks/plan-mode-scripts.d.ts.map +1 -0
  62. package/dist/engine/hooks/plan-mode-scripts.js +45 -0
  63. package/dist/engine/hooks/plan-mode-scripts.js.map +1 -0
  64. package/dist/engine/model-router/complexity-analyzer.d.ts +9 -1
  65. package/dist/engine/model-router/complexity-analyzer.d.ts.map +1 -1
  66. package/dist/engine/model-router/complexity-analyzer.js +44 -1
  67. package/dist/engine/model-router/complexity-analyzer.js.map +1 -1
  68. package/dist/engine/model-router/rules-engine.d.ts.map +1 -1
  69. package/dist/engine/model-router/rules-engine.js +14 -1
  70. package/dist/engine/model-router/rules-engine.js.map +1 -1
  71. package/dist/engine/nfr-profile-detector.d.ts.map +1 -1
  72. package/dist/engine/nfr-profile-detector.js +2 -1
  73. package/dist/engine/nfr-profile-detector.js.map +1 -1
  74. package/dist/engine/spec-coverage/core.js.map +1 -1
  75. package/dist/engine/team-planner/writer-reviewer.d.ts +12 -0
  76. package/dist/engine/team-planner/writer-reviewer.d.ts.map +1 -0
  77. package/dist/engine/team-planner/writer-reviewer.js +48 -0
  78. package/dist/engine/team-planner/writer-reviewer.js.map +1 -0
  79. package/dist/engine/tool-groups/group-manager.js.map +1 -1
  80. package/dist/index.js +11 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/storage/drift-cache-store.js.map +1 -1
  83. package/dist/storage/error-telemetry-store.js.map +1 -1
  84. package/dist/storage/federation-store.js.map +1 -1
  85. package/dist/storage/global-store.js.map +1 -1
  86. package/dist/storage/living-dashboard-store.js.map +1 -1
  87. package/dist/storage/metrics-store.js.map +1 -1
  88. package/dist/storage/rbac-store.js.map +1 -1
  89. package/dist/storage/spec-observability-store.js.map +1 -1
  90. package/dist/storage/worker-metrics-store.js.map +1 -1
  91. package/dist/storage/worker-store.js.map +1 -1
  92. package/dist/tools/checkpoint-handler.d.ts.map +1 -1
  93. package/dist/tools/checkpoint-handler.js +11 -0
  94. package/dist/tools/checkpoint-handler.js.map +1 -1
  95. package/dist/tools/clarify-requirements/interview-mode.d.ts +42 -0
  96. package/dist/tools/clarify-requirements/interview-mode.d.ts.map +1 -0
  97. package/dist/tools/clarify-requirements/interview-mode.js +342 -0
  98. package/dist/tools/clarify-requirements/interview-mode.js.map +1 -0
  99. package/dist/tools/configure-workers-handler.d.ts.map +1 -1
  100. package/dist/tools/configure-workers-handler.js +81 -0
  101. package/dist/tools/configure-workers-handler.js.map +1 -1
  102. package/dist/tools/facilitate.d.ts +1 -5
  103. package/dist/tools/facilitate.d.ts.map +1 -1
  104. package/dist/tools/facilitate.js +100 -23
  105. package/dist/tools/facilitate.js.map +1 -1
  106. package/dist/tools/generate-automation-guide.d.ts +10 -0
  107. package/dist/tools/generate-automation-guide.d.ts.map +1 -0
  108. package/dist/tools/generate-automation-guide.js +222 -0
  109. package/dist/tools/generate-automation-guide.js.map +1 -0
  110. package/dist/tools/generate-batch-script.d.ts +27 -0
  111. package/dist/tools/generate-batch-script.d.ts.map +1 -0
  112. package/dist/tools/generate-batch-script.js +77 -0
  113. package/dist/tools/generate-batch-script.js.map +1 -0
  114. package/dist/tools/generate-sub-agent.d.ts.map +1 -1
  115. package/dist/tools/generate-sub-agent.js +16 -2
  116. package/dist/tools/generate-sub-agent.js.map +1 -1
  117. package/dist/tools/git/branch-ops.d.ts +18 -0
  118. package/dist/tools/git/branch-ops.d.ts.map +1 -1
  119. package/dist/tools/git/branch-ops.js +121 -0
  120. package/dist/tools/git/branch-ops.js.map +1 -1
  121. package/dist/tools/git/pr-ops.d.ts.map +1 -1
  122. package/dist/tools/git/pr-ops.js +7 -0
  123. package/dist/tools/git/pr-ops.js.map +1 -1
  124. package/dist/tools/init-project/handler.d.ts.map +1 -1
  125. package/dist/tools/init-project/handler.js +4 -1
  126. package/dist/tools/init-project/handler.js.map +1 -1
  127. package/dist/tools/init-project/hooks-configurator.d.ts +17 -0
  128. package/dist/tools/init-project/hooks-configurator.d.ts.map +1 -0
  129. package/dist/tools/init-project/hooks-configurator.js +102 -0
  130. package/dist/tools/init-project/hooks-configurator.js.map +1 -0
  131. package/dist/tools/init-project/planu-workflow-generator.d.ts +21 -0
  132. package/dist/tools/init-project/planu-workflow-generator.d.ts.map +1 -0
  133. package/dist/tools/init-project/planu-workflow-generator.js +73 -0
  134. package/dist/tools/init-project/planu-workflow-generator.js.map +1 -0
  135. package/dist/tools/init-project/rules-generator.d.ts +15 -0
  136. package/dist/tools/init-project/rules-generator.d.ts.map +1 -0
  137. package/dist/tools/init-project/rules-generator.js +110 -0
  138. package/dist/tools/init-project/rules-generator.js.map +1 -0
  139. package/dist/tools/init-project/scaffold-writer.d.ts +3 -0
  140. package/dist/tools/init-project/scaffold-writer.d.ts.map +1 -1
  141. package/dist/tools/init-project/scaffold-writer.js +33 -0
  142. package/dist/tools/init-project/scaffold-writer.js.map +1 -1
  143. package/dist/tools/integrate-pm.js.map +1 -1
  144. package/dist/tools/list-sessions.d.ts.map +1 -1
  145. package/dist/tools/list-sessions.js +8 -0
  146. package/dist/tools/list-sessions.js.map +1 -1
  147. package/dist/tools/manage-git.d.ts.map +1 -1
  148. package/dist/tools/manage-git.js +15 -1
  149. package/dist/tools/manage-git.js.map +1 -1
  150. package/dist/tools/orchestrate/state.js.map +1 -1
  151. package/dist/tools/recommend-model-handler.d.ts.map +1 -1
  152. package/dist/tools/recommend-model-handler.js +7 -0
  153. package/dist/tools/recommend-model-handler.js.map +1 -1
  154. package/dist/tools/register-facilitator-tools.d.ts.map +1 -1
  155. package/dist/tools/register-facilitator-tools.js +12 -7
  156. package/dist/tools/register-facilitator-tools.js.map +1 -1
  157. package/dist/tools/register-generate-automation-guide.d.ts +3 -0
  158. package/dist/tools/register-generate-automation-guide.d.ts.map +1 -0
  159. package/dist/tools/register-generate-automation-guide.js +10 -0
  160. package/dist/tools/register-generate-automation-guide.js.map +1 -0
  161. package/dist/tools/register-generate-batch-script.d.ts +3 -0
  162. package/dist/tools/register-generate-batch-script.d.ts.map +1 -0
  163. package/dist/tools/register-generate-batch-script.js +10 -0
  164. package/dist/tools/register-generate-batch-script.js.map +1 -0
  165. package/dist/tools/register-hooks-tools.d.ts.map +1 -1
  166. package/dist/tools/register-hooks-tools.js +27 -0
  167. package/dist/tools/register-hooks-tools.js.map +1 -1
  168. package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -1
  169. package/dist/tools/register-platform-tools/design-stack-tools.js +4 -0
  170. package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -1
  171. package/dist/tools/restore-session.d.ts.map +1 -1
  172. package/dist/tools/restore-session.js +10 -0
  173. package/dist/tools/restore-session.js.map +1 -1
  174. package/dist/tools/schemas/ide-config.d.ts +2 -2
  175. package/dist/tools/schemas/workers-schema.d.ts +1 -0
  176. package/dist/tools/schemas/workers-schema.d.ts.map +1 -1
  177. package/dist/tools/schemas/workers-schema.js +10 -2
  178. package/dist/tools/schemas/workers-schema.js.map +1 -1
  179. package/dist/tools/start-hooks.d.ts.map +1 -1
  180. package/dist/tools/start-hooks.js +104 -1
  181. package/dist/tools/start-hooks.js.map +1 -1
  182. package/dist/tools/status-handler.d.ts.map +1 -1
  183. package/dist/tools/status-handler.js +9 -0
  184. package/dist/tools/status-handler.js.map +1 -1
  185. package/dist/types/analysis.d.ts +8 -0
  186. package/dist/types/analysis.d.ts.map +1 -1
  187. package/dist/types/batch-script.d.ts +36 -0
  188. package/dist/types/batch-script.d.ts.map +1 -0
  189. package/dist/types/batch-script.js +3 -0
  190. package/dist/types/batch-script.js.map +1 -0
  191. package/dist/types/ci.d.ts +4 -0
  192. package/dist/types/ci.d.ts.map +1 -1
  193. package/dist/types/common/tech-enums.d.ts +1 -1
  194. package/dist/types/common/tech-enums.d.ts.map +1 -1
  195. package/dist/types/execution.d.ts +9 -0
  196. package/dist/types/execution.d.ts.map +1 -1
  197. package/dist/types/facilitator.d.ts +67 -0
  198. package/dist/types/facilitator.d.ts.map +1 -1
  199. package/dist/types/file-hooks.d.ts +7 -0
  200. package/dist/types/file-hooks.d.ts.map +1 -1
  201. package/dist/types/file-hooks.js +0 -1
  202. package/dist/types/file-hooks.js.map +1 -1
  203. package/dist/types/git.d.ts +12 -0
  204. package/dist/types/git.d.ts.map +1 -1
  205. package/dist/types/hooks.d.ts +77 -0
  206. package/dist/types/hooks.d.ts.map +1 -1
  207. package/dist/types/index.d.ts +1 -0
  208. package/dist/types/index.d.ts.map +1 -1
  209. package/dist/types/index.js +1 -0
  210. package/dist/types/index.js.map +1 -1
  211. package/dist/types/model-routing.d.ts +16 -0
  212. package/dist/types/model-routing.d.ts.map +1 -1
  213. package/dist/types/project/planu-config.d.ts +6 -0
  214. package/dist/types/project/planu-config.d.ts.map +1 -1
  215. package/dist/types/session.d.ts +2 -0
  216. package/dist/types/session.d.ts.map +1 -1
  217. package/dist/types/stack/recommend.d.ts +1 -0
  218. package/dist/types/stack/recommend.d.ts.map +1 -1
  219. package/dist/types/status.d.ts +7 -0
  220. package/dist/types/status.d.ts.map +1 -1
  221. package/dist/types/team-planner.d.ts +18 -0
  222. package/dist/types/team-planner.d.ts.map +1 -1
  223. package/dist/types/workers.d.ts +1 -1
  224. package/dist/types/workers.d.ts.map +1 -1
  225. package/package.json +10 -10
  226. package/src/config/license-plans.json +3 -1
@@ -4,7 +4,7 @@ import { t, ti } from '../i18n/index.js';
4
4
  import { knowledgeStore } from '../storage/index.js';
5
5
  import { generateSubAgent } from '../engine/agent-generator.js';
6
6
  export async function handleGenerateSubAgent(args) {
7
- const { projectId, framework, agentName, role, capabilities, tools = [], systemPrompt } = args;
7
+ const { projectId, framework, agentName, role, capabilities, tools = [], systemPrompt, autoMemory, } = args;
8
8
  const knowledge = await knowledgeStore.getKnowledge(projectId);
9
9
  if (!knowledge) {
10
10
  return {
@@ -75,8 +75,22 @@ export async function handleGenerateSubAgent(args) {
75
75
  lines.push('### Installation');
76
76
  lines.push('');
77
77
  lines.push(result.installInstructions);
78
+ // Auto-memory note
79
+ if (autoMemory === true) {
80
+ lines.push('');
81
+ lines.push(`<!-- Auto-memory enabled: this agent accumulates learnings across sessions in ~/.claude/projects/<project>/memory/agents/${agentName}/ -->`);
82
+ }
83
+ const responseData = {};
84
+ if (autoMemory === true) {
85
+ responseData.autoMemoryNote = `Agent will build persistent memory at ~/.claude/projects/<project>/memory/agents/${agentName}/. Run /memory to browse what it has saved.`;
86
+ responseData.memoryTip = `The agent will save debugging insights, patterns, and preferences automatically. Edit ~/.claude/projects/<project>/memory/agents/${agentName}/MEMORY.md to review.`;
87
+ }
88
+ const hasExtra = Object.keys(responseData).length > 0;
78
89
  return {
79
- content: [{ type: 'text', text: lines.join('\n') }],
90
+ content: [
91
+ { type: 'text', text: lines.join('\n') },
92
+ ...(hasExtra ? [{ type: 'text', text: JSON.stringify(responseData, null, 2) }] : []),
93
+ ],
80
94
  };
81
95
  }
82
96
  //# sourceMappingURL=generate-sub-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-sub-agent.js","sourceRoot":"","sources":["../../src/tools/generate-sub-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-sub-agent.js","sourceRoot":"","sources":["../../src/tools/generate-sub-agent.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,22 @@ export declare function handleCheckBranch(projectId: string, _specId: string | u
13
13
  * into a single atomic operation for spec creation.
14
14
  */
15
15
  export declare function handleAutoSetup(projectId: string, specId: string | undefined, config?: GitConfig): Promise<ToolResult>;
16
+ /**
17
+ * Returns a structured worktree-start payload with commands/paths so the caller
18
+ * knows exactly how to spin up an isolated Claude Code session.
19
+ */
20
+ export declare function handleWorktreeStart(_projectId: string, specId?: string, config?: {
21
+ customName?: string;
22
+ }): ToolResult;
23
+ /**
24
+ * Lists all git worktrees by parsing `git worktree list --porcelain`.
25
+ */
26
+ export declare function handleWorktreeList(projectId: string): Promise<ToolResult>;
27
+ /**
28
+ * Returns cleanup commands for worktrees (does NOT execute them — caller runs them).
29
+ */
30
+ export declare function handleWorktreeCleanup(_projectId: string, config?: {
31
+ removeAll?: boolean;
32
+ name?: string;
33
+ }): ToolResult;
16
34
  //# sourceMappingURL=branch-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAcpG;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBjG;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CA8DrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAsDrB;AAQD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAuHrB"}
1
+ {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAkCpG;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBjG;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CA8DrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAsDrB;AAQD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,CAAC,CAuHrB;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,UAAU,CA0BZ;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqD/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,UAAU,CAoBZ"}
@@ -1,6 +1,23 @@
1
1
  import { specStore } from '../../storage/index.js';
2
2
  import { ti } from '../../i18n/index.js';
3
3
  import { git, resolveProjectPath, slugify, mergeConfig, detectGitFlowType, resolveBaseBranch, DEFAULT_BRANCH_PREFIXES, DEFAULT_PROTECTED_BRANCHES, } from './git-helpers.js';
4
+ // ---------------------------------------------------------------------------
5
+ // Worktree helpers
6
+ // ---------------------------------------------------------------------------
7
+ /** Derives a worktree name from a specId (e.g. SPEC-252 -> feat-spec-252). */
8
+ function worktreeNameFromSpec(specId) {
9
+ const match = /SPEC-(\d+)/i.exec(specId);
10
+ if (match?.[1]) {
11
+ return `feat-spec-${match[1]}`;
12
+ }
13
+ return slugify(specId);
14
+ }
15
+ /** Generates a random 8-char hex suffix. */
16
+ function randomSuffix() {
17
+ return Math.floor(Math.random() * 0xffffffff)
18
+ .toString(16)
19
+ .padStart(8, '0');
20
+ }
4
21
  /**
5
22
  * SPEC-176: Auto-mark implementing specs as done when their git branch is merged to develop.
6
23
  * Scans all specs in "implementing" status and checks if their gitBranch appears in
@@ -235,4 +252,108 @@ export async function handleAutoSetup(projectId, specId, config) {
235
252
  };
236
253
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
237
254
  }
255
+ // ---------------------------------------------------------------------------
256
+ // Worktree operations (SPEC-260)
257
+ // ---------------------------------------------------------------------------
258
+ /**
259
+ * Returns a structured worktree-start payload with commands/paths so the caller
260
+ * knows exactly how to spin up an isolated Claude Code session.
261
+ */
262
+ export function handleWorktreeStart(_projectId, specId, config) {
263
+ let name;
264
+ if (specId) {
265
+ name = worktreeNameFromSpec(specId);
266
+ }
267
+ else if (config?.customName) {
268
+ name = slugify(config.customName);
269
+ }
270
+ else {
271
+ name = `worktree-${randomSuffix()}`;
272
+ }
273
+ const branchName = `worktree-${name}`;
274
+ const worktreePath = `.claude/worktrees/${name}`;
275
+ const result = {
276
+ command: `claude --worktree ${name}`,
277
+ branchName,
278
+ worktreePath,
279
+ cleanupCommand: `git worktree remove ${worktreePath}`,
280
+ gitignoreNote: "Add '.claude/worktrees/' to .gitignore to prevent contents appearing as untracked files",
281
+ subagentNote: "For subagents: add 'isolation: worktree' to agent frontmatter for automatic isolation",
282
+ autoCleanup: 'Worktree is auto-removed by Claude Code if no changes are made',
283
+ };
284
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
285
+ }
286
+ /**
287
+ * Lists all git worktrees by parsing `git worktree list --porcelain`.
288
+ */
289
+ export async function handleWorktreeList(projectId) {
290
+ const projectPath = await resolveProjectPath(projectId);
291
+ const { stdout } = await git(projectPath, ['worktree', 'list', '--porcelain']);
292
+ const worktrees = [];
293
+ let current = {};
294
+ let isFirst = true;
295
+ for (const raw of stdout.split('\n')) {
296
+ const line = raw.trim();
297
+ if (line === '') {
298
+ if (current.path !== undefined) {
299
+ worktrees.push({
300
+ path: current.path,
301
+ branch: current.branch ?? '(detached)',
302
+ head: current.head ?? '',
303
+ isMain: current.isMain ?? false,
304
+ });
305
+ }
306
+ current = {};
307
+ isFirst = false;
308
+ continue;
309
+ }
310
+ if (line.startsWith('worktree ')) {
311
+ current.path = line.slice('worktree '.length);
312
+ current.isMain = isFirst;
313
+ }
314
+ else if (line.startsWith('HEAD ')) {
315
+ current.head = line.slice('HEAD '.length);
316
+ }
317
+ else if (line.startsWith('branch ')) {
318
+ current.branch = line.slice('branch '.length).replace('refs/heads/', '');
319
+ }
320
+ else if (line === 'bare') {
321
+ current.branch = '(bare)';
322
+ }
323
+ }
324
+ // flush last entry if not terminated by blank line
325
+ if (current.path !== undefined) {
326
+ worktrees.push({
327
+ path: current.path,
328
+ branch: current.branch ?? '(detached)',
329
+ head: current.head ?? '',
330
+ isMain: current.isMain ?? false,
331
+ });
332
+ }
333
+ const result = { worktrees, total: worktrees.length };
334
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
335
+ }
336
+ /**
337
+ * Returns cleanup commands for worktrees (does NOT execute them — caller runs them).
338
+ */
339
+ export function handleWorktreeCleanup(_projectId, config) {
340
+ let commands;
341
+ if (config?.removeAll) {
342
+ commands = [
343
+ "git worktree list --porcelain | grep '^worktree ' | awk '{print \"git worktree remove \"$2}'",
344
+ ];
345
+ }
346
+ else if (config?.name) {
347
+ commands = [`git worktree remove .claude/worktrees/${config.name}`];
348
+ }
349
+ else {
350
+ commands = ['git worktree prune'];
351
+ }
352
+ const result = {
353
+ action: 'worktree-cleanup',
354
+ commands,
355
+ note: 'Run these commands manually — Planu does not execute destructive git operations automatically.',
356
+ };
357
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
358
+ }
238
359
  //# sourceMappingURL=branch-ops.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-ops.js","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-ops.js","sourceRoot":"","sources":["../../../src/tools/git/branch-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pr-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/pr-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,sBAAsB,CAAC;AAK1F,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,UAAU,CAAC,CA6IrB"}
1
+ {"version":3,"file":"pr-ops.d.ts","sourceRoot":"","sources":["../../../src/tools/git/pr-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqC,MAAM,sBAAsB,CAAC;AAK1F,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,OAAO,CAAC,UAAU,CAAC,CAqJrB"}
@@ -125,10 +125,17 @@ export async function handleGeneratePr(projectId, specId) {
125
125
  body: prBody,
126
126
  labels,
127
127
  };
128
+ // Extract PR number from gh output if available (placeholder otherwise)
129
+ const sessionResume = {
130
+ command: 'claude --from-pr <pr-number>',
131
+ description: 'Resume the Claude Code session linked to the PR',
132
+ tip: 'Run this after the PR is created to resume its linked session',
133
+ };
128
134
  const result = {
129
135
  action: 'generate-pr',
130
136
  branchName: branch,
131
137
  prTemplate,
138
+ sessionResume,
132
139
  message: ti('tools.manage_git.success', { action: 'generate-pr' }),
133
140
  };
134
141
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"pr-ops.js","sourceRoot":"","sources":["../../../src/tools/git/pr-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr-ops.js","sourceRoot":"","sources":["../../../src/tools/git/pr-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tools/init-project/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AA+BzE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkNrF"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tools/init-project/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AA+BzE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwNrF"}
@@ -72,7 +72,7 @@ export async function handleInitProject(params) {
72
72
  const { skillsAutoInstalled, skillsPendingInstall, skillsSkipped } = await orchestrateSkillInstalls(recommendedSkills, projectPath, autoInstallFromConfig);
73
73
  // Write scaffold files: rules, git setup, constitution, CLAUDE.md, lint, architecture rules
74
74
  const scaffoldResult = await runScaffoldWriter(projectPath, projectId, knowledge, recommendedSkills);
75
- const { platform, generatedRules, rulesWritten, additionalFilesWritten, hooksInstalled, gitFlowType, gitignoreUpdated, constitutionInitialized, claudeMdUpdated, eslintCreated, prettierCreated, lintSuggestions, architectureRulesWritten, architectureRulesSkipped, } = scaffoldResult;
75
+ const { platform, generatedRules, rulesWritten, additionalFilesWritten, hooksInstalled, gitFlowType, gitignoreUpdated, constitutionInitialized, claudeMdUpdated, eslintCreated, prettierCreated, lintSuggestions, architectureRulesWritten, architectureRulesSkipped, planuWorkflowInjected, planuHooksConfigured, planuRulesWritten, } = scaffoldResult;
76
76
  // SPEC-176: Auto-mark specs as done when their branch is merged to develop
77
77
  const autoCompletedSpecs = await autoCompleteSpecs(projectId, projectPath).catch(() => []);
78
78
  // SPEC-036: Request context when knowledge is incomplete
@@ -151,6 +151,9 @@ export async function handleInitProject(params) {
151
151
  healthReport,
152
152
  architectureRulesWritten,
153
153
  architectureRulesSkipped,
154
+ planuWorkflowInjected,
155
+ planuHooksConfigured,
156
+ planuRulesWritten,
154
157
  telemetryOptInPrompt: neverPrompted ? 'show' : null,
155
158
  conventionScanStatus,
156
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tools/init-project/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tools/init-project/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Add PreToolUse EnterPlanMode hook to .claude.json.
3
+ * Idempotent — skips if the entry already exists.
4
+ */
5
+ export declare function configurePlanModeHooks(projectPath: string): Promise<void>;
6
+ /**
7
+ * Add PostToolUse ExitPlanMode hook to .claude.json.
8
+ * Idempotent — skips if the entry already exists.
9
+ */
10
+ export declare function configureSessionHooks(projectPath: string): Promise<void>;
11
+ /**
12
+ * Configure all Planu hooks in .claude.json (plan mode + session).
13
+ * Idempotent — safe to call multiple times.
14
+ * @returns true if any hook was added (i.e. file was modified).
15
+ */
16
+ export declare function configurePlanuHooks(projectPath: string): Promise<boolean>;
17
+ //# sourceMappingURL=hooks-configurator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-configurator.d.ts","sourceRoot":"","sources":["../../../src/tools/init-project/hooks-configurator.ts"],"names":[],"mappings":"AA4EA;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B/E"}
@@ -0,0 +1,102 @@
1
+ // tools/init-project/hooks-configurator.ts — Write Planu hooks to .claude.json
2
+ // SPEC-263: Autonomous CLAUDE.md that makes Planu mandatory
3
+ import { readFile, writeFile } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ const PLANU_PRE_PLAN_HOOK = {
6
+ matcher: 'EnterPlanMode',
7
+ hooks: [
8
+ {
9
+ type: 'command',
10
+ command: 'bash .claude/hooks/planu-pre-plan.sh 2>/dev/null || true',
11
+ },
12
+ ],
13
+ };
14
+ const PLANU_POST_PLAN_HOOK = {
15
+ matcher: 'ExitPlanMode',
16
+ hooks: [
17
+ {
18
+ type: 'command',
19
+ command: 'bash .claude/hooks/planu-post-plan.sh 2>/dev/null || true',
20
+ },
21
+ ],
22
+ };
23
+ /**
24
+ * Read .claude.json from projectPath. Returns an empty object if file is missing.
25
+ */
26
+ async function readClaudeJson(projectPath) {
27
+ const filePath = join(projectPath, '.claude.json');
28
+ try {
29
+ const raw = await readFile(filePath, 'utf-8');
30
+ return JSON.parse(raw);
31
+ }
32
+ catch {
33
+ return {};
34
+ }
35
+ }
36
+ /**
37
+ * Write .claude.json to disk.
38
+ */
39
+ async function writeClaudeJson(projectPath, data) {
40
+ const filePath = join(projectPath, '.claude.json');
41
+ await writeFile(filePath, JSON.stringify(data, null, 2) + '\n', 'utf-8');
42
+ }
43
+ /**
44
+ * Check whether a hook matcher entry (identified by matcher string) already exists
45
+ * in the given array. Returns true if found.
46
+ */
47
+ function hookAlreadyExists(hooks, matcher) {
48
+ return hooks.some((h) => h.matcher === matcher);
49
+ }
50
+ /**
51
+ * Add PreToolUse EnterPlanMode hook to .claude.json.
52
+ * Idempotent — skips if the entry already exists.
53
+ */
54
+ export async function configurePlanModeHooks(projectPath) {
55
+ const config = await readClaudeJson(projectPath);
56
+ config.hooks ??= {};
57
+ config.hooks.PreToolUse ??= [];
58
+ if (!hookAlreadyExists(config.hooks.PreToolUse, PLANU_PRE_PLAN_HOOK.matcher)) {
59
+ config.hooks.PreToolUse.push(PLANU_PRE_PLAN_HOOK);
60
+ await writeClaudeJson(projectPath, config);
61
+ }
62
+ }
63
+ /**
64
+ * Add PostToolUse ExitPlanMode hook to .claude.json.
65
+ * Idempotent — skips if the entry already exists.
66
+ */
67
+ export async function configureSessionHooks(projectPath) {
68
+ const config = await readClaudeJson(projectPath);
69
+ config.hooks ??= {};
70
+ config.hooks.PostToolUse ??= [];
71
+ if (!hookAlreadyExists(config.hooks.PostToolUse, PLANU_POST_PLAN_HOOK.matcher)) {
72
+ config.hooks.PostToolUse.push(PLANU_POST_PLAN_HOOK);
73
+ await writeClaudeJson(projectPath, config);
74
+ }
75
+ }
76
+ /**
77
+ * Configure all Planu hooks in .claude.json (plan mode + session).
78
+ * Idempotent — safe to call multiple times.
79
+ * @returns true if any hook was added (i.e. file was modified).
80
+ */
81
+ export async function configurePlanuHooks(projectPath) {
82
+ const config = await readClaudeJson(projectPath);
83
+ const original = JSON.stringify(config);
84
+ config.hooks ??= {};
85
+ config.hooks.PreToolUse ??= [];
86
+ config.hooks.PostToolUse ??= [];
87
+ let modified = false;
88
+ if (!hookAlreadyExists(config.hooks.PreToolUse, PLANU_PRE_PLAN_HOOK.matcher)) {
89
+ config.hooks.PreToolUse.push(PLANU_PRE_PLAN_HOOK);
90
+ modified = true;
91
+ }
92
+ if (!hookAlreadyExists(config.hooks.PostToolUse, PLANU_POST_PLAN_HOOK.matcher)) {
93
+ config.hooks.PostToolUse.push(PLANU_POST_PLAN_HOOK);
94
+ modified = true;
95
+ }
96
+ if (modified || JSON.stringify(config) !== original) {
97
+ await writeClaudeJson(projectPath, config);
98
+ return true;
99
+ }
100
+ return false;
101
+ }
102
+ //# sourceMappingURL=hooks-configurator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-configurator.js","sourceRoot":"","sources":["../../../src/tools/init-project/hooks-configurator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface ClaudeMdSection {
2
+ marker: string;
3
+ content: string;
4
+ }
5
+ /**
6
+ * Generate the Planu SDD section for CLAUDE.md.
7
+ */
8
+ export declare function generatePlanuSection(_projectPath: string, _projectId: string): ClaudeMdSection;
9
+ /**
10
+ * Inject or update the Planu SDD section in an existing CLAUDE.md.
11
+ * - If the opening marker exists → replace the whole block (idempotent update).
12
+ * - If not → append the block.
13
+ * Creates the file (and parent directories) if it does not exist.
14
+ */
15
+ export declare function injectPlanuSection(claudeMdPath: string, section: ClaudeMdSection): Promise<void>;
16
+ /**
17
+ * Pure string helper — replace block between markers or append it.
18
+ * Exported for unit testing.
19
+ */
20
+ export declare function injectOrReplacePlanuBlock(existing: string, block: string, openMarker: string): string;
21
+ //# sourceMappingURL=planu-workflow-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planu-workflow-generator.d.ts","sourceRoot":"","sources":["../../../src/tools/init-project/planu-workflow-generator.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AA4BD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAK9F;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,MAAM,CAeR"}
@@ -0,0 +1,73 @@
1
+ // tools/init-project/planu-workflow-generator.ts — Generate Planu SDD Workflow section for CLAUDE.md
2
+ // SPEC-263: Autonomous CLAUDE.md that makes Planu mandatory
3
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
4
+ import { dirname } from 'node:path';
5
+ const PLANU_WORKFLOW_MARKER = '<!-- planu-sdd-workflow -->';
6
+ const PLANU_WORKFLOW_CONTENT = `<!-- planu-sdd-workflow -->
7
+ ## Planu SDD Workflow (MANDATORY)
8
+
9
+ ### Session Start
10
+ 1. Call \`planu_status\` — load active specs and git state
11
+ 2. If spec is \`implementing\` → resume it before starting new work
12
+ 3. Call \`semantic_search\` before starting any new task
13
+
14
+ ### For ANY task > 5 minutes
15
+ NEVER write production code without an approved spec.
16
+ 1. Call \`facilitate\` with what the user wants to build
17
+ 2. Planu creates a spec — user reviews and approves
18
+ 3. Only THEN implement
19
+
20
+ ### Session End
21
+ Call \`session_checkpoint\` to save context for the next session.
22
+
23
+ ### Quick reference
24
+ - New feature → \`facilitate("description")\`
25
+ - Check progress → \`planu_status\`
26
+ - Find related work → \`semantic_search("keywords")\`
27
+ - List pending → \`list_specs\` with status filter
28
+ <!-- /planu-sdd-workflow -->`;
29
+ /**
30
+ * Generate the Planu SDD section for CLAUDE.md.
31
+ */
32
+ export function generatePlanuSection(_projectPath, _projectId) {
33
+ return {
34
+ marker: PLANU_WORKFLOW_MARKER,
35
+ content: PLANU_WORKFLOW_CONTENT,
36
+ };
37
+ }
38
+ /**
39
+ * Inject or update the Planu SDD section in an existing CLAUDE.md.
40
+ * - If the opening marker exists → replace the whole block (idempotent update).
41
+ * - If not → append the block.
42
+ * Creates the file (and parent directories) if it does not exist.
43
+ */
44
+ export async function injectPlanuSection(claudeMdPath, section) {
45
+ let existing = '';
46
+ try {
47
+ existing = await readFile(claudeMdPath, 'utf-8');
48
+ }
49
+ catch {
50
+ await mkdir(dirname(claudeMdPath), { recursive: true });
51
+ }
52
+ const updated = injectOrReplacePlanuBlock(existing, section.content, section.marker);
53
+ await writeFile(claudeMdPath, updated, 'utf-8');
54
+ }
55
+ /**
56
+ * Pure string helper — replace block between markers or append it.
57
+ * Exported for unit testing.
58
+ */
59
+ export function injectOrReplacePlanuBlock(existing, block, openMarker) {
60
+ // Derive close marker: <!-- planu-sdd-workflow --> → <!-- /planu-sdd-workflow -->
61
+ const closeMarker = openMarker.replace('<!-- ', '<!-- /');
62
+ if (existing.includes(openMarker)) {
63
+ // Replace everything from openMarker to closeMarker (inclusive)
64
+ const escapedOpen = openMarker.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
65
+ const escapedClose = closeMarker.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
66
+ const re = new RegExp(`${escapedOpen}[\\s\\S]*?${escapedClose}`, 'g');
67
+ return existing.replace(re, block);
68
+ }
69
+ // Append
70
+ const separator = existing.length > 0 && !existing.endsWith('\n') ? '\n\n' : '\n';
71
+ return existing + separator + block;
72
+ }
73
+ //# sourceMappingURL=planu-workflow-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planu-workflow-generator.js","sourceRoot":"","sources":["../../../src/tools/init-project/planu-workflow-generator.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC;AAE5D,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;6BAsBF,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB,EAAE,UAAkB;IAC3E,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,sBAAsB;KAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,YAAoB,EACpB,OAAwB;IAExB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrF,MAAM,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,KAAa,EACb,UAAkB;IAElB,kFAAkF;IAClF,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE1D,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,gEAAgE;QAChE,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW,aAAa,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;IACT,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,OAAO,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AACtC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Write .claude/rules/planu-workflow.md to the target project.
3
+ * Always overwrites to keep the content up to date.
4
+ */
5
+ export declare function generateWorkflowRules(projectPath: string): Promise<void>;
6
+ /**
7
+ * Write .claude/rules/planu-workflow.md only if it does not exist yet.
8
+ * @returns true if the file was created, false if it already existed.
9
+ */
10
+ export declare function generateWorkflowRulesIfMissing(projectPath: string): Promise<boolean>;
11
+ /**
12
+ * Exposed for testing — returns the rules file path relative to project root.
13
+ */
14
+ export declare function getWorkflowRulesRelativePath(): string;
15
+ //# sourceMappingURL=rules-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-generator.d.ts","sourceRoot":"","sources":["../../../src/tools/init-project/rules-generator.ts"],"names":[],"mappings":"AAkFA;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9E;AAED;;;GAGG;AACH,wBAAsB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS1F;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD"}