@autocode-cli/autocode 0.1.15 → 0.1.17

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 (211) hide show
  1. package/README.md +38 -38
  2. package/dist/cli/commands/comment.d.ts +1 -1
  3. package/dist/cli/commands/comment.js +11 -11
  4. package/dist/cli/commands/comment.js.map +1 -1
  5. package/dist/cli/commands/init.js +1 -1
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/commands/list.d.ts +1 -1
  8. package/dist/cli/commands/list.d.ts.map +1 -1
  9. package/dist/cli/commands/list.js +65 -22
  10. package/dist/cli/commands/list.js.map +1 -1
  11. package/dist/cli/commands/move.d.ts +1 -1
  12. package/dist/cli/commands/move.js +12 -12
  13. package/dist/cli/commands/move.js.map +1 -1
  14. package/dist/cli/commands/new.d.ts +1 -1
  15. package/dist/cli/commands/new.d.ts.map +1 -1
  16. package/dist/cli/commands/new.js +26 -13
  17. package/dist/cli/commands/new.js.map +1 -1
  18. package/dist/cli/commands/next.d.ts +1 -1
  19. package/dist/cli/commands/next.js +15 -15
  20. package/dist/cli/commands/next.js.map +1 -1
  21. package/dist/cli/commands/parent.d.ts +9 -0
  22. package/dist/cli/commands/parent.d.ts.map +1 -0
  23. package/dist/cli/commands/parent.js +94 -0
  24. package/dist/cli/commands/parent.js.map +1 -0
  25. package/dist/cli/commands/serve.js +8 -8
  26. package/dist/cli/commands/serve.js.map +1 -1
  27. package/dist/cli/commands/show.d.ts +1 -1
  28. package/dist/cli/commands/show.d.ts.map +1 -1
  29. package/dist/cli/commands/show.js +51 -31
  30. package/dist/cli/commands/show.js.map +1 -1
  31. package/dist/cli/commands/stats.js +2 -2
  32. package/dist/cli/commands/stats.js.map +1 -1
  33. package/dist/cli/commands/sync.js +3 -3
  34. package/dist/cli/commands/sync.js.map +1 -1
  35. package/dist/cli/parser.d.ts.map +1 -1
  36. package/dist/cli/parser.js +5 -3
  37. package/dist/cli/parser.js.map +1 -1
  38. package/dist/core/column.js +2 -2
  39. package/dist/core/column.js.map +1 -1
  40. package/dist/core/hierarchy.d.ts +97 -0
  41. package/dist/core/hierarchy.d.ts.map +1 -0
  42. package/dist/core/hierarchy.js +274 -0
  43. package/dist/core/hierarchy.js.map +1 -0
  44. package/dist/core/issue.d.ts +62 -0
  45. package/dist/core/issue.d.ts.map +1 -0
  46. package/dist/core/issue.js +247 -0
  47. package/dist/core/issue.js.map +1 -0
  48. package/dist/core/sync.d.ts +9 -9
  49. package/dist/core/sync.d.ts.map +1 -1
  50. package/dist/core/sync.js +61 -58
  51. package/dist/core/sync.js.map +1 -1
  52. package/dist/core/workflow.d.ts +22 -20
  53. package/dist/core/workflow.d.ts.map +1 -1
  54. package/dist/core/workflow.js +68 -51
  55. package/dist/core/workflow.js.map +1 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.js +1 -1
  58. package/dist/server/api-autocomplete.test.d.ts +6 -0
  59. package/dist/server/api-autocomplete.test.d.ts.map +1 -0
  60. package/dist/server/api-autocomplete.test.js +249 -0
  61. package/dist/server/api-autocomplete.test.js.map +1 -0
  62. package/dist/server/api.d.ts.map +1 -1
  63. package/dist/server/api.js +216 -106
  64. package/dist/server/api.js.map +1 -1
  65. package/dist/server/dashboard/pages/column-prompt.d.ts +1 -1
  66. package/dist/server/dashboard/pages/column-prompt.d.ts.map +1 -1
  67. package/dist/server/dashboard/pages/column-prompt.js +11 -11
  68. package/dist/server/dashboard/pages/column-prompt.js.map +1 -1
  69. package/dist/server/dashboard/pages/column-terminal.d.ts +1 -1
  70. package/dist/server/dashboard/pages/column-terminal.d.ts.map +1 -1
  71. package/dist/server/dashboard/pages/column-terminal.js +14 -14
  72. package/dist/server/dashboard/pages/column-terminal.js.map +1 -1
  73. package/dist/server/dashboard/pages/index.d.ts +3 -1
  74. package/dist/server/dashboard/pages/index.d.ts.map +1 -1
  75. package/dist/server/dashboard/pages/index.js +3 -1
  76. package/dist/server/dashboard/pages/index.js.map +1 -1
  77. package/dist/server/dashboard/pages/issue-graph.d.ts +9 -0
  78. package/dist/server/dashboard/pages/issue-graph.d.ts.map +1 -0
  79. package/dist/server/dashboard/pages/issue-graph.js +581 -0
  80. package/dist/server/dashboard/pages/issue-graph.js.map +1 -0
  81. package/dist/server/dashboard/pages/issue-view.d.ts +8 -0
  82. package/dist/server/dashboard/pages/issue-view.d.ts.map +1 -0
  83. package/dist/server/dashboard/pages/{ticket-view.js → issue-view.js} +128 -128
  84. package/dist/server/dashboard/pages/issue-view.js.map +1 -0
  85. package/dist/server/dashboard/pages/main-dashboard.js +21 -21
  86. package/dist/server/dashboard/pages/main-dashboard.js.map +1 -1
  87. package/dist/server/dashboard/pages/new-issue.d.ts +8 -0
  88. package/dist/server/dashboard/pages/new-issue.d.ts.map +1 -0
  89. package/dist/server/dashboard/pages/new-issue.js +648 -0
  90. package/dist/server/dashboard/pages/new-issue.js.map +1 -0
  91. package/dist/server/dashboard/pages/new-issue.test.d.ts +6 -0
  92. package/dist/server/dashboard/pages/new-issue.test.d.ts.map +1 -0
  93. package/dist/server/dashboard/pages/new-issue.test.js +349 -0
  94. package/dist/server/dashboard/pages/new-issue.test.js.map +1 -0
  95. package/dist/server/dashboard/pages/pipeline-configurator.js +1 -1
  96. package/dist/server/dashboard/pages/shared.d.ts +2 -2
  97. package/dist/server/dashboard/pages/shared.d.ts.map +1 -1
  98. package/dist/server/dashboard/pages/shared.js +5 -5
  99. package/dist/server/dashboard/pages/shared.js.map +1 -1
  100. package/dist/server/dashboard/pages/stats-page.js +11 -11
  101. package/dist/server/dashboard/scripts/index.js +134 -134
  102. package/dist/server/dashboard/styles/board.d.ts +1 -1
  103. package/dist/server/dashboard/styles/board.js +10 -10
  104. package/dist/server/dashboard.d.ts +1 -1
  105. package/dist/server/dashboard.d.ts.map +1 -1
  106. package/dist/server/dashboard.js +1 -1
  107. package/dist/server/dashboard.js.map +1 -1
  108. package/dist/server/index.d.ts.map +1 -1
  109. package/dist/server/index.js +40 -24
  110. package/dist/server/index.js.map +1 -1
  111. package/dist/server/websocket.d.ts +6 -6
  112. package/dist/server/websocket.d.ts.map +1 -1
  113. package/dist/server/websocket.js +10 -10
  114. package/dist/server/websocket.js.map +1 -1
  115. package/dist/services/claude.d.ts +13 -13
  116. package/dist/services/claude.d.ts.map +1 -1
  117. package/dist/services/claude.js +98 -98
  118. package/dist/services/claude.js.map +1 -1
  119. package/dist/services/issue-io.d.ts +81 -0
  120. package/dist/services/issue-io.d.ts.map +1 -0
  121. package/dist/services/{ticket-io.js → issue-io.js} +54 -53
  122. package/dist/services/issue-io.js.map +1 -0
  123. package/dist/services/stats.d.ts +2 -0
  124. package/dist/services/stats.d.ts.map +1 -1
  125. package/dist/services/stats.js.map +1 -1
  126. package/dist/types/index.d.ts +6 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/utils/fs.d.ts +2 -2
  129. package/dist/utils/fs.d.ts.map +1 -1
  130. package/dist/utils/fs.js +2 -2
  131. package/dist/utils/fs.js.map +1 -1
  132. package/package.json +3 -3
  133. package/templates/catalog.yaml +2 -2
  134. package/templates/prompts/api-endpoints-test.en.md +2 -2
  135. package/templates/prompts/api-endpoints-test.fr.md +2 -2
  136. package/templates/prompts/backlog.en.md +6 -6
  137. package/templates/prompts/backlog.fr.md +1 -1
  138. package/templates/prompts/changelog.en.md +6 -6
  139. package/templates/prompts/changelog.fr.md +3 -3
  140. package/templates/prompts/dashboard-responsive.en.md +1 -1
  141. package/templates/prompts/deploy-prod.en.md +3 -3
  142. package/templates/prompts/deploy-prod.fr.md +3 -3
  143. package/templates/prompts/deploy-staging.en.md +3 -3
  144. package/templates/prompts/deploy-staging.fr.md +3 -3
  145. package/templates/prompts/design.en.md +5 -5
  146. package/templates/prompts/design.fr.md +3 -3
  147. package/templates/prompts/dev.en.md +4 -4
  148. package/templates/prompts/dev.fr.md +3 -3
  149. package/templates/prompts/done.en.md +5 -5
  150. package/templates/prompts/done.fr.md +2 -2
  151. package/templates/prompts/error-handling-review.en.md +1 -1
  152. package/templates/prompts/error-handling-review.fr.md +1 -1
  153. package/templates/prompts/file-watcher-test.en.md +4 -4
  154. package/templates/prompts/file-watcher-test.fr.md +1 -1
  155. package/templates/prompts/git-commit.en.md +5 -5
  156. package/templates/prompts/git-commit.fr.md +3 -3
  157. package/templates/prompts/git-push.en.md +3 -3
  158. package/templates/prompts/git-push.fr.md +3 -3
  159. package/templates/prompts/git-tag.en.md +3 -3
  160. package/templates/prompts/git-tag.fr.md +3 -3
  161. package/templates/prompts/in-progress.en.md +6 -6
  162. package/templates/prompts/in-progress.fr.md +3 -3
  163. package/templates/prompts/qualification.en.md +8 -8
  164. package/templates/prompts/qualification.fr.md +3 -3
  165. package/templates/prompts/retest-cypress.en.md +3 -3
  166. package/templates/prompts/retest-cypress.fr.md +3 -3
  167. package/templates/prompts/retest-playwright.en.md +4 -4
  168. package/templates/prompts/retest-playwright.fr.md +3 -3
  169. package/templates/prompts/retest.en.md +4 -4
  170. package/templates/prompts/retest.fr.md +3 -3
  171. package/templates/prompts/review-best-practices.en.md +3 -3
  172. package/templates/prompts/review-best-practices.fr.md +3 -3
  173. package/templates/prompts/review-code.en.md +4 -4
  174. package/templates/prompts/review-code.fr.md +3 -3
  175. package/templates/prompts/review-consistency.en.md +3 -3
  176. package/templates/prompts/review-consistency.fr.md +3 -3
  177. package/templates/prompts/review-no-duplication.en.md +3 -3
  178. package/templates/prompts/review-no-duplication.fr.md +3 -3
  179. package/templates/prompts/review-security.en.md +4 -4
  180. package/templates/prompts/review-security.fr.md +3 -3
  181. package/templates/prompts/specification.en.md +5 -5
  182. package/templates/prompts/specification.fr.md +3 -3
  183. package/templates/prompts/splitter.en.md +13 -13
  184. package/templates/prompts/splitter.fr.md +3 -3
  185. package/templates/prompts/template-validation.en.md +1 -1
  186. package/templates/prompts/template-validation.fr.md +1 -1
  187. package/templates/prompts/testing-coverage.en.md +1 -1
  188. package/templates/prompts/testing-coverage.fr.md +1 -1
  189. package/templates/prompts/testing-cypress.en.md +4 -4
  190. package/templates/prompts/testing-cypress.fr.md +3 -3
  191. package/templates/prompts/testing-integration.en.md +4 -4
  192. package/templates/prompts/testing-integration.fr.md +3 -3
  193. package/templates/prompts/testing-playwright.en.md +4 -4
  194. package/templates/prompts/testing-playwright.fr.md +3 -3
  195. package/templates/prompts/testing-unit.en.md +4 -4
  196. package/templates/prompts/testing-unit.fr.md +3 -3
  197. package/templates/prompts/update-docs.en.md +3 -3
  198. package/templates/prompts/update-docs.fr.md +3 -3
  199. package/templates/prompts/validate-staging.en.md +3 -3
  200. package/templates/prompts/validate-staging.fr.md +3 -3
  201. package/templates/prompts/websocket-test.en.md +1 -1
  202. package/dist/core/ticket.d.ts +0 -50
  203. package/dist/core/ticket.d.ts.map +0 -1
  204. package/dist/core/ticket.js +0 -224
  205. package/dist/core/ticket.js.map +0 -1
  206. package/dist/server/dashboard/pages/ticket-view.d.ts +0 -8
  207. package/dist/server/dashboard/pages/ticket-view.d.ts.map +0 -1
  208. package/dist/server/dashboard/pages/ticket-view.js.map +0 -1
  209. package/dist/services/ticket-io.d.ts +0 -80
  210. package/dist/services/ticket-io.d.ts.map +0 -1
  211. package/dist/services/ticket-io.js.map +0 -1
