openplanr 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +142 -52
  2. package/dist/agents/index.d.ts +1 -5
  3. package/dist/agents/index.d.ts.map +1 -1
  4. package/dist/agents/index.js +1 -4
  5. package/dist/agents/index.js.map +1 -1
  6. package/dist/agents/task-parser.d.ts +4 -1
  7. package/dist/agents/task-parser.d.ts.map +1 -1
  8. package/dist/agents/task-parser.js +6 -3
  9. package/dist/agents/task-parser.js.map +1 -1
  10. package/dist/agents/utils.d.ts +0 -4
  11. package/dist/agents/utils.d.ts.map +1 -1
  12. package/dist/agents/utils.js +3 -24
  13. package/dist/agents/utils.js.map +1 -1
  14. package/dist/ai/codebase/context-builder.d.ts +22 -3
  15. package/dist/ai/codebase/context-builder.d.ts.map +1 -1
  16. package/dist/ai/codebase/context-builder.js +202 -14
  17. package/dist/ai/codebase/context-builder.js.map +1 -1
  18. package/dist/ai/codebase/file-reader.d.ts.map +1 -1
  19. package/dist/ai/codebase/file-reader.js +7 -3
  20. package/dist/ai/codebase/file-reader.js.map +1 -1
  21. package/dist/ai/codebase/index.d.ts +3 -1
  22. package/dist/ai/codebase/index.d.ts.map +1 -1
  23. package/dist/ai/codebase/index.js +3 -1
  24. package/dist/ai/codebase/index.js.map +1 -1
  25. package/dist/ai/codebase/pattern-rules.d.ts +28 -0
  26. package/dist/ai/codebase/pattern-rules.d.ts.map +1 -0
  27. package/dist/ai/codebase/pattern-rules.js +186 -0
  28. package/dist/ai/codebase/pattern-rules.js.map +1 -0
  29. package/dist/ai/codebase/rules-reader.d.ts +14 -0
  30. package/dist/ai/codebase/rules-reader.d.ts.map +1 -0
  31. package/dist/ai/codebase/rules-reader.js +25 -0
  32. package/dist/ai/codebase/rules-reader.js.map +1 -0
  33. package/dist/ai/codebase/stack-detector.d.ts.map +1 -1
  34. package/dist/ai/codebase/stack-detector.js +4 -1
  35. package/dist/ai/codebase/stack-detector.js.map +1 -1
  36. package/dist/ai/codebase/tree-generator.d.ts.map +1 -1
  37. package/dist/ai/codebase/tree-generator.js +5 -2
  38. package/dist/ai/codebase/tree-generator.js.map +1 -1
  39. package/dist/ai/errors.js +1 -1
  40. package/dist/ai/errors.js.map +1 -1
  41. package/dist/ai/prompts/prompt-builder.d.ts +12 -0
  42. package/dist/ai/prompts/prompt-builder.d.ts.map +1 -1
  43. package/dist/ai/prompts/prompt-builder.js +45 -3
  44. package/dist/ai/prompts/prompt-builder.js.map +1 -1
  45. package/dist/ai/prompts/system-prompts.d.ts +5 -3
  46. package/dist/ai/prompts/system-prompts.d.ts.map +1 -1
  47. package/dist/ai/prompts/system-prompts.js +74 -13
  48. package/dist/ai/prompts/system-prompts.js.map +1 -1
  49. package/dist/ai/schemas/ai-response-schemas.d.ts +48 -2
  50. package/dist/ai/schemas/ai-response-schemas.d.ts.map +1 -1
  51. package/dist/ai/schemas/ai-response-schemas.js +19 -0
  52. package/dist/ai/schemas/ai-response-schemas.js.map +1 -1
  53. package/dist/ai/types.d.ts +4 -2
  54. package/dist/ai/types.d.ts.map +1 -1
  55. package/dist/ai/types.js +3 -1
  56. package/dist/ai/types.js.map +1 -1
  57. package/dist/ai/validation/dependency-chains.d.ts +21 -0
  58. package/dist/ai/validation/dependency-chains.d.ts.map +1 -0
  59. package/dist/ai/validation/dependency-chains.js +114 -0
  60. package/dist/ai/validation/dependency-chains.js.map +1 -0
  61. package/dist/ai/validation/index.d.ts +3 -0
  62. package/dist/ai/validation/index.d.ts.map +1 -0
  63. package/dist/ai/validation/index.js +3 -0
  64. package/dist/ai/validation/index.js.map +1 -0
  65. package/dist/ai/validation/task-validator.d.ts +37 -0
  66. package/dist/ai/validation/task-validator.d.ts.map +1 -0
  67. package/dist/ai/validation/task-validator.js +89 -0
  68. package/dist/ai/validation/task-validator.js.map +1 -0
  69. package/dist/cli/commands/backlog.d.ts +10 -0
  70. package/dist/cli/commands/backlog.d.ts.map +1 -0
  71. package/dist/cli/commands/backlog.js +292 -0
  72. package/dist/cli/commands/backlog.js.map +1 -0
  73. package/dist/cli/commands/checklist.js +4 -4
  74. package/dist/cli/commands/checklist.js.map +1 -1
  75. package/dist/cli/commands/config.js +13 -13
  76. package/dist/cli/commands/config.js.map +1 -1
  77. package/dist/cli/commands/epic.d.ts.map +1 -1
  78. package/dist/cli/commands/epic.js +41 -22
  79. package/dist/cli/commands/epic.js.map +1 -1
  80. package/dist/cli/commands/estimate.d.ts.map +1 -1
  81. package/dist/cli/commands/estimate.js +40 -39
  82. package/dist/cli/commands/estimate.js.map +1 -1
  83. package/dist/cli/commands/export.d.ts +8 -0
  84. package/dist/cli/commands/export.d.ts.map +1 -0
  85. package/dist/cli/commands/export.js +282 -0
  86. package/dist/cli/commands/export.js.map +1 -0
  87. package/dist/cli/commands/feature.js +9 -9
  88. package/dist/cli/commands/feature.js.map +1 -1
  89. package/dist/cli/commands/github.d.ts +8 -0
  90. package/dist/cli/commands/github.d.ts.map +1 -0
  91. package/dist/cli/commands/github.js +415 -0
  92. package/dist/cli/commands/github.js.map +1 -0
  93. package/dist/cli/commands/plan.d.ts.map +1 -1
  94. package/dist/cli/commands/plan.js +104 -50
  95. package/dist/cli/commands/plan.js.map +1 -1
  96. package/dist/cli/commands/quick.d.ts.map +1 -1
  97. package/dist/cli/commands/quick.js +37 -107
  98. package/dist/cli/commands/quick.js.map +1 -1
  99. package/dist/cli/commands/refine.js +21 -21
  100. package/dist/cli/commands/refine.js.map +1 -1
  101. package/dist/cli/commands/search.d.ts.map +1 -1
  102. package/dist/cli/commands/search.js +18 -7
  103. package/dist/cli/commands/search.js.map +1 -1
  104. package/dist/cli/commands/sprint.d.ts +9 -0
  105. package/dist/cli/commands/sprint.d.ts.map +1 -0
  106. package/dist/cli/commands/sprint.js +519 -0
  107. package/dist/cli/commands/sprint.js.map +1 -0
  108. package/dist/cli/commands/status.d.ts.map +1 -1
  109. package/dist/cli/commands/status.js +77 -32
  110. package/dist/cli/commands/status.js.map +1 -1
  111. package/dist/cli/commands/story.js +15 -15
  112. package/dist/cli/commands/story.js.map +1 -1
  113. package/dist/cli/commands/sync.js +11 -7
  114. package/dist/cli/commands/sync.js.map +1 -1
  115. package/dist/cli/commands/task.d.ts +0 -2
  116. package/dist/cli/commands/task.d.ts.map +1 -1
  117. package/dist/cli/commands/task.js +14 -169
  118. package/dist/cli/commands/task.js.map +1 -1
  119. package/dist/cli/commands/template.d.ts +10 -0
  120. package/dist/cli/commands/template.d.ts.map +1 -0
  121. package/dist/cli/commands/template.js +269 -0
  122. package/dist/cli/commands/template.js.map +1 -0
  123. package/dist/cli/helpers/task-creation.d.ts +89 -0
  124. package/dist/cli/helpers/task-creation.d.ts.map +1 -0
  125. package/dist/cli/helpers/task-creation.js +140 -0
  126. package/dist/cli/helpers/task-creation.js.map +1 -0
  127. package/dist/cli/index.js +29 -2
  128. package/dist/cli/index.js.map +1 -1
  129. package/dist/models/schema.d.ts +2 -0
  130. package/dist/models/schema.d.ts.map +1 -1
  131. package/dist/models/schema.js +2 -0
  132. package/dist/models/schema.js.map +1 -1
  133. package/dist/models/types.d.ts +32 -1
  134. package/dist/models/types.d.ts.map +1 -1
  135. package/dist/services/artifact-gathering.d.ts +2 -0
  136. package/dist/services/artifact-gathering.d.ts.map +1 -1
  137. package/dist/services/artifact-gathering.js +26 -7
  138. package/dist/services/artifact-gathering.js.map +1 -1
  139. package/dist/services/artifact-service.d.ts +5 -5
  140. package/dist/services/artifact-service.d.ts.map +1 -1
  141. package/dist/services/artifact-service.js +4 -0
  142. package/dist/services/artifact-service.js.map +1 -1
  143. package/dist/services/config-service.d.ts.map +1 -1
  144. package/dist/services/config-service.js +2 -0
  145. package/dist/services/config-service.js.map +1 -1
  146. package/dist/services/credential-backends.d.ts.map +1 -1
  147. package/dist/services/credential-backends.js +15 -7
  148. package/dist/services/credential-backends.js.map +1 -1
  149. package/dist/services/credentials-service.d.ts.map +1 -1
  150. package/dist/services/credentials-service.js +6 -3
  151. package/dist/services/credentials-service.js.map +1 -1
  152. package/dist/services/github-service.d.ts +83 -0
  153. package/dist/services/github-service.d.ts.map +1 -0
  154. package/dist/services/github-service.js +440 -0
  155. package/dist/services/github-service.js.map +1 -0
  156. package/dist/services/template-service.d.ts +2 -1
  157. package/dist/services/template-service.d.ts.map +1 -1
  158. package/dist/services/template-service.js +3 -1
  159. package/dist/services/template-service.js.map +1 -1
  160. package/dist/templates/backlog/backlog-item.md.hbs +40 -0
  161. package/dist/templates/checklists/agile-checklist.md.hbs +1 -1
  162. package/dist/templates/export/planning-report.html.hbs +230 -0
  163. package/dist/templates/export/planning-report.md.hbs +136 -0
  164. package/dist/templates/quick/quick-task.md.hbs +1 -1
  165. package/dist/templates/rules/claude/CLAUDE.md.hbs +78 -35
  166. package/dist/templates/rules/codex/AGENTS.md.hbs +73 -17
  167. package/dist/templates/rules/cursor/2101-implement-task-list.mdc.hbs +66 -14
  168. package/dist/templates/sprints/sprint.md.hbs +42 -0
  169. package/dist/templates/task-templates/api-integration.json +45 -0
  170. package/dist/templates/task-templates/auth-flow.json +48 -0
  171. package/dist/templates/task-templates/database-migration.json +44 -0
  172. package/dist/templates/task-templates/react-component.json +45 -0
  173. package/dist/templates/task-templates/rest-endpoint.json +53 -0
  174. package/dist/templates/tasks/task-list.md.hbs +1 -1
  175. package/dist/utils/constants.d.ts +4 -0
  176. package/dist/utils/constants.d.ts.map +1 -1
  177. package/dist/utils/constants.js +4 -0
  178. package/dist/utils/constants.js.map +1 -1
  179. package/dist/utils/logger.d.ts +31 -1
  180. package/dist/utils/logger.d.ts.map +1 -1
  181. package/dist/utils/logger.js +92 -9
  182. package/dist/utils/logger.js.map +1 -1
  183. package/dist/utils/markdown.d.ts +3 -2
  184. package/dist/utils/markdown.d.ts.map +1 -1
  185. package/dist/utils/markdown.js +3 -1
  186. package/dist/utils/markdown.js.map +1 -1
  187. package/dist/utils/slugify.d.ts +8 -1
  188. package/dist/utils/slugify.d.ts.map +1 -1
  189. package/dist/utils/slugify.js +18 -2
  190. package/dist/utils/slugify.js.map +1 -1
  191. package/package.json +14 -3
  192. package/dist/agents/agent-factory.d.ts +0 -7
  193. package/dist/agents/agent-factory.d.ts.map +0 -1
  194. package/dist/agents/agent-factory.js +0 -22
  195. package/dist/agents/agent-factory.js.map +0 -1
  196. package/dist/agents/claude-agent.d.ts +0 -18
  197. package/dist/agents/claude-agent.d.ts.map +0 -1
  198. package/dist/agents/claude-agent.js +0 -183
  199. package/dist/agents/claude-agent.js.map +0 -1
  200. package/dist/agents/codex-agent.d.ts +0 -17
  201. package/dist/agents/codex-agent.d.ts.map +0 -1
  202. package/dist/agents/codex-agent.js +0 -124
  203. package/dist/agents/codex-agent.js.map +0 -1
  204. package/dist/agents/cursor-agent.d.ts +0 -14
  205. package/dist/agents/cursor-agent.d.ts.map +0 -1
  206. package/dist/agents/cursor-agent.js +0 -49
  207. package/dist/agents/cursor-agent.js.map +0 -1
  208. package/dist/agents/implementation-bridge.d.ts +0 -30
  209. package/dist/agents/implementation-bridge.d.ts.map +0 -1
  210. package/dist/agents/implementation-bridge.js +0 -256
  211. package/dist/agents/implementation-bridge.js.map +0 -1
  212. package/dist/agents/progress.d.ts +0 -62
  213. package/dist/agents/progress.d.ts.map +0 -1
  214. package/dist/agents/progress.js +0 -155
  215. package/dist/agents/progress.js.map +0 -1
  216. package/dist/agents/prompt-composer.d.ts +0 -30
  217. package/dist/agents/prompt-composer.d.ts.map +0 -1
  218. package/dist/agents/prompt-composer.js +0 -81
  219. package/dist/agents/prompt-composer.js.map +0 -1
  220. package/dist/agents/types.d.ts +0 -25
  221. package/dist/agents/types.d.ts.map +0 -1
  222. package/dist/agents/types.js +0 -8
  223. package/dist/agents/types.js.map +0 -1
  224. package/dist/utils/error-context.d.ts +0 -23
  225. package/dist/utils/error-context.d.ts.map +0 -1
  226. package/dist/utils/error-context.js +0 -94
  227. package/dist/utils/error-context.js.map +0 -1
