Files
indifferentketchup c935687725 chore(openspec): drop 9 superseded proposals + 11 stub archive files
Drop 9 batch proposals that are superseded by the boocode-lift-analysis
(boocontext-audit, conductor upgrades, self-healing/verify-gate skills):
add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform,
conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul,
agent-reliability.

Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only)
that provide zero documentation value over the existing CHANGELOG.md + git tags.
2026-06-07 22:15:38 +00:00

2.0 KiB

ADDED Requirements

Requirement: Run states

A workflow run SHALL transition through states: pending → running → completed | failed | cancelled. It MAY transition to paused for approval gates.

Scenario: Normal completion

  • WHEN all DAG nodes complete successfully
  • THEN the run status SHALL be completed

Scenario: Node failure

  • WHEN a node fails and no retry succeeds
  • THEN the run status SHALL be failed

Scenario: User cancellation

  • WHEN a user cancels a running workflow
  • THEN the run status SHALL be cancelled

Scenario: Approval pause

  • WHEN an approval node is reached
  • THEN the run status SHALL transition to paused
  • THEN it SHALL transition back to running on approval

Requirement: Resume from failure

A failed workflow SHALL support resumption, skipping already-completed nodes using stored outputs from the event log.

Scenario: Resume skips completed nodes

  • WHEN a failed workflow has 2 completed nodes out of 5
  • THEN resuming SHALL skip nodes 1-2 and re-execute from node 3

Scenario: Resume with always_run

  • WHEN a node has always_run: true and the workflow is resumed
  • THEN the node SHALL re-execute even if it completed previously

Requirement: Event-based observability

All lifecycle transitions SHALL emit typed events through the event emitter for observability and external subscribers.

Scenario: Events for every state transition

  • WHEN a workflow starts
  • THEN a workflow_started event SHALL be emitted
  • WHEN a workflow completes
  • THEN a workflow_completed event SHALL be emitted
  • WHEN a node starts/completes/fails/skips
  • THEN corresponding node events SHALL be emitted

Requirement: Cleanup

The engine SHALL support cleaning up old workflow runs and their artifacts.

Scenario: Cleanup by age

  • WHEN cleanup is invoked with a retention period (default 7 days)
  • THEN runs older than the retention period SHALL have their artifacts removed
  • THEN run records MAY be pruned from the store