<!-- briefing-content -->
<!-- One Claude skill, flattened into a single markdown file. -->
<!-- To install: create ~/.claude/skills/briefing-content/ and split the FILE blocks below back out. -->
<!-- SKILL.md is everything above the first FILE heading. -->

---
name: briefing-content
description: Turns research findings into a writer-ready content brief using a section order that cannot be reordered or skipped. Fills meta, reader, search intent, competitor analysis, angle, keyword map, title options, and a section-by-section outline carrying word budgets, format tags, and the evidence each point rests on. Use when asked for a content brief, an article outline, a writer brief, or a content plan, or when a topic has been researched and is ready to plan. Do not use to research a topic from scratch (use researching-content) or to write prose (use drafting-content).
---

# Briefing Content

## The one rule

The section order in `reference/brief-template.md` never changes. Nothing gets moved, skipped, or added.

A section missing from the brief goes missing from the draft, and that surfaces two stages later when the draft already exists. An inapplicable field costs one line reading "not applicable" plus the reason. A deleted field costs a rewrite.

## Workflow

Copy this checklist and track progress:

```
Brief progress:
- [ ] Step 1: Collect the four inputs
- [ ] Step 2: Filter the competitor set
- [ ] Step 3: Set the word budget per section
- [ ] Step 4: Map secondary keywords to sections
- [ ] Step 5: Write the outline with evidence
- [ ] Step 6: Run the checks, then output
```

### Step 1: Collect the four inputs

Ask for whatever is missing, then continue:

1. Primary keyword
2. The reader in one line, and the problem bringing them to the page
3. Research findings, or permission to run `researching-content` first
4. Content type: guide, listicle, comparison, alternatives, how-to, glossary, or data piece

Everything else is derivable.

### Step 2: Filter the competitor set

Drop blocked domains from the structural analysis using `reference/blocked-domains.md`, and record the reason in the intent section rather than deleting the observation.

### Step 3: Set the word budget per section

Total target first, from the top four. Then divide across sections.

Skipping this step is why drafts come back with a 900-word introduction and a two-line conclusion. A section carrying a number gets written to that number.

Tag every section with a format: `paragraph`, `bullets`, `table`, `code`, `diagram`, or `mixed`. Two consecutive sections sharing a tag is a flag; change one.

### Step 4: Map secondary keywords to sections

Split into must-use and nice-to-have, and give each one a destination section.

An unmapped keyword gets force-fitted by whoever drafts. A mapped one lands in a sentence that was going to exist anyway.

### Step 5: Write the outline with evidence

Per section: heading, word target, format tag, the points to make, and the evidence each point rests on.

Where a point needs a figure, write the figure and its source into the brief. A brief saying "add a stat here" produces a draft with an invented stat.

### Step 6: Run the checks, then output

Fill `reference/brief-template.md` exactly and output as markdown in chat, or to a file when asked.

## Verification loop

Run every check. Fix and re-run until all pass.

| Check | Fails when |
|---|---|
| Word targets | Any section carries no number |
| Format variety | Two consecutive sections share a tag |
| Keyword map | A must-use keyword has no section |
| Evidence | A point needs a figure and the brief says "add a stat" |
| Reader | "What they already know" is empty, so the draft will over-explain |
| Angle | "What we are leaving out" is empty, so scope will drift |
| Titles | Fewer than two title options carry the primary keyword |

## Test it

1. A brief where no research was supplied. The skill should ask for findings or offer to run `researching-content`.
2. A topic where one section genuinely does not apply. The output should carry "not applicable" and a reason, with the heading intact.
3. A brief for a comparison page. Format tags should vary and at least one section should be tagged `table`.

## What still needs a person

The angle, and what to leave out. The brief is the last point where a wrong call is cheap, so those two fields stay human. Everything after them is bookkeeping that this skill does so nothing goes missing between the decision and the draft.


---

## FILE: `briefing-content/reference/blocked-domains.md`

Save this block at `~/.claude/skills/briefing-content/reference/blocked-domains.md`

