soturail 0.6.1 → 0.7.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 (54) hide show
  1. package/README.md +41 -14
  2. package/dist/cli.js +2 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/diagram.d.ts +2 -0
  5. package/dist/commands/diagram.js +24 -0
  6. package/dist/commands/diagram.js.map +1 -0
  7. package/dist/commands/harness.js +1 -1
  8. package/dist/commands/harness.js.map +1 -1
  9. package/dist/commands/release.js +9 -2
  10. package/dist/commands/release.js.map +1 -1
  11. package/dist/commands/workflow.js +29 -5
  12. package/dist/commands/workflow.js.map +1 -1
  13. package/dist/core/config.d.ts +5 -0
  14. package/dist/core/config.js +9 -2
  15. package/dist/core/config.js.map +1 -1
  16. package/dist/core/context-intelligence.js +1 -1
  17. package/dist/core/context-intelligence.js.map +1 -1
  18. package/dist/core/diagram-rail.d.ts +31 -0
  19. package/dist/core/diagram-rail.js +235 -0
  20. package/dist/core/diagram-rail.js.map +1 -0
  21. package/dist/core/evidence-pack.js +50 -0
  22. package/dist/core/evidence-pack.js.map +1 -1
  23. package/dist/core/harness-rail.js +35 -1
  24. package/dist/core/harness-rail.js.map +1 -1
  25. package/dist/core/release-preflight.js +1 -1
  26. package/dist/core/release-preflight.js.map +1 -1
  27. package/dist/core/version.d.ts +1 -1
  28. package/dist/core/version.js +1 -1
  29. package/dist/core/workflow-store.d.ts +68 -0
  30. package/dist/core/workflow-store.js +360 -6
  31. package/dist/core/workflow-store.js.map +1 -1
  32. package/docs/diagram-rail.md +55 -130
  33. package/docs/harness-rail.md +60 -109
  34. package/docs/release-checklist.md +14 -0
  35. package/docs/release-workflow.md +34 -1
  36. package/docs/releases/README.md +27 -0
  37. package/docs/releases/RELEASE_NOTES_v0.2.1.md +19 -0
  38. package/docs/releases/RELEASE_NOTES_v0.2.2.md +48 -0
  39. package/docs/releases/RELEASE_NOTES_v0.2.3.md +36 -0
  40. package/docs/releases/RELEASE_NOTES_v0.3.0.md +42 -0
  41. package/docs/releases/RELEASE_NOTES_v0.3.1.md +37 -0
  42. package/docs/releases/RELEASE_NOTES_v0.3.2.md +33 -0
  43. package/docs/releases/RELEASE_NOTES_v0.3.3.md +31 -0
  44. package/docs/releases/RELEASE_NOTES_v0.4.0.md +35 -0
  45. package/docs/releases/RELEASE_NOTES_v0.4.1.md +37 -0
  46. package/docs/releases/RELEASE_NOTES_v0.5.0.md +21 -0
  47. package/docs/releases/RELEASE_NOTES_v0.5.1.md +19 -0
  48. package/docs/releases/RELEASE_NOTES_v0.5.2.md +27 -0
  49. package/docs/releases/RELEASE_NOTES_v0.6.0.md +33 -0
  50. package/docs/releases/RELEASE_NOTES_v0.6.1.md +37 -0
  51. package/docs/releases/RELEASE_NOTES_v0.7.0.md +33 -0
  52. package/docs/spec-driven-workflow.md +27 -38
  53. package/docs/workflow-rail.md +81 -164
  54. package/package.json +1 -1
