/** * Custom Quality Gates Configuration (Minimal) * * Supports configurable custom quality gates for workflow stages via .omx-config.json qualityGates property. * * Schema: * { * "qualityGates": { * "deep-interview": ["skill-name" | {skill, mode?, model?}, ...], * "ralplan": ["skill-name" | {skill, mode?, model?}, ...], * "code-review": ["skill-name" | {skill, mode?, model?}, ...] * } * } * * Gates are native subagents that run alongside standard reviewers. * Missing skills produce visible warnings and are skipped. */ /** * Workflow stage where quality gates apply * - 'deep-interview': deep-interview final-spec stage * - 'ralplan': ralplan Architect→Critic review (consensus mode, also used by $plan) * - 'code-review': code-review stage */ export type QualityGateStage = 'deep-interview' | 'ralplan' | 'code-review'; /** * Gate entry: either a skill name string or a gate configuration object */ export type QualityGateEntry = string | QualityGateObject; /** * Gate configuration object */ export interface QualityGateObject { /** Skill name (kebab-case) */ skill: string; /** Gate mode: 'blocking' (default) or 'advisory' */ mode?: 'blocking' | 'advisory'; /** Optional subagent model override */ model?: string; } /** * Normalized gate entry (internal representation) */ export type NormalizedGate = { skill: string; mode: 'blocking' | 'advisory'; model?: string; }; /** * Quality gates configuration from .omx-config.json * Maps stage names to arrays of gate entries (strings or objects) */ export interface QualityGatesConfig { /** Quality gates for the deep-interview final-spec stage */ 'deep-interview'?: QualityGateEntry[]; /** Quality gates for the ralplan Architect→Critic review stage */ 'ralplan'?: QualityGateEntry[]; /** Quality gates for the code-review stage */ 'code-review'?: QualityGateEntry[]; } /** * Validate skill name: must be kebab-case, not reserved, not sunset */ export declare function validateSkillName(skill: string): { valid: boolean; error?: string; }; /** * Normalize a gate entry (string or object) to the standard internal representation */ export declare function normalizeGateEntry(entry: unknown): NormalizedGate | null; /** * Read quality gates configuration from .omx-config.json * Reads from both project ./.omx-config.json (if cwd provided) and $CODEX_HOME/.omx-config.json * Project config takes precedence over CODEX_HOME config for the same stage */ export declare function readQualityGatesConfig(codexHomeOverride?: string, cwd?: string): QualityGatesConfig | null; /** * Get normalized quality gates for a specific stage * Returns array of validated and normalized gate entries * Reads from both project and CODEX_HOME config with project taking precedence */ export declare function getGatesForStage(stage: QualityGateStage, codexHomeOverride?: string, cwd?: string): NormalizedGate[]; /** * Validate all gates in the configuration file * Returns validated gates and list of validation errors * Reads from both project and CODEX_HOME config with project taking precedence */ export declare function validateAllQualityGates(codexHomeOverride?: string, cwd?: string): { gates: NormalizedGate[]; errors: Array<{ stage: QualityGateStage; skillIndex: number; entry: string; error: string; }>; }; //# sourceMappingURL=quality-gates.d.ts.map