@jterrats/open-orchestra 0.4.2-beta.1 → 0.5.0-beta.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 (170) hide show
  1. package/AGENTS.md +5 -3
  2. package/README.md +29 -5
  3. package/dist/advisory-artifacts.d.ts +20 -0
  4. package/dist/advisory-artifacts.js +136 -0
  5. package/dist/advisory-artifacts.js.map +1 -0
  6. package/dist/assets/web-console.js +436 -4
  7. package/dist/cli.js +16 -117
  8. package/dist/cli.js.map +1 -1
  9. package/dist/command-manifest.d.ts +6 -0
  10. package/dist/command-manifest.js +141 -43
  11. package/dist/command-manifest.js.map +1 -1
  12. package/dist/command-utils.d.ts +5 -0
  13. package/dist/command-utils.js +23 -0
  14. package/dist/command-utils.js.map +1 -1
  15. package/dist/commands.d.ts +7 -42
  16. package/dist/commands.js +214 -1356
  17. package/dist/commands.js.map +1 -1
  18. package/dist/constants.js +3 -0
  19. package/dist/constants.js.map +1 -1
  20. package/dist/context-budget.d.ts +4 -0
  21. package/dist/context-budget.js +119 -0
  22. package/dist/context-budget.js.map +1 -0
  23. package/dist/delivery-commands.d.ts +10 -0
  24. package/dist/delivery-commands.js +152 -0
  25. package/dist/delivery-commands.js.map +1 -0
  26. package/dist/github.d.ts +50 -1
  27. package/dist/github.js +234 -0
  28. package/dist/github.js.map +1 -1
  29. package/dist/health-checks.d.ts +1 -0
  30. package/dist/health-checks.js +11 -1
  31. package/dist/health-checks.js.map +1 -1
  32. package/dist/health-commands.js +2 -0
  33. package/dist/health-commands.js.map +1 -1
  34. package/dist/mcp-oauth-proxy.d.ts +32 -0
  35. package/dist/mcp-oauth-proxy.js +120 -0
  36. package/dist/mcp-oauth-proxy.js.map +1 -1
  37. package/dist/memory.d.ts +2 -1
  38. package/dist/memory.js +71 -10
  39. package/dist/memory.js.map +1 -1
  40. package/dist/package-update-check.d.ts +5 -1
  41. package/dist/package-update-check.js +20 -8
  42. package/dist/package-update-check.js.map +1 -1
  43. package/dist/planning-commands.d.ts +14 -0
  44. package/dist/planning-commands.js +372 -0
  45. package/dist/planning-commands.js.map +1 -0
  46. package/dist/release-candidate.d.ts +2 -0
  47. package/dist/release-candidate.js +9 -14
  48. package/dist/release-candidate.js.map +1 -1
  49. package/dist/release-commands.d.ts +2 -0
  50. package/dist/release-commands.js +58 -6
  51. package/dist/release-commands.js.map +1 -1
  52. package/dist/release-readiness.d.ts +49 -0
  53. package/dist/release-readiness.js +172 -0
  54. package/dist/release-readiness.js.map +1 -0
  55. package/dist/runtime-commands.js +11 -4
  56. package/dist/runtime-commands.js.map +1 -1
  57. package/dist/runtime-execution-renderer.js +2 -0
  58. package/dist/runtime-execution-renderer.js.map +1 -1
  59. package/dist/runtime-execution.d.ts +4 -2
  60. package/dist/runtime-execution.js +11 -4
  61. package/dist/runtime-execution.js.map +1 -1
  62. package/dist/setup-agents-import.d.ts +42 -0
  63. package/dist/setup-agents-import.js +335 -0
  64. package/dist/setup-agents-import.js.map +1 -0
  65. package/dist/skills-catalog-service.d.ts +2 -0
  66. package/dist/skills-catalog-service.js +8 -0
  67. package/dist/skills-catalog-service.js.map +1 -0
  68. package/dist/skills-catalog.d.ts +2 -0
  69. package/dist/skills-catalog.js +389 -0
  70. package/dist/skills-catalog.js.map +1 -0
  71. package/dist/skills-commands.js +1 -11
  72. package/dist/skills-commands.js.map +1 -1
  73. package/dist/skills-events.d.ts +9 -0
  74. package/dist/skills-events.js +50 -0
  75. package/dist/skills-events.js.map +1 -0
  76. package/dist/skills-memory.d.ts +18 -0
  77. package/dist/skills-memory.js +127 -0
  78. package/dist/skills-memory.js.map +1 -0
  79. package/dist/skills-planning.d.ts +2 -0
  80. package/dist/skills-planning.js +87 -0
  81. package/dist/skills-planning.js.map +1 -0
  82. package/dist/skills-render.d.ts +14 -0
  83. package/dist/skills-render.js +83 -0
  84. package/dist/skills-render.js.map +1 -0
  85. package/dist/skills-validation.d.ts +2 -0
  86. package/dist/skills-validation.js +49 -0
  87. package/dist/skills-validation.js.map +1 -0
  88. package/dist/skills.d.ts +6 -42
  89. package/dist/skills.js +6 -773
  90. package/dist/skills.js.map +1 -1
  91. package/dist/task-graph-commands.d.ts +14 -0
  92. package/dist/task-graph-commands.js +367 -0
  93. package/dist/task-graph-commands.js.map +1 -0
  94. package/dist/tool-commands.js +8 -0
  95. package/dist/tool-commands.js.map +1 -1
  96. package/dist/types/context.d.ts +12 -0
  97. package/dist/types/context.js +2 -0
  98. package/dist/types/context.js.map +1 -0
  99. package/dist/types/metrics.d.ts +114 -0
  100. package/dist/types/metrics.js +2 -0
  101. package/dist/types/metrics.js.map +1 -0
  102. package/dist/types/model-config.d.ts +212 -0
  103. package/dist/types/model-config.js +2 -0
  104. package/dist/types/model-config.js.map +1 -0
  105. package/dist/types/runtime.d.ts +93 -0
  106. package/dist/types/runtime.js +2 -0
  107. package/dist/types/runtime.js.map +1 -0
  108. package/dist/types/skills.d.ts +147 -0
  109. package/dist/types/skills.js +2 -0
  110. package/dist/types/skills.js.map +1 -0
  111. package/dist/types/tasks.d.ts +171 -0
  112. package/dist/types/tasks.js +2 -0
  113. package/dist/types/tasks.js.map +1 -0
  114. package/dist/types/workflow-run.d.ts +79 -0
  115. package/dist/types/workflow-run.js +2 -0
  116. package/dist/types/workflow-run.js.map +1 -0
  117. package/dist/types.d.ts +13 -798
  118. package/dist/types.js +1 -1
  119. package/dist/types.js.map +1 -1
  120. package/dist/upgrade-commands.d.ts +2 -0
  121. package/dist/upgrade-commands.js +65 -0
  122. package/dist/upgrade-commands.js.map +1 -0
  123. package/dist/web-api-read-routes.d.ts +5 -0
  124. package/dist/web-api-read-routes.js +37 -0
  125. package/dist/web-api-read-routes.js.map +1 -0
  126. package/dist/web-api.d.ts +1 -3
  127. package/dist/web-api.js +145 -44
  128. package/dist/web-api.js.map +1 -1
  129. package/dist/web-console-sections.d.ts +2 -0
  130. package/dist/web-console-sections.js +7 -0
  131. package/dist/web-console-sections.js.map +1 -0
  132. package/dist/web-console.js +23 -3
  133. package/dist/web-console.js.map +1 -1
  134. package/dist/workflow-approval-service.d.ts +9 -0
  135. package/dist/workflow-approval-service.js +126 -0
  136. package/dist/workflow-approval-service.js.map +1 -0
  137. package/dist/workflow-approval-utils.d.ts +10 -0
  138. package/dist/workflow-approval-utils.js +82 -0
  139. package/dist/workflow-approval-utils.js.map +1 -0
  140. package/dist/workflow-budget-utils.d.ts +7 -0
  141. package/dist/workflow-budget-utils.js +96 -0
  142. package/dist/workflow-budget-utils.js.map +1 -0
  143. package/dist/workflow-evidence-service.d.ts +7 -0
  144. package/dist/workflow-evidence-service.js +100 -0
  145. package/dist/workflow-evidence-service.js.map +1 -0
  146. package/dist/workflow-run-commands.d.ts +8 -0
  147. package/dist/workflow-run-commands.js +479 -0
  148. package/dist/workflow-run-commands.js.map +1 -0
  149. package/dist/workflow-services.d.ts +8 -18
  150. package/dist/workflow-services.js +30 -481
  151. package/dist/workflow-services.js.map +1 -1
  152. package/dist/workflow-summary-service.d.ts +4 -0
  153. package/dist/workflow-summary-service.js +82 -0
  154. package/dist/workflow-summary-service.js.map +1 -0
  155. package/dist/workflow-templates.d.ts +1 -0
  156. package/dist/workflow-templates.js +1 -0
  157. package/dist/workflow-templates.js.map +1 -1
  158. package/dist/workspace.d.ts +18 -1
  159. package/dist/workspace.js +72 -4
  160. package/dist/workspace.js.map +1 -1
  161. package/docs/command-contracts.md +22 -0
  162. package/docs/mcp-oauth-proxy-evaluation.md +14 -0
  163. package/docs/orchestra-mvp.md +158 -114
  164. package/docs/package-naming.md +20 -0
  165. package/docs/persona-workflows.md +209 -0
  166. package/docs/runtime-adapters.md +19 -14
  167. package/docs/runtime-llm-flow.md +29 -28
  168. package/docs/setup-agents-bridge.md +61 -0
  169. package/docs/traceability-flow.md +89 -0
  170. package/package.json +9 -7
