open-local-audit 0.65.0 → 0.67.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.
package/dist/workflow.js CHANGED
@@ -6,9 +6,11 @@ import { packageReport } from "./report-pack.js";
6
6
  import { summarizeReviewCsvFile } from "./review.js";
7
7
  import { runShortlistReport } from "./shortlist-runner.js";
8
8
  import { resolveGoogleMapsApiKey } from "./secrets.js";
9
- import { readWorkflowConfig } from "./workflow-config.js";
9
+ import { readWorkflowConfig, workflowConfigFingerprint } from "./workflow-config.js";
10
10
  import { prepareWorkflowManagedDirectories } from "./workflow-paths.js";
11
11
  import { writeWorkflowOutputFile } from "./workflow-output.js";
12
+ import { createWorkflowState, hashWorkflowCheckpoint, transitionWorkflowState, writeWorkflowState } from "./workflow-state.js";
13
+ export { workflowConfigFingerprint } from "./workflow-config.js";
12
14
  export class WorkflowRunError extends Error {
13
15
  summary;
14
16
  constructor(summary) {
@@ -23,7 +25,9 @@ const defaultDependencies = {
23
25
  runShortlistReport,
24
26
  summarizeReviewCsvFile,
25
27
  packageReport,
26
- resolveGoogleMapsApiKey
28
+ resolveGoogleMapsApiKey,
29
+ now: () => new Date(),
30
+ writeWorkflowState
27
31
  };
28
32
  const packageReportFileNames = [
29
33
  "open-local-audit-report.json",
@@ -31,6 +35,7 @@ const packageReportFileNames = [
31
35
  "open-local-audit-report.html",
32
36
  "open-local-audit-report.pdf"
33
37
  ];
38
+ const packageSourceInvalidMarkerLabel = "open-local-audit:package-source-invalid:v1";
34
39
  function slugify(value) {
35
40
  return value
36
41
  .normalize("NFKD")
@@ -101,22 +106,6 @@ async function writePrettyJson(path, value) {
101
106
  async function writeWorkflowSummary(summary) {
102
107
  await writePrettyJson(summary.outputs.workflowSummaryJson, summary);
103
108
  }
104
- function stableJson(value) {
105
- if (Array.isArray(value)) {
106
- return `[${value.map(stableJson).join(",")}]`;
107
- }
108
- if (value && typeof value === "object") {
109
- return `{${Object.entries(value)
110
- .sort(([left], [right]) => left.localeCompare(right))
111
- .map(([key, entry]) => `${JSON.stringify(key)}:${stableJson(entry)}`)
112
- .join(",")}}`;
113
- }
114
- return JSON.stringify(value);
115
- }
116
- function workflowConfigFingerprint(config) {
117
- const { paths: _paths, ...effectiveConfig } = config;
118
- return createHash("sha256").update(stableJson(effectiveConfig)).digest("hex");
119
- }
120
109
  function workflowCheckpointPath(config) {
121
110
  return join(config.outDir, "workflow-checkpoint.json");
122
111
  }
@@ -156,55 +145,72 @@ function isPackageSourceIntegrityId(id, shortlistLeads) {
156
145
  shortlistLeads[index].reportPath.trim().length > 0 &&
157
146
  packageReportFileNames.includes(match[2]));
158
147
  }
159
- async function validateCheckpointPackageSources(config, checkpoint) {
160
- if (!config.packageReports || checkpoint.summary.stages.packaging.status === "success") {
161
- return;
162
- }
163
- for (const [index, lead] of checkpoint.shortlistLeads.entries()) {
164
- if (!lead.reportPath.trim()) {
165
- continue;
166
- }
167
- const source = await resolvePackageInputDir(config.paths.reportsDir, lead.reportPath);
168
- await validatePackageSourceFiles(source.inputDir, source.realInputDir);
169
- for (const fileName of packageReportFileNames) {
170
- const id = packageSourceIntegrityId(index, fileName);
171
- const expectedHash = checkpoint.integrity[id];
172
- const actualHash = await hashManagedFile(join(source.inputDir, fileName));
173
- if ((actualHash && !expectedHash) || (expectedHash && actualHash !== expectedHash)) {
174
- throw new Error("Workflow checkpoint managed artifacts do not match");
175
- }
176
- }
148
+ function packageSourceInvalidMarker(classification) {
149
+ return createHash("sha256").update(`${packageSourceInvalidMarkerLabel}:${classification}`).digest("hex");
150
+ }
151
+ function packageSourceInvalidClassification(error) {
152
+ if (isMissingPath(error)) {
153
+ return "source-directory-missing";
154
+ }
155
+ if (!(error instanceof Error)) {
156
+ return undefined;
157
+ }
158
+ switch (error.message) {
159
+ case "Report path escapes reports directory":
160
+ return "report-path-escapes-reports-directory";
161
+ case "Linked report files are not allowed":
162
+ return "linked-report-file";
163
+ case "Report file escapes input directory":
164
+ return "report-file-escapes-input-directory";
165
+ case "Workflow checkpoint managed artifact must be a regular file":
166
+ return "non-regular-report-file";
167
+ default:
168
+ return undefined;
177
169
  }
178
170
  }
179
- async function addPackageSourceIntegrity(config, summary, shortlistLeads, integrity) {
171
+ async function capturePackageSourceIntegrity(config, summary, shortlistLeads) {
172
+ const integrity = {};
180
173
  if (!config.packageReports || summary.stages.shortlist.status !== "success") {
181
- return;
174
+ return integrity;
182
175
  }
183
176
  for (const [index, lead] of shortlistLeads.entries()) {
184
177
  if (!lead.reportPath.trim()) {
185
178
  continue;
186
179
  }
187
- let source;
188
180
  try {
189
- source = await resolvePackageInputDir(config.paths.reportsDir, lead.reportPath);
190
- }
191
- catch (error) {
192
- if (isMissingPath(error)) {
193
- throw new Error("Checkpoint package source report is missing");
181
+ const source = await resolvePackageInputDir(config.paths.reportsDir, lead.reportPath);
182
+ await validatePackageSourceFiles(source.inputDir, source.realInputDir);
183
+ for (const fileName of packageReportFileNames) {
184
+ const hash = await hashManagedFile(join(source.inputDir, fileName));
185
+ if (!hash && fileName === "open-local-audit-report.json") {
186
+ integrity[packageSourceIntegrityId(index, fileName)] = packageSourceInvalidMarker("required-json-missing");
187
+ continue;
188
+ }
189
+ if (hash) {
190
+ integrity[packageSourceIntegrityId(index, fileName)] = hash;
191
+ }
194
192
  }
195
- throw error;
196
193
  }
197
- await validatePackageSourceFiles(source.inputDir, source.realInputDir);
198
- for (const fileName of packageReportFileNames) {
199
- const hash = await hashManagedFile(join(source.inputDir, fileName));
200
- if (!hash && fileName === "open-local-audit-report.json") {
201
- throw new Error("Checkpoint package source report is missing");
202
- }
203
- if (hash) {
204
- integrity[packageSourceIntegrityId(index, fileName)] = hash;
194
+ catch (error) {
195
+ const classification = packageSourceInvalidClassification(error);
196
+ if (!classification) {
197
+ throw error;
205
198
  }
199
+ integrity[packageSourceIntegrityId(index, "open-local-audit-report.json")] = packageSourceInvalidMarker(classification);
206
200
  }
207
201
  }
202
+ return integrity;
203
+ }
204
+ async function validateCheckpointPackageSources(config, checkpoint) {
205
+ if (!config.packageReports || checkpoint.summary.stages.packaging.status === "success") {
206
+ return;
207
+ }
208
+ const actualIntegrity = await capturePackageSourceIntegrity(config, checkpoint.summary, checkpoint.shortlistLeads);
209
+ const expectedEntries = Object.entries(checkpoint.integrity).filter(([id]) => isPackageSourceIntegrityId(id, checkpoint.shortlistLeads));
210
+ if (expectedEntries.length !== Object.keys(actualIntegrity).length ||
211
+ expectedEntries.some(([id, hash]) => actualIntegrity[id] !== hash)) {
212
+ throw new Error("Workflow checkpoint managed artifacts do not match");
213
+ }
208
214
  }
209
215
  function checkpointArtifactPaths(config, summary) {
210
216
  const paths = {};
@@ -229,7 +235,7 @@ async function createCheckpoint(config, summary, shortlistLeads) {
229
235
  integrity[id] = hash;
230
236
  }
231
237
  }
232
- await addPackageSourceIntegrity(config, summary, shortlistLeads, integrity);
238
+ Object.assign(integrity, await capturePackageSourceIntegrity(config, summary, shortlistLeads));
233
239
  return {
234
240
  version: 1,
235
241
  configFingerprint: workflowConfigFingerprint(config),
@@ -395,41 +401,88 @@ function isWorkflowCheckpoint(value, config) {
395
401
  shortlistLeads.every((lead, index) => !lead.reportPath.trim() ||
396
402
  typeof integrity[packageSourceIntegrityId(index, "open-local-audit-report.json")] === "string")));
397
403
  }
398
- async function readWorkflowCheckpoint(config) {
404
+ async function inspectWorkflowCheckpointInternal(config) {
405
+ const checkpointPath = workflowCheckpointPath(config);
406
+ let content;
407
+ try {
408
+ const info = await lstat(checkpointPath);
409
+ if (!isRegularFile(info)) {
410
+ return { inspection: { kind: "invalid", message: "Workflow checkpoint is missing or invalid" } };
411
+ }
412
+ content = await readFile(checkpointPath);
413
+ }
414
+ catch (error) {
415
+ if (isMissingPath(error)) {
416
+ return { inspection: { kind: "missing" } };
417
+ }
418
+ return { inspection: { kind: "invalid", message: "Workflow checkpoint is missing or invalid" } };
419
+ }
399
420
  let value;
400
421
  try {
401
- value = JSON.parse(await readFile(workflowCheckpointPath(config), "utf8"));
422
+ value = JSON.parse(content.toString("utf8"));
402
423
  }
403
424
  catch {
404
- throw new Error("Workflow checkpoint is missing or invalid");
425
+ return { inspection: { kind: "invalid", message: "Workflow checkpoint is missing or invalid" } };
405
426
  }
406
427
  if (!isWorkflowCheckpoint(value, config)) {
407
- throw new Error("Workflow checkpoint is missing or invalid");
428
+ return { inspection: { kind: "invalid", message: "Workflow checkpoint is missing or invalid" } };
408
429
  }
409
430
  if (value.configFingerprint !== workflowConfigFingerprint(config)) {
410
- throw new Error("Workflow checkpoint does not match the current configuration");
431
+ return { inspection: { kind: "invalid", message: "Workflow checkpoint does not match the current configuration" } };
411
432
  }
412
- for (const [id, path] of Object.entries(checkpointArtifactPaths(config, value.summary))) {
413
- const expectedHash = value.integrity[id];
414
- if (!expectedHash || (await hashManagedFile(path)) !== expectedHash) {
415
- throw new Error("Workflow checkpoint managed artifacts do not match");
433
+ try {
434
+ for (const [id, path] of Object.entries(checkpointArtifactPaths(config, value.summary))) {
435
+ const expectedHash = value.integrity[id];
436
+ if (!expectedHash || (await hashManagedFile(path)) !== expectedHash) {
437
+ throw new Error("Workflow checkpoint managed artifacts do not match");
438
+ }
416
439
  }
440
+ await validateCheckpointPackageSources(config, value);
441
+ }
442
+ catch (error) {
443
+ return {
444
+ inspection: {
445
+ kind: "invalid",
446
+ message: error instanceof Error ? error.message : "Workflow checkpoint managed artifacts do not match"
447
+ }
448
+ };
449
+ }
450
+ const checkpointHash = createHash("sha256").update(content).digest("hex");
451
+ return {
452
+ inspection: { kind: "valid", summary: value.summary, checkpointPath, checkpointHash },
453
+ checkpoint: value
454
+ };
455
+ }
456
+ export async function inspectWorkflowCheckpoint(config) {
457
+ return (await inspectWorkflowCheckpointInternal(config)).inspection;
458
+ }
459
+ async function readWorkflowCheckpoint(config) {
460
+ const { inspection, checkpoint } = await inspectWorkflowCheckpointInternal(config);
461
+ if (inspection.kind === "valid" && checkpoint && inspection.checkpointHash) {
462
+ return { checkpoint, checkpointHash: inspection.checkpointHash };
417
463
  }
418
- await validateCheckpointPackageSources(config, value);
419
- return value;
464
+ throw new Error(inspection.kind === "invalid" ? inspection.message : "Workflow checkpoint is missing or invalid");
420
465
  }
421
- async function throwPersistedWorkflowFailure(summary) {
466
+ async function throwPersistedWorkflowFailure(summary, persistFailedState) {
422
467
  try {
423
468
  await writeWorkflowSummary(summary);
424
469
  }
425
470
  catch {
426
471
  // The workflow failure remains authoritative if its summary cannot be persisted.
427
472
  }
473
+ if (persistFailedState) {
474
+ try {
475
+ await persistFailedState();
476
+ }
477
+ catch {
478
+ // The controlled stage failure remains authoritative if lifecycle state cannot be persisted.
479
+ }
480
+ }
428
481
  throw new WorkflowRunError(summary);
429
482
  }
430
- async function throwStageFailure(summary, stage, error, knownSecrets) {
483
+ async function throwStageFailure(summary, stage, error, knownSecrets, persistFailedState) {
431
484
  markStageFailure(summary, stage, sanitizeErrorMessage(error, knownSecrets));
432
- return throwPersistedWorkflowFailure(summary);
485
+ return throwPersistedWorkflowFailure(summary, persistFailedState);
433
486
  }
434
487
  function markStageFailure(summary, stage, message) {
435
488
  summary.status = "failed";
@@ -566,15 +619,29 @@ export async function runResolvedWorkflow(config, dependencies = {}, options = {
566
619
  ...defaultDependencies,
567
620
  ...dependencies
568
621
  };
569
- const checkpoint = options.resume ? await readWorkflowCheckpoint(config) : undefined;
622
+ const resumeCheckpoint = options.resume ? await readWorkflowCheckpoint(config) : undefined;
623
+ const checkpoint = resumeCheckpoint?.checkpoint;
570
624
  await prepareWorkflowManagedDirectories(config);
571
625
  const summary = checkpoint
572
626
  ? { ...checkpoint.summary, outputs: config.paths, error: undefined, status: "success" }
573
627
  : createInitialSummary(config);
574
628
  let shortlistLeads = checkpoint?.shortlistLeads ?? [];
575
629
  const knownSecrets = [];
576
- try {
577
- if (summary.stages.discovery.status !== "success") {
630
+ let checkpointHash = null;
631
+ let state = {
632
+ ...createWorkflowState(config, summary, resolvedDependencies.now().toISOString()),
633
+ checkpointHash
634
+ };
635
+ const persistState = async (phase, currentStage) => {
636
+ const nextState = transitionWorkflowState(state, { phase, currentStage, checkpointHash, summary }, resolvedDependencies.now().toISOString());
637
+ await resolvedDependencies.writeWorkflowState(config, nextState);
638
+ state = nextState;
639
+ };
640
+ const persistFailedState = () => persistState("failed", summary.error?.stage ?? null);
641
+ await resolvedDependencies.writeWorkflowState(config, state);
642
+ if (summary.stages.discovery.status !== "success") {
643
+ await persistState("running", "discovery");
644
+ try {
578
645
  const googleApiKey = config.discovery.provider === "google-places" ? resolvedDependencies.resolveGoogleMapsApiKey() : undefined;
579
646
  if (googleApiKey) {
580
647
  knownSecrets.push(googleApiKey);
@@ -596,9 +663,17 @@ export async function runResolvedWorkflow(config, dependencies = {}, options = {
596
663
  ...(googleApiKey !== undefined ? { apiKey: googleApiKey } : {})
597
664
  });
598
665
  updateDiscoveryStage(summary, discoveryResult);
599
- await writeWorkflowCheckpoint(config, summary, shortlistLeads);
600
666
  }
601
- if (summary.stages.shortlist.status !== "success") {
667
+ catch (error) {
668
+ await throwStageFailure(summary, "discovery", error, knownSecrets, persistFailedState);
669
+ }
670
+ await writeWorkflowCheckpoint(config, summary, shortlistLeads);
671
+ checkpointHash = await hashWorkflowCheckpoint(config);
672
+ await persistState("running", null);
673
+ }
674
+ if (summary.stages.shortlist.status !== "success") {
675
+ await persistState("running", "shortlist");
676
+ try {
602
677
  const shortlistResult = await resolvedDependencies.runShortlistReport({
603
678
  input: config.paths.leadsCsv,
604
679
  out: config.paths.shortlistCsv,
@@ -609,58 +684,62 @@ export async function runResolvedWorkflow(config, dependencies = {}, options = {
609
684
  });
610
685
  updateShortlistStage(summary, shortlistResult);
611
686
  shortlistLeads = shortlistResult.leads;
612
- await writeWorkflowCheckpoint(config, summary, shortlistLeads);
613
687
  }
614
- if (config.review && summary.stages.review.status !== "success") {
688
+ catch (error) {
689
+ await throwStageFailure(summary, "shortlist", error, knownSecrets, persistFailedState);
690
+ }
691
+ await writeWorkflowCheckpoint(config, summary, shortlistLeads);
692
+ checkpointHash = await hashWorkflowCheckpoint(config);
693
+ await persistState("running", null);
694
+ }
695
+ if (config.review && summary.stages.review.status !== "success") {
696
+ await persistState("running", "review");
697
+ try {
615
698
  const reviewSummary = await resolvedDependencies.summarizeReviewCsvFile(config.review.csv, {
616
699
  staleBefore: config.review.staleBefore
617
700
  });
618
701
  await writePrettyJson(config.paths.reviewSummaryJson, reviewSummary);
619
702
  updateReviewStage(summary, reviewSummary);
620
- await writeWorkflowCheckpoint(config, summary, shortlistLeads);
621
703
  }
622
- if (config.packageReports && summary.stages.packaging.status !== "success") {
623
- summary.packages = { packaged: 0, skipped: 0, failed: 0, entries: [] };
624
- const slugCounts = new Map();
625
- for (const lead of shortlistLeads) {
626
- const packageEntry = await packageLead(config.paths, lead, slugCounts, resolvedDependencies.packageReport, knownSecrets);
627
- summary.packages.entries.push(packageEntry);
628
- if (packageEntry.status === "packaged") {
629
- summary.packages.packaged += 1;
630
- }
631
- else if (packageEntry.status === "skipped") {
632
- summary.packages.skipped += 1;
633
- }
634
- else {
635
- summary.packages.failed += 1;
636
- }
704
+ catch (error) {
705
+ await throwStageFailure(summary, "review", error, knownSecrets, persistFailedState);
706
+ }
707
+ await writeWorkflowCheckpoint(config, summary, shortlistLeads);
708
+ checkpointHash = await hashWorkflowCheckpoint(config);
709
+ await persistState("running", null);
710
+ }
711
+ if (config.packageReports && summary.stages.packaging.status !== "success") {
712
+ await persistState("running", "packaging");
713
+ summary.packages = { packaged: 0, skipped: 0, failed: 0, entries: [] };
714
+ const slugCounts = new Map();
715
+ for (const lead of shortlistLeads) {
716
+ const packageEntry = await packageLead(config.paths, lead, slugCounts, resolvedDependencies.packageReport, knownSecrets);
717
+ summary.packages.entries.push(packageEntry);
718
+ if (packageEntry.status === "packaged") {
719
+ summary.packages.packaged += 1;
637
720
  }
638
- updatePackagingStage(summary);
639
- if (summary.packages.failed > 0) {
640
- summary.status = "failed";
641
- summary.error = {
642
- stage: "packaging",
643
- message: `${summary.packages.failed} package ${summary.packages.failed === 1 ? "entry" : "entries"} failed`
644
- };
645
- await throwPersistedWorkflowFailure(summary);
721
+ else if (packageEntry.status === "skipped") {
722
+ summary.packages.skipped += 1;
723
+ }
724
+ else {
725
+ summary.packages.failed += 1;
646
726
  }
647
- await writeWorkflowCheckpoint(config, summary, shortlistLeads);
648
727
  }
649
- }
650
- catch (error) {
651
- if (error instanceof WorkflowRunError) {
652
- throw error;
728
+ updatePackagingStage(summary);
729
+ if (summary.packages.failed > 0) {
730
+ summary.status = "failed";
731
+ summary.error = {
732
+ stage: "packaging",
733
+ message: `${summary.packages.failed} package ${summary.packages.failed === 1 ? "entry" : "entries"} failed`
734
+ };
735
+ await throwPersistedWorkflowFailure(summary, persistFailedState);
653
736
  }
654
- const failedStage = summary.stages.discovery.status !== "success"
655
- ? "discovery"
656
- : summary.stages.shortlist.status !== "success"
657
- ? "shortlist"
658
- : summary.stages.review.status === "not-run"
659
- ? "review"
660
- : "packaging";
661
- await throwStageFailure(summary, failedStage, error, knownSecrets);
737
+ await writeWorkflowCheckpoint(config, summary, shortlistLeads);
738
+ checkpointHash = await hashWorkflowCheckpoint(config);
739
+ await persistState("running", null);
662
740
  }
663
741
  await writeWorkflowSummary(summary);
742
+ await persistState("completed", null);
664
743
  return summary;
665
744
  }
666
745
  async function packageLead(paths, lead, slugCounts, packageReportDependency, knownSecrets) {
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
@@ -54,8 +54,9 @@ The command writes predictable paths below `outDir`:
54
54
  - `packages/<safe-lead-slug>/` for selected leads with successful report artifacts when packaging is enabled
55
55
  - `workflow-checkpoint.json`
56
56
  - `workflow-summary.json`
57
+ - `workflow-state.json`
57
58
 
58
- The same configuration resolves to the same managed output paths, so rerun destinations are deterministic. Reruns replace only those managed outputs and do not delete unrelated files. Existing operator decisions in the configured review CSV remain authoritative and are preserved by the discovery merge behavior. The checkpoint supports explicit stage-boundary recovery as defined in the [workflow resume contract](./workflow-resume.md).
59
+ The same configuration resolves to the same managed output paths, so rerun destinations are deterministic. Reruns replace only those managed outputs and do not delete unrelated files. Existing operator decisions in the configured review CSV remain authoritative and are preserved by the discovery merge behavior. The checkpoint supports explicit stage-boundary recovery as defined in the [workflow resume contract](./workflow-resume.md). `workflow-state.json` is lifecycle metadata for the [workflow status contract](./workflow-status.md), not part of `WorkflowManagedPaths` or the checkpoint output map.
59
60
 
60
61
  ## Execution Model
61
62
 
@@ -93,9 +94,13 @@ The summary does not include the full configuration, environment variables, API
93
94
  written after successful stage boundaries and contains only the state and
94
95
  integrity records required by `workflow --resume`.
95
96
 
97
+ `workflow-state.json` records the current workflow lifecycle for
98
+ `workflow --status`; its report and persistence limits are defined in the
99
+ [workflow status contract](./workflow-status.md).
100
+
96
101
  ## Compatibility
97
102
 
98
- The existing `discover`, `shortlist`, `review`, and `package-report` commands keep their current flags, outputs, and exit behavior. The workflow command is additive and uses configuration contract version `1` so future incompatible configuration changes can be rejected explicitly. `workflow --check` is also additive: it preflights the same configuration without changing normal workflow execution. Its read-only behavior, exit semantics, and versioned report contract are defined in the [workflow preflight contract](./workflow-preflight.md). `workflow --plan` is likewise additive and does not change normal workflow execution; its execution-plan contract is defined in the [workflow plan contract](./workflow-plan.md). `workflow --resume` is explicit and its checkpoint validation and recovery semantics are defined in the [workflow resume contract](./workflow-resume.md).
103
+ The existing `discover`, `shortlist`, `review`, and `package-report` commands keep their current flags, outputs, and exit behavior. The workflow command is additive and uses configuration contract version `1` so future incompatible configuration changes can be rejected explicitly. `workflow --check` is also additive: it preflights the same configuration without changing normal workflow execution. Its read-only behavior, exit semantics, and versioned report contract are defined in the [workflow preflight contract](./workflow-preflight.md). `workflow --plan` is likewise additive and does not change normal workflow execution; its execution-plan contract is defined in the [workflow plan contract](./workflow-plan.md). `workflow --resume` is explicit and its checkpoint validation and recovery semantics are defined in the [workflow resume contract](./workflow-resume.md). `workflow --status` is additive and its persisted-state contract is defined in the [workflow status contract](./workflow-status.md).
99
104
 
100
105
  ## Verification
101
106