Add use_pipeline step type for pipeline composition#10
Merged
Conversation
Enable referencing and executing another pipeline YAML as a sub-pipeline, passing inputs from the parent and receiving outputs back. This allows pipelines to be composed as reusable building blocks. - Add UsePipeline and Inputs fields to StepEntry with YAML aliases - Add validation for use_pipeline steps in PipelineConfigLoader - Create UsePipelineStep composite step with circular reference detection via AsyncLocal<ImmutableHashSet<string>>, isolated child context, input mapping, output merging, and optional support - Wire into StepBuilder and PipelineExecutor dispatch - Add sub-pipeline rendering methods to PipelineRenderer - Add 26 tests (StepEntry discriminators, validation, UsePipelineStep) - Add example use-pipeline YAML files (main.yml + analysis.yml) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Upgrade Spectre.Console to 0.54/0.53.1 and MS Extensions to 10.0.3 - Adapt to Spectre.Console.Cli CancellationToken breaking change - Treat empty/whitespace model strings as null to prevent blank --model args - Improve sub-pipeline completion rendering with step count - Pin .NET SDK 10.0.103 via global.json - Add publish profile for self-contained win-x64 builds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Match the exact SDK version from global.json instead of using preview quality channel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Publish profiles contain local paths and should not be in source control. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
use_pipelinestep type that loads and executes another pipeline YAML as a sub-pipeline, enabling pipeline composition and reuseinputs:mapping from parent context (with{{steps.xxx}}template resolution) and output merging back into the parent (with/withoutoutput_key, respects childoutputs:section)AsyncLocal<ImmutableHashSet<string>>— safe across async/parallel boundariesoptional: truesupport — child pipeline failure converts toSkippedExample usage
Test plan
dotnet buildcompiles without errorsdotnet test— all 137 tests pass (26 new)dotnet run --project CodeGenesis.Engine -- run-pipeline examples/use-pipeline/main.yml🤖 Generated with Claude Code