```markdown
# Blocked Domains

## Contents
- Why the filter exists
- The list
- Situational additions
- Matching rule

## Why the filter exists

Competitors get read to learn what page structure the SERP rewards. A discussion thread at position two is not a structure that can be copied into a layout, and counting it distorts every average calculated: word count, heading depth, format mix.

So it leaves the structural set and stays in the brief as a finding. Where community or video results own the top of a SERP, that says something about the tone the page needs, and that belongs in the intent section.

## The list

**Discussion and Q&A**
```
reddit.com
quora.com
stackoverflow.com
stackexchange.com
news.ycombinator.com
```

**Social and professional networks**
```
x.com
twitter.com
linkedin.com
facebook.com
instagram.com
tiktok.com
pinterest.com
threads.net
```

**Video**
```
youtube.com
vimeo.com
```

**Free-publish platforms**
```
medium.com
substack.com
slideshare.net
dev.to
hashnode.dev
```

**Marketplaces and review aggregators**
```
amazon.com
ebay.com
walmart.com
g2.com
capterra.com
trustradius.com
getapp.com
softwareadvice.com
```

Review aggregators are the judgment call. On a "best tools" query they are the competition and stay in. On a how-to or definitional query they are noise. Decide per brief and record which way it went.

## Situational additions

Add per brief when a domain clearly is not a ranking competitor for the query:

- Wikipedia, on anything non-definitional
- GitHub, on anything not developer-facing
- Government and standards bodies, where they rank as the source rather than a competing page
- The client's own domain, when the job is a refresh instead of a new page

## Matching rule

Lower-case the URL, match on substring, drop on any hit.

Substring matching catches subdomains and country variants (`uk.linkedin.com`, `old.reddit.com`) without a separate entry for each.
```


---

## FILE: `briefing-content/reference/brief-template.md`

Save this block at `~/.claude/skills/briefing-content/reference/brief-template.md`

```markdown
# Brief Template

## Contents
- The template
- Checks before handing over

## The template

Fixed order. Nothing moved, skipped, or added. An inapplicable section carries "not applicable" and a reason.

```markdown
# CONTENT BRIEF: [title]

## META
- Primary keyword:
- URL slug:
- Meta title: [under 60 characters]
- Meta description: [150 to 160 characters, keyword front-loaded]
- Target word count:
- Content type: [guide | listicle | comparison | alternatives | how-to | glossary | data]
- Funnel stage: [TOFU | MOFU | BOFU]
- Author:

## READER
- Who:
- The problem bringing them here:
- What they already know (do not explain these):
- What they do next if the page works:

## SEARCH INTENT
- Primary intent: [informational | commercial | transactional | navigational]
- Competing intents in the SERP, and how well each is served:
- The intent nobody serves:
- How the query shows up in AI assistants:

## COMPETITOR ANALYSIS
Top four, blocked domains excluded:
1. [url] — [position] — [type] — [words] — best at: — thin on:

- Structural elements every one carries:
- Structural elements none carries:
- Word count benchmark: avg [N], target [N], and why
- Community or video results that outranked vendors, and what that implies:

## ANGLE
- The gap we lead on:
- Why it is defensible:
- What we are leaving out:

## SECONDARY KEYWORDS
Must-use:
- [keyword] -> [section]

Nice-to-have:
- [keyword] -> [section]

## TITLE OPTIONS
Chosen: [title] — because [reason]
Alternates:
-

## OUTLINE

### H2: [heading]
- Words: [N]
- Format: [paragraph | bullets | table | code | diagram | mixed]
- Points to make:
- Evidence each point rests on (figure + source):
- Writing note: [what this section does for the reader, and how it hands off to the next]

## ASSETS
| # | Asset | Type | Section | What it has to show |
|---|---|---|---|---|

## LINKS
- Internal, with anchor text (2 to 4 words):
- External, with the claim each supports:

## SCHEMA
- Types:
- FAQ questions, if any:

## DEFINITION OF DONE
- [ ] Every section at its word target
- [ ] No two consecutive sections sharing a format tag
- [ ] Every must-use keyword placed
- [ ] Every figure sourced
- [ ] Assets produced with alt text
```

## Checks before handing over

| Check | Fails when |
|---|---|
| Word targets | Any section has no number |
| Format variety | Two consecutive sections share a tag |
| Keyword map | A must-use keyword has no section |
| Evidence | A point needs a figure and the brief says "add a stat" |
| Reader | "What they already know" is empty |
| Angle | "What we are leaving out" is empty |
```
