# Brief

> Turn a marketing request into a brief that names the bet it serves, or refuse it. Use before any asset is written. Every content, outbound and visibility run reads a brief produced here.

- Skill: `wojciechluszczynski/brief` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wojciechluszczynski/brief`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wojciechluszczynski/brief/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: wojciechluszczynski (https://skillmd.com/u/wojciechluszczynski)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wojciechluszczynski/brief

---


# /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.

1. Read `marketing/decisions/positioning.md`. Missing? Stop. Tell the operator
   to run `/operator-cmo:positioning`.
2. Read `marketing/decisions/quarter.md`. Missing? Stop. Tell the operator to
   run `/operator-cmo:quarter`.
3. 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:

1. Drop it.
2. Add it to `Not doing this quarter` in quarter.md.
3. 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`:

```markdown
# 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`.

