feat(workflow): execution_plan artifact kind + schema + architect prompt

Add docs/schemas/execution_plan.json (goal/stages/edges), the
architect_freestyle prompt that instructs emitting the execution pipeline as
JSON, and register the execution_plan llm-emitted kind in both
artifacts.config.toml and sample-config.toml. Validated via
ExecutionPlanSchemaValidationTest (minimal plan passes; missing stages rejected).
This commit is contained in:
2026-06-08 02:20:45 +04:00
parent 1b9896d2fa
commit be78eaa80f
5 changed files with 177 additions and 0 deletions
+5
View File
@@ -134,3 +134,8 @@ backend = "in_memory" # or "turbovec"
# The bundled examples/workflows/review_loop.toml uses this kind: the reviewer emits a
# review_report whose `verdict` field gates the implementer↔reviewer loop via
# artifact_field_equals transitions. See docs/schemas/review_report.json for the schema.
[[artifacts]]
id = "execution_plan"
schema_path = "schemas/execution_plan.json"
llm_emitted = true
+45
View File
@@ -0,0 +1,45 @@
{
"type": "object",
"properties": {
"goal": { "type": "string" },
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"role": { "type": "string" },
"prompt": { "type": "string" },
"needs": { "type": "array", "items": { "type": "string" } },
"produces": { "type": "string" },
"tools": { "type": "array", "items": { "type": "string" } }
},
"required": ["id", "prompt", "produces"]
}
},
"edges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": { "type": "string" },
"to": { "type": "string" },
"condition": {
"type": "object",
"properties": {
"type": { "type": "string" },
"artifact_id": { "type": "string" },
"field": { "type": "string" },
"value": { "type": "string" },
"operator": { "type": "string" }
},
"required": ["type"]
}
},
"required": ["from", "to", "condition"]
}
}
},
"required": ["goal", "stages", "edges"],
"additionalProperties": true
}