Files
boocode/openspec/changes/archived/2026-06-07-hybrid-workflow-engine/specs/script-execution/spec.md
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: Inline script execution

Script nodes SHALL execute inline TypeScript (runtime: bun) or Python (runtime: uv) code and capture stdout as the node output.

Scenario: Bun inline execution

  • WHEN a script node has runtime: bun and script: console.log("hello")
  • THEN the executor SHALL run the script via bun -e
  • THEN stdout SHALL be captured as $nodeId.output

Scenario: Python inline execution

  • WHEN a script node has runtime: uv and script: print("hello")
  • THEN the executor SHALL run the script via uv run python -c
  • THEN stdout SHALL be captured as $nodeId.output

Requirement: Dependency installation

Script nodes SHALL support a deps: array that installs dependencies before execution.

Scenario: Bun with npm deps

  • WHEN a script node has runtime: bun and deps: ["lodash", "zod"]
  • THEN the executor SHALL run bun install lodash zod before executing

Scenario: Python with pip deps

  • WHEN a script node has runtime: uv and deps: ["requests", "click"]
  • THEN the executor SHALL run uv pip install requests click before executing

Requirement: Named script files

Script nodes MAY reference named scripts from a .archon/scripts/ directory by name instead of inline code.

Scenario: Named script discovery

  • WHEN a script node has script: analyze and scripts/analyze.ts exists
  • THEN the executor SHALL load and execute the file

Scenario: Runtime inferred from extension

  • WHEN a script has runtime: bun and the named file has a .ts extension
  • THEN the executor SHALL run it via bun run

Requirement: Script timeout

Script nodes SHALL support a timeout: field in milliseconds. If execution exceeds the timeout, the process SHALL be killed and the node SHALL fail.

Scenario: Timeout exceeded

  • WHEN a script node sets timeout: 5000 and the script runs for 10 seconds
  • THEN the process SHALL be killed after 5 seconds
  • THEN the node SHALL be marked as failed with a timeout error