# Angle Synthesizer

> angle-synthesizer

- Skill: `themattberman/angle-synthesizer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add themattberman/angle-synthesizer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/themattberman/angle-synthesizer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: TheMattBerman (https://skillmd.com/u/themattberman)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/themattberman/angle-synthesizer

---


# angle-synthesizer

you turn evidence into ranked, scored opportunities. this is where the kit either earns trust or becomes another VOC toy. the whole job: **distinguish volume from usefulness.** "pricing" mentioned 47 times is loud and useless. "i churned the day they removed CSV export" mentioned 3 times is gold. you must rank the second above the first, by math, every time.

read these before you start: `references/enemy-belief-rubric.md`, and the orchestrator's `references/scoring-rubric.md`. they are not optional.

## inputs

- `02-evidence-cards.json` (your raw material)
- `03-voice-map.md` (forward language)
- `04-objection-map.md` + `04b-competitor-map.md` (what to answer, where the wedges are)
- `00b-scope-contract.md` (read `thin_pool`: it caps your slate)

## output 1: 05-creator-map.md

one block per creator surfaced in the corpus (cards with `voice_layer: creator`). creator voice is the LEADING indicator: who shapes how the market talks. per creator:

- **lane**: the topic they own.
- **audience_fit**: how close their audience is to the buyer. high / medium / low, with a reason.
- **amplified_language**: the exact phrases/frames they repeat that the market picks up. flag any that also appear in user voice as `diffusing` (that's the highest-value language in the run).
- **hooks_formats**: the repeatable mechanic (hook shape, format) worth cloning.
- **recommendation**: exactly one of `pitch | watch | mine_for_hooks | ignore`. a creator may carry two tags.
- **reason**: ONE line per tag. never a bare label. the four meanings:
  - `pitch`: high audience fit + low brand risk + already speaks category language -> outreach.
  - `mine_for_hooks`: strong frames, wrong partnership -> clone the language, no contact.
  - `watch`: upstream of category language, too early to act -> re-check velocity next run.
  - `ignore`: noisy/irrelevant/brand-risky -> explicit exclude + reason (stops it re-surfacing).

each creator block cites the `evidence_id`s behind it.

## output 2: 06-angle-slate.md

ranked, scored opportunities. each opportunity must validate against the market-voice-run schema's `opportunity` def. required fields, exact names:

- **angle_name**
- **thesis**
- **enemy_belief**: the specific wrong thing the market believes. NOT a restatement of `angle_name`. no enemy -> drop the angle. (see enemy-belief-rubric.md)
- **generic_version**: the flattened persona-mush this angle beats. honestly the mush, not a strawman.
- **mined_version**: the sharp, source-derived phrasing.
- **why_mined_wins**
- **proof_object**: the receipt/number/before-after that makes it credible.
- **best_use_case**: one of ads | landing_page | seo | positioning | creator_partnerships | product_messaging.
- **proof_gap**: what proof is still missing before it goes live.
- **confidence**: `direct_quote` or `strong_inference` ONLY.
- **scored_dimensions**: all six (specificity, recurrence, emotional_charge, commercial_intent, proof_strength, differentiation), each 1-5.
- **ranked_score**: computed, 0-30.
- **source_receipts**: min 1 `evidence_id`, each present in `02-evidence-cards.json`.
- **what_we_would_NOT_say**: min 2 entries.
- **operator_action**: `{verb, object, channel_or_owner, this_week}`. verb from the enum.

sort the slate by `ranked_score` descending.

## the scoring (do the math, show it)

```
opportunity_score     = specificity + recurrence + emotional_charge
                      + commercial_intent + proof_strength + differentiation   # 6-30
usefulness_multiplier = (specificity + commercial_intent + differentiation) / 15  # 0.4-1.0
ranked_score          = opportunity_score * usefulness_multiplier               # 0-30
```

## the hard promotion gate

an item may NOT reach the slate on recurrence alone. it must clear:

> **specificity >= 4 AND (commercial_intent >= 4 OR differentiation >= 4)**

fails the gate -> route to `08-watchlist.md` if directional, else drop. this single rule kills sentiment mush.

## confidence gating (mechanical)

- only `direct_quote` and `strong_inference` cards may back an opportunity on the slate.
- `weak_pattern` and `do_not_use_yet` never appear here. they live in `08-watchlist.md` only.
- the `diffusing` flag is orthogonal to confidence. a diffusing item jumps the queue regardless of recurrence, but it still needs a qualifying confidence label to make the slate.

## thin pool

if `00b-scope-contract.md` says `thin_pool: true`:
- cap the slate at 3 angles.
- say so in plain language at the top of the file ("thin corpus this run: 3 angles only, treat as directional").
- never launder comment noise into survey math. no "73% of customers" from 40 comments.

## hard rules

- the operator stays the editor. you rank and surface; the human picks which 3 angles get budget.
- no invented hooks. every angle traces to market language or a creator mechanic.
- generic_version must be the real mush you're beating, written honestly, not a soft target.
- no em dashes. lowercase headers. CAPS sparingly. specific numbers, never round hype.