@@ -6,9 +6,9 @@ import { appendFileSync, writeFileSync, existsSync } from 'node:fs';
6
6
  import { join, dirname } from 'node:path';
7
7
  import { readFileSafe, writeFileSafe, pathExists, listFiles } from '../utils/fs.js';
8
8
  /**
9
- * Safely append to log file, following ticket if it was moved to another column
9
+ * Safely append to log file, following issue if it was moved to another column
10
10
  */
11
- function safeAppendLog(logPathRef, content, ticketKey, rootDir) {
11
+ function safeAppendLog(logPathRef, content, issueKey, rootDir) {
12
12
  if (!logPathRef.path)
13
13
  return;
14
14
  try {
@@ -18,10 +18,10 @@ function safeAppendLog(logPathRef, content, ticketKey, rootDir) {
18
18
  return;
19
19
  }
20
20
  // Directory moved - find new location
21
- if (ticketKey) {
22
- const newTicketDir = findTicketDir(rootDir, ticketKey);
23
- if (newTicketDir) {
24
- logPathRef.path = join(newTicketDir, logPathRef.fileName);
21
+ if (issueKey) {
22
+ const newIssueDir = findIssueDir(rootDir, issueKey);
23
+ if (newIssueDir) {
24
+ logPathRef.path = join(newIssueDir, logPathRef.fileName);
25
25
  appendFileSync(logPathRef.path, content);
26
26
  }
27
27
  }
@@ -31,7 +31,7 @@ function safeAppendLog(logPathRef, content, ticketKey, rootDir) {
31
31
  }
32
32
  }
33
33
  import { getConfig } from '../utils/config.js';
34
- import { getTicket, findTicketDir, moveTicket } from '../core/ticket.js';
34
+ import { getIssue, findIssueDir, moveIssue } from '../core/issue.js';
35
35
  import { getColumnBySlug, getColumns } from '../core/column.js';
36
36
  import { getPromptContent } from '../core/catalog.js';
37
37
  import { broadcast, markProcessing, markProcessingComplete } from '../server/websocket.js';
@@ -52,40 +52,40 @@ export function getActionContent(columnSlug, lang = 'fr') {
52
52
  return getPromptContent(columnSlug, lang);
53
53
  }
54
54
  /**
55
- * Get attachments from ticket directory
55
+ * Get attachments from issue directory
56
56
  */
57
- function getAttachments(ticketDir) {
58
- const attachmentsDir = join(ticketDir, 'attachments');
57
+ function getAttachments(issueDir) {
58
+ const attachmentsDir = join(issueDir, 'attachments');
59
59
  if (!pathExists(attachmentsDir))
60
60
  return [];
61
61
  return listFiles(attachmentsDir).map(f => join(attachmentsDir, f));
62
62
  }
63
63
  /**
64
- * Build prompt for Claude based on ticket and column
64
+ * Build prompt for Claude based on issue and column
65
65
  */
66
- export function buildPrompt(ticket, actionContent, ticketDir, lang = 'fr') {
67
- // Get attachments if ticketDir is provided
68
- const attachments = ticketDir ? getAttachments(ticketDir) : [];
66
+ export function buildPrompt(issue, actionContent, issueDir, lang = 'fr') {
67
+ // Get attachments if issueDir is provided
68
+ const attachments = issueDir ? getAttachments(issueDir) : [];
69
69
  const attachmentsSection = attachments.length > 0
70
70
  ? `\n## Attached Files\n\nAnalyze the following attached files:\n${attachments.map(f => `- ${f}`).join('\n')}\n`
71
71
  : '';
72
- const prompt = `# Task: Process Ticket ${ticket.key}
72
+ const prompt = `# Task: Process Issue ${issue.key}
73
73
 
74
- ## Ticket Information
74
+ ## Issue Information
75
75
 
76
- - **Key**: ${ticket.key}
77
- - **Title**: ${ticket.title}
78
- - **Priority**: ${ticket.priority}
79
- - **Status**: ${ticket.status}
80
- - **Labels**: ${ticket.labels.join(', ') || 'None'}
76
+ - **Key**: ${issue.key}
77
+ - **Title**: ${issue.title}
78
+ - **Priority**: ${issue.priority}
79
+ - **Status**: ${issue.status}
80
+ - **Labels**: ${issue.labels.join(', ') || 'None'}
81
81
 
82
82
  ## Description
83
83
 
84
- ${ticket.description}
84
+ ${issue.description}
85
85
 
86
86
  ## Acceptance Criteria
87
87
 
88
- ${ticket.acceptance_criteria.map(c => `- ${c}`).join('\n')}
88
+ ${issue.acceptance_criteria.map(c => `- ${c}`).join('\n')}
89
89
  ${attachmentsSection}
90
90
  ## Column Instructions
91
91
 
@@ -95,20 +95,20 @@ ${actionContent}
95
95
 
96
96
  ## Previous Comments
97
97
 
98
- ${ticket.comments.length > 0
99
- ? ticket.comments.map(c => `### [${c.column}]\n\n\`\`\`markdown\n${c.text}\n\`\`\``).join('\n\n')
98
+ ${issue.comments.length > 0
99
+ ? issue.comments.map(c => `### [${c.column}]\n\n\`\`\`markdown\n${c.text}\n\`\`\``).join('\n\n')
100
100
  : 'No previous comments.'}
101
101
 
102
102
  ## Your Task
103
103
 
104
- Follow the column instructions above to process this ticket.
104
+ Follow the column instructions above to process this issue.
105
105
 
106
106
  ## IMPORTANT - Mandatory Comment
107
107
 
108
108
  **Tu DOIS OBLIGATOIREMENT laisser un commentaire à la fin de ton travail avec la commande :**
109
109
 
110
110
  \`\`\`bash
111
- autocode comment ${ticket.key} "Ton résumé détaillé du travail effectué"
111
+ autocode comment ${issue.key} "Ton résumé détaillé du travail effectué"
112
112
  \`\`\`
113
113
 
114
114
  Ce commentaire doit résumer ce que tu as fait, les fichiers modifiés, les problèmes rencontrés, etc. Ne JAMAIS sauter cette étape !
@@ -120,34 +120,34 @@ Répond moi dans la langue : ${lang} (même si tu dois travailler en anglais)
120
120
  /**
121
121
  * Write prompt to file for Claude
122
122
  */
123
- export function writePromptFile(ticket, prompt) {
123
+ export function writePromptFile(issue, prompt) {
124
124
  const config = getConfig();
125
- const column = getColumnBySlug(ticket.column_slug);
125
+ const column = getColumnBySlug(issue.column_slug);
126
126
  if (!column) {
127
- throw new Error(`Column not found: ${ticket.column_slug}`);
127
+ throw new Error(`Column not found: ${issue.column_slug}`);
128
128
  }
129
- const promptFile = join(config.root, column.slug, `.claude_prompt_${ticket.key}.md`);
129
+ const promptFile = join(config.root, column.slug, `.claude_prompt_${issue.key}.md`);
130
130
  writeFileSafe(promptFile, prompt);
131
131
  return promptFile;
132
132
  }
133
133
  /**
134
134
  * Execute Claude CLI with a prompt (with live logging to file)
135
135
  */
136
- export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
136
+ export async function executeClaudeCLI(promptFile, issueKey, columnSlug) {
137
137
  const config = getConfig();
138
138
  const startTime = Date.now();
139
- // Find ticket directory for log file (use object ref to track moves)
139
+ // Find issue directory for log file (use object ref to track moves)
140
140
  const logFileName = columnSlug ? `claude-${columnSlug}.log` : 'claude-code.log';
141
141
  const logPathRef = { path: null, fileName: logFileName };
142
- if (ticketKey) {
143
- const ticketDir = findTicketDir(config.root, ticketKey);
144
- if (ticketDir) {
145
- logPathRef.path = join(ticketDir, logFileName);
142
+ if (issueKey) {
143
+ const issueDir = findIssueDir(config.root, issueKey);
144
+ if (issueDir) {
145
+ logPathRef.path = join(issueDir, logFileName);
146
146
  // Reset log file
147
147
  writeFileSync(logPathRef.path, `[${new Date().toISOString()}] Starting Claude processing in ${columnSlug || 'unknown'}...\n`);
148
148
  }
149
- markProcessing(ticketKey);
150
- broadcast({ type: 'claude_start', ticket: ticketKey });
149
+ markProcessing(issueKey);
150
+ broadcast({ type: 'claude_start', issue: issueKey });
151
151
  }
152
152
  // Read prompt file content for stdin
153
153
  const promptContent = readFileSafe(promptFile) || '';
@@ -180,7 +180,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
180
180
  const initMsg = `🚀 Claude initialized (${event.mcp_servers?.length || 0} MCP servers)\n`;
181
181
  process.stdout.write(initMsg);
182
182
  if (logPathRef.path) {
183
- safeAppendLog(logPathRef, initMsg, ticketKey, config.root);
183
+ safeAppendLog(logPathRef, initMsg, issueKey, config.root);
184
184
  }
185
185
  // Capture model from init event
186
186
  if (event.model) {
@@ -225,7 +225,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
225
225
  stdout += text;
226
226
  process.stdout.write(text);
227
227
  if (logPathRef.path) {
228
- safeAppendLog(logPathRef, text, ticketKey, config.root);
228
+ safeAppendLog(logPathRef, text, issueKey, config.root);
229
229
  }
230
230
  }
231
231
  }
@@ -236,7 +236,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
236
236
  stdout += text;
237
237
  process.stdout.write(text);
238
238
  if (logPathRef.path) {
239
- safeAppendLog(logPathRef, text, ticketKey, config.root);
239
+ safeAppendLog(logPathRef, text, issueKey, config.root);
240
240
  }
241
241
  }
242
242
  // Mark tool calls
@@ -246,7 +246,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
246
246
  stdout += marker;
247
247
  process.stdout.write(marker);
248
248
  if (logPathRef.path) {
249
- safeAppendLog(logPathRef, marker, ticketKey, config.root);
249
+ safeAppendLog(logPathRef, marker, issueKey, config.root);
250
250
  }
251
251
  }
252
252
  // Log tool results
@@ -254,20 +254,20 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
254
254
  const resultText = typeof event.result === 'string' ? event.result : JSON.stringify(event.result, null, 2);
255
255
  const resultMarker = `\n📋 Result:\n${resultText}\n`;
256
256
  if (logPathRef.path) {
257
- safeAppendLog(logPathRef, resultMarker, ticketKey, config.root);
257
+ safeAppendLog(logPathRef, resultMarker, issueKey, config.root);
258
258
  }
259
259
  }
260
260
  }
261
261
  catch {
262
262
  // Log raw line for debugging if JSON parse fails
263
263
  if (logPathRef.path && line.trim()) {
264
- safeAppendLog(logPathRef, `[RAW] ${line}\n`, ticketKey, config.root);
264
+ safeAppendLog(logPathRef, `[RAW] ${line}\n`, issueKey, config.root);
265
265
  }
266
266
  }
267
267
  }
268
268
  // Notify dashboard to refresh (without data)
269
- if (ticketKey) {
270
- broadcast({ type: 'claude_stream', ticket: ticketKey });
269
+ if (issueKey) {
270
+ broadcast({ type: 'claude_stream', issue: issueKey });
271
271
  }
272
272
  });
273
273
  child.stderr.on('data', (data) => {
@@ -275,10 +275,10 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
275
275
  stderr += chunk;
276
276
  // Write errors to log file
277
277
  if (logPathRef.path) {
278
- safeAppendLog(logPathRef, `[ERROR] ${chunk}`, ticketKey, config.root);
278
+ safeAppendLog(logPathRef, `[ERROR] ${chunk}`, issueKey, config.root);
279
279
  }
280
- if (ticketKey) {
281
- broadcast({ type: 'claude_stream', ticket: ticketKey });
280
+ if (issueKey) {
281
+ broadcast({ type: 'claude_stream', issue: issueKey });
282
282
  }
283
283
  });
284
284
  child.on('close', (code) => {
@@ -286,7 +286,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
286
286
  // Record stats
287
287
  recordCall({
288
288
  timestamp: new Date().toISOString(),
289
- ticket: ticketKey,
289
+ issue: issueKey,
290
290
  column: columnSlug,
291
291
  tokensInput,
292
292
  tokensOutput,
@@ -298,13 +298,13 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
298
298
  if (logPathRef.path) {
299
299
  const status = code === 0 ? 'SUCCESS' : 'FAILED';
300
300
  const costStr = costUsd ? `, $${costUsd.toFixed(4)}` : '';
301
- safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ${status} (${duration}ms, tokens: ${tokensInput}/${tokensOutput}${costStr})\n`, ticketKey, config.root);
301
+ safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ${status} (${duration}ms, tokens: ${tokensInput}/${tokensOutput}${costStr})\n`, issueKey, config.root);
302
302
  }
303
- if (ticketKey) {
304
- markProcessingComplete(ticketKey);
303
+ if (issueKey) {
304
+ markProcessingComplete(issueKey);
305
305
  broadcast({
306
306
  type: 'claude_end',
307
- ticket: ticketKey,
307
+ issue: issueKey,
308
308
  success: code === 0,
309
309
  duration,
310
310
  tokensInput,
@@ -328,13 +328,13 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
328
328
  });
329
329
  child.on('error', (error) => {
330
330
  if (logPathRef.path) {
331
- safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ERROR: ${error.message}\n`, ticketKey, config.root);
331
+ safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ERROR: ${error.message}\n`, issueKey, config.root);
332
332
  }
333
- if (ticketKey) {
334
- markProcessingComplete(ticketKey);
333
+ if (issueKey) {
334
+ markProcessingComplete(issueKey);
335
335
  broadcast({
336
336
  type: 'claude_end',
337
- ticket: ticketKey,
337
+ issue: issueKey,
338
338
  success: false,
339
339
  error: error.message,
340
340
  });
@@ -348,16 +348,16 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
348
348
  });
349
349
  }
350
350
  /**
351
- * Move a ticket to a column and execute its action
351
+ * Move an issue to a column and execute its action
352
352
  * This is the unified flow: move first, then execute
353
353
  */
354
- export async function moveAndProcessTicket(key, targetColumnSlug, options = {}) {
354
+ export async function moveAndProcessIssue(key, targetColumnSlug, options = {}) {
355
355
  const config = getConfig();
356
356
  const lang = options.lang || config.lang;
357
- // 1. Get current ticket
358
- const ticket = getTicket(config.root, key);
359
- if (!ticket) {
360
- return { success: false, error: `Ticket '${key}' not found` };
357
+ // 1. Get current issue
358
+ const issue = getIssue(config.root, key);
359
+ if (!issue) {
360
+ return { success: false, error: `Issue '${key}' not found` };
361
361
  }
362
362
  // 2. Get target column
363
363
  const targetColumn = getColumnBySlug(targetColumnSlug);
@@ -365,54 +365,54 @@ export async function moveAndProcessTicket(key, targetColumnSlug, options = {})
365
365
  return { success: false, error: `Column '${targetColumnSlug}' not found` };
366
366
  }
367
367
  // 3. Check if already in target column
368
- if (ticket.column_slug === targetColumnSlug) {
369
- return { success: true, ticket, actionExecuted: false };
368
+ if (issue.column_slug === targetColumnSlug) {
369
+ return { success: true, issue, actionExecuted: false };
370
370
  }
371
- // 4. Move the ticket FIRST
372
- const movedTicket = moveTicket(config.root, key, targetColumn.slug, options.force);
373
- if (!movedTicket) {
374
- return { success: false, error: 'Failed to move ticket' };
371
+ // 4. Move the issue FIRST
372
+ const movedIssue = moveIssue(config.root, key, targetColumn.slug, options.force);
373
+ if (!movedIssue) {
374
+ return { success: false, error: 'Failed to move issue' };
375
375
  }
376
376
  // 5. Check if column is actionable (not backlog or done)
377
377
  const isActionableColumn = targetColumn.index > 0 && targetColumn.index < 12;
378
378
  if (!isActionableColumn) {
379
- return { success: true, ticket: movedTicket, actionExecuted: false };
379
+ return { success: true, issue: movedIssue, actionExecuted: false };
380
380
  }
381
381
  // 6. Get action content for target column
382
382
  const actionContent = getActionContent(targetColumnSlug, lang);
383
383
  if (!actionContent) {
384
384
  // No action file, just move
385
- return { success: true, ticket: movedTicket, actionExecuted: false };
385
+ return { success: true, issue: movedIssue, actionExecuted: false };
386
386
  }
387
- // 7. Execute action on the moved ticket
387
+ // 7. Execute action on the moved issue
388
388
  logger.info(`Processing ${key} with Claude in ${targetColumn.name}...`);
389
- const ticketDir = findTicketDir(config.root, key);
390
- const prompt = buildPrompt(movedTicket, actionContent, ticketDir || undefined, lang);
391
- const promptFile = writePromptFile(movedTicket, prompt);
389
+ const issueDir = findIssueDir(config.root, key);
390
+ const prompt = buildPrompt(movedIssue, actionContent, issueDir || undefined, lang);
391
+ const promptFile = writePromptFile(movedIssue, prompt);
392
392
  const result = await executeClaudeCLI(promptFile, key, targetColumnSlug);
393
393
  if (!result.success) {
394
394
  logger.error(`Claude failed: ${result.error}`);
395
- // Ticket stays in the column, return with error
396
- return { success: true, ticket: movedTicket, actionExecuted: false, error: result.error };
395
+ // Issue stays in the column, return with error
396
+ return { success: true, issue: movedIssue, actionExecuted: false, error: result.error };
397
397
  }
398
398
  logger.success(`Claude processed ${key} in ${result.duration}ms`);
399
- // Reload ticket to get any comments added by Claude
400
- const updatedTicket = getTicket(config.root, key);
401
- return { success: true, ticket: updatedTicket || movedTicket, actionExecuted: true };
399
+ // Reload issue to get any comments added by Claude
400
+ const updatedIssue = getIssue(config.root, key);
401
+ return { success: true, issue: updatedIssue || movedIssue, actionExecuted: true };
402
402
  }
403
403
  /**
404
- * Process a ticket with Claude - moves to next column and executes its action
404
+ * Process an issue with Claude - moves to next column and executes its action
405
405
  * Uses the new unified flow: move first, then execute
406
406
  */
407
- export async function processTicketWithClaude(key, _options = {}) {
407
+ export async function processIssueWithClaude(key, _options = {}) {
408
408
  const config = getConfig();
409
- // Get current ticket to find next column
410
- const ticket = getTicket(config.root, key);
411
- if (!ticket) {
412
- return { success: false, error: `Ticket '${key}' not found` };
409
+ // Get current issue to find next column
410
+ const issue = getIssue(config.root, key);
411
+ if (!issue) {
412
+ return { success: false, error: `Issue '${key}' not found` };
413
413
  }
414
414
  // Find current column
415
- const currentColumn = getColumnBySlug(ticket.column_slug);
415
+ const currentColumn = getColumnBySlug(issue.column_slug);
416
416
  if (!currentColumn) {
417
417
  return { success: false, error: `Current column not found` };
418
418
  }
@@ -423,30 +423,30 @@ export async function processTicketWithClaude(key, _options = {}) {
423
423
  return { success: false, error: `No next column available` };
424
424
  }
425
425
  // Use new unified flow: move to next column and execute its action
426
- return moveAndProcessTicket(key, nextColumn.slug);
426
+ return moveAndProcessIssue(key, nextColumn.slug);
427
427
  }
428
428
  /**
429
- * Process all actionable tickets with Claude
429
+ * Process all actionable issues with Claude
430
430
  */
431
- export async function processAllTickets(options = {}) {
431
+ export async function processAllIssues(options = {}) {
432
432
  const config = getConfig();
433
- const { findActionableTicket } = await import('../core/ticket.js');
433
+ const { findActionableIssue } = await import('../core/issue.js');
434
434
  let processed = 0;
435
435
  let errors = 0;
436
436
  const limit = options.limit || Infinity;
437
437
  while (processed + errors < limit) {
438
- const ticket = findActionableTicket(config.root);
439
- if (!ticket) {
440
- logger.info('No more actionable tickets');
438
+ const issue = findActionableIssue(config.root);
439
+ if (!issue) {
440
+ logger.info('No more actionable issues');
441
441
  break;
442
442
  }
443
- const result = await processTicketWithClaude(ticket.key, options);
443
+ const result = await processIssueWithClaude(issue.key, options);
444
444
  if (result.success) {
445
445
  processed++;
446
446
  }
447
447
  else {
448
448
  errors++;
449
- logger.error(`Failed to process ${ticket.key}: ${result.error}`);
449
+ logger.error(`Failed to process ${issue.key}: ${result.error}`);
450
450
  }
451
451
  }
452
452
  logger.info(`Processed: ${processed}, Errors: ${errors}`);
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Issue I/O Service - Multi-file issue storage
3
+ *
4
+ * Structure:
5
+ * issues/AC-000001__titre/
6
+ * ├── metadata.json # JSON metadata
7
+ * ├── description.md # Pure markdown description
8
+ * └── comments/
9
+ * ├── 001.md # YAML frontmatter + markdown
10
+ * └── 002.md
11
+ */
12
+ import type { Issue, Comment, HistoryEntry, Priority, SemverType } from '../types/index.js';
13
+ /**
14
+ * Metadata stored in metadata.json (without status/column_slug - derived from path)
15
+ */
16
+ export interface IssueMetadata {
17
+ key: string;
18
+ title: string;
19
+ priority: Priority;
20
+ labels: string[];
21
+ acceptance_criteria: string[];
22
+ semver: SemverType;
23
+ history: HistoryEntry[];
24
+ created_at: string;
25
+ updated_at: string;
26
+ parent_key: string | null;
27
+ }
28
+ /**
29
+ * Parse metadata.json from issue directory
30
+ */
31
+ export declare function parseMetadata(issueDir: string): IssueMetadata | null;
32
+ /**
33
+ * Read description.md from issue directory
34
+ */
35
+ export declare function readDescription(issueDir: string): string;
36
+ /**
37
+ * Read all attachments from attachments/ directory
38
+ */
39
+ export declare function readAttachments(issueDir: string): string[];
40
+ /**
41
+ * Read all comments from comments/ directory
42
+ */
43
+ export declare function readComments(issueDir: string): Comment[];
44
+ /**
45
+ * Extract column_slug from issue directory path
46
+ * e.g., /path/autodoc/02_in-progress/issues/AC-000001__titre -> 02_in-progress
47
+ */
48
+ export declare function extractColumnSlug(issueDir: string): string;
49
+ /**
50
+ * Load a complete Issue from an issue directory
51
+ */
52
+ export declare function loadIssue(issueDir: string): Issue | null;
53
+ /**
54
+ * Write metadata.json to issue directory
55
+ */
56
+ export declare function writeMetadata(issueDir: string, metadata: IssueMetadata): void;
57
+ /**
58
+ * Write description.md to issue directory
59
+ */
60
+ export declare function writeDescription(issueDir: string, description: string): void;
61
+ /**
62
+ * Add a new comment file to comments/ directory
63
+ */
64
+ export declare function addCommentFile(issueDir: string, text: string, column: string, source?: 'user' | 'claude'): void;
65
+ /**
66
+ * Update specific fields in metadata.json
67
+ */
68
+ export declare function updateMetadata(issueDir: string, updates: Partial<IssueMetadata>): void;
69
+ /**
70
+ * Add a history entry to metadata.json
71
+ */
72
+ export declare function addHistoryEntry(issueDir: string, action: HistoryEntry['action'], from: string | null, to: string): void;
73
+ /**
74
+ * Update description in description.md
75
+ */
76
+ export declare function updateDescription(issueDir: string, newDescription: string): void;
77
+ /**
78
+ * Create a new issue with full structure
79
+ */
80
+ export declare function createIssueStructure(issueDir: string, metadata: IssueMetadata, description: string): void;
81
+ //# sourceMappingURL=issue-io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-io.d.ts","sourceRoot":"","sources":["../../src/services/issue-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxD;AAkCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAexD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK1D;AAWD;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CA2BxD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAI7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAG5E;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,QAAiB,GAAG,IAAI,CAkBvH;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAWtF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GACT,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEhF;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAON"}