proposal
proposal: {
id?: string;
title: string;
description: string;
algorithm:
| "simple_majority"
| "supermajority"
| "unanimous"
| "proof_of_learning"
| "opinion_wise"
| "higher_order";
timeout?: number;
requiredVoters?: string[];
metadata?: Record<string, unknown>;
createdAt?: string;
}
status
status: "timeout" | "closed" | "pending" | "rejected" | "voting" | "approved"
votes
votes: Map<
string,
{
decision: "approve"
| "reject"
| "abstain";
reasoning: string;
confidence: number;
conditions?: string[];
rejectionCategories?: (
| "YAGNI"
| "DRY_VIOLATION"
| "OVER_ENGINEERING"
| "SCOPE_CREEP"
| "SECURITY_RISK"
| "MISALIGNED"
| "INSUFFICIENT_EVIDENCE"
)[];
findings?: {
summary: string;
location: string;
severity: "low"
| "medium"
| "high"
| "critical";
gate: {
reread_cited_line: "failed" | "skipped" | "passed";
traced_call_path: "failed" | "skipped" | "passed";
named_assertion: string;
ruled_out_language_non_issue: "failed" | "skipped" | "passed";
};
claim: string;
}[];
timestamp?: string;
},
>
voteWeights
voteWeights: Map<string, number>
OptionaltimeoutId
timeoutId?: Timeout
OptionalexpansionRounds
expansionRounds?: number
Internal proposal state managed by the engine.