Learnings and strategy
A learning records why something works, scoped on Values. The workspace strategy is what briefs and copy are held to.
Two records sit between the numbers and the next brief: learnings, which record why something works here, and the workspace strategy, which records what briefs and copy must agree with. Read both before any brief or copy.
Learnings
A learning is a why, not a result. Its statement says what changed in the
viewer's mind, is specific to the brand, and would still be true with the numbers
removed. What happened goes in observation, and what to do differently goes in
implication.
- Scoped on Values.
scopenames the Values the learning applies to, as{ dimension, valueId }pairs. A closed Dimension takes its word. The scope reads AND across Dimensions and OR within one, so two angles plus a persona compares the angles for that persona. - The app computes the evidence. It counts results over the last 90 complete days,
on one result type: the one the scope's ads spent most on. A client never writes
evidence, and
meta_save_learningtakes no numbers. - Status is set by the app. A learning starts as a hypothesis. It becomes
supported or refuted when you pass the
testIdof a concluded Test. - A statement that reads as an observation is flagged.
check.looksLikeObservationcomes back true, and the statement should be rewritten withmeta_update_learning. The check nudges and never blocks a save. - History is append-only and authorship is fixed. A learning is retired, not deleted. Agent writes are attributed as added by the agent, over MCP.
Proposals are derived when you read, never stored: concluded Tests that were supported or rejected, and strong winning Traits, suggest learnings. Only dismissals are stored.
REST: GET /api/v1/learnings,
POST /api/v1/learnings and
PATCH /api/v1/learnings/{learningId}.
MCP: meta_list_learnings, meta_get_learning, meta_save_learning, meta_update_learning.
Strategy
The workspace strategy (Settings → Brand & strategy) holds:
- the product and the offer, and the ideal customer with their ranked pains, in the customer's words;
- the voice, and copy do's and don'ts;
- proof points, the numbers the brand can claim, each with where it is claimed. A brief quotes no other number;
- production capacity: the formats the team can make per week, where 0 means not yet.
meta_get_strategy returns it, plus missing (empty fields worth asking the
operator about) and pendingSuggestions (proposals waiting on a human). Launching
checks copy against it and returns strategyCautions.
Writing to it
PATCH /api/v1/strategy (meta_update_strategy)
takes a patch with only the fields to change. List fields (pains, dos, donts,
proofPoints) replace the whole list.
Use mode: "suggest" for anything you inferred rather than were told. It stores each
field as a pending suggestion that a human accepts or dismisses. A dismissed
suggestion is never raised again. Save an operator's copy correction the same way, or
it is lost. Every write is attributed to the agent and shown on the page.
The goal lives elsewhere
The account goal and its target are read-only in the strategy. They are set with
the workspace thresholds (meta_set_thresholds), and a strategy patch that names goal
fields is refused.