## ADDED Requirements ### Requirement: SOP markdown as secondary format Workflows MAY be defined as `.sop.md` files in addition to YAML. The engine SHALL detect `.sop.md` files during discovery and transpile them to the DAG node representation. #### Scenario: SOP file discovered alongside YAML - **WHEN** a `.sop.md` file exists in the workflows directory alongside `.yaml` workflow files - **THEN** both SHALL be discovered and listed as available workflows #### Scenario: SOP transpiled to prompt nodes - **WHEN** a `.sop.md` file is loaded - **THEN** each `## Steps` section item SHALL become a `prompt:` node - **THEN** `## Parameters` SHALL be extracted as node metadata ### Requirement: RFC 2119 constraint extraction The transpiler SHALL extract RFC 2119 constraints from `**Constraints:**` blocks and embed them in the prompt text of the corresponding node. #### Scenario: Constraints included in prompt - **WHEN** a step has `**Constraints:** - You MUST do X` - **THEN** the constraint text SHALL be appended to the node's prompt ### Requirement: Overview as workflow description The `## Overview` section of a `.sop.md` file SHALL become the workflow's `description` field. #### Scenario: Overview maps to description - **WHEN** a `.sop.md` has `## Overview\nThis SOP does X` - **THEN** the resulting workflow SHALL have `description: "This SOP does X"` ### Requirement: Parameter acquisition constraints The transpiler SHALL validate that all required parameters from `## Parameters` are present before execution, using the constraint pattern from the SOP. #### Scenario: Missing required parameter - **WHEN** a required parameter has no value provided - **THEN** the workflow SHALL prompt the user for the missing parameter before executing