@agentic-sdlc/dispatch 0.2.9 → 0.3.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.
@@ -31,6 +31,7 @@ export function orchestrateStage(ctx) {
31
31
  const artifactPath = join(artifactsDir, stage.produces);
32
32
  if (!existsSync(artifactPath)) {
33
33
  console.error(`[dispatch] Artifact not found: ${artifactPath}`);
34
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — Escalated\n\nThe agent did not produce the expected artifact \`${stage.produces}\`. This usually means the agent ran out of time or encountered an error.\n\nLabel: \`escalated\``);
34
35
  applyLabel(repo, issueNumber, "escalated", label);
35
36
  return { stage: stage.name, action: "no-artifact", nextLabel: "escalated" };
36
37
  }
@@ -59,8 +60,11 @@ function handleGateNone(ctx, stage, stageIndex) {
59
60
  catch (err) {
60
61
  console.error(`[dispatch] Git commit/push failed for gate=none:`, err);
61
62
  }
62
- // Advance to next stage label
63
+ // Post stage completion comment with artifact summary
64
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
63
65
  const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
66
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — Complete\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
67
+ // Advance to next stage label
64
68
  if (nextLabel) {
65
69
  applyLabel(repo, issueNumber, nextLabel, label);
66
70
  }
@@ -124,6 +128,10 @@ function handleGatePrReview(ctx, stage, stageIndex) {
124
128
  // Find the "ready" label for this stage (convention: stage's own ready label)
125
129
  const readyLabel = findReadyLabel(workflowConfig.pipeline, stage.name);
126
130
  const nextLabel = readyLabel ?? findNextStageLabel(workflowConfig.pipeline, stageIndex);
131
+ // Post comment about PR
132
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
133
+ const prMsg = prCreated ? `PR opened on branch \`${branchName}\`. Please review and merge to advance.` : `Branch \`${branchName}\` updated.`;
134
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — PR Ready\n\n${prMsg}\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${nextLabel ?? "done"}\``);
127
135
  if (nextLabel) {
128
136
  applyLabel(repo, issueNumber, nextLabel, label);
129
137
  }
@@ -138,9 +146,10 @@ function handleGateRetry(ctx, stage, stageIndex) {
138
146
  // Read verdict from artifact frontmatter
139
147
  const verdict = readVerdictFromArtifact(artifactsDir, stage.produces ?? "");
140
148
  const maxRetries = stage.max_retries ?? 3;
149
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
141
150
  if (verdict === "pass") {
142
- // Advance to next stage
143
151
  const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
152
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — PASS\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
144
153
  if (nextLabel) {
145
154
  applyLabel(repo, issueNumber, nextLabel, label);
146
155
  }
@@ -149,11 +158,13 @@ function handleGateRetry(ctx, stage, stageIndex) {
149
158
  // verdict is "fail" or unknown — check retry count
150
159
  const attemptCount = getAttemptCount(artifactsDir, stage.name);
151
160
  if (attemptCount >= maxRetries) {
161
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — ESCALATED\n\nQA failed after ${attemptCount} attempts (max: ${maxRetries}). Human intervention required.\n\n<details>\n<summary>Last QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`escalated\``);
152
162
  applyLabel(repo, issueNumber, "escalated", label);
153
163
  return { stage: stage.name, action: "escalated", nextLabel: "escalated" };
154
164
  }
155
165
  // Apply retry label (needs-fix)
156
166
  const retryLabel = findRetryLabel(workflowConfig.pipeline, stage.name);
167
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — FAIL (attempt ${attemptCount}/${maxRetries})\n\nRetrying. The builder will read the QA report and fix the issues.\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${retryLabel ?? "needs-fix"}\``);
157
168
  if (retryLabel) {
158
169
  applyLabel(repo, issueNumber, retryLabel, label);
159
170
  }
@@ -176,6 +187,30 @@ function applyLabel(repo, issueNumber, addLabel, removeLabel) {
176
187
  console.error(`[dispatch] Label transition failed (add=${addLabel}, remove=${removeLabel}):`, err);
177
188
  }
178
189
  }
190
+ function postComment(repo, issueNumber, body) {
191
+ try {
192
+ execFileSync("gh", [
193
+ "issue", "comment", String(issueNumber),
194
+ "--repo", repo,
195
+ "--body", body,
196
+ ]);
197
+ }
198
+ catch (err) {
199
+ console.error(`[dispatch] Failed to post comment:`, err);
200
+ }
201
+ }
202
+ function readArtifactContent(artifactsDir, artifactName) {
203
+ if (!artifactName)
204
+ return "";
205
+ try {
206
+ const content = readFileSync(join(artifactsDir, artifactName), "utf-8");
207
+ const maxLen = 2000;
208
+ return content.length > maxLen ? content.slice(0, maxLen) + "\n\n_(truncated)_" : content;
209
+ }
210
+ catch {
211
+ return "";
212
+ }
213
+ }
179
214
  function findNextStageLabel(pipeline, currentStageIndex) {
180
215
  const nextStage = pipeline.stages[currentStageIndex + 1];
181
216
  if (!nextStage)
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentic-sdlc/dispatch",
3
- "version": "0.2.9",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "CI-side dispatch and orchestration for the agentic SDLC harness",
6
6
  "repository": {
@@ -37,6 +37,7 @@ export function orchestrateStage(ctx: OrchestrationContext): OrchestrationResult
37
37
  const artifactPath = join(artifactsDir, stage.produces);
38
38
  if (!existsSync(artifactPath)) {
39
39
  console.error(`[dispatch] Artifact not found: ${artifactPath}`);
40
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — Escalated\n\nThe agent did not produce the expected artifact \`${stage.produces}\`. This usually means the agent ran out of time or encountered an error.\n\nLabel: \`escalated\``);
40
41
  applyLabel(repo, issueNumber, "escalated", label);
41
42
  return { stage: stage.name, action: "no-artifact", nextLabel: "escalated" };
42
43
  }
@@ -72,8 +73,12 @@ function handleGateNone(
72
73
  console.error(`[dispatch] Git commit/push failed for gate=none:`, err);
73
74
  }
74
75
 
75
- // Advance to next stage label
76
+ // Post stage completion comment with artifact summary
77
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
76
78
  const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
79
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — Complete\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
80
+
81
+ // Advance to next stage label
77
82
  if (nextLabel) {
78
83
  applyLabel(repo, issueNumber, nextLabel, label);
79
84
  }
@@ -146,6 +151,11 @@ function handleGatePrReview(
146
151
  const readyLabel = findReadyLabel(workflowConfig.pipeline, stage.name);
147
152
  const nextLabel = readyLabel ?? findNextStageLabel(workflowConfig.pipeline, stageIndex);
148
153
 
154
+ // Post comment about PR
155
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
156
+ const prMsg = prCreated ? `PR opened on branch \`${branchName}\`. Please review and merge to advance.` : `Branch \`${branchName}\` updated.`;
157
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — PR Ready\n\n${prMsg}\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${nextLabel ?? "done"}\``);
158
+
149
159
  if (nextLabel) {
150
160
  applyLabel(repo, issueNumber, nextLabel, label);
151
161
  }
@@ -168,9 +178,11 @@ function handleGateRetry(
168
178
  const verdict = readVerdictFromArtifact(artifactsDir, stage.produces ?? "");
169
179
  const maxRetries = stage.max_retries ?? 3;
170
180
 
181
+ const artifactContent = readArtifactContent(artifactsDir, stage.produces);
182
+
171
183
  if (verdict === "pass") {
172
- // Advance to next stage
173
184
  const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
185
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — PASS\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
174
186
  if (nextLabel) {
175
187
  applyLabel(repo, issueNumber, nextLabel, label);
176
188
  }
@@ -181,12 +193,14 @@ function handleGateRetry(
181
193
  const attemptCount = getAttemptCount(artifactsDir, stage.name);
182
194
 
183
195
  if (attemptCount >= maxRetries) {
196
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — ESCALATED\n\nQA failed after ${attemptCount} attempts (max: ${maxRetries}). Human intervention required.\n\n<details>\n<summary>Last QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`escalated\``);
184
197
  applyLabel(repo, issueNumber, "escalated", label);
185
198
  return { stage: stage.name, action: "escalated", nextLabel: "escalated" };
186
199
  }
187
200
 
188
201
  // Apply retry label (needs-fix)
189
202
  const retryLabel = findRetryLabel(workflowConfig.pipeline, stage.name);
203
+ postComment(repo, issueNumber, `## Stage: ${stage.name} — FAIL (attempt ${attemptCount}/${maxRetries})\n\nRetrying. The builder will read the QA report and fix the issues.\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${retryLabel ?? "needs-fix"}\``);
190
204
  if (retryLabel) {
191
205
  applyLabel(repo, issueNumber, retryLabel, label);
192
206
  }
@@ -213,6 +227,29 @@ function applyLabel(repo: string, issueNumber: number, addLabel: string, removeL
213
227
  }
214
228
  }
215
229
 
230
+ function postComment(repo: string, issueNumber: number, body: string): void {
231
+ try {
232
+ execFileSync("gh", [
233
+ "issue", "comment", String(issueNumber),
234
+ "--repo", repo,
235
+ "--body", body,
236
+ ]);
237
+ } catch (err) {
238
+ console.error(`[dispatch] Failed to post comment:`, err);
239
+ }
240
+ }
241
+
242
+ function readArtifactContent(artifactsDir: string, artifactName: string | undefined): string {
243
+ if (!artifactName) return "";
244
+ try {
245
+ const content = readFileSync(join(artifactsDir, artifactName), "utf-8");
246
+ const maxLen = 2000;
247
+ return content.length > maxLen ? content.slice(0, maxLen) + "\n\n_(truncated)_" : content;
248
+ } catch {
249
+ return "";
250
+ }
251
+ }
252
+
216
253
  function findNextStageLabel(
217
254
  pipeline: OrchestrationContext["workflowConfig"]["pipeline"],
218
255
  currentStageIndex: number