@@ -0,0 +1,292 @@
1
+ /**
2
+ * `planr backlog` command group.
3
+ *
4
+ * Lightweight issue/TODO tracker with tags, priorities, and
5
+ * AI-powered prioritization. The intake funnel before work
6
+ * enters the agile hierarchy.
7
+ */
8
+ import chalk from 'chalk';
9
+ import { buildBacklogPrioritizePrompt } from '../../ai/prompts/prompt-builder.js';
10
+ import { aiBacklogPrioritizeResponseSchema } from '../../ai/schemas/ai-response-schemas.js';
11
+ import { TOKEN_BUDGETS } from '../../ai/types.js';
12
+ import { generateStreamingJSON, getAIProvider, isAIConfigured } from '../../services/ai-service.js';
13
+ import { createArtifact, listArtifacts, readArtifact, readArtifactRaw, updateArtifact, } from '../../services/artifact-service.js';
14
+ import { loadConfig } from '../../services/config-service.js';
15
+ import { promptConfirm } from '../../services/prompt-service.js';
16
+ import { display, logger } from '../../utils/logger.js';
17
+ import { parseMarkdown } from '../../utils/markdown.js';
18
+ const PRIORITY_ORDER = { critical: 0, high: 1, medium: 2, low: 3 };
19
+ const PRIORITY_COLORS = {
20
+ critical: chalk.red.bold,
21
+ high: chalk.yellow,
22
+ medium: chalk.blue,
23
+ low: chalk.dim,
24
+ };
25
+ export function registerBacklogCommand(program) {
26
+ const backlog = program.command('backlog').description('Capture and prioritize incoming work');
27
+ // -----------------------------------------------------------------------
28
+ // planr backlog add "description"
29
+ // -----------------------------------------------------------------------
30
+ backlog
31
+ .command('add')
32
+ .description('Add a new backlog item')
33
+ .argument('<description>', 'brief description of the work')
34
+ .option('-p, --priority <level>', 'priority: critical, high, medium, low', 'medium')
35
+ .option('-t, --tag <tags...>', 'tags (e.g., bug, feature, tech-debt)')
36
+ .action(async (description, opts) => {
37
+ const projectDir = program.opts().projectDir;
38
+ const config = await loadConfig(projectDir);
39
+ const priority = validatePriority(opts.priority);
40
+ if (!priority)
41
+ return;
42
+ const tags = opts.tag || [];
43
+ const title = truncateTitle(description);
44
+ const { id, filePath } = await createArtifact(projectDir, config, 'backlog', 'backlog/backlog-item.md.hbs', { title, priority, tags, description });
45
+ logger.success(`Added ${id}: ${title}`);
46
+ logger.dim(` Priority: ${priority} | Tags: ${tags.join(', ') || 'none'}`);
47
+ logger.dim(` ${filePath}`);
48
+ });
49
+ // -----------------------------------------------------------------------
50
+ // planr backlog list
51
+ // -----------------------------------------------------------------------
52
+ backlog
53
+ .command('list')
54
+ .description('List backlog items')
55
+ .option('-t, --tag <tag>', 'filter by tag')
56
+ .option('-p, --priority <level>', 'filter by priority')
57
+ .option('-s, --status <status>', 'filter by status (open, promoted, closed)', 'open')
58
+ .action(async (opts) => {
59
+ const projectDir = program.opts().projectDir;
60
+ const config = await loadConfig(projectDir);
61
+ const items = await loadBacklogItems(projectDir, config);
62
+ let filtered = items;
63
+ if (opts.status) {
64
+ filtered = filtered.filter((i) => i.status === opts.status);
65
+ }
66
+ if (opts.tag) {
67
+ filtered = filtered.filter((i) => i.tags.includes(opts.tag));
68
+ }
69
+ if (opts.priority) {
70
+ filtered = filtered.filter((i) => i.priority === opts.priority);
71
+ }
72
+ if (filtered.length === 0) {
73
+ logger.info('No backlog items found. Run "planr backlog add <description>" to add one.');
74
+ return;
75
+ }
76
+ // Sort by priority
77
+ filtered.sort((a, b) => (PRIORITY_ORDER[a.priority] ?? 9) - (PRIORITY_ORDER[b.priority] ?? 9));
78
+ logger.heading(`Backlog (${filtered.length} items)`);
79
+ display.blank();
80
+ for (const item of filtered) {
81
+ const colorFn = PRIORITY_COLORS[item.priority] || chalk.white;
82
+ const priorityBadge = colorFn(`[${item.priority.toUpperCase()}]`);
83
+ const tagStr = item.tags.length > 0 ? chalk.dim(` ${item.tags.map((t) => `#${t}`).join(' ')}`) : '';
84
+ display.line(` ${chalk.bold(item.id)} ${item.title} ${priorityBadge}${tagStr}`);
85
+ }
86
+ display.blank();
87
+ });
88
+ // -----------------------------------------------------------------------
89
+ // planr backlog prioritize
90
+ // -----------------------------------------------------------------------
91
+ backlog
92
+ .command('prioritize')
93
+ .description('AI-powered prioritization of open backlog items')
94
+ .action(async () => {
95
+ const projectDir = program.opts().projectDir;
96
+ const config = await loadConfig(projectDir);
97
+ if (!isAIConfigured(config)) {
98
+ logger.error('AI not configured. Run `planr config set-provider` first.');
99
+ return;
100
+ }
101
+ const items = await loadBacklogItems(projectDir, config);
102
+ const openItems = items.filter((i) => i.status === 'open');
103
+ if (openItems.length < 2) {
104
+ logger.info('Need at least 2 open backlog items to prioritize.');
105
+ return;
106
+ }
107
+ logger.heading('Backlog Prioritization (AI-powered)');
108
+ logger.dim(`Analyzing ${openItems.length} open items...`);
109
+ try {
110
+ const provider = await getAIProvider(config);
111
+ const messages = buildBacklogPrioritizePrompt(openItems);
112
+ const { result } = await generateStreamingJSON(provider, messages, aiBacklogPrioritizeResponseSchema, { maxTokens: TOKEN_BUDGETS.backlogPrioritize });
113
+ // Display prioritized list
114
+ display.separator(60);
115
+ display.heading(' Recommended Priority Order:');
116
+ display.blank();
117
+ for (const item of result.items) {
118
+ const colorFn = PRIORITY_COLORS[item.priority] || chalk.white;
119
+ const badge = colorFn(`[${item.priority.toUpperCase()}]`);
120
+ const impact = chalk.green(`impact:${item.impactScore}`);
121
+ const effort = chalk.yellow(`effort:${item.effortScore}`);
122
+ display.line(` ${chalk.bold(item.id)} ${badge} ${impact} ${effort}`);
123
+ display.line(chalk.dim(` ${item.reasoning}`));
124
+ }
125
+ display.blank();
126
+ display.line(chalk.dim(` ${result.summary}`));
127
+ display.separator(60);
128
+ const apply = await promptConfirm('Apply these priority changes?', true);
129
+ if (!apply) {
130
+ logger.info('Prioritization cancelled.');
131
+ return;
132
+ }
133
+ // Apply priority changes
134
+ let updated = 0;
135
+ for (const rec of result.items) {
136
+ const item = openItems.find((i) => i.id === rec.id);
137
+ if (!item || item.priority === rec.priority)
138
+ continue;
139
+ const raw = await readArtifactRaw(projectDir, config, 'backlog', rec.id);
140
+ if (!raw)
141
+ continue;
142
+ const newRaw = raw.replace(/^priority: ".*"$/m, `priority: "${rec.priority}"`);
143
+ await updateArtifact(projectDir, config, 'backlog', rec.id, newRaw);
144
+ updated++;
145
+ }
146
+ logger.success(`Updated ${updated} item${updated !== 1 ? 's' : ''}`);
147
+ }
148
+ catch (err) {
149
+ const { AIError } = await import('../../ai/errors.js');
150
+ if (err instanceof AIError) {
151
+ logger.error(err.userMessage);
152
+ }
153
+ else {
154
+ throw err;
155
+ }
156
+ }
157
+ });
158
+ // -----------------------------------------------------------------------
159
+ // planr backlog promote <blId>
160
+ // -----------------------------------------------------------------------
161
+ backlog
162
+ .command('promote')
163
+ .description('Promote a backlog item to story or quick task')
164
+ .argument('<blId>', 'backlog item ID (e.g., BL-001)')
165
+ .option('--story', 'promote to a new user story (requires --feature)')
166
+ .option('--quick', 'promote to a standalone quick task')
167
+ .option('--feature <featureId>', 'parent feature for story promotion')
168
+ .action(async (blId, opts) => {
169
+ const projectDir = program.opts().projectDir;
170
+ const config = await loadConfig(projectDir);
171
+ if (!opts.story && !opts.quick) {
172
+ logger.error('Specify --story or --quick to choose promotion target.');
173
+ return;
174
+ }
175
+ const data = await readArtifact(projectDir, config, 'backlog', blId);
176
+ if (!data) {
177
+ logger.error(`Backlog item ${blId} not found.`);
178
+ return;
179
+ }
180
+ const title = data.data.title || blId;
181
+ const description = data.data.description || title;
182
+ if (opts.quick) {
183
+ // Promote to quick task
184
+ const { id, filePath } = await createArtifact(projectDir, config, 'quick', 'quick/quick-task.md.hbs', {
185
+ title,
186
+ tasks: [{ id: '1.0', title: description, status: 'pending', subtasks: [] }],
187
+ });
188
+ await markPromoted(projectDir, config, blId, id);
189
+ logger.success(`Promoted ${blId} -> ${id}`);
190
+ logger.dim(` ${filePath}`);
191
+ logger.dim(` Next: Open ${id} in your coding agent for implementation`);
192
+ }
193
+ else if (opts.story) {
194
+ if (!opts.feature) {
195
+ logger.error('Story promotion requires --feature <featureId>.');
196
+ return;
197
+ }
198
+ const feature = await readArtifact(projectDir, config, 'feature', opts.feature);
199
+ if (!feature) {
200
+ logger.error(`Feature ${opts.feature} not found.`);
201
+ return;
202
+ }
203
+ const { id, filePath } = await createArtifact(projectDir, config, 'story', 'stories/user-story.md.hbs', {
204
+ title,
205
+ featureId: opts.feature,
206
+ role: 'developer',
207
+ goal: description,
208
+ benefit: 'complete the backlog item',
209
+ additionalNotes: `Promoted from backlog item ${blId}`,
210
+ gherkinScenarios: [],
211
+ });
212
+ const { addChildReference } = await import('../../services/artifact-service.js');
213
+ await addChildReference(projectDir, config, 'feature', opts.feature, 'story', id, title);
214
+ await markPromoted(projectDir, config, blId, id);
215
+ logger.success(`Promoted ${blId} -> ${id}`);
216
+ logger.dim(` ${filePath}`);
217
+ logger.dim(` Linked to feature ${opts.feature}`);
218
+ logger.dim(` Next: planr task create --story ${id}`);
219
+ }
220
+ });
221
+ // -----------------------------------------------------------------------
222
+ // planr backlog close <blId>
223
+ // -----------------------------------------------------------------------
224
+ backlog
225
+ .command('close')
226
+ .description('Close/archive a backlog item')
227
+ .argument('<blId>', 'backlog item ID (e.g., BL-001)')
228
+ .action(async (blId) => {
229
+ const projectDir = program.opts().projectDir;
230
+ const config = await loadConfig(projectDir);
231
+ const raw = await readArtifactRaw(projectDir, config, 'backlog', blId);
232
+ if (!raw) {
233
+ logger.error(`Backlog item ${blId} not found.`);
234
+ return;
235
+ }
236
+ const updated = raw.replace(/^status: "open"$/m, 'status: "closed"');
237
+ if (updated === raw) {
238
+ logger.warn(`${blId} is not in "open" status.`);
239
+ return;
240
+ }
241
+ await updateArtifact(projectDir, config, 'backlog', blId, updated);
242
+ logger.success(`Closed ${blId}`);
243
+ });
244
+ }
245
+ async function loadBacklogItems(projectDir, config) {
246
+ const artifacts = await listArtifacts(projectDir, config, 'backlog');
247
+ const items = [];
248
+ for (const artifact of artifacts) {
249
+ const raw = await readArtifactRaw(projectDir, config, 'backlog', artifact.id);
250
+ if (!raw)
251
+ continue;
252
+ const { data, content } = parseMarkdown(raw);
253
+ items.push({
254
+ id: artifact.id,
255
+ title: data.title || artifact.title,
256
+ priority: data.priority || 'medium',
257
+ tags: Array.isArray(data.tags) ? data.tags : [],
258
+ status: data.status || 'open',
259
+ description: content.slice(0, 500),
260
+ });
261
+ }
262
+ return items;
263
+ }
264
+ async function markPromoted(projectDir, config, blId, targetId) {
265
+ const raw = await readArtifactRaw(projectDir, config, 'backlog', blId);
266
+ if (!raw)
267
+ return;
268
+ const today = new Date().toISOString().split('T')[0];
269
+ const updated = raw
270
+ .replace(/^status: "open"$/m, 'status: "promoted"')
271
+ .concat(`\n\n> **Promoted** to ${targetId} on ${today}.\n`);
272
+ await updateArtifact(projectDir, config, 'backlog', blId, updated);
273
+ }
274
+ function validatePriority(input) {
275
+ const valid = ['critical', 'high', 'medium', 'low'];
276
+ if (valid.includes(input))
277
+ return input;
278
+ logger.error(`Invalid priority: ${input}. Must be: ${valid.join(', ')}`);
279
+ return null;
280
+ }
281
+ /** Extract a short title (max 60 chars at word boundary) from a long description. */
282
+ function truncateTitle(description, maxLength = 60) {
283
+ if (!description)
284
+ return 'Untitled';
285
+ // If it's already short, use as-is
286
+ if (description.length <= maxLength)
287
+ return description;
288
+ const truncated = description.slice(0, maxLength);
289
+ const lastSpace = truncated.lastIndexOf(' ');
290
+ return lastSpace > 20 ? `${truncated.slice(0, lastSpace)}...` : `${truncated}...`;
291
+ }
292
+ //# sourceMappingURL=backlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backlog.js","sourceRoot":"","sources":["../../../src/cli/commands/backlog.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { createChecklist, getChecklistPath, getChecklistProgress, parseChecklist
3
3
  import { loadConfig } from '../../services/config-service.js';
4
4
  import { promptCheckbox } from '../../services/prompt-service.js';
5
5
  import { writeFile } from '../../utils/fs.js';
6
- import { logger } from '../../utils/logger.js';
6
+ import { display, logger } from '../../utils/logger.js';
7
7
  export function registerChecklistCommand(program) {
8
8
  const checklist = program
9
9
  .command('checklist')
@@ -21,12 +21,12 @@ export function registerChecklistCommand(program) {
21
21
  content = await readChecklist(projectDir, config);
22
22
  }
23
23
  if (content) {
24
- console.log(content);
24
+ display.line(content);
25
25
  const items = parseChecklistItems(content);
26
26
  if (items.length > 0) {
27
27
  const { done, total, percent } = getChecklistProgress(items);
28
28
  const color = percent >= 75 ? chalk.green : percent >= 25 ? chalk.yellow : chalk.red;
29
- console.log(color(`\nProgress: ${done}/${total} complete (${percent}%)`));
29
+ display.line(color(`\nProgress: ${done}/${total} complete (${percent}%)`));
30
30
  }
31
31
  }
32
32
  });