@@ -0,0 +1,372 @@
1
+ import { requireArg } from "./args.js";
2
+ import { numberOption, parseSkillRenderTarget, removeUndefined, stringOption, } from "./command-utils.js";
3
+ import { queryMemory, recordMemoryEvent, renderMemoryPacket, } from "./memory.js";
4
+ import { decideTaskDelegation } from "./delegation-decision.js";
5
+ import { listCollaborationFlows, recommendCollaborationFlow, } from "./collaboration-flows.js";
6
+ import { listWorkflowTemplates, renderWorkflowTemplates, selectWorkflowTemplates, validateWorkflowTemplates, } from "./workflow-templates.js";
7
+ import { addPlaywrightEvidence, executePlanWithBudgetPreflight, generateExecutionPlan, generatePlaywrightTestPlan, getTaskContext, } from "./workflow-services.js";
8
+ const MEMORY_HOOK_POINTS = [
9
+ "before_plan",
10
+ "before_implementation",
11
+ "before_handoff",
12
+ "before_final",
13
+ "after_failure",
14
+ ];
15
+ export async function delegationDecideCommand(options, io) {
16
+ const decision = await decideTaskDelegation(requireArg(options, "task"), process.cwd(), {
17
+ record: !options["no-record"],
18
+ });
19
+ if (options.json) {
20
+ io.log(JSON.stringify(decision, null, 2));
21
+ return;
22
+ }
23
+ io.log(renderDelegationDecisionMarkdown(decision));
24
+ }
25
+ export async function contextCommand(options, io) {
26
+ const context = await getTaskContext(requireArg(options, "task"), process.cwd(), {
27
+ tokenBudget: numberOption(options.budget, 3000),
28
+ });
29
+ if (options.json) {
30
+ io.log(JSON.stringify(context, null, 2));
31
+ return;
32
+ }
33
+ io.log(renderTaskContextMarkdown(context));
34
+ }
35
+ export async function memoryQueryCommand(options, io) {
36
+ const hook = parseMemoryHook(stringOption(options.hook));
37
+ const taskId = stringOption(options.task);
38
+ const query = stringOption(options.query);
39
+ const role = stringOption(options.role);
40
+ const packet = await queryMemory({
41
+ ...(taskId ? { taskId } : {}),
42
+ ...(role ? { role } : {}),
43
+ hook,
44
+ ...(query ? { query } : {}),
45
+ tokenBudget: numberOption(options.budget, 900),
46
+ });
47
+ await recordMemoryEvent(process.cwd(), packet, "MEMORY_QUERIED");
48
+ if (options.json) {
49
+ io.log(JSON.stringify(packet, null, 2));
50
+ return;
51
+ }
52
+ io.log(renderMemoryPacket(packet));
53
+ }
54
+ export async function memoryHookCommand(options, io) {
55
+ const point = parseMemoryHook(requireArg(options, "point"));
56
+ const taskId = stringOption(options.task);
57
+ const query = stringOption(options.query);
58
+ const role = stringOption(options.role);
59
+ const packet = await queryMemory({
60
+ ...(taskId ? { taskId } : {}),
61
+ ...(role ? { role } : {}),
62
+ hook: point,
63
+ ...(query ? { query } : {}),
64
+ tokenBudget: numberOption(options.budget, 900),
65
+ });
66
+ await recordMemoryEvent(process.cwd(), packet, "MEMORY_HOOK_RAN");
67
+ if (options.json) {
68
+ io.log(JSON.stringify(packet, null, 2));
69
+ return;
70
+ }
71
+ io.log(renderMemoryPacket(packet));
72
+ }
73
+ export async function planCommand(options, io) {
74
+ const plan = await generateExecutionPlan(requireArg(options, "task"));
75
+ if (options.json) {
76
+ io.log(JSON.stringify(plan, null, 2));
77
+ return;
78
+ }
79
+ io.log(renderExecutionPlanMarkdown(plan));
80
+ }
81
+ export async function runCommand(options, io) {
82
+ const taskId = requireArg(options, "task");
83
+ const run = await executePlanWithBudgetPreflight(taskId, process.cwd(), parseBudgetEscalationDecision(options), removeUndefined({
84
+ estimatedCostUsd: stringOption(options["estimate-cost"])
85
+ ? numberOption(options["estimate-cost"], 0)
86
+ : undefined,
87
+ override: options.yes ? true : undefined,
88
+ }));
89
+ if (options.json) {
90
+ io.log(JSON.stringify(run, null, 2));
91
+ return;
92
+ }
93
+ io.log(renderExecutionRunMarkdown(run));
94
+ }
95
+ export async function playwrightPlanCommand(options, io) {
96
+ const plan = await generatePlaywrightTestPlan(requireArg(options, "task"));
97
+ if (options.json) {
98
+ io.log(JSON.stringify(plan, null, 2));
99
+ return;
100
+ }
101
+ io.log(renderPlaywrightPlanMarkdown(plan));
102
+ }
103
+ export async function playwrightEvidenceCommand(options, io) {
104
+ const { artifact } = await addPlaywrightEvidence(removeUndefined({
105
+ task: requireArg(options, "task"),
106
+ kind: requireArg(options, "kind"),
107
+ path: requireArg(options, "path"),
108
+ summary: requireArg(options, "summary"),
109
+ runId: stringOption(options["run-id"]),
110
+ }));
111
+ io.log(`Created ${artifact}`);
112
+ }
113
+ export async function collaborationFlowsCommand(options, io) {
114
+ const flows = listCollaborationFlows();
115
+ if (options.json) {
116
+ io.log(JSON.stringify(flows, null, 2));
117
+ return;
118
+ }
119
+ for (const flow of flows) {
120
+ io.log(flow.id + " - " + flow.name);
121
+ io.log(" roles: " + flow.roles.join(", "));
122
+ }
123
+ }
124
+ export async function collaborationRecommendCommand(options, io) {
125
+ const context = await getTaskContext(requireArg(options, "task"));
126
+ const recommendation = recommendCollaborationFlow(context.task, [
127
+ ...context.decisions,
128
+ ...context.handoffs,
129
+ ...context.reviews,
130
+ ...context.evidence,
131
+ ...context.gates,
132
+ ]);
133
+ if (options.json) {
134
+ io.log(JSON.stringify(recommendation, null, 2));
135
+ return;
136
+ }
137
+ if (!recommendation) {
138
+ io.log("No collaboration flow recommended");
139
+ return;
140
+ }
141
+ io.log(recommendation.flow.id + " - " + recommendation.flow.name);
142
+ io.log("Missing artifacts: " +
143
+ (recommendation.missingArtifacts.join(", ") || "none"));
144
+ io.log("Reviewers: " + (recommendation.optionalReviewers.join(", ") || "none"));
145
+ }
146
+ export async function workflowTemplatesCommand(options, io) {
147
+ const templates = listWorkflowTemplates();
148
+ const validationErrors = validateWorkflowTemplates();
149
+ if (options.json) {
150
+ io.log(JSON.stringify({ templates, validationErrors }, null, 2));
151
+ return;
152
+ }
153
+ for (const template of templates) {
154
+ io.log(template.id + " - " + template.name);
155
+ io.log(" roles: " + template.roles.join(", "));
156
+ }
157
+ if (validationErrors.length > 0) {
158
+ io.log("Validation errors: " + validationErrors.join("; "));
159
+ }
160
+ }
161
+ export async function workflowTemplateSelectCommand(options, io) {
162
+ const context = await getTaskContext(requireArg(options, "task"));
163
+ const events = [
164
+ ...context.decisions,
165
+ ...context.handoffs,
166
+ ...context.reviews,
167
+ ...context.evidence,
168
+ ...context.gates,
169
+ ];
170
+ const selection = selectWorkflowTemplates(context.task, events);
171
+ if (options.json) {
172
+ io.log(JSON.stringify(selection, null, 2));
173
+ return;
174
+ }
175
+ for (const item of selection) {
176
+ io.log(item.template.id + " (score " + item.score + ")");
177
+ io.log(" missing evidence: " + (item.missingEvidence.join(", ") || "none"));
178
+ }
179
+ }
180
+ export async function workflowTemplateRenderCommand(options, io) {
181
+ const context = await getTaskContext(requireArg(options, "task"), process.cwd(), {
182
+ tokenBudget: numberOption(options.budget, 2500),
183
+ });
184
+ const rendered = renderWorkflowTemplates({
185
+ task: context.task,
186
+ target: parseSkillRenderTarget(stringOption(options.target) ?? "generic"),
187
+ templates: context.workflowTemplates,
188
+ contextBudget: context.contextBudget,
189
+ });
190
+ if (options.json) {
191
+ io.log(JSON.stringify(rendered, null, 2));
192
+ return;
193
+ }
194
+ io.log(rendered.content);
195
+ }
196
+ function parseMemoryHook(value) {
197
+ const hook = value ?? "before_implementation";
198
+ if (!MEMORY_HOOK_POINTS.includes(hook)) {
199
+ throw new Error(`memory hook must be one of: ${MEMORY_HOOK_POINTS.join(", ")}`);
200
+ }
201
+ return hook;
202
+ }
203
+ function parseBudgetEscalationDecision(options) {
204
+ if (options["approve-budget-fallback"]) {
205
+ return removeUndefined({
206
+ approved: true,
207
+ approver: stringOption(options.approver),
208
+ rationale: stringOption(options.rationale),
209
+ });
210
+ }
211
+ if (options["reject-budget-fallback"]) {
212
+ return removeUndefined({
213
+ approved: false,
214
+ approver: stringOption(options.approver),
215
+ rationale: stringOption(options.rationale),
216
+ });
217
+ }
218
+ return undefined;
219
+ }
220
+ function renderDelegationDecisionMarkdown(decision) {
221
+ return [
222
+ `# Delegation Decision: ${decision.taskId}`,
223
+ "",
224
+ `- Recommendation: ${decision.recommendation}`,
225
+ `- Complexity score: ${decision.complexityScore}`,
226
+ `- Urgency: ${decision.urgency}`,
227
+ `- Disjoint write scopes: ${String(decision.disjointWriteScopes)}`,
228
+ "",
229
+ "## Rationale",
230
+ ...listOrNone(decision.rationale),
231
+ "",
232
+ "## Blocking Conditions",
233
+ ...listOrNone(decision.blockingConditions),
234
+ "",
235
+ "## Context Bundle",
236
+ ...listOrNone(decision.contextBundle),
237
+ "",
238
+ "## Delegates",
239
+ ...(decision.delegates.length === 0
240
+ ? ["- none"]
241
+ : decision.delegates.map((delegate) => `- ${delegate.role} [${delegate.mode}] scopes=${delegate.writeScopes.join(",") || "none"}`)),
242
+ "",
243
+ "## Expected Outputs",
244
+ ...listOrNone(decision.expectedOutputs),
245
+ "",
246
+ ].join("\n");
247
+ }
248
+ function renderTaskContextMarkdown(context) {
249
+ return [
250
+ `# Task Context: ${context.task.id}`,
251
+ "",
252
+ `- Title: ${context.task.title}`,
253
+ `- Owner: ${context.task.ownerRole}`,
254
+ `- Status: ${context.task.status}`,
255
+ `- Dependencies: ${context.dependencies.isSatisfied ? "satisfied" : "blocked"}`,
256
+ `- Locks: ${context.locks.length}`,
257
+ `- Risks: ${context.risks.length}`,
258
+ `- Delegation: ${context.delegation?.recommendation ?? "not decided"}`,
259
+ `- Estimated tokens: ${context.contextBudget.estimatedTokens}/${context.contextBudget.tokenBudget}`,
260
+ `- Trimmed: ${context.contextBudget.trimmed}`,
261
+ "",
262
+ "## Context Budget",
263
+ ...context.contextBudget.sections.map((section) => `- ${section.section}: kept ${section.keptCount}/${section.originalCount}, dropped ${section.droppedCount}`),
264
+ "",
265
+ "## Collaboration Flow",
266
+ ...(context.collaborationFlow
267
+ ? [
268
+ `- ${context.collaborationFlow.flow.id}: ${context.collaborationFlow.flow.name}`,
269
+ `- Missing artifacts: ${context.collaborationFlow.missingArtifacts.join(", ") || "none"}`,
270
+ `- Reviewers: ${context.collaborationFlow.optionalReviewers.join(", ") || "none"}`,
271
+ ]
272
+ : ["- none"]),
273
+ "",
274
+ "## Workflow Templates",
275
+ ...(context.workflowTemplates.length === 0
276
+ ? ["- none"]
277
+ : context.workflowTemplates.map((item) => `- ${item.template.id} (score ${item.score}, missing evidence ${item.missingEvidence.join(", ") || "none"})`)),
278
+ "",
279
+ "## Skills",
280
+ ...(context.skills.selected.length === 0
281
+ ? ["- none"]
282
+ : context.skills.selected.map((item) => `- ${item.skill.id} (score ${item.score}): ${item.rationale.join("; ")}`)),
283
+ `- Source groups: ${context.skills.sourceGroups.join(", ") || "none"}`,
284
+ "",
285
+ renderMemoryPacket(context.memory),
286
+ "",
287
+ "## Decisions",
288
+ ...eventLines(context.decisions),
289
+ "",
290
+ "## Handoffs",
291
+ ...eventLines(context.handoffs),
292
+ "",
293
+ "## Reviews",
294
+ ...eventLines(context.reviews),
295
+ "",
296
+ "## Evidence",
297
+ ...eventLines(context.evidence),
298
+ "",
299
+ "## Gates",
300
+ ...eventLines(context.gates),
301
+ "",
302
+ "## Model Provenance",
303
+ ...(context.modelProvenance.length === 0
304
+ ? ["- none"]
305
+ : context.modelProvenance.map((record) => `- ${record.role}: ${record.provider}/${record.model} ${record.responseId}`)),
306
+ "",
307
+ ].join("\n");
308
+ }
309
+ function renderExecutionPlanMarkdown(plan) {
310
+ return [
311
+ `# Execution Plan: ${plan.taskId}`,
312
+ "",
313
+ ...plan.steps.map((step) => {
314
+ const gate = step.gate ? ` gate=${step.gate}` : "";
315
+ const dependsOn = step.dependsOn.length > 0
316
+ ? ` dependsOn=${step.dependsOn.join(",")}`
317
+ : "";
318
+ return `- ${step.id}: ${step.role}${gate}${dependsOn} - ${step.action}`;
319
+ }),
320
+ "",
321
+ ].join("\n");
322
+ }
323
+ function renderExecutionRunMarkdown(run) {
324
+ return [
325
+ `# Execution Run: ${run.taskId}`,
326
+ "",
327
+ `- Provider: ${run.provider}`,
328
+ `- Model: ${run.model}`,
329
+ "",
330
+ ...run.steps.map((step) => `- ${step.id}: ${step.role} ${step.status} ${step.responseId ?? step.error ?? ""}`.trim()),
331
+ "",
332
+ ].join("\n");
333
+ }
334
+ function renderPlaywrightPlanMarkdown(plan) {
335
+ return [
336
+ `# Playwright Test Plan: ${plan.taskId}`,
337
+ "",
338
+ `- Title: ${plan.title}`,
339
+ `- Target user: ${plan.targetUser}`,
340
+ "",
341
+ "## Scenarios",
342
+ ...plan.scenarios.flatMap((scenario) => [
343
+ `### ${scenario.name}`,
344
+ `- Source: ${scenario.source}`,
345
+ `- Page object: ${scenario.pageObject}`,
346
+ `- Selectors: ${scenario.selectors.join("; ")}`,
347
+ `- Assertions: ${scenario.assertions.join("; ")}`,
348
+ `- Evidence: ${scenario.evidence.join(", ")}`,
349
+ "",
350
+ ]),
351
+ "## Fixtures",
352
+ ...listOrNone(plan.fixtures),
353
+ "",
354
+ "## Notes",
355
+ ...listOrNone(plan.notes),
356
+ "",
357
+ ].join("\n");
358
+ }
359
+ function eventLines(events) {
360
+ return events.length === 0
361
+ ? ["- none"]
362
+ : events.map((event) => {
363
+ const artifacts = event.artifacts?.join(", ") ?? "no artifacts";
364
+ return `- ${event.type}: ${event.summary} (${artifacts})`;
365
+ });
366
+ }
367
+ function listOrNone(items) {
368
+ return items && items.length > 0
369
+ ? items.map((item) => `- ${item}`)
370
+ : ["- none"];
371
+ }
372
+ //# sourceMappingURL=planning-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-commands.js","sourceRoot":"","sources":["../src/planning-commands.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type AcceptanceCriterionCoverage } from "./release-readiness.js";
1
2
  import type { EventEntry } from "./types.js";
