pub struct Proposal {
pub id: String,
pub domain: String,
pub status: String,
pub reflexion_ids: Vec<String>,
pub rules_before: Vec<Rule>,
pub rules: Vec<Rule>,
pub evidence: String,
pub created_at: String,
pub resolved_at: Option<String>,
pub reason: Option<String>,
}Expand description
A rule change waiting for the user, with the evidence that argues for it.
The hyperagent gate, made concrete: unattended learning may propose a
rewritten rule set, but the live learned.toml changes only when a human
accepts — a self-improvement loop must never apply its own output. The
proposal carries rules_before as well as rules, so the diff shown at
review time is the diff that was measured, and acceptance can detect that
the live rules moved underneath it in the meantime.
Fields§
§id: String§domain: String§status: Stringpending | accepted | rejected | rejected_by_gate.
reflexion_ids: Vec<String>The reflections this proposal was learned from. Marked processed only when the proposal is resolved — a rejected-by-gate set returns to the pool and is re-argued when the pool changes.
rules_before: Vec<Rule>The learned rules as they stood when the candidate was generated.
rules: Vec<Rule>The candidate rule set.
evidence: StringWhat the gate measured, human-readable. Empty means nothing in the batch was trace-gradeable — review by reading, not by score.
created_at: String§resolved_at: Option<String>§reason: Option<String>