meta_save_learning
Record a learning: `statement` is the WHY — what changed in the viewer's mind, brand-specific, still true with the numbers removed — not what happened (that is `observation`).
write meta_save_learning
Record a learning: statement is the WHY — what changed in the viewer's mind, brand-specific, still true with the numbers removed — not what happened (that is observation). scope names the Values it applies to ({ dimension, valueId }; a closed Dimension takes its word) — read AND across Dimensions, OR within one, so two angles plus a persona compares the angles for that persona. The app computes the evidence from the scope; no numbers are taken. Status is set by the app: it starts as a hypothesis, or supported / refuted when testId (or a proposalKey) names a concluded Test. Returns check.looksLikeObservation — true when the statement reads as an observation rather than a why. agent is the name the app shows as who added it. Not money-moving.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
statement | string | Yes | |
observation | string | No | |
implication | string | No | What to make differently because of it. Briefs quote this line. |
scope | object[] | No | |
proposalKey | string | No | A learning proposal's key: test:<id> or trait:<trait id>. |
testId | string | No | |
agent | string | No | Your name, e.g. "Claude" — shown as "Added by Claude over MCP". |
get_learningread
One learning in full: the why, what happened, what to do differently, its scope, the whole status history, its evidence recomputed NOW from the warehouse (per scope Value and together, against the rest of the account on the same goal — observational), the insight check on its statement, and the briefs that cite it.
update_learningwrite
Change a learning: its statement (the why), observation, implication or scope (the evidence is recomputed), or its status — appended to the history, never rewritten.