paqad-ai
Version:
Spec-driven development framework — AI agents that think before they type
45 lines (42 loc) • 1.83 kB
TypeScript
import { P as ProjectProfile } from './project-profile-7DPOPQrC.js';
declare const FEATURE_DEVELOPMENT_STAGE_NAMES: readonly ["ticket_intake", "planning", "specification", "development", "review", "checks", "documentation_sync", "delivery"];
type FeatureDevelopmentStageName = (typeof FEATURE_DEVELOPMENT_STAGE_NAMES)[number];
declare const FEATURE_DEVELOPMENT_ESCALATION_ACTIONS: readonly ["warn", "ask", "stop", "defer"];
type FeatureDevelopmentEscalationAction = (typeof FEATURE_DEVELOPMENT_ESCALATION_ACTIONS)[number];
type FeatureDevelopmentLogicalCommand = keyof ProjectProfile['commands'];
interface FeatureDevelopmentChecksPolicy {
use_project_profile_commands: boolean;
commands: FeatureDevelopmentLogicalCommand[];
shell_commands: string[];
block_on_failure: boolean;
}
interface FeatureDevelopmentRuleCompliancePolicy {
enabled: boolean;
mode: 'off' | 'warn' | 'strict';
scope: 'changed-files' | 'whole-tree';
diff_scope: boolean;
cache_path: string;
escalation: FeatureDevelopmentEscalationAction;
}
interface FeatureDevelopmentStagePolicy {
read: string[];
instructions: string[];
required_inputs: string[];
strictness: Record<string, boolean>;
escalation: Record<string, FeatureDevelopmentEscalationAction>;
artifacts: string[];
checks: FeatureDevelopmentChecksPolicy | null;
rule_compliance?: FeatureDevelopmentRuleCompliancePolicy;
}
interface FeatureDevelopmentRoundsPolicy {
fast?: number;
graduated?: number;
full?: number;
}
interface FeatureDevelopmentPolicy {
schema_version: '1';
merge_mode: 'append';
stages: Record<FeatureDevelopmentStageName, FeatureDevelopmentStagePolicy>;
rounds?: FeatureDevelopmentRoundsPolicy;
}
export type { FeatureDevelopmentPolicy as F, FeatureDevelopmentStageName as a };