/** Artifact kinds produced/consumed by each role transition */
export type ArtifactKind = 'intake' | 'spec.lock' | 'review_feedback' | 'implementation-report' | 'validation-report';
/** Triagier → Elicitor: describes the intent to be elaborated */
export interface IntakeV1 {
    schema_version: string;
    kind: 'idea' | 'quick-fix' | 'bug-spec' | 'feature-spec' | 'epic';
    description: string;
    confidence: number;
    rationale: string;
    suggestedSpecId?: string;
    createdAt: string;
}
/** Planner → Reviewer: spec snapshot frozen for review */
export interface SpecLockV1 {
    schema_version: string;
    specId: string;
    frontmatterSha: string;
    approvedBy: string;
    plannerToken: string;
    scenarios: {
        title: string;
        done: boolean;
    }[];
    lockedAt: string;
}
/** Reviewer → Planner: structured feedback from code review */
export interface ReviewFeedbackV1 {
    schema_version: string;
    specId: string;
    verdict: 'approved' | 'changes-requested';
    reviewer: {
        kind: 'spec-review-agent' | 'human' | 'automation';
        agent: string;
        verdict: 'approved' | 'changes-requested';
    };
    blockers: string[];
    suggestions: string[];
    body: string;
    reviewedAt: string;
}
/** Implementer → Validator: result of implementation run */
export interface ImplementationReportV1 {
    schema_version: string;
    specId: string;
    commitSha: string;
    filesChanged: string[];
    testsRun: number;
    testsPassed: number;
    completedAt: string;
}
/** Validator → Releaser: gate-level validation result */
export interface ValidationReportV1 {
    schema_version: string;
    specId: string;
    passed: boolean;
    gates: {
        name: string;
        passed: boolean;
        reason?: string;
    }[];
    reviewer: {
        kind: 'implementation-review-agent' | 'human' | 'automation';
        agent: string;
        verdict: 'approved' | 'changes-requested';
    };
    specCompliance?: {
        score: number;
        command: string;
        scenarios: {
            title: string;
            verdict: 'pass' | 'fail' | 'missing';
            evidence: string[];
        }[];
    };
    score?: number;
    completedAt: string;
}
export interface ArtifactPayloadMap {
    intake: IntakeV1;
    'spec.lock': SpecLockV1;
    review_feedback: ReviewFeedbackV1;
    'implementation-report': ImplementationReportV1;
    'validation-report': ValidationReportV1;
}
export type ArtifactPayload<K extends ArtifactKind> = ArtifactPayloadMap[K];
//# sourceMappingURL=handoff-artifacts.d.ts.map