Concepts

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. scope names 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_learning takes no numbers.
  • Status is set by the app. A learning starts as a hypothesis. It becomes supported or refuted when you pass the testId of a concluded Test.
  • A statement that reads as an observation is flagged. check.looksLikeObservation comes back true, and the statement should be rewritten with meta_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.

On this page