@@ -78,7 +78,7 @@ export function registerChecklistCommand(program) {
78
78
  const { done, total, percent } = getChecklistProgress(updatedItems);
79
79
  const color = percent >= 75 ? chalk.green : percent >= 25 ? chalk.yellow : chalk.red;
80
80
  logger.success(`Updated ${toToggle.size} item(s).`);
81
- console.log(color(`Progress: ${done}/${total} complete (${percent}%)`));
81
+ display.line(color(`Progress: ${done}/${total} complete (${percent}%)`));
82
82
  });
83
83
  checklist
84
84
  .command('reset')
@@ -1 +1 @@
1
- {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../src/cli/commands/checklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../src/cli/commands/checklist.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { ENV_KEY_MAP } from '../../ai/types.js';
7
7
  import { loadConfig, saveConfig } from '../../services/config-service.js';
8
8
  import { resolveApiKeySource, saveCredential } from '../../services/credentials-service.js';
9
9
  import { promptSecret, promptSelect } from '../../services/prompt-service.js';
10
- import { logger } from '../../utils/logger.js';
10
+ import { display, logger } from '../../utils/logger.js';
11
11
  export function registerConfigCommand(program) {
12
12
  const config = program.command('config').description('Manage Planr configuration');
13
13
  config
@@ -17,13 +17,13 @@ export function registerConfigCommand(program) {
17
17
  const projectDir = program.opts().projectDir;
18
18
  const cfg = await loadConfig(projectDir);
19
19
  logger.heading('Planr Configuration');
20
- console.log(` Project: ${cfg.projectName}`);
21
- console.log(` Targets: ${cfg.targets.join(', ')}`);
22
- console.log(` Artifacts: ${cfg.outputPaths.agile}/`);
20
+ display.line(` Project: ${cfg.projectName}`);
21
+ display.line(` Targets: ${cfg.targets.join(', ')}`);
22
+ display.line(` Artifacts: ${cfg.outputPaths.agile}/`);
23
23
  if (cfg.ai) {
24
- console.log('');
25
- console.log(` AI Provider: ${cfg.ai.provider}`);
26
- console.log(` AI Model: ${cfg.ai.model || '(default)'}`);
24
+ display.blank();
25
+ display.line(` AI Provider: ${cfg.ai.provider}`);
26
+ display.line(` AI Model: ${cfg.ai.model || '(default)'}`);
27
27
  const resolved = await resolveApiKeySource(cfg.ai.provider);
28
28
  if (resolved) {
29
29
  const masked = `${resolved.key.slice(0, 8)}...${resolved.key.slice(-4)}`;
@@ -32,19 +32,19 @@ export function registerConfigCommand(program) {
32
32
  : resolved.source === 'keychain'
33
33
  ? 'OS keychain'
34
34
  : 'encrypted file';
35
- console.log(` API Key: ${masked} (${sourceLabel})`);
35
+ display.line(` API Key: ${masked} (${sourceLabel})`);
36
36
  }
37
37
  else {
38
- console.log(` API Key: (not set)`);
38
+ display.line(` API Key: (not set)`);
39
39
  }
40
40
  }
41
41
  else {
42
- console.log('');
43
- console.log(' AI: Not configured');
42
+ display.blank();
43
+ display.line(' AI: Not configured');
44
44
  logger.dim(' Run `planr config set-provider <name>` to enable AI.');
45
45
  }
46
46
  if (cfg.defaultAgent) {
47
- console.log(` Agent: ${cfg.defaultAgent}`);
47
+ display.line(` Agent: ${cfg.defaultAgent}`);
48
48
  }
49
49
  });
50
50
  config
@@ -100,7 +100,7 @@ export function registerConfigCommand(program) {
100
100
  });
101
101
  config
102
102
  .command('set-agent')
103
- .description('Set the default coding agent for task implementation')
103
+ .description('Set the default coding agent for rules generation')
104
104
  .argument('[agent]', 'claude, cursor, or codex')
105
105
  .action(async (agent) => {
106
106
  const projectDir = program.opts().projectDir;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"epic.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/epic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA4CnD"}
1
+ {"version":3,"file":"epic.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/epic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA6CnD"}
@@ -5,7 +5,6 @@
5
5
  * AI expands into a full epic. Use --manual for the legacy
6
6
  * interactive prompt flow.
7
7
  */
8
- import chalk from 'chalk';
9
8
  import { buildEpicPrompt } from '../../ai/prompts/prompt-builder.js';
10
9
  import { aiEpicResponseSchema } from '../../ai/schemas/ai-response-schemas.js';
11
10
  import { TOKEN_BUDGETS } from '../../ai/types.js';
@@ -13,13 +12,14 @@ import { generateStreamingJSON, getAIProvider, isAIConfigured } from '../../serv
13
12
  import { createArtifact, listArtifacts } from '../../services/artifact-service.js';
14
13
  import { loadConfig } from '../../services/config-service.js';
15
14
  import { promptEditor, promptMultiText, promptSelect, promptText, } from '../../services/prompt-service.js';
16
- import { logger } from '../../utils/logger.js';
15
+ import { display, logger } from '../../utils/logger.js';
17
16
  export function registerEpicCommand(program) {
18
17
  const epic = program.command('epic').description('Manage epics');
19
18
  epic
20
19
  .command('create')
21
20
  .description('Create a new epic')
22
- .option('--title <title>', 'epic title')
21
+ .option('--title <title>', 'epic title or brief description')
22
+ .option('--file <path>', 'read epic description from a file (e.g., a PRD)')
23
23
  .option('--owner <owner>', 'epic owner')
24
24
  .option('--manual', 'use manual interactive prompts instead of AI')
25
25
  .action(async (opts) => {
@@ -49,36 +49,55 @@ export function registerEpicCommand(program) {
49
49
  }
50
50
  logger.heading('Epics');
51
51
  for (const e of epics) {
52
- console.log(` ${e.id} ${e.title}`);
52
+ display.line(` ${e.id} ${e.title}`);
53
53
  }
54
54
  });
55
55
  }
56
56
  function displayEpic(epicData) {
57
- console.log(chalk.dim('━'.repeat(50)));
58
- console.log(chalk.bold(` Title: ${epicData.title}`));
59
- console.log(` Owner: ${epicData.owner}`);
60
- console.log(` Business Value: ${epicData.businessValue}`);
61
- console.log(` Target Users: ${epicData.targetUsers}`);
62
- console.log(` Problem: ${epicData.problemStatement}`);
63
- console.log(` Solution: ${epicData.solutionOverview}`);
64
- console.log(` Success Criteria:`);
57
+ display.separator(50);
58
+ display.heading(` Title: ${epicData.title}`);
59
+ display.line(` Owner: ${epicData.owner}`);
60
+ display.line(` Business Value: ${epicData.businessValue}`);
61
+ display.line(` Target Users: ${epicData.targetUsers}`);
62
+ display.line(` Problem: ${epicData.problemStatement}`);
63
+ display.line(` Solution: ${epicData.solutionOverview}`);
64
+ display.line(` Success Criteria:`);
65
65
  const criteria = Array.isArray(epicData.successCriteria)
66
66
  ? epicData.successCriteria
67
67
  : [epicData.successCriteria];
68
68
  for (const c of criteria) {
69
- console.log(` • ${c}`);
69
+ display.line(` • ${c}`);
70
70
  }
71
- console.log(` Key Features:`);
71
+ display.line(` Key Features:`);
72
72
  for (const f of epicData.keyFeatures) {
73
- console.log(` • ${f}`);
73
+ display.line(` • ${f}`);
74
74
  }
75
- console.log(` Dependencies: ${epicData.dependencies || 'None'}`);
76
- console.log(` Risks: ${epicData.risks || 'None'}`);
77
- console.log(chalk.dim('━'.repeat(50)));
75
+ display.line(` Dependencies: ${epicData.dependencies || 'None'}`);
76
+ display.line(` Risks: ${epicData.risks || 'None'}`);
77
+ display.separator(50);
78
78
  }
79
79
  async function createEpicWithAI(projectDir, config, opts) {
80
80
  logger.heading('Create Epic (AI-powered)');
81
- const brief = opts.title || (await promptText('Describe your epic in a sentence or two:'));
81
+ let brief;
82
+ if (opts.file) {
83
+ try {
84
+ const { readFile } = await import('../../utils/fs.js');
85
+ const path = await import('node:path');
86
+ brief = await readFile(path.resolve(opts.file));
87
+ logger.dim(`Read ${brief.split('\n').length} lines from ${opts.file}`);
88
+ }
89
+ catch (err) {
90
+ logger.debug('Failed to read epic input file', err);
91
+ logger.error(`Failed to read file: ${opts.file}`);
92
+ return;
93
+ }
94
+ }
95
+ else if (opts.title) {
96
+ brief = opts.title;
97
+ }
98
+ else {
99
+ brief = await promptText('Describe your epic:');
100
+ }
82
101
  // Get existing epics for deduplication
83
102
  const existingEpics = await listArtifacts(projectDir, config, 'epic');
84
103
  const existingTitles = existingEpics.map((e) => `${e.id}: ${e.title}`);
@@ -141,8 +160,8 @@ async function createEpicWithAI(projectDir, config, opts) {
141
160
  logger.heading('Next steps:');
142
161
  logger.dim(` 1. planr feature create --epic ${id} — Break epic into features`);
143
162
  logger.dim(` 2. planr story create --feature FEAT-* — Create user stories per feature`);
144
- logger.dim(` 3. planr task create --story US-* — Generate implementation tasks`);
145
- logger.dim(` 4. planr task implement TASK-* Implement with your coding agent`);
163
+ logger.dim(` 3. planr task create --feature FEAT-* — Generate implementation tasks`);
164
+ logger.dim(` 4. planr rules generate Generate rules for your coding agent`);
146
165
  logger.dim('');
147
166
  logger.dim(` Or run the full flow at once:`);
148
167
  logger.dim(` planr plan --epic ${id} — Auto-generate features → stories → tasks`);
@@ -189,6 +208,6 @@ async function createEpicManually(projectDir, config, opts) {
189
208
  logger.dim(` 1. planr feature create --epic ${id} — Break epic into features`);
190
209
  logger.dim(` 2. planr story create --feature FEAT-* — Create user stories per feature`);
191
210
  logger.dim(` 3. planr task create --story US-* — Generate implementation tasks`);
192
- logger.dim(` 4. planr task implement TASK-* Implement with your coding agent`);
211
+ logger.dim(` 4. planr rules generate Generate rules for your coding agent`);
193
212
  }
194
213
  //# sourceMappingURL=epic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"epic.js","sourceRoot":"","sources":["../../../src/cli/commands/epic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epic.js","sourceRoot":"","sources":["../../../src/cli/commands/epic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/estimate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyazC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAwCvD"}
1
+ {"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/estimate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0azC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAwCvD"}