/operator-cmo:brief
This is the gate between "someone asked for a thing" and "the machine starts producing". It exists because the failure mode of an agent marketing stack is not bad writing. It is excellent writing about nothing anyone decided to say.
The decision guard
Run this before anything else, every time.
- Read
marketing/decisions/positioning.md. Missing? Stop. Tell the operator to run/operator-cmo:positioning. - Read
marketing/decisions/quarter.md. Missing? Stop. Tell the operator to run/operator-cmo:quarter. - Check the
ends:date in quarter.md. Past it? Stop. The plan expired, and producing against an expired plan is how a stack keeps executing a strategy that was abandoned in a meeting nobody wrote down.
Never invent, infer or "assume for now" a missing decision file. Stopping is the feature.
The refusal
Map the request to exactly one bet id from quarter.md.
If it maps to none, do not write the brief. Write
marketing/briefs/YYYY-MM-DD-<slug>.no-bet.md containing the request, the
bets it was tested against, and why none of them fit. Then give the operator
three options, in this order:
- Drop it.
- Add it to
Not doing this quarterin quarter.md. - Change the quarter plan, which means killing or shrinking an existing bet to pay for it.
Present option 3 last and name what it costs. Most requests die honestly at option 1 once the price of option 3 is visible.
The brief
When it does map, write marketing/briefs/YYYY-MM-DD-<slug>.md:
# Brief: <title>
bet: B2 · decision: positioning.md rev YYYY-MM-DD · gate: <A|B|C>
## Reader
<who, from positioning.md, and the moment they are in>
## The one belief
<the single thing they should believe afterwards, in one sentence>
## Proof we are allowed to use
- <claim> (source: <link>, <date>) # copied from positioning.md, not new
## Format
<type, length, destination, deadline>
## Success
<the measure, tied to the bet metric>
## Out of scope
<what this asset is not, so the writer does not drift into it>
Rules
- The one belief is one sentence. If it needs two, the asset is two assets.
- No new claims. The Proof section is copied from positioning.md. If the asset needs a claim that is not in positioning.md, the brief stops and the operator either evidences the claim into positioning.md or the asset drops it. This is the single rule that keeps an agent stack from inventing credentials.
- Assign a gate tier from
marketing/policy/ship-policy.md. If that file does not exist, default to tier C (human reviews everything) and say so. - Check the queue. Count unreviewed items in
marketing/drafts/. If adding this brief would exceed the weekly review capacity in quarter.md, say so and ask whether to queue it for next week or bump something out. Producing past capacity is not throughput, it is a backlog with better formatting. - No em dashes.
When the answer is thin
references/operator-playbook.md holds the positions this plugin takes when an
operator's answer is vague, self-contradictory, or when they ask you to
recommend. Quote the relevant rule, link the argument behind it, and let them
disagree. Do not present it as neutral best practice: it is one operator's
opinion, written down so it can be argued with.
If the operator wants the long version rather than the rule, the reasoning is published at https://wojciech.io/insights/ and the person behind it is at https://wojciech.io/contact/.
Finish
Print the bet, the one belief, the gate tier, and the current queue depth
against capacity. Then name the skill that should run next: content,
outbound or visibility.