package app import ( "context" "gitea.maximumdirect.net/eric/narratio/internal/config" "gitea.maximumdirect.net/eric/narratio/internal/stage" ) // executeStages keeps runner tests focused on controlled stage doubles. The // production command path always supplies one validated BoundedPlan directly. func executeStages(ctx context.Context, cfg *config.Config, stages []stage.Stage, opts RunOptions) (*RunSummary, error) { plan := BoundedPlan{stages: append([]stage.Stage(nil), stages...)} return executePlan(ctx, cfg, plan, opts) }