2
3
  export interface ReleaseStoryReadiness {
3
4
  taskId: string;
@@ -7,6 +8,7 @@ export interface ReleaseStoryReadiness {
7
8
  approved: boolean;
8
9
  missing: string[];
9
10
  blockers: string[];
11
+ acceptanceCoverage: AcceptanceCriterionCoverage[];
10
12
  }
11
13
  export interface CandidateReleasePlan {
12
14
  version: string | undefined;
@@ -1,8 +1,9 @@
1
1
  import { appendEvent, loadWorkspace, readEvents, writeArtifact, } from "./workspace.js";
2
+ import { evaluateAcceptanceCoverage, unresolvedStoryBlockers, } from "./release-readiness.js";
2
3
  export async function generateCandidateReleasePlan({ root = process.cwd(), version, } = {}) {
3
4
  const workspace = await loadWorkspace(root);
4
5
  const events = await readEvents(root);
5
- const stories = workspace.tasks.map((task) => evaluateReleaseStory(task, events));
6
+ const stories = workspace.tasks.map((task) => evaluateReleaseStory(task, events, workspace.locks));
6
7
  const approvedStories = stories.filter((story) => story.approved);
7
8
  const missing = releasePlanMissingItems(stories, approvedStories);
8
9
  return {
@@ -53,11 +54,16 @@ export async function attachReleaseEvidence({ root = process.cwd(), kind, summar
53
54
  metadata: { kind },
54
55
  });
55
56
  }
56
- function evaluateReleaseStory(task, events) {
57
+ function evaluateReleaseStory(task, events, locks = []) {
57
58
  const taskEvents = events.filter((event) => event.taskId === task.id);
59
+ const acceptanceCoverage = evaluateAcceptanceCoverage(task, taskEvents);
58
60
  const missing = [
59
61
  ...missingTaskFields(task),
60
62
  ...missingStoryEvidence(task, taskEvents),
63
+ ...(acceptanceCoverage.some((coverage) => !coverage.covered)
64
+ ? ["acceptanceCoverage"]
65
+ : []),
66
+ ...(locks.some((lock) => lock.taskId === task.id) ? ["activeLocks"] : []),
61
67
  ];
62
68
  const blockers = unresolvedStoryBlockers(task, taskEvents);
63
69
  return {
@@ -70,6 +76,7 @@ function evaluateReleaseStory(task, events) {
70
76
  blockers.length === 0,
71
77
  missing,
72
78
  blockers,
79
+ acceptanceCoverage,
73
80
  };
74
81
  }
75
82
  function missingTaskFields(task) {
@@ -101,18 +108,6 @@ function missingStoryEvidence(task, events) {
101
108
  }
102
109
  return missing;
103
110
  }
104
- function unresolvedStoryBlockers(task, events) {
105
- const blockers = [];
106
- if (task.status === "blocked") {
107
- blockers.push(task.blockedReason ?? "task is blocked");
108
- }
109
- for (const event of events) {
110
- if (event.type === "REVIEW_RECORDED" && event.metadata.result === "block") {
111
- blockers.push(String(event.metadata.findings ?? event.summary));
112
- }
113
- }
114
- return blockers;
115
- }
116
111
  function hasPassedQa(task, events) {
117
112
  return (task.qaGate?.executionStatus === "passed" &&
118
113
  events.some((event) => event.type === "EVIDENCE_ADDED" && event.actor === "qa"));
@@ -1 +1 @@
1
- {"version":3,"file":"release-candidate.js","sourceRoot":"","sources":["../src/release-candidate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,GACd,MAAM,gBAAgB,CAAC;AAsBxB,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,OAAO,MAIL,EAAE;IACJ,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CACnC,CAAC;IACF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClE,OAAO;QACL,OAAO;QACP,OAAO;QACP,eAAe;QACf,SAAS,EAAE,sBAAsB,CAAC,OAAO,EAAE,eAAe,CAAC;QAC3D,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,OAAO,MAIL,EAAE;IACJ,MAAM,IAAI,GAAG,MAAM,4BAA4B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,OAAO,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,WAAW,CAAC,IAAI,EAAE;QACtB,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,kCAAkC;QAC3C,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,QAAQ,EAAE;YACR,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACnE,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;KACF,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,OAAO,EACP,QAAQ,EACR,QAAQ,GAMT;IACC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,2BAA2B,GAAG,OAAO;QAC9C,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,EACpB,IAAI,EACJ,OAAO,EACP,YAAY,GAMb;IACC,OAAO,WAAW,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,iBAAiB;QACxB,OAAO;QACP,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE;KACnB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAU,EACV,MAAoB;IAEpB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG;QACd,GAAG,iBAAiB,CAAC,IAAI,CAAC;QAC1B,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC;KAC1C,CAAC;IACF,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;QACnD,QAAQ,EACN,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAU;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,MAAoB;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAU,EAAE,MAAoB;IAC/D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,IAAU,EAAE,MAAoB;IACnD,OAAO,CACL,IAAI,CAAC,MAAM,EAAE,eAAe,KAAK,QAAQ;QACzC,MAAM,CAAC,IAAI,CACT,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CACnE,CACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAC1E,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAoB;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAU;IAC7C,OAAO,CACL,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,KAAK,MAAM;QACtB,IAAI,CAAC,MAAM,KAAK,UAAU,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAoB;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAsB;IAC9C,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAoB;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgC,EAChC,eAAwC;IAExC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAA2B,EAC3B,eAAwC;IAExC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,0BAA0B,CAAC,IAA0B;IAC5D,OAAO;QACL,qBAAqB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,EAAE;QACF,WAAW,GAAG,IAAI,CAAC,KAAK;QACxB,sBAAsB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM;QACpD,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;QACnD,EAAE;QACF,YAAY;QACZ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACpC,EAAE;QACF,cAAc;QACd,IAAI,CAAC,SAAS;QACd,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAA4B;IACnD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO,CACL,IAAI;QACJ,KAAK,CAAC,MAAM;QACZ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,KAAK;QACL,WAAW;QACX,OAAO;QACP,YAAY;QACZ,QAAQ,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"release-candidate.js","sourceRoot":"","sources":["../src/release-candidate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type ReleaseReadinessReport } from "./release-readiness.js";
1
2
  import type { CliIo, CliOptions } from "./types.js";
2
3
  export interface ReleaseCheck {
3
4
  name: string;
@@ -7,6 +8,7 @@ export interface ReleaseCheck {
7
8
  export interface ReleaseCheckResult {
8
9
  passed: boolean;
9
10
  checks: ReleaseCheck[];
11
+ releaseReadiness?: ReleaseReadinessReport;
10
12
  }
11
13
  export declare function releaseCheckCommand(options: CliOptions, io: CliIo): Promise<void>;
12
14
  export declare function releaseCandidateCommand(options: CliOptions, io: CliIo): Promise<void>;
@@ -3,6 +3,7 @@ import { readFile } from "node:fs/promises";
3
3
  import { promisify } from "node:util";
4
4
  import { requireArg } from "./args.js";
5
5
  import { attachReleaseEvidence, generateCandidateReleasePlan, recordReleaseTagApproval, writeCandidateReleasePlan, } from "./release-candidate.js";
6
+ import { generateReleaseReadinessReport, } from "./release-readiness.js";
6
7
  const execFileAsync = promisify(execFile);
7
8
  export async function releaseCheckCommand(options, io) {
8
9
  const root = typeof options.root === "string" ? options.root : process.cwd();
@@ -27,21 +28,20 @@ export async function releaseCheckCommand(options, io) {
27
28
  }
28
29
  async function runReleaseChecks(root) {
29
30
  const checks = [];
30
- // 1. Lint
31
31
  checks.push(await runScript(root, "lint", "npm run lint"));
32
- // 2. Typecheck
33
32
  checks.push(await runScript(root, "typecheck", "npm run typecheck"));
34
- // 3. Secret scan
35
33
  checks.push(await runScript(root, "secret-scan", "npm run secret-scan"));
36
- // 4. Tests
37
34
  checks.push(await runScript(root, "tests", "npm test"));
38
- // 5. package.json version matches latest git tag
39
35
  checks.push(await checkVersionMatchesTag(root));
40
- // 6. No uncommitted changes
41
36
  checks.push(await checkCleanWorkingTree(root));
37
+ const releaseReadiness = await checkReleaseReadiness(root);
38
+ checks.push(releaseReadiness.check);
42
39
  return {
43
40
  passed: checks.every((c) => c.passed),
44
41
  checks,
42
+ ...(releaseReadiness.report
43
+ ? { releaseReadiness: releaseReadiness.report }
44
+ : {}),
45
45
  };
46
46
  }
47
47
  async function runScript(root, name, cmd) {
@@ -116,6 +116,58 @@ async function checkCleanWorkingTree(root) {
116
116
  return { name, passed: false, detail: String(err) };
117
117
  }
118
118
  }
119
+ async function checkReleaseReadiness(root) {
120
+ try {
121
+ const report = await generateReleaseReadinessReport(root);
122
+ const missing = releaseReadinessMissingSummary(report);
123
+ return {
124
+ check: {
125
+ name: "release readiness",
126
+ passed: report.passed,
127
+ ...(missing ? { detail: missing } : {}),
128
+ },
129
+ report,
130
+ };
131
+ }
132
+ catch (err) {
133
+ const message = err instanceof Error ? err.message : String(err);
134
+ if (message.includes(".agent-workflow does not exist")) {
135
+ return {
136
+ check: {
137
+ name: "release readiness",
138
+ passed: true,
139
+ detail: "workflow not initialized; skipped",
140
+ },
141
+ };
142
+ }
143
+ return {
144
+ check: {
145
+ name: "release readiness",
146
+ passed: false,
147
+ detail: message,
148
+ },
149
+ };
150
+ }
151
+ }
152
+ function releaseReadinessMissingSummary(report) {
153
+ const missing = [];
154
+ if (report.uncoveredAcceptanceCriteria.length > 0) {
155
+ missing.push(`${report.uncoveredAcceptanceCriteria.length} uncovered AC`);
156
+ }
157
+ if (report.blockerReviews.length > 0) {
158
+ missing.push(`${report.blockerReviews.length} blocker review(s)`);
159
+ }
160
+ if (report.activeLocks.length > 0) {
161
+ missing.push(`${report.activeLocks.length} active lock(s)`);
162
+ }
163
+ if (report.missingSmokeEvidence) {
164
+ missing.push("smoke evidence");
165
+ }
166
+ if (report.missingRollbackEvidence) {
167
+ missing.push("rollback evidence");
168
+ }
169
+ return missing.join("; ");
170
+ }
119
171
  export async function releaseCandidateCommand(options, io) {
120
172
  const version = stringOption(options.version);
121
173
  if (options["dry-run"]) {
@@ -1 +1 @@
1
- {"version":3,"file":"release-commands.js","sourceRoot":"","sources":["../src/release-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-commands.js","sourceRoot":"","sources":["../src/release-commands.ts"],"names":[],"mappings":"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"}