/** * Parallel Branch handling — manages the Test Case Authoring ∥ Contract * parallel fork after Spec Review Gate passes (ADR-004). * * Rules: * - spec-review-gate passed → activate both 'contract' and 'test-case-authoring' * - contract-review-gate only waits for 'contract' (not test-case-authoring) * - 'implement' requires BOTH contract-review-gate passed AND test-case-authoring passed * (if test-case-authoring not passed yet → implement stays blocked) * - smoke-test passed → activate both 'ux-acceptance' and 'pm-commercial-review' * - 'regression' requires BOTH ux-acceptance AND pm-commercial-review passed (parallel join) */ import type { StageId, PipelineState } from '../types/index.js'; import { PARALLEL_FORK_AFTER_SPEC_REVIEW } from '../constants.js'; export { PARALLEL_FORK_AFTER_SPEC_REVIEW }; /** For a given stage, return prerequisite stages that must be 'passed' before it can activate. */ export declare function getPrerequisites(stageId: StageId, requiredStages: StageId[]): StageId[]; /** Check whether all prerequisites for a stage are satisfied (status === 'passed'). */ export declare function arePrerequisitesMet(stageId: StageId, state: PipelineState): boolean; /** * Determine which pending stages should be activated next given current state. * Returns stage IDs that are pending and have all prerequisites met. */ export declare function getActivatableStages(state: PipelineState): StageId[]; /** * Determine if 'implement' should be blocked because test-case-authoring * is still in progress (ADR-004 blocking rule). */ export declare function shouldBlockImplement(state: PipelineState): boolean; //# sourceMappingURL=parallel-branch.d.ts.map