1.9 KiB
1.9 KiB
infrastructure/workflow/
Purpose
Workflow and prompt loading adapters. Parses TOML workflow definitions into core:transitions execution plans (TomlWorkflowLoader, ExecutionPlanCompiler), loads prompt files from the filesystem (FileSystemPromptLoader), and validates plan structure (PlanLinter).
Ownership
Adapter for core:transitions and core:inference workflow interfaces. Depends on core:transitions, core:inference, core:events, core:artifacts. Uses Jackson for TOML parsing.
Local Contracts
WorkflowLoader(implemented byTomlWorkflowLoader) is the interface for reading workflow definitions; implementations must not embed domain logic beyond parsing and structural validation.PromptLoader(implemented byFileSystemPromptLoader) reads prompt text from disk; filesystem reads are environment observations — callers must record the loaded content as events if replay must reproduce the exact prompt (invariant #9).ExecutionPlanCompilerconverts the parsedExecutionPlanModelinto a runnable plan forcore:transitions; compilation is deterministic given the same input model.PlanLinterenforces structural rules (e.g. unreachable stages are rejected); linting failures throwWorkflowValidationException.PlanDerivedManifestexposes the write manifest derived from a plan.- For a plan with no explicit build expectation,
ExecutionPlanCompilermarks every write-declaring stage for the runtime auto build gate; plans with no declared writes are not represented as compiler-verified.
Work Guidance
Standard adapter rules apply (see parent AGENTS.md). Filesystem I/O in withContext(Dispatchers.IO). TOML parsing errors must be surfaced as WorkflowValidationException, not raw Jackson exceptions.
Verification
./gradlew :infrastructure:workflow:test --rerun-tasks
Child DOX Index
No child AGENTS.md (leaf module).