Disagreements & proposals

How Cerevisor surfaces proposed profile updates, how you accept or reject, and what happens when a proposal conflicts with an existing preference.

The harness never silently rewrites your user profile. When it thinks something should change, it submits a proposal, visible in the Memory view → Proposals tab, and waits for you to act on it.

When a proposal would conflict with something you've explicitly stated, it's escalated to a disagreement and queued under the Disagreements tab.

How proposals get created

After a run (or a chat-builder session), the harness may notice something proposal-worthy:

  • A learning an agent saved mid-run suggests a stable preference.
  • A pattern has repeated across runs.
  • Something you said in chat implies a lasting preference.

Each proposal targets one of the four sections of your profile (Domain encoding, Work calibration, Behavioural preferences, Artefact patterns) and carries:

  • The suggested addition (the exact text that would be appended to that section).
  • The rationale (why the harness thinks it's true).
  • The source (the entry, pattern, disagreement, or conversation that triggered it).
  • A confirmations count. If the harness sees the same signal again later, it doesn't file a duplicate; it bumps the existing proposal's count and records the corroborating source.

The Proposals tab

Similar proposals are grouped into themes so a busy queue stays readable. Actions:

  • Accept: appends the suggested text to the target profile section. Accepted text lands inside a clearly-marked harness-proposed block, so it stays distinct from prose you wrote yourself.
  • Reject: discards the proposal. The harness remembers the rejection and won't auto-apply anything similar later.
  • Delete: removes a proposal (or the whole queue) entirely.

You can also accept or dismiss a whole theme at once. There's no deadline: pending proposals just stay in the queue until you act.

Guarded auto-apply

The Memory view → Health tab shows how many pending proposals are auto-eligible: confirmed at least 3 times, with high classifier confidence, not touching the sensitive Domain encoding section, no similar proposal previously rejected, and no open disagreement in the same area. A button on that tab applies all eligible proposals in one click. Nothing is applied without you pressing it.

Disagreements

If a proposal would change something you've already stated explicitly, it becomes a disagreement.

Example: your profile says "prefer concise summaries." The harness's observations suggest you actually keep asking for detailed step-by-step output.

That's a disagreement. It's queued in the Disagreements tab with both sides shown: your stated preference and the harness's observation, each with its evidence.

Resolution actions:

  • User right: your stated preference stands; the observation is set aside.
  • Harness right: the observation wins; your profile gets updated accordingly.
  • Both right: both hold in different contexts; the record is archived without overwriting either.

Resolved disagreements are archived (kept under memory/disagreements/) so you can review past resolutions any time.

When to engage

Don't feel obligated to action every proposal immediately. They queue, and repeated signals strengthen an existing proposal instead of multiplying it. Review the queue weekly, monthly, whenever.

Manual proposal

You don't need to write proposals manually. If you want to update your profile, just edit it directly in the User tab.

The proposal system exists for the harness's side of the loop, not yours.

Auditability

Every proposal is kept on disk under ~/.cerevisor/memory/profile-proposals/ as a readable markdown file whose status (pending, accepted, rejected, superseded) and decision timestamp live in its frontmatter. Accepted proposals also record a snapshot of exactly what text was appended, so history stays accurate even if you edit the section afterward.

Back to docs