/** * Defines a quality gate that must be passed for task completion */ export interface QualityGate { /** Unique identifier for the gate */ id: string; /** Human-readable name */ name: string; /** Description of what this gate checks */ description: string; /** Type of quality check */ type: "test" | "lint" | "build" | "coverage" | "custom"; /** Command to execute for this gate (optional for custom gates) */ command?: string; /** Expected output pattern (optional, for validation) */ expectedOutput?: string | RegExp; /** Whether this gate must pass for completion */ required: boolean; /** Execution order (lower numbers run first) */ order: number; } /** * Result of running a quality gate */ export interface QualityGateResult { /** ID of the gate that was run */ gateId: string; /** Name of the gate */ gateName: string; /** Whether the gate passed */ passed: boolean; /** Output from running the gate */ output?: string; /** Error message if gate failed */ error?: string; /** Duration in milliseconds */ duration: number; }