Skip to main content
Your profiles and business_context.md are injected into every briefing and outrank anything the agent infers from store data. So the agent is not allowed to write them. Instead it files a patch: here is the field, here is what it says now, here is what I think it should say, and here’s why. You apply it, edit it first, or dismiss it. That asymmetry is the whole design — an agent that could edit its own ground truth would turn one wrong inference into a permanent fact and then keep confirming it. Review them in Settings → Business, above the profile forms.

What a patch looks like

A document patch targets a section rather than the whole file (business_context.md › How we make money), so applying it is surgery on that heading and not a rewrite of your prose. Patches are fingerprinted on target plus proposed value, so a weekly job can’t grow the queue a near-duplicate row every Monday.

Where they come from

Proposing works in read mode — it isn’t a mutation, and a failed proposal never fails the briefing that produced it.

Why drift and promotion run weekly

Nothing else ages your context out. Without the drift audit, a repositioning you made in March quietly poisons every briefing after it. And facts are retrieved while profiles are injected — so a rule that lives only as a fact is a rule the agent forgets the moment the retriever ranks it below something newer. Promotion moves standing rules where they belong. When an app-scoped source ends up needing changes, it raises the same knowledge_drift signal as anomalies, so it lands in your “needs attention” queue instead of waiting to be discovered.

Reviewing

Three outcomes per patch:
  • Apply — writes the value. The row becomes source: user, because you decided; a document patch records a revision under your name.
  • Edit, then apply — the common case. A proposal is usually directionally right and phrased slightly wrong, so you fix the wording and apply that instead.
  • Dismiss — rejected, and it won’t come back with the same fingerprint.
If the target changed after the patch was written, apply returns a conflict showing what the field says now. Nothing is written; the patch stays pending so the decision you’re in the middle of still has something to act on. Applying never deletes the Vault fact behind a promotion. The fact carries provenance and a timestamp the profile field doesn’t, and a duplicated standing truth costs a few tokens where a lost one costs a wrong recommendation.

Two rules that are easy to get wrong

Promote the rule, not the evidence. Most facts are written as findings — “adding a paywall dropped downloads 63%”. The standing truth is “don’t gate downloads behind a paywall”; the number will be stale within a quarter and would sit in every future briefing as if it were current. Append is not replace. An append adds a line and can’t destroy an edit, so it isn’t blocked by a conflict. Otherwise every queued constraint would conflict the moment you touched that field — which is exactly what these proposals are asking you to go do.

Deriving fields from your prose

The Update fields button on Settings → Business reads business_context.md and maps it onto the profile fields. It runs when you ask, not while you’re typing, because it can both write and queue.
  • Empty fields are filled directly. There is nothing to lose and no conflict to review.
  • Fields that disagree become patches. You see your value against the proposed one.
  • Low-confidence findings are dropped below a 0.55 floor.
  • Rewordings are rejected. A proposal that restates your value with less detail in it is thrown away rather than queued — except for factual fields (company name, website, stage, business model, monetization, pricing) where replacing the old value is the point.
teamSize and primaryMarkets are deliberately never extracted: a document that mentions “we’re a team of three” or names a country is far more likely describing a customer than a fact about your company.