export interface PipelineStage { /** Stable id an agent can branch on. */ id: string; /** One-line human name. */ name: string; /** Scope: a project-level prerequisite, or a per-episode step. */ scope: 'project' | 'episode'; /** What running this stage produces on disk. */ produces: string; /** * The gate that must clear before this stage can run, if any. Gates are * explicit human decisions and are NOT bypassable by an agent — the * `--skip-*` flags exist for a human who accepts the risk, and do not make * the underlying condition true. */ gate?: string; /** Literal command that advances this stage. `<...>` marks a value to fill. */ command: string; } /** * The canonical order. Project prerequisites gate everything downstream, then * each episode walks its own steps. Two gates — `approve-script` and * `qa-approve` — are explicit human sign-offs. */ export declare const PIPELINE_STAGES: readonly PipelineStage[]; /** * An alternate entry point that is NOT part of the linear order above. Branches * are reachable once their `availableAfter` stage is done, run OUTSIDE the gate * sequence, and an agent walking `PIPELINE_STAGES` will never be told they * exist — which is exactly why they are stated here as data too. `pipeline` * prints them and `pipeline --json` emits them under `branches`. */ export interface PipelineBranch { /** Stable id an agent can branch on. */ id: string; /** One-line human name. */ name: string; /** The stage id after which this branch becomes available. */ availableAfter: string; /** What it does and how it differs from the linear path. */ summary: string; /** Any gate it skips or precondition it needs. */ note?: string; /** Literal command that runs it. `<...>` marks a value to fill. */ command: string; } export declare const PIPELINE_BRANCHES: readonly PipelineBranch[]; export declare function pipelineAsJson(): { version: 1; stages: readonly PipelineStage[]; branches: readonly PipelineBranch[]; }; export declare function formatPipeline(): string; //# sourceMappingURL=pipeline.d.ts.map