@@ -15,10 +15,78 @@ export interface WorkflowStartOptions {
15
15
  export interface WorkflowCleanupResult {
16
16
  lines: string[];
17
17
  }
18
+ export interface WorkflowPlanRecord {
19
+ schemaVersion: "soturail.workflow.plan.v2";
20
+ id: string;
21
+ title: string;
22
+ status: WorkflowState;
23
+ phase: "plan";
24
+ createdAt: string;
25
+ tasks: string[];
26
+ acceptanceGates: string[];
27
+ rolePacks: string[];
28
+ contextRoutes: string[];
29
+ linkedRunWorkspace: string | null;
30
+ evidencePath: string;
31
+ }
32
+ export interface WorkflowReviewReport {
33
+ schemaVersion: "soturail.workflow.review.v1";
34
+ id: string;
35
+ workflowId: string;
36
+ createdAt: string;
37
+ perspectives: Array<{
38
+ name: WorkflowReviewPerspective;
39
+ result: "pass" | "warn";
40
+ notes: string[];
41
+ }>;
42
+ }
43
+ export type WorkflowReviewPerspective = "security" | "docs" | "tests" | "release" | "context" | "agent-readiness";
44
+ export interface WorkflowVerifyReport {
45
+ schemaVersion: "soturail.workflow.verify.v1";
46
+ id: string;
47
+ workflowId: string;
48
+ createdAt: string;
49
+ summary: {
50
+ harnessContract: string;
51
+ policy: string;
52
+ evidence: string;
53
+ diagram: string;
54
+ evalReport: string;
55
+ releasePreflight: string;
56
+ };
57
+ paths: {
58
+ json: string;
59
+ markdown: string;
60
+ review: string;
61
+ harnessContract: string;
62
+ policyQueue: string;
63
+ policyDecisions: string;
64
+ diagramValidation: string;
65
+ evalReport: string;
66
+ releaseNotes: string;
67
+ };
68
+ }
69
+ export declare function setupWorkflowRail(root?: string): Promise<string>;
18
70
  export declare function createWorkflow(title: string, root?: string, now?: string): Promise<WorkflowRecord>;
19
71
  export declare function listWorkflows(root?: string): Promise<WorkflowRecord[]>;
20
72
  export declare function readWorkflow(id: string, root?: string): Promise<WorkflowRecord>;
21
73
  export declare function planWorkflow(id: string, root?: string): Promise<WorkflowRecord>;
74
+ export declare function createWorkflowPlan(title: string, root?: string): Promise<{
75
+ record: WorkflowRecord;
76
+ plan: WorkflowPlanRecord;
77
+ output: string;
78
+ }>;
79
+ export declare function currentWorkflowId(root?: string): Promise<string | null>;
80
+ export declare function workflowWork(id: string | undefined, note?: string, root?: string): Promise<string>;
81
+ export declare function reviewWorkflow(id: string | undefined, options?: {
82
+ all?: boolean;
83
+ perspective?: string;
84
+ }, root?: string): Promise<{
85
+ report: WorkflowReviewReport;
86
+ markdownPath: string;
87
+ jsonPath: string;
88
+ output: string;
89
+ }>;
22
90
  export declare function startWorkflow(id: string, options?: WorkflowStartOptions, root?: string): Promise<string>;
23
91
  export declare function statusWorkflow(id: string, root?: string): Promise<string>;
24
92
  export declare function verifyWorkflow(id: string, root?: string): Promise<string>;
@@ -1,8 +1,32 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
- import { ensureWorkspace, getWorkspacePaths, relativeToRoot } from "./config.js";
3
+ import { ensureWorkspace, getWorkspacePaths, readJsonl, relativeToRoot, writeJson } from "./config.js";
4
4
  import { planWorktree } from "./worktree-manager.js";
5
5
  const states = ["draft", "planned", "active", "verifying", "ready_for_review", "closed", "blocked"];
6
+ const reviewPerspectives = ["security", "docs", "tests", "release", "context", "agent-readiness"];
7
+ export async function setupWorkflowRail(root = process.cwd()) {
8
+ await ensureWorkspace(root);
9
+ const paths = getWorkspacePaths(root);
10
+ await fs.mkdir(paths.workflowTemplatesDir, { recursive: true });
11
+ await writeFileIfMissing(path.join(paths.workflowTemplatesDir, "feature.md"), workflowTemplate("feature"));
12
+ await writeFileIfMissing(path.join(paths.workflowTemplatesDir, "release.md"), workflowTemplate("release"));
13
+ if (!(await exists(paths.workflowIndexFile)))
14
+ await writeJson(paths.workflowIndexFile, { schemaVersion: "soturail.workflow.index.v2", workflows: [] });
15
+ if (!(await exists(paths.workflowCurrentFile)))
16
+ await writeJson(paths.workflowCurrentFile, { schemaVersion: "soturail.workflow.current.v1", id: null });
17
+ return [
18
+ "SotuRail workflow setup",
19
+ `workflows_dir: ${relativeToRoot(root, paths.workflowsDir)}`,
20
+ `templates_dir: ${relativeToRoot(root, paths.workflowTemplatesDir)}`,
21
+ `index: ${relativeToRoot(root, paths.workflowIndexFile)}`,
22
+ `current: ${relativeToRoot(root, paths.workflowCurrentFile)}`,
23
+ "next_commands:",
24
+ "- soturail workflow plan \"Task title\"",
25
+ "- soturail workflow work",
26
+ "- soturail workflow review --all",
27
+ "- soturail workflow verify"
28
+ ].join("\n") + "\n";
29
+ }
6
30
  export async function createWorkflow(title, root = process.cwd(), now = new Date().toISOString()) {
7
31
  await ensureWorkspace(root);
8
32
  const id = `${now.slice(0, 10).replace(/-/g, "")}-${slug(title)}`;
@@ -14,14 +38,18 @@ export async function createWorkflow(title, root = process.cwd(), now = new Date
14
38
  await fs.writeFile(path.join(dir, "plan.md"), `# Plan: ${title}\n\nAdd reviewed plan steps here.\n`, "utf8");
15
39
  await fs.writeFile(path.join(dir, "tasks.md"), `# Tasks: ${title}\n\n- [ ] Define the change.\n- [ ] Run explicit verification.\n`, "utf8");
16
40
  await fs.writeFile(path.join(dir, "verification.md"), `# Verification: ${title}\n\nConfigured checks: none yet.\n\nChecklist:\n- [ ] npm run build\n- [ ] npm test\n- [ ] npm audit --omit=dev\n`, "utf8");
41
+ await setCurrentWorkflow(id, root);
42
+ await refreshWorkflowIndex(root);
17
43
  return record;
18
44
  }
19
45
  export async function listWorkflows(root = process.cwd()) {
20
46
  const paths = getWorkspacePaths(root);
21
- const entries = await fs.readdir(paths.workflowsDir).catch(() => []);
47
+ const entries = await fs.readdir(paths.workflowsDir, { withFileTypes: true }).catch(() => []);
22
48
  const records = [];
23
49
  for (const entry of entries) {
24
- const record = await readWorkflow(entry, root).catch(() => null);
50
+ if (!entry.isDirectory() || entry.name === "templates")
51
+ continue;
52
+ const record = await readWorkflow(entry.name, root).catch(() => null);
25
53
  if (record)
26
54
  records.push(record);
27
55
  }
@@ -43,8 +71,121 @@ export async function planWorkflow(id, root = process.cwd()) {
43
71
  const record = await updateWorkflow(id, root, { state: "planned" });
44
72
  const planPath = path.join(getWorkspacePaths(root).workflowsDir, id, "plan.md");
45
73
  await appendIfMissing(planPath, "\n## Reviewed Scope\n\n- Problem statement\n- Safety notes\n- Verification plan\n");
74
+ await writeWorkflowPlanRecord(record, root);
75
+ await setCurrentWorkflow(id, root);
46
76
  return record;
47
77
  }
78
+ export async function createWorkflowPlan(title, root = process.cwd()) {
79
+ await setupWorkflowRail(root);
80
+ const created = await createWorkflow(title, root);
81
+ const record = await planWorkflow(created.id, root);
82
+ const plan = await writeWorkflowPlanRecord(record, root);
83
+ return {
84
+ record,
85
+ plan,
86
+ output: [
87
+ "SotuRail workflow plan",
88
+ `id: ${record.id}`,
89
+ `title: ${record.title}`,
90
+ `status: ${record.state}`,
91
+ `phase: ${plan.phase}`,
92
+ `plan: ${relativeToRoot(root, path.join(getWorkspacePaths(root).workflowsDir, record.id, "plan.json"))}`,
93
+ `evidence_path: ${plan.evidencePath}`,
94
+ "next_commands:",
95
+ `- soturail workflow work ${record.id}`,
96
+ `- soturail workflow review ${record.id} --all`,
97
+ `- soturail workflow verify ${record.id}`
98
+ ].join("\n") + "\n"
99
+ };
100
+ }
101
+ export async function currentWorkflowId(root = process.cwd()) {
102
+ const paths = getWorkspacePaths(root);
103
+ const raw = await fs.readFile(paths.workflowCurrentFile, "utf8").catch(() => "");
104
+ if (raw) {
105
+ try {
106
+ const parsed = JSON.parse(raw);
107
+ if (parsed.id)
108
+ return parsed.id;
109
+ }
110
+ catch {
111
+ // Fall back to newest workflow below.
112
+ }
113
+ }
114
+ return (await listWorkflows(root))[0]?.id ?? null;
115
+ }
116
+ export async function workflowWork(id, note = "Progress recorded.", root = process.cwd()) {
117
+ const workflowId = id ?? await requiredCurrentWorkflow(root);
118
+ const record = await updateWorkflow(workflowId, root, { state: "active" });
119
+ const paths = getWorkspacePaths(root);
120
+ const dir = path.join(paths.workflowsDir, workflowId);
121
+ const workPath = path.join(dir, "work.md");
122
+ const changedFiles = await gitChangedFiles(root);
123
+ const rawRecords = await readJsonl(paths.rawIndex);
124
+ const failures = await readJsonl(paths.harnessFailuresFile);
125
+ await appendIfMissing(workPath, `# Work: ${record.title}\n`);
126
+ await fs.appendFile(workPath, [
127
+ "",
128
+ `## ${new Date().toISOString()}`,
129
+ "",
130
+ note,
131
+ "",
132
+ `- changed_files: ${changedFiles.length}`,
133
+ `- raw_ids: ${rawRecords.length}`,
134
+ `- harness_failures: ${failures.filter((failure) => failure.workflowId === workflowId || !failure.workflowId).length}`,
135
+ ""
136
+ ].join("\n"), "utf8");
137
+ await setCurrentWorkflow(workflowId, root);
138
+ return [
139
+ "SotuRail workflow work",
140
+ `id: ${workflowId}`,
141
+ `phase: work`,
142
+ `state: ${record.state}`,
143
+ `work_path: ${relativeToRoot(root, workPath)}`,
144
+ `progress_appended: ${note}`,
145
+ `changed_files: ${changedFiles.length}`,
146
+ `raw_ids: ${rawRecords.length}`,
147
+ `harness_failures: ${failures.length}`
148
+ ].join("\n") + "\n";
149
+ }
150
+ export async function reviewWorkflow(id, options = {}, root = process.cwd()) {
151
+ const workflowId = id ?? await requiredCurrentWorkflow(root);
152
+ const record = await updateWorkflow(workflowId, root, { state: "ready_for_review" });
153
+ const selected = options.all || !options.perspective
154
+ ? reviewPerspectives
155
+ : parsePerspective(options.perspective);
156
+ const paths = getWorkspacePaths(root);
157
+ const dir = path.join(paths.workflowsDir, workflowId);
158
+ const changedFiles = await gitChangedFiles(root);
159
+ const failures = await readJsonl(paths.harnessFailuresFile);
160
+ const report = {
161
+ schemaVersion: "soturail.workflow.review.v1",
162
+ id: `${workflowId}-review`,
163
+ workflowId,
164
+ createdAt: new Date().toISOString(),
165
+ perspectives: selected.map((name) => ({
166
+ name,
167
+ result: reviewResultFor(name, changedFiles, failures),
168
+ notes: reviewNotesFor(name, record, changedFiles, failures)
169
+ }))
170
+ };
171
+ const jsonPath = path.join(dir, "review.json");
172
+ const markdownPath = path.join(dir, "review.md");
173
+ await writeJson(jsonPath, report);
174
+ await fs.writeFile(markdownPath, renderReviewMarkdown(report, record), "utf8");
175
+ await setCurrentWorkflow(workflowId, root);
176
+ return {
177
+ report,
178
+ markdownPath,
179
+ jsonPath,
180
+ output: [
181
+ "SotuRail workflow review",
182
+ `id: ${workflowId}`,
183
+ `perspectives: ${selected.join(", ")}`,
184
+ `review_json: ${relativeToRoot(root, jsonPath)}`,
185
+ `review_md: ${relativeToRoot(root, markdownPath)}`
186
+ ].join("\n") + "\n"
187
+ };
188
+ }
48
189
  export async function startWorkflow(id, options = {}, root = process.cwd()) {
49
190
  const record = await readWorkflow(id, root);
50
191
  const lines = [`SotuRail workflow start ${id}${options.worktree ? " --worktree" : ""}${options.dryRun ? " --dry-run" : ""}`];
@@ -75,12 +216,25 @@ export async function statusWorkflow(id, root = process.cwd()) {
75
216
  }
76
217
  export async function verifyWorkflow(id, root = process.cwd()) {
77
218
  await updateWorkflow(id, root, { state: "verifying" });
78
- const verificationPath = path.join(getWorkspacePaths(root).workflowsDir, id, "verification.md");
219
+ const paths = getWorkspacePaths(root);
220
+ const verificationPath = path.join(paths.workflowsDir, id, "verification.md");
79
221
  const verification = await fs.readFile(verificationPath, "utf8").catch(() => "");
80
222
  const configured = verification.match(/^Configured checks:\s*(.+)$/m)?.[1]?.trim();
223
+ const report = await writeVerificationReport(id, root);
224
+ const baseLines = [
225
+ `SotuRail workflow verify ${id}`,
226
+ `verify_json: ${relativeToRoot(root, report.paths.json)}`,
227
+ `verify_md: ${relativeToRoot(root, report.paths.markdown)}`,
228
+ `harness_contract: ${report.summary.harnessContract}`,
229
+ `policy_status: ${report.summary.policy}`,
230
+ `evidence_completeness: ${report.summary.evidence}`,
231
+ `diagram_validation: ${report.summary.diagram}`,
232
+ `eval_report: ${report.summary.evalReport}`,
233
+ `release_preflight: ${report.summary.releasePreflight}`
234
+ ];
81
235
  if (!configured || configured === "none yet.") {
82
236
  return [
83
- `SotuRail workflow verify ${id}`,
237
+ ...baseLines,
84
238
  "configured_checks: none",
85
239
  "No commands were run.",
86
240
  "Checklist:",
@@ -90,7 +244,7 @@ export async function verifyWorkflow(id, root = process.cwd()) {
90
244
  ].join("\n") + "\n";
91
245
  }
92
246
  return [
93
- `SotuRail workflow verify ${id}`,
247
+ ...baseLines,
94
248
  `configured_checks: ${configured}`,
95
249
  "SotuRail only runs explicitly configured safe checks through reviewed workflow docs."
96
250
  ].join("\n") + "\n";
@@ -161,6 +315,7 @@ async function updateWorkflow(id, root, patch) {
161
315
  const record = await readWorkflow(id, root);
162
316
  const next = { ...record, ...patch, updated_at: new Date().toISOString() };
163
317
  await writeWorkflowRecord(dir, next);
318
+ await refreshWorkflowIndex(root);
164
319
  return next;
165
320
  }
166
321
  async function writeWorkflowRecord(dir, record) {
@@ -210,6 +365,205 @@ async function appendIfMissing(filePath, content) {
210
365
  await fs.appendFile(filePath, content, "utf8");
211
366
  }
212
367
  }
368
+ async function writeWorkflowPlanRecord(record, root) {
369
+ const paths = getWorkspacePaths(root);
370
+ const dir = path.join(paths.workflowsDir, record.id);
371
+ const plan = {
372
+ schemaVersion: "soturail.workflow.plan.v2",
373
+ id: record.id,
374
+ title: record.title,
375
+ status: record.state,
376
+ phase: "plan",
377
+ createdAt: record.created_at,
378
+ tasks: ["Define the change", "Run explicit verification", "Record evidence"],
379
+ acceptanceGates: ["build", "typecheck", "test", "policy", "evidence"],
380
+ rolePacks: ["planner", "executor", "reviewer"],
381
+ contextRoutes: ["workflow", "code", "security"],
382
+ linkedRunWorkspace: await latestRunWorkspaceId(root),
383
+ evidencePath: relativeToRoot(root, path.join(paths.reportsDir, `evidence_${record.id}.md`))
384
+ };
385
+ await writeJson(path.join(dir, "plan.json"), plan);
386
+ return plan;
387
+ }
388
+ async function writeVerificationReport(id, root) {
389
+ const paths = getWorkspacePaths(root);
390
+ const dir = path.join(paths.workflowsDir, id);
391
+ const queue = await readJsonl(paths.policyQueueFile);
392
+ const decisions = await readJsonl(paths.policyDecisionsFile);
393
+ const failures = await readJsonl(paths.harnessFailuresFile);
394
+ const rawRecords = await readJsonl(paths.rawIndex);
395
+ const reviewPath = path.join(dir, "review.json");
396
+ const diagramValidationPath = path.join(paths.diagramsDir, "validation.json");
397
+ const evalPath = path.join(paths.workspace, "eval", "latest.json");
398
+ const harnessContractPath = path.join(paths.harnessContractsDir, "default.json");
399
+ const releaseNotesPath = await currentReleaseNotesPath(root);
400
+ const jsonPath = path.join(dir, "verify.json");
401
+ const markdownPath = path.join(dir, "verify.md");
402
+ const report = {
403
+ schemaVersion: "soturail.workflow.verify.v1",
404
+ id: `${id}-verify`,
405
+ workflowId: id,
406
+ createdAt: new Date().toISOString(),
407
+ summary: {
408
+ harnessContract: await exists(harnessContractPath) ? "present" : "missing",
409
+ policy: queue.length === 0 ? `clear (${decisions.length} decisions)` : `${queue.length} pending`,
410
+ evidence: rawRecords.length > 0 || failures.length > 0 || await exists(reviewPath) ? "partial" : "needs evidence",
411
+ diagram: await exists(diagramValidationPath) ? "validated" : "not validated",
412
+ evalReport: await exists(evalPath) ? relativeToRoot(root, evalPath) : "missing",
413
+ releasePreflight: releaseNotesPath ? `release notes: ${releaseNotesPath}` : "not release-focused"
414
+ },
415
+ paths: {
416
+ json: jsonPath,
417
+ markdown: markdownPath,
418
+ review: relativeToRoot(root, reviewPath),
419
+ harnessContract: relativeToRoot(root, harnessContractPath),
420
+ policyQueue: relativeToRoot(root, paths.policyQueueFile),
421
+ policyDecisions: relativeToRoot(root, paths.policyDecisionsFile),
422
+ diagramValidation: relativeToRoot(root, diagramValidationPath),
423
+ evalReport: await exists(evalPath) ? relativeToRoot(root, evalPath) : "missing",
424
+ releaseNotes: releaseNotesPath ?? "missing"
425
+ }
426
+ };
427
+ await writeJson(jsonPath, report);
428
+ await fs.writeFile(markdownPath, renderVerifyMarkdown(report), "utf8");
429
+ return report;
430
+ }
431
+ function renderReviewMarkdown(report, record) {
432
+ return [
433
+ `# Workflow Review: ${record.title}`,
434
+ "",
435
+ `workflow_id: ${report.workflowId}`,
436
+ `createdAt: ${report.createdAt}`,
437
+ "",
438
+ ...report.perspectives.flatMap((perspective) => [
439
+ `## ${perspective.name}`,
440
+ "",
441
+ `result: ${perspective.result}`,
442
+ ...perspective.notes.map((note) => `- ${note}`),
443
+ ""
444
+ ])
445
+ ].join("\n");
446
+ }
447
+ function renderVerifyMarkdown(report) {
448
+ return [
449
+ `# Workflow Verification: ${report.workflowId}`,
450
+ "",
451
+ `createdAt: ${report.createdAt}`,
452
+ "",
453
+ "## Summary",
454
+ "",
455
+ ...Object.entries(report.summary).map(([key, value]) => `- ${key}: ${value}`),
456
+ "",
457
+ "## Paths",
458
+ "",
459
+ ...Object.entries(report.paths).map(([key, value]) => `- ${key}: ${value}`),
460
+ ""
461
+ ].join("\n");
462
+ }
463
+ function parsePerspective(value) {
464
+ const normalized = value;
465
+ if (!reviewPerspectives.includes(normalized))
466
+ throw new Error(`Unknown review perspective "${value}". Supported: ${reviewPerspectives.join(", ")}`);
467
+ return [normalized];
468
+ }
469
+ function reviewResultFor(name, changedFiles, failures) {
470
+ if (name === "tests" && changedFiles.length === 0)
471
+ return "warn";
472
+ if (name === "agent-readiness" && failures.length > 0)
473
+ return "warn";
474
+ return "pass";
475
+ }
476
+ function reviewNotesFor(name, record, changedFiles, failures) {
477
+ const common = `Workflow ${record.id} is in state ${record.state}.`;
478
+ const map = {
479
+ security: [common, "Check secrets, raw log exposure, policy queue and MCP exposure before handoff."],
480
+ docs: [common, "Confirm README/docs/release notes reflect changed behavior."],
481
+ tests: [common, changedFiles.length > 0 ? "Changed files detected; verify tests cover the change." : "No changed files detected; add evidence before claiming implementation."],
482
+ release: [common, "Release actions remain manual; npm publish and GitHub release require explicit human action."],
483
+ context: [common, "Use context route/select and role packs instead of dumping the whole repo."],
484
+ "agent-readiness": [common, failures.length > 0 ? "Harness failures exist; convert them into rules/docs/memory/workflow checks." : "No harness failures recorded for this workflow."]
485
+ };
486
+ return map[name];
487
+ }
488
+ async function setCurrentWorkflow(id, root) {
489
+ const paths = getWorkspacePaths(root);
490
+ await writeJson(paths.workflowCurrentFile, { schemaVersion: "soturail.workflow.current.v1", id });
491
+ }
492
+ async function refreshWorkflowIndex(root) {
493
+ const paths = getWorkspacePaths(root);
494
+ const workflows = await listWorkflows(root).catch(() => []);
495
+ await writeJson(paths.workflowIndexFile, { schemaVersion: "soturail.workflow.index.v2", workflows });
496
+ }
497
+ async function requiredCurrentWorkflow(root) {
498
+ const id = await currentWorkflowId(root);
499
+ if (!id)
500
+ throw new Error("No current workflow found. Run: soturail workflow plan \"Task title\"");
501
+ return id;
502
+ }
503
+ async function latestRunWorkspaceId(root) {
504
+ const dir = getWorkspacePaths(root).runsDir;
505
+ const entries = await fs.readdir(dir).catch(() => []);
506
+ return entries.sort().at(-1) ?? null;
507
+ }
508
+ async function currentReleaseNotesPath(root) {
509
+ const packagePath = path.join(root, "package.json");
510
+ const raw = await fs.readFile(packagePath, "utf8").catch(() => "");
511
+ if (!raw)
512
+ return null;
513
+ try {
514
+ const version = JSON.parse(raw).version;
515
+ if (!version)
516
+ return null;
517
+ const notes = path.join(root, "docs", "releases", `RELEASE_NOTES_v${version}.md`);
518
+ return await exists(notes) ? relativeToRoot(root, notes) : null;
519
+ }
520
+ catch {
521
+ return null;
522
+ }
523
+ }
524
+ async function gitChangedFiles(root) {
525
+ const git = await import("node:child_process");
526
+ const util = await import("node:util");
527
+ const execFileAsync = util.promisify(git.execFile);
528
+ try {
529
+ const { stdout } = await execFileAsync("git", ["diff", "--name-only", "--", "."], { cwd: root, timeout: 3000, windowsHide: true });
530
+ return stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean);
531
+ }
532
+ catch {
533
+ return [];
534
+ }
535
+ }
536
+ async function writeFileIfMissing(filePath, content) {
537
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
538
+ if (!(await exists(filePath)))
539
+ await fs.writeFile(filePath, content, "utf8");
540
+ }
541
+ function workflowTemplate(kind) {
542
+ return [
543
+ `# ${kind === "feature" ? "Feature" : "Release"} Workflow Template`,
544
+ "",
545
+ "## Phases",
546
+ "",
547
+ "- setup",
548
+ "- plan",
549
+ "- work",
550
+ "- review",
551
+ "- verify",
552
+ "- evidence",
553
+ "",
554
+ "## Acceptance Gates",
555
+ "",
556
+ "- build",
557
+ "- typecheck",
558
+ "- test",
559
+ "- policy",
560
+ "- evidence",
561
+ ""
562
+ ].join("\n");
563
+ }
564
+ async function exists(filePath) {
565
+ return fs.access(filePath).then(() => true).catch(() => false);
566
+ }
213
567
  function slug(value) {
214
568
  return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 48) || "workflow";
215
569
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-store.js","sourceRoot":"","sources":["../../src/core/workflow-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-store.js","sourceRoot":"","sources":["../../src/core/workflow-store.ts"],"names":[],"mappings":"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"}