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

50 lines
1.7 KiB
Markdown

## ADDED Requirements
### Requirement: Pregel execution engine
The system SHALL implement a Pregel-style superstep execution engine where:
- Each "superstep" executes all ready nodes concurrently
- Nodes communicate through typed channels (not direct function calls)
- Channel writes from one superstep are visible as reads in the next
- The engine supports `PULL` (edge-triggered) and `PUSH` (dynamic Send) task scheduling
#### Scenario: Nodes execute in dependency order
- **WHEN** node B subscribes to channel A
- **THEN** node B SHALL execute in the superstep after node A writes to channel A
#### Scenario: Concurrent nodes run in parallel
- **WHEN** two nodes have no dependencies between them
- **THEN** they SHALL execute concurrently within the same superstep
#### Scenario: Dynamic Send spawns new node executions
- **WHEN** a node calls `send("node_c", { ... })` via `Command`
- **THEN** `node_c` SHALL be scheduled for execution in the current or next superstep
### Requirement: Graph compilation
The system SHALL provide `graph.compile()` that produces a runnable compiled graph.
Parameters:
- `checkpointer?: Checkpointer` — optional persistence
- `interruptBefore?: string[]` — nodes to pause before
- `interruptAfter?: string[]` — nodes to pause after
- `name?: string` — graph name
#### Scenario: Compiled graph can be invoked
- **WHEN** `compiled_graph.invoke({ messages: [] })` is called
- **THEN** it SHALL execute all nodes and return the final state
### Requirement: Recursion limit
The system SHALL enforce a configurable recursion limit to prevent infinite loops.
#### Scenario: Exceeding recursion limit throws
- **WHEN** a graph exceeds the recursion limit
- **THEN** a `GraphRecursionError` SHALL be thrown