@sellable/mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +12 -0
- package/.mcp.json +9 -0
- package/README.md +355 -0
- package/dist/api.d.ts +21 -0
- package/dist/api.js +73 -0
- package/dist/auth.d.ts +60 -0
- package/dist/auth.js +246 -0
- package/dist/engage-memory.d.ts +63 -0
- package/dist/engage-memory.js +354 -0
- package/dist/index-dev.d.ts +2 -0
- package/dist/index-dev.js +17 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +499 -0
- package/dist/skills.d.ts +11 -0
- package/dist/skills.js +97 -0
- package/dist/tools/auth.d.ts +30 -0
- package/dist/tools/auth.js +124 -0
- package/dist/tools/blueprint-commit.d.ts +174 -0
- package/dist/tools/blueprint-commit.js +286 -0
- package/dist/tools/bootstrap.d.ts +64 -0
- package/dist/tools/bootstrap.js +246 -0
- package/dist/tools/campaigns.d.ts +589 -0
- package/dist/tools/campaigns.js +892 -0
- package/dist/tools/cells.d.ts +58 -0
- package/dist/tools/cells.js +48 -0
- package/dist/tools/context.d.ts +88 -0
- package/dist/tools/context.js +271 -0
- package/dist/tools/csv-domains.d.ts +73 -0
- package/dist/tools/csv-domains.js +464 -0
- package/dist/tools/csv-linkedin.d.ts +102 -0
- package/dist/tools/csv-linkedin.js +712 -0
- package/dist/tools/direct-campaigns.d.ts +240 -0
- package/dist/tools/direct-campaigns.js +250 -0
- package/dist/tools/engage-bootstrap.d.ts +94 -0
- package/dist/tools/engage-bootstrap.js +205 -0
- package/dist/tools/engage-discovery.d.ts +78 -0
- package/dist/tools/engage-discovery.js +150 -0
- package/dist/tools/engage-memory.d.ts +181 -0
- package/dist/tools/engage-memory.js +143 -0
- package/dist/tools/engage-state.d.ts +72 -0
- package/dist/tools/engage-state.js +62 -0
- package/dist/tools/enrichment.d.ts +167 -0
- package/dist/tools/enrichment.js +174 -0
- package/dist/tools/flow-preflight.d.ts +68 -0
- package/dist/tools/flow-preflight.js +138 -0
- package/dist/tools/framework.d.ts +44 -0
- package/dist/tools/framework.js +153 -0
- package/dist/tools/interaction-mode.d.ts +27 -0
- package/dist/tools/interaction-mode.js +102 -0
- package/dist/tools/leads.d.ts +2417 -0
- package/dist/tools/leads.js +2307 -0
- package/dist/tools/linkedin.d.ts +210 -0
- package/dist/tools/linkedin.js +229 -0
- package/dist/tools/navigation.d.ts +91 -0
- package/dist/tools/navigation.js +381 -0
- package/dist/tools/one-off.d.ts +229 -0
- package/dist/tools/one-off.js +273 -0
- package/dist/tools/processing.d.ts +70 -0
- package/dist/tools/processing.js +56 -0
- package/dist/tools/prompts.d.ts +211 -0
- package/dist/tools/prompts.js +210 -0
- package/dist/tools/provider-preflight.d.ts +21 -0
- package/dist/tools/provider-preflight.js +59 -0
- package/dist/tools/readiness.d.ts +261 -0
- package/dist/tools/readiness.js +510 -0
- package/dist/tools/rows.d.ts +126 -0
- package/dist/tools/rows.js +105 -0
- package/dist/tools/rubrics.d.ts +497 -0
- package/dist/tools/rubrics.js +681 -0
- package/dist/tools/senders.d.ts +44 -0
- package/dist/tools/senders.js +69 -0
- package/dist/tools/sequencer.d.ts +127 -0
- package/dist/tools/sequencer.js +194 -0
- package/dist/tools/tables.d.ts +35 -0
- package/dist/tools/tables.js +36 -0
- package/dist/tools/verify-row.d.ts +36 -0
- package/dist/tools/verify-row.js +38 -0
- package/dist/tools/workspaces.d.ts +140 -0
- package/dist/tools/workspaces.js +139 -0
- package/dist/utils/workspace-root.d.ts +1 -0
- package/dist/utils/workspace-root.js +39 -0
- package/package.json +46 -0
- package/skills/building-gtm-tables/SKILL.md +216 -0
- package/skills/building-gtm-tables/core/auto-execute.yaml +19 -0
- package/skills/building-gtm-tables/core/blueprint-schema.json +72 -0
- package/skills/building-gtm-tables/references/brief-to-blueprint.md +334 -0
- package/skills/building-gtm-tables/references/column-type-catalog.md +318 -0
- package/skills/building-gtm-tables/references/common-blueprints.fixtures.ts +199 -0
- package/skills/building-gtm-tables/references/common-blueprints.md +44 -0
- package/skills/building-gtm-tables/references/failure-taxonomy.md +197 -0
- package/skills/building-gtm-tables/references/uat-seed-prompts.md +37 -0
- package/skills/building-gtm-tables/references/verify-loop.md +74 -0
- package/skills/campaign-messages/SKILL.md +173 -0
- package/skills/campaign-messages/flow.v1.json +75 -0
- package/skills/craft-message/SKILL.md +401 -0
- package/skills/create-campaign/ARCHITECTURE.md +232 -0
- package/skills/create-campaign/DISCUSS.md +296 -0
- package/skills/create-campaign/FLOW_ASCII.md +240 -0
- package/skills/create-campaign/HOST-PARITY-CHECKLIST.md +49 -0
- package/skills/create-campaign/README.md +142 -0
- package/skills/create-campaign/SKILL.md +286 -0
- package/skills/create-campaign/context/README.md +67 -0
- package/skills/create-campaign/context/_TEMPLATE.md +12 -0
- package/skills/create-campaign/context/context.md +35 -0
- package/skills/create-campaign/context/learnings.md +16 -0
- package/skills/create-campaign/context/registry.json +19 -0
- package/skills/create-campaign/core/flow.v1.json +217 -0
- package/skills/create-campaign/core/policy.md +191 -0
- package/skills/create-campaign/core/providers/apollo.json +35 -0
- package/skills/create-campaign/core/providers/prospeo.json +34 -0
- package/skills/create-campaign/core/providers/registry.json +31 -0
- package/skills/create-campaign/core/providers/sales-nav.json +37 -0
- package/skills/create-campaign/core/providers/signal-discovery.json +42 -0
- package/skills/create-campaign/references/brief-template.md +64 -0
- package/skills/create-campaign/references/campaign-quality.md +84 -0
- package/skills/create-campaign/references/copy-calibration-examples.md +120 -0
- package/skills/create-campaign/references/offer-patterns.md +108 -0
- package/skills/create-campaign/references/provider-selection-strategy.md +212 -0
- package/skills/create-campaign/references/question-examples.md +167 -0
- package/skills/create-campaign/references/token-fill-examples.md +81 -0
- package/skills/create-campaign-brief/ARCHITECTURE.md +72 -0
- package/skills/create-campaign-brief/DISCUSS.md +64 -0
- package/skills/create-campaign-brief/README.md +176 -0
- package/skills/create-campaign-brief/SKILL.md +537 -0
- package/skills/create-campaign-brief/references/brief-synthesis-rules.md +100 -0
- package/skills/create-campaign-brief/references/brief-template.md +220 -0
- package/skills/create-campaign-brief/references/campaign-idea-options.md +30 -0
- package/skills/create-campaign-brief/references/copy-appendix-template.md +62 -0
- package/skills/create-campaign-brief/references/draft-lifecycle.md +23 -0
- package/skills/create-campaign-brief/references/examples/MANIFEST.json +89 -0
- package/skills/create-campaign-brief/references/examples/briefs/clover.md +223 -0
- package/skills/create-campaign-brief/references/examples/briefs/galley.md +222 -0
- package/skills/create-campaign-brief/references/examples/briefs/gelee.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/hey-digital.md +234 -0
- package/skills/create-campaign-brief/references/examples/briefs/persona.md +231 -0
- package/skills/create-campaign-brief/references/examples/briefs/revvix.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/sellable-dev.md +220 -0
- package/skills/create-campaign-brief/references/examples/briefs/superposition.md +233 -0
- package/skills/create-campaign-brief/references/examples/briefs/superpower.md +219 -0
- package/skills/create-campaign-brief/references/examples/briefs/westpark-villas.md +220 -0
- package/skills/create-campaign-brief/references/icp-lock-question-bank.md +43 -0
- package/skills/create-campaign-brief/references/messaging-inputs.md +58 -0
- package/skills/create-campaign-brief/references/output-acceptance-rubric.md +62 -0
- package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +248 -0
- package/skills/create-campaign-brief/references/phase75-canonical-brief-template.md +319 -0
- package/skills/create-campaign-brief/references/phase75-good-brief-and-messaging-examples.md +445 -0
- package/skills/create-campaign-brief/references/quick-research-protocol.md +39 -0
- package/skills/create-campaign-brief/references/reference-sheet-protocol.md +60 -0
- package/skills/create-campaign-brief/references/zero-shot-iteration-rules.md +66 -0
- package/skills/create-campaign-v2/SKILL.md +1619 -0
- package/skills/create-campaign-v2/core/auto-execute.README.md +219 -0
- package/skills/create-campaign-v2/core/auto-execute.yaml +121 -0
- package/skills/create-campaign-v2/core/flow.v2.json +1643 -0
- package/skills/create-campaign-v2/core/policy.md +82 -0
- package/skills/create-campaign-v2/references/ai-tells.md +253 -0
- package/skills/create-campaign-v2/references/approval-gate-framing.md +346 -0
- package/skills/create-campaign-v2/references/draft-lifecycle.md +110 -0
- package/skills/create-campaign-v2/references/escalation-ladder.md +119 -0
- package/skills/create-campaign-v2/references/filter-leads.md +495 -0
- package/skills/create-campaign-v2/references/final-handoff-contract.md +176 -0
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +394 -0
- package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +314 -0
- package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +212 -0
- package/skills/create-campaign-v2/references/lead-validation-preview.md +172 -0
- package/skills/create-campaign-v2/references/parallel-critique-protocol.md +368 -0
- package/skills/create-campaign-v2/references/sample-validation-loop.md +289 -0
- package/skills/create-campaign-v2/references/step-13-import-leads.md +151 -0
- package/skills/create-campaign-v2/references/step-15-re-cascade.md +90 -0
- package/skills/create-campaign-v2/references/thomas-revision-filters.md +521 -0
- package/skills/create-campaign-v2/references/thomas-variant-selection.md +202 -0
- package/skills/create-campaign-v2/references/tier-routing-matrix.md +66 -0
- package/skills/create-campaign-v2/references/validation-criteria.md +367 -0
- package/skills/create-campaign-v2/references/watch-link-handoff.md +106 -0
- package/skills/create-campaign-v2-validation/SKILL.md +296 -0
- package/skills/create-post/SKILL.md +1308 -0
- package/skills/create-rubric/SKILL.md +251 -0
- package/skills/engage/SKILL.md +549 -0
- package/skills/engage/core/README.md +23 -0
- package/skills/engage/core/proven-searches.json +11 -0
- package/skills/engage/core/style-guide.template.md +47 -0
- package/skills/engage/core/tracked-people.json +10 -0
- package/skills/enrich-prospects/SKILL.md +97 -0
- package/skills/find-leads/SKILL.md +467 -0
- package/skills/generate-messages/SKILL.md +2361 -0
- package/skills/interview/SKILL.md +132 -0
- package/skills/interview/core/ENGAGE_STYLE_GUIDE.template.md +54 -0
- package/skills/interview/core/ICP.template.md +54 -0
- package/skills/interview/core/VOICE_PROFILE.template.md +101 -0
- package/skills/providers/apollo.md +520 -0
- package/skills/providers/prospeo.md +398 -0
- package/skills/providers/sales-nav.md +372 -0
- package/skills/providers/signal-discovery.md +495 -0
- package/skills/research/SKILL.md +258 -0
- package/skills/research/config.json +9 -0
- package/skills/research/override.md +13 -0
- package/skills/research-prospect/SKILL.md +99 -0
- package/skills/research-sender/SKILL.md +158 -0
- package/skills/workflow-sequences/SKILL.md +85 -0
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-campaign-brief
|
|
3
|
+
description: Turn a LinkedIn URL plus optional customer materials into a high-level brief.md v1 for the brief-first create-campaign path. Use this standalone command before any campaign, rubric, lead import, messaging validation, or workflow-table writes.
|
|
4
|
+
visibility: internal
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Create Campaign Brief
|
|
8
|
+
|
|
9
|
+
You are a Sellable campaign strategist. Build one high-level `brief.md v1` from
|
|
10
|
+
a LinkedIn URL, optional customer materials, quick research, one recommended
|
|
11
|
+
campaign thesis, rough ICP mechanics, anti-buyer filters, invisible internal
|
|
12
|
+
references, and validation-gated messaging inputs.
|
|
13
|
+
|
|
14
|
+
This is Phase 83 of the brief-first create-campaign path. The runnable command
|
|
15
|
+
is `create-campaign-brief`. Do not introduce or ask for a public
|
|
16
|
+
`create-campaign-v2` command in this phase.
|
|
17
|
+
|
|
18
|
+
## Required Inputs
|
|
19
|
+
|
|
20
|
+
Start from:
|
|
21
|
+
|
|
22
|
+
1. LinkedIn URL for the sender, client, or source profile.
|
|
23
|
+
2. Optional pasted materials: transcript, proposal, kickoff notes, ICP notes,
|
|
24
|
+
deck excerpts, prior messages, Slack notes, or product context.
|
|
25
|
+
3. Optional operator campaign idea.
|
|
26
|
+
|
|
27
|
+
If a useful source is missing, continue with explicit assumptions unless the gap
|
|
28
|
+
blocks target, offer, proof, or token rules.
|
|
29
|
+
|
|
30
|
+
**HARD EXCEPTION:** An `AskUserQuestion` tool error or missing response is NOT a missing source. It is the operator not having answered yet. DO NOT invoke the explicit-assumptions fallback in response to AskUserQuestion errors. When `AskUserQuestion` errors or returns without a real operator answer, END THE TURN and wait for the operator's response to arrive on the next `--resume` input. The brief.md is never drafted on inferred AUQ defaults.
|
|
31
|
+
|
|
32
|
+
Default CPS kickoff is LinkedIn-first. Use the supplied LinkedIn URL as the
|
|
33
|
+
primary source, then use the website only to support product/proof claims. A
|
|
34
|
+
website-only run is a sparse fallback, not the normal path.
|
|
35
|
+
|
|
36
|
+
## Allowed Research
|
|
37
|
+
|
|
38
|
+
- Use Claude Code `WebFetch` for supplied company websites and `WebSearch`
|
|
39
|
+
when a company domain, LinkedIn page, or proof source needs to be resolved.
|
|
40
|
+
- Use `fetch_linkedin_profile` or `get_linkedin_profile` for lightweight profile
|
|
41
|
+
context when available.
|
|
42
|
+
- Use `fetch_company` for LinkedIn company pages and `fetch_company_posts` when
|
|
43
|
+
recent company context could affect the campaign thesis.
|
|
44
|
+
- Use `fetch_linkedin_posts` when sender profile posts are supplied and voice or
|
|
45
|
+
credibility context matters.
|
|
46
|
+
- Use light company, domain, product, and recent-post research only as needed to
|
|
47
|
+
fill the brief.
|
|
48
|
+
- Do not require `enrich_sender`.
|
|
49
|
+
- Do not run a full lead search, import, campaign creation, or rubric creation
|
|
50
|
+
path.
|
|
51
|
+
|
|
52
|
+
## Pre-Interview Research (do once, cache for rest of run)
|
|
53
|
+
|
|
54
|
+
Before you emit the first `AskUserQuestion`, complete ALL the research you
|
|
55
|
+
need to ground the interview. Subsequent turns are think-and-ask only — do
|
|
56
|
+
not invoke new external research tools between questions unless a founder
|
|
57
|
+
answer reveals a concrete new research need.
|
|
58
|
+
|
|
59
|
+
Upfront turn (before question 1):
|
|
60
|
+
|
|
61
|
+
- `fetch_linkedin_profile` on the founder LinkedIn URL.
|
|
62
|
+
- `WebFetch` on the company website (if supplied, or discovered from the YC
|
|
63
|
+
profile / LinkedIn bio).
|
|
64
|
+
- `fetch_company` on the company's LinkedIn company page when findable.
|
|
65
|
+
- `fetch_company_posts` ONLY when recent company posts could materially
|
|
66
|
+
change the thesis.
|
|
67
|
+
- `fetch_linkedin_posts` ONLY when sender posts could materially improve
|
|
68
|
+
voice / credibility framing.
|
|
69
|
+
- Any `WebSearch` needed to resolve a missing domain / URL.
|
|
70
|
+
|
|
71
|
+
After this single research pass, ALL subsequent turns are pure
|
|
72
|
+
question-and-answer. No new `fetch_*` / `WebFetch` / `WebSearch` calls
|
|
73
|
+
between questions unless the founder's answer explicitly introduces a new
|
|
74
|
+
entity (new company, new proof source) that you cannot infer about.
|
|
75
|
+
|
|
76
|
+
This rule exists because per-turn research calls add 15-25 seconds of
|
|
77
|
+
dead-air per question. One upfront pass pays for itself in interview speed.
|
|
78
|
+
|
|
79
|
+
## Forbidden Actions
|
|
80
|
+
|
|
81
|
+
Never call or instruct another agent to call these tools in Phase 83:
|
|
82
|
+
|
|
83
|
+
- `create_campaign`
|
|
84
|
+
- `update_campaign`
|
|
85
|
+
- `update_campaign_brief`
|
|
86
|
+
- `import_leads`
|
|
87
|
+
- `upsert_rubric`
|
|
88
|
+
- workflow table writes
|
|
89
|
+
|
|
90
|
+
Do not create `rubric.json`, `CampaignOffer`, campaign rows, lead imports, or
|
|
91
|
+
workflow table rows. Existing v1 `create-campaign` remains untouched.
|
|
92
|
+
|
|
93
|
+
## Output Contract
|
|
94
|
+
|
|
95
|
+
Produce one strategy-first `brief.md v1`. The first brief is not the final lead
|
|
96
|
+
strategy, not the final rubric, and not the final messaging pack. It should help
|
|
97
|
+
the customer understand the campaign thesis:
|
|
98
|
+
|
|
99
|
+
- who we think we are reaching out to
|
|
100
|
+
- what rough demographic and title filters matter
|
|
101
|
+
- who the anti-buyer is
|
|
102
|
+
- what pain / offer we are testing
|
|
103
|
+
- what proof is safe
|
|
104
|
+
- what probably needs validation next
|
|
105
|
+
|
|
106
|
+
Start the final Markdown at `Status: brief-v1`. Do not add a preamble like
|
|
107
|
+
`Research complete`, `Here is the brief`, or any tool-access explanation.
|
|
108
|
+
Return the full brief inline in the final assistant message. Do NOT use
|
|
109
|
+
`Write`, `Edit`, `Bash`, or any filesystem-mutating tool to persist the brief,
|
|
110
|
+
and do NOT tell the operator to save or copy it somewhere else. The harness
|
|
111
|
+
captures the assistant text directly.
|
|
112
|
+
|
|
113
|
+
The brief is customer-facing. Do not expose internal template names, Phase 75
|
|
114
|
+
files, Sellable client names, or selected-reference tradeoffs in `Sources Used`,
|
|
115
|
+
`Good Messaging Examples`, or any client-facing section. `Sources Used` is a
|
|
116
|
+
bibliography of actual customer-facing sources only: LinkedIn URL, sender data,
|
|
117
|
+
website if used, supplied materials, and customer-owned research.
|
|
118
|
+
Only cite sources you actually fetched and confirmed belong to this company. If
|
|
119
|
+
a search result is ambiguous, mismatched, or points at a different company,
|
|
120
|
+
drop it instead of guessing.
|
|
121
|
+
|
|
122
|
+
Keep product and proof claims exact to the validated source. Do not silently
|
|
123
|
+
inflate numbers, channels, integrations, customer traction, or deployment
|
|
124
|
+
surface. If the source says `40+ integrations` and `Slack`, do not rewrite that
|
|
125
|
+
as `300+ integrations` or `Slack, Teams, or Google Chat`.
|
|
126
|
+
|
|
127
|
+
Write plainly for first-time users. Present pending work as a simple three-step
|
|
128
|
+
flow:
|
|
129
|
+
|
|
130
|
+
1. find leads
|
|
131
|
+
2. tighten filter
|
|
132
|
+
3. draft message
|
|
133
|
+
|
|
134
|
+
Do not use the old `LEAD_VALIDATION`, `RUBRIC_VALIDATION`, or
|
|
135
|
+
`MESSAGE_VALIDATION` block format in new briefs.
|
|
136
|
+
|
|
137
|
+
Sender credibility must be buyer-impressive. Use founder traction, relevant
|
|
138
|
+
operator history, investor proof, audience proof, and customer proof. Do not use
|
|
139
|
+
college, school, university, or EECS-style education as credibility.
|
|
140
|
+
Pick the strongest credibility for this buyer, not a generic default. Sometimes
|
|
141
|
+
that is customer proof; sometimes it is founder/operator history, YC/investor
|
|
142
|
+
backing, proprietary tech, or a category-specific edge. Ask what buyers need to
|
|
143
|
+
see to increase confidence in the core claim if the answer is not obvious from
|
|
144
|
+
research.
|
|
145
|
+
|
|
146
|
+
## References To Load
|
|
147
|
+
|
|
148
|
+
Use only the files needed for the current run:
|
|
149
|
+
|
|
150
|
+
- `references/quick-research-protocol.md`
|
|
151
|
+
- `references/campaign-idea-options.md`
|
|
152
|
+
- `references/icp-lock-question-bank.md`
|
|
153
|
+
- `references/reference-sheet-protocol.md`
|
|
154
|
+
- `references/messaging-inputs.md`
|
|
155
|
+
- `references/brief-template.md`
|
|
156
|
+
- `references/draft-lifecycle.md`
|
|
157
|
+
- `references/examples/MANIFEST.json`
|
|
158
|
+
- selected files under `references/examples/briefs/`
|
|
159
|
+
- `references/phase75-canonical-brief-template.md`
|
|
160
|
+
- `references/phase75-active-runtime-message-pack.md`
|
|
161
|
+
- `references/phase75-good-brief-and-messaging-examples.md`
|
|
162
|
+
- `../create-campaign/context/learnings.md` when campaign-quality calibration is
|
|
163
|
+
useful
|
|
164
|
+
|
|
165
|
+
## Workflow
|
|
166
|
+
|
|
167
|
+
### Interview protocol (hard rules)
|
|
168
|
+
|
|
169
|
+
1. **HARD INVARIANT (do not violate): Emit EXACTLY ONE
|
|
170
|
+
`AskUserQuestion` tool call per turn.** If you realize mid-turn you
|
|
171
|
+
need to refine your question, DO NOT emit a second AUQ — instead end
|
|
172
|
+
the turn with the single AUQ you emitted and wait for the operator's
|
|
173
|
+
answer. Never emit two AUQ calls in one turn under any circumstance.
|
|
174
|
+
Two AUQ calls in one turn is a BUG. If you want to ask multiple
|
|
175
|
+
related questions, use the `questions[]` array inside a single tool
|
|
176
|
+
call (up to 4 questions per call, and up to 4 options per question).
|
|
177
|
+
`AskUserQuestion` will reject 5+ options; split or simplify instead of
|
|
178
|
+
exceeding the schema.
|
|
179
|
+
2. **HARD INVARIANT (do not violate): After emitting an
|
|
180
|
+
`AskUserQuestion` call, END THE TURN.** Do NOT produce `brief.md`,
|
|
181
|
+
drafts, or any downstream artifact until operator responses arrive
|
|
182
|
+
on the NEXT turn (via `--resume` input). Never fall back to
|
|
183
|
+
"inferred defaults" or "recommended picks" for unanswered AUQ —
|
|
184
|
+
those are not founder answers, they are hallucinations. If the
|
|
185
|
+
operator did not respond, wait. `brief.md v1` is written ONLY after
|
|
186
|
+
every AUQ has received real operator input.
|
|
187
|
+
3. **Default to 1 `AskUserQuestion` batch. Use a second batch only when a
|
|
188
|
+
real unknown still blocks the brief after batch 1.** The canonical 6
|
|
189
|
+
ICP-and-message questions can split into two batches when needed.
|
|
190
|
+
Batch 1 (target + offer + proof) covers target buyer, offer / CTA,
|
|
191
|
+
and the most compelling proof / off-limits claims. Batch 2 (source + filters +
|
|
192
|
+
voice) covers lead-source hypothesis (Signals / Sales Nav / Prospeo
|
|
193
|
+
— never Apollo), ICP titles and exclusion rules, and voice / message
|
|
194
|
+
thesis. But batch 2 is exceptional, not automatic. If batch 1 plus
|
|
195
|
+
Pre-Interview Research gives you enough to draft `brief-v1`, do not
|
|
196
|
+
manufacture a second batch just to refine. Never exceed 2
|
|
197
|
+
`AskUserQuestion` calls — concise options plus multi-part
|
|
198
|
+
`questions[]` keeps cognitive load low.
|
|
199
|
+
4. **Do not preface questions with turn counts.** No "Question 4 of ~6"
|
|
200
|
+
or "Question N of ~8" language. The founder does not need a progress
|
|
201
|
+
bar mid-interview — it creates the sense of a long questionnaire
|
|
202
|
+
instead of a conversation.
|
|
203
|
+
5. **Use specific, reference-rich options in every question.** Pull
|
|
204
|
+
specific phrases, titles, or claims from the Pre-Interview Research
|
|
205
|
+
pass into each option so the founder sees "oh, it already knows me"
|
|
206
|
+
magic at every step. Prefer 3 options when the choice is obvious, 4
|
|
207
|
+
only when a fourth path is genuinely useful.
|
|
208
|
+
6. **Default to confirm-first questioning, not blank-page strategy asks.**
|
|
209
|
+
When the Pre-Interview Research pass gives you a defensible default
|
|
210
|
+
for buyer, CTA, proof, source path, titles, exclusions, or voice,
|
|
211
|
+
lead with `Here's my current best guess` and ask what the founder
|
|
212
|
+
would change. Do NOT make the founder restate strategy from scratch
|
|
213
|
+
when you already have a strong hypothesis. Open-ended questions are
|
|
214
|
+
for true unknowns only.
|
|
215
|
+
6a. **Show the hypothesis before the questions in plain language.**
|
|
216
|
+
Before the `AskUserQuestion` batch, summarize your current read in
|
|
217
|
+
3-5 short bullets:
|
|
218
|
+
- what kind of buyer you think this is for
|
|
219
|
+
- what offer / ask you think is most likely
|
|
220
|
+
- what proof seems strongest
|
|
221
|
+
- what still needs founder confirmation
|
|
222
|
+
Write this for a founder who may not know GTM jargon. Avoid terms
|
|
223
|
+
like `title filters`, `Sales Nav`, `ICP`, or `signals` unless you
|
|
224
|
+
immediately translate them into plain English. Example:
|
|
225
|
+
`who we should look for on LinkedIn` instead of `titles + Sales Nav filters`.
|
|
226
|
+
6b. **Confirm the company first when it is ambiguous.**
|
|
227
|
+
If the founder LinkedIn suggests multiple active companies, side
|
|
228
|
+
projects, advisory roles, or a recent company change, use the first
|
|
229
|
+
question to confirm the campaign company before asking strategy
|
|
230
|
+
questions. Ask plainly:
|
|
231
|
+
- `Just to make sure I'm building the right campaign: is this for X?`
|
|
232
|
+
- `Or is it for another company from your current work?`
|
|
233
|
+
If the company is already explicit from the URL plus supplied
|
|
234
|
+
context, do not waste a question on this.
|
|
235
|
+
7. **Make each batch easy to approve or edit in bullets.** Present your
|
|
236
|
+
current best guess as short bullets the founder can keep, tweak,
|
|
237
|
+
replace, or add to. Prefer "keep/change/add" response affordances
|
|
238
|
+
over paragraph prompts. The goal is fast correction, not forcing the
|
|
239
|
+
founder to compose strategy prose.
|
|
240
|
+
7a. **Assume mixed answers are normal.** If more than one option could be
|
|
241
|
+
true, set `multiSelect: true` for that question. In the prompt text,
|
|
242
|
+
explicitly tell the founder they can:
|
|
243
|
+
- pick one option
|
|
244
|
+
- pick more than one option
|
|
245
|
+
- or add their own context in a short bullet
|
|
246
|
+
Do not force false either/or choices when the real answer may be
|
|
247
|
+
"mostly A, plus some of B."
|
|
248
|
+
8. **Treat proof selection as a buyer-confidence question, not just a safety
|
|
249
|
+
filter.** When you ask about proof, include the strongest researched
|
|
250
|
+
proof modes for this buyer: customer proof, founder/operator story,
|
|
251
|
+
investor / YC / backing proof, proprietary-tech proof, or category-
|
|
252
|
+
specific edge. Ask which proof would most increase the buyer's confidence in
|
|
253
|
+
the main claim and what evidence is actually persuasive in practice. Do not hard-ban a
|
|
254
|
+
proof type globally if it is sourced and founder-confirmed.
|
|
255
|
+
8a. **Frame claim-safety questions as "what can we say?" before "what must
|
|
256
|
+
we avoid?"** Prefer wording like:
|
|
257
|
+
- `Which of these points would make the buyer most confident?`
|
|
258
|
+
- `Which proof should be primary, secondary, or left out?`
|
|
259
|
+
- `Which can we mention carefully, and which should stay out?`
|
|
260
|
+
- `What should the buyer believe after reading this, and what should we avoid?`
|
|
261
|
+
Avoid making the founder answer a pure list of `don'ts` unless the
|
|
262
|
+
situation is genuinely high-risk. The goal is to rank proof and
|
|
263
|
+
boundaries, not make the founder choose the final message opener.
|
|
264
|
+
8b. **Use customer-facing setup question wording.** Ask questions in the
|
|
265
|
+
language of the decision the founder is making, not the internal artifact
|
|
266
|
+
you are filling. Preferred shapes:
|
|
267
|
+
- Target prospects: `Who should be the target prospects for this campaign? Pick one or combine.`
|
|
268
|
+
- Main CTA / offer: `What should the main CTA or offer be? Pick one or combine.`
|
|
269
|
+
- Proof emphasis: `Which proof point would most increase this buyer's confidence in {{company}}? Multi-select fine.`
|
|
270
|
+
- Lead source: `Which lead source should we use first? Here's my recommendation, plus the tradeoff for each option.`
|
|
271
|
+
Avoid internal or vague phrasing like `Which proof points should the message
|
|
272
|
+
be allowed to lean on?`, `What proof should we use?`, or `Which angle should
|
|
273
|
+
we test?` unless you immediately translate what the choice changes for the
|
|
274
|
+
campaign.
|
|
275
|
+
9. **Do not lock inferred stack/tool mixes as facts unless the source
|
|
276
|
+
explicitly proves them.** If the website or founder did NOT confirm a
|
|
277
|
+
specific tool combination, keep it as a validation target for the
|
|
278
|
+
lead sample (`Datadog / PagerDuty / K8s footprint to test`), not a
|
|
279
|
+
settled claim in `Campaign Thesis`, `Buyer Pain`, or `Message
|
|
280
|
+
Thesis`. Avoid language like `already run X + Y + Z` unless those
|
|
281
|
+
exact tools were directly sourced.
|
|
282
|
+
|
|
283
|
+
### Step 1: Intake
|
|
284
|
+
|
|
285
|
+
Collect the LinkedIn URL and optional materials. Build a bounded source bundle:
|
|
286
|
+
|
|
287
|
+
- source URL
|
|
288
|
+
- supplied materials
|
|
289
|
+
- known facts
|
|
290
|
+
- assumptions
|
|
291
|
+
- blocking gaps
|
|
292
|
+
|
|
293
|
+
### Step 2: Quick Research
|
|
294
|
+
|
|
295
|
+
Do just enough research to fill the brief. Prefer first-party or customer-owned
|
|
296
|
+
sources. Record evidence quality. Do not invent proof, customer names, metrics,
|
|
297
|
+
trigger events, or case studies.
|
|
298
|
+
|
|
299
|
+
### Step 3: Campaign Thesis
|
|
300
|
+
|
|
301
|
+
Pick one recommended campaign direction, or validate the operator's own idea
|
|
302
|
+
when one is supplied. Do not list three full paths unless the user explicitly
|
|
303
|
+
asks for options.
|
|
304
|
+
|
|
305
|
+
The selected direction must include:
|
|
306
|
+
|
|
307
|
+
- target buyer
|
|
308
|
+
- offer
|
|
309
|
+
- source hypothesis from the find-leads provider matrix
|
|
310
|
+
- why it might work
|
|
311
|
+
- main risk
|
|
312
|
+
|
|
313
|
+
Use direct framing: `We should test targeting X with offer Y because Z.`
|
|
314
|
+
Keep `## Campaign Thesis` scannable:
|
|
315
|
+
|
|
316
|
+
- use 3-5 bullets, not one dense paragraph
|
|
317
|
+
- separate target, offer, why it might work, and main risk
|
|
318
|
+
- write it so a non-GTM founder can skim it quickly
|
|
319
|
+
|
|
320
|
+
### Step 4: ICP Lock
|
|
321
|
+
|
|
322
|
+
Lock rough sourcing and filter hypotheses:
|
|
323
|
+
|
|
324
|
+
- company demographics
|
|
325
|
+
- company size and maturity
|
|
326
|
+
- roles, titles, title synonyms
|
|
327
|
+
- anti-titles
|
|
328
|
+
- exclusions
|
|
329
|
+
- geography
|
|
330
|
+
- signals and triggers
|
|
331
|
+
- volume constraints
|
|
332
|
+
|
|
333
|
+
Bias toward necessary filter logic only:
|
|
334
|
+
|
|
335
|
+
- rough buyer-fit rules
|
|
336
|
+
- rough exclusion rules
|
|
337
|
+
- likely false positives to watch for in the first lead sample
|
|
338
|
+
|
|
339
|
+
Do not over-design a scoring framework in Phase 83. Optional/non-required rules
|
|
340
|
+
should be rare and are better decided after a real lead sample exists.
|
|
341
|
+
|
|
342
|
+
Keep pain, proof, objections, voice, and CTA in messaging inputs, not ICP lock.
|
|
343
|
+
Do not claim the lead strategy is validated yet.
|
|
344
|
+
|
|
345
|
+
### Step 5: Internal Reference Sheet
|
|
346
|
+
|
|
347
|
+
Select the Phase 75 canonical template plus 2-4 reference briefs from
|
|
348
|
+
`references/examples/MANIFEST.json`. Treat the Phase 75 active runtime pack as
|
|
349
|
+
the gold-standard inspiration layer. This is operator-only calibration, not
|
|
350
|
+
customer-facing bibliography.
|
|
351
|
+
|
|
352
|
+
If a fixture or operator says a customer must be withheld, exclude that customer
|
|
353
|
+
from references even if it is the closest match. Pick the closest non-withheld
|
|
354
|
+
pattern. Do not name withheld or selected internal customers in the final brief.
|
|
355
|
+
|
|
356
|
+
### Step 6: Next Steps Plan
|
|
357
|
+
|
|
358
|
+
Before drafting messages, define the simplest possible next-step sequence:
|
|
359
|
+
|
|
360
|
+
- first lead search hypothesis
|
|
361
|
+
- what to look for in the sample
|
|
362
|
+
- what would cause us to tighten or widen the filter
|
|
363
|
+
- what proof or personalization gaps still block final messaging
|
|
364
|
+
|
|
365
|
+
Filter logic should follow the first lead sample, not try to get too precise
|
|
366
|
+
before the sample exists. The customer-facing explanation should be:
|
|
367
|
+
|
|
368
|
+
- first we see whether the right buyers actually show up
|
|
369
|
+
- then we tighten the filter based on what we learned
|
|
370
|
+
- then we draft the message
|
|
371
|
+
|
|
372
|
+
When describing the filter step, prefer:
|
|
373
|
+
|
|
374
|
+
- required keep/exclude rules first
|
|
375
|
+
- optional supporting rules only if they clearly help later messaging or
|
|
376
|
+
prioritization
|
|
377
|
+
- never imply a large multi-axis rubric is already defined in Phase 83
|
|
378
|
+
|
|
379
|
+
Use the find-leads provider matrix language:
|
|
380
|
+
|
|
381
|
+
- If the goal is to reach out to people most likely to reply and the TAM plausibly uses LinkedIn, default the source-path hypothesis to `Signals -> Sales Nav -> Prospeo`.
|
|
382
|
+
- Signals should be the first hypothesis when active conversation or visible LinkedIn behavior is likely, because those people usually reply at much higher rates than the cold full-TAM pool.
|
|
383
|
+
- Sales Nav should be the second hypothesis when the TAM is not active enough on LinkedIn or when we need tighter role/company control.
|
|
384
|
+
- Prospeo should be the fallback hypothesis when Signals and Sales Nav still do not produce enough good fits or when account/domain expansion is the clearest next move.
|
|
385
|
+
- Prospeo: broad verified-contact expansion, named-account/domain targeting,
|
|
386
|
+
hiring-led targeting, or scale once the lane is known.
|
|
387
|
+
- Sales Nav: tight role/company filters, LinkedIn activity, recently posted, or
|
|
388
|
+
recently changed jobs.
|
|
389
|
+
- Signals: behavior/conversation-led targeting, competitor engagers, topic
|
|
390
|
+
engagers, community participants.
|
|
391
|
+
|
|
392
|
+
Use only Prospeo, Sales Nav, or Signals for source-path hypotheses.
|
|
393
|
+
Do not mention Apollo in the brief.
|
|
394
|
+
|
|
395
|
+
Before you leave Stage 83, the brief should make clear which proof can
|
|
396
|
+
increase buyer confidence and which claims are unsafe. `Safe` is
|
|
397
|
+
necessary, but not sufficient; the proof must also be believable and
|
|
398
|
+
compelling. Do not decide the opener or final message shape in the brief.
|
|
399
|
+
|
|
400
|
+
### Step 7: Message Thesis
|
|
401
|
+
|
|
402
|
+
The `## Message Thesis` section is an INPUT BOUNDARY, not a drafting
|
|
403
|
+
plan. It gives Phase 84 the buyer outcome, safe proof, unsafe claims, and
|
|
404
|
+
signal categories to validate. It must NOT choose the opener, paragraph
|
|
405
|
+
order, CTA geometry, or final message structure before lead samples exist.
|
|
406
|
+
Do NOT mention gold archives, archive winners, gold-standard packs, or
|
|
407
|
+
operator calibration notes anywhere in the customer-facing brief.
|
|
408
|
+
|
|
409
|
+
Collect or infer:
|
|
410
|
+
|
|
411
|
+
- **Buyer outcome to make obvious** — the outcome or problem the buyer
|
|
412
|
+
should care about, written in buyer language and not as a draft opener.
|
|
413
|
+
- **Proof that can increase confidence** — pulled from the Proof Inventory
|
|
414
|
+
in §7 (Social Proof / Safe Claims). Reference by name, not by re-quoting.
|
|
415
|
+
Pick the proof points most likely to make this buyer believe the core
|
|
416
|
+
claim, not the most generic or most conservative option by default.
|
|
417
|
+
- **Internal archive calibration stays invisible** — never name archives,
|
|
418
|
+
winners, calibration notes, or reference clients in the brief.
|
|
419
|
+
- **Claims / framing to avoid** — explicit don'ts that depend on the brief's
|
|
420
|
+
safe-claims boundary (e.g., "no SOC 2 certified claim", "no
|
|
421
|
+
named-customer proof", "no specific NDR or churn numbers", "no
|
|
422
|
+
replace-human framing").
|
|
423
|
+
- **Personalization data to validate later** — signal categories expected
|
|
424
|
+
from the lead source (post-quote, profile-snippet, trigger, tool-keyword,
|
|
425
|
+
peer-event), only when likely detectable.
|
|
426
|
+
|
|
427
|
+
Do NOT include:
|
|
428
|
+
|
|
429
|
+
- structural rules ("no greeting", "pain-first", "founder-line-once")
|
|
430
|
+
- sketch drafts with specific wording
|
|
431
|
+
- token-level directives ("use first_name", "include company")
|
|
432
|
+
- opener instructions ("lead with X", "start with the founder", "start
|
|
433
|
+
with the pain")
|
|
434
|
+
- banned opener lists, banned phrase lists, or banned bigram lists
|
|
435
|
+
(those live in gold-archive references and substance filters)
|
|
436
|
+
- a hardcoded signoff / sender-name line (messages MUST NOT include a
|
|
437
|
+
`"— {{sender_name}}"` line; see
|
|
438
|
+
`mcp/sellable/skills/generate-messages/SKILL.md` for the
|
|
439
|
+
NO-SIGNOFF HARD INVARIANT)
|
|
440
|
+
|
|
441
|
+
Default channel: InMail. Do not recommend connection requests as a
|
|
442
|
+
warm-up, fallback, secondary channel, or exception. Do not write final
|
|
443
|
+
sequences in Phase 83. The §9 Message Thesis is a facts-and-boundaries
|
|
444
|
+
handoff for Phase 84; final InMail variants belong to the messaging step
|
|
445
|
+
after the lead sample exists and the filter has been tightened.
|
|
446
|
+
|
|
447
|
+
`## Personalization Inputs To Validate` is a short handoff for the next
|
|
448
|
+
step, not a long section the customer needs to study. Keep it to 0-3
|
|
449
|
+
bullets max. If there is nothing special to note yet, say so briefly
|
|
450
|
+
instead of listing every possible signal.
|
|
451
|
+
|
|
452
|
+
### Step 8: brief.md v1
|
|
453
|
+
|
|
454
|
+
Return one Markdown brief inline in the final assistant message. Follow
|
|
455
|
+
`references/brief-template.md` exactly enough that every required section is
|
|
456
|
+
present. The brief must include ALL of the following headers, in this order:
|
|
457
|
+
|
|
458
|
+
- `Status: brief-v1`
|
|
459
|
+
- `## Campaign Direction`
|
|
460
|
+
- `## Product`
|
|
461
|
+
- `## Campaign Thesis`
|
|
462
|
+
- `## Sender`
|
|
463
|
+
- `## ICP / Targeting`
|
|
464
|
+
- `## Buyer Pain / Why This Might Work`
|
|
465
|
+
- `## Offer Strategy`
|
|
466
|
+
- `## Social Proof / Safe Claims`
|
|
467
|
+
- `## Differentiators`
|
|
468
|
+
- `## Message Thesis`
|
|
469
|
+
- `## Personalization Inputs To Validate`
|
|
470
|
+
- `## Next Steps`
|
|
471
|
+
- `## Campaign Notes`
|
|
472
|
+
- `## Sources Used`
|
|
473
|
+
|
|
474
|
+
`## Campaign Direction` is the fast-read summary. Keep it to 4-6 short
|
|
475
|
+
lines or bullets that make the campaign obvious before the richer brief
|
|
476
|
+
sections begin: who we are going after first, what the offer is, why it
|
|
477
|
+
should work, and what must be true before launch. Do not prescribe message
|
|
478
|
+
structure, opener order, or final copy here.
|
|
479
|
+
|
|
480
|
+
`## Sources Used` is the customer-facing bibliography and is mandatory, but it
|
|
481
|
+
belongs at the END of the brief, not the beginning. Do NOT omit it. It lists
|
|
482
|
+
the LinkedIn URL, sender data, website, supplied materials, and
|
|
483
|
+
customer-owned research. See `references/brief-template.md` for the exact
|
|
484
|
+
bullet shape. Keep it tight: 3-5 bullets, source name + URL or source label
|
|
485
|
+
only. Do not append extraction notes like `fetched`, `employee count 2-10`,
|
|
486
|
+
or operator-only commentary in parentheses.
|
|
487
|
+
|
|
488
|
+
Keep `Product` short: 3-4 buyer-relevant bullets, not a product essay. Do not
|
|
489
|
+
dump long integration/vendor lists there. Name only the few examples that
|
|
490
|
+
matter most to the buyer, and only when directly sourced. Good message sketches
|
|
491
|
+
must be based on actual prospect/context logic, never on Sellable's other
|
|
492
|
+
client examples. Sender credibility should include only signals that would
|
|
493
|
+
impress the target buyer. Do not lead with college/education unless the buyer
|
|
494
|
+
would genuinely care.
|
|
495
|
+
|
|
496
|
+
Keep `Campaign Thesis`, `Buyer Pain / Why This Might Work`, and `Offer
|
|
497
|
+
Strategy` crisp. These sections should read like a customer-facing operator note
|
|
498
|
+
with short bullets or a short paragraph, not a consultant strategy memo. Avoid
|
|
499
|
+
labels like `Rationale:` or dense multi-clause analysis when a tighter sentence
|
|
500
|
+
will do.
|
|
501
|
+
|
|
502
|
+
Prefer bullets in `Campaign Thesis` over one long paragraph. The reader
|
|
503
|
+
should be able to scan target, offer, why it might work, and risk in a
|
|
504
|
+
few seconds.
|
|
505
|
+
|
|
506
|
+
Keep `Social Proof / Safe Claims` concise. Use a short approved-claims list and
|
|
507
|
+
a short proof-gaps / off-limits list. This section should identify the
|
|
508
|
+
1-3 most compelling proof points for this buyer, which may be customer
|
|
509
|
+
proof, founder/operator credibility, investor/backing proof, or
|
|
510
|
+
proprietary-tech/category proof depending on the context. Do not turn
|
|
511
|
+
this section into a long risk memo. The test is not "what do buyers
|
|
512
|
+
already associate with us?" but "what would make this buyer more
|
|
513
|
+
confident the claim we are making is true?"
|
|
514
|
+
|
|
515
|
+
Keep the whole brief compact. Prefer the shortest wording that still makes the
|
|
516
|
+
campaign thesis, buyer lane, safe proof, and next-step flow clear. Do not turn
|
|
517
|
+
`brief-v1` into a long-form product memo.
|
|
518
|
+
|
|
519
|
+
Stop after returning the brief inline. Do not report a save path or ask the
|
|
520
|
+
operator to persist the file. Keep the content customer-facing and exact to the
|
|
521
|
+
validated sources you actually used.
|
|
522
|
+
|
|
523
|
+
## Draft Lifecycle
|
|
524
|
+
|
|
525
|
+
- Markdown only.
|
|
526
|
+
- No YAML frontmatter.
|
|
527
|
+
- No metadata sidecar in Phase 83.
|
|
528
|
+
- Never overwrite an existing draft silently. Ask whether to resume, regenerate,
|
|
529
|
+
or create a new slug.
|
|
530
|
+
- Stop after `brief.md v1`. Phase 84 validates leads, rubric, and messages.
|
|
531
|
+
|
|
532
|
+
## Acceptance Bar
|
|
533
|
+
|
|
534
|
+
The brief should be clear enough that the customer understands who we are likely
|
|
535
|
+
targeting, what we are likely saying, and what happens next: find leads, tighten
|
|
536
|
+
the filter, then draft the message. Unknowns are acceptable when named.
|
|
537
|
+
Invented proof is not.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Brief Synthesis Rules
|
|
2
|
+
|
|
3
|
+
Use this file when converting a mixed source bundle into the canonical campaign
|
|
4
|
+
brief.
|
|
5
|
+
|
|
6
|
+
## Source Bundle Layout
|
|
7
|
+
|
|
8
|
+
Organize inputs under these mental buckets:
|
|
9
|
+
|
|
10
|
+
- `sources` — which concrete materials were used
|
|
11
|
+
- `transcript` — Grain or discovery call
|
|
12
|
+
- `client_context` — website, product docs, proposal, onboarding notes
|
|
13
|
+
- `research` — external validation and category context
|
|
14
|
+
- `good_examples` — compact gold-example references only
|
|
15
|
+
|
|
16
|
+
Always list the actual sources used in the brief header.
|
|
17
|
+
|
|
18
|
+
## Synthesis Method
|
|
19
|
+
|
|
20
|
+
1. Extract facts first
|
|
21
|
+
2. Separate:
|
|
22
|
+
- known facts
|
|
23
|
+
- inferred strategy
|
|
24
|
+
- missing information
|
|
25
|
+
3. Draft the brief from the facts and clearly labeled inferences
|
|
26
|
+
4. Turn missing high-leverage information into questions for the client
|
|
27
|
+
|
|
28
|
+
## Use Of Examples
|
|
29
|
+
|
|
30
|
+
Use the example bank to learn:
|
|
31
|
+
|
|
32
|
+
- what a strong offer looks like
|
|
33
|
+
- what a good CTA structure looks like
|
|
34
|
+
- what good token filling sounds like
|
|
35
|
+
- what kind of tone the client should feel good reading
|
|
36
|
+
|
|
37
|
+
Do not:
|
|
38
|
+
|
|
39
|
+
- paste giant example dumps into the working prompt
|
|
40
|
+
- clone one client's voice for another client
|
|
41
|
+
- copy proof or claims between clients
|
|
42
|
+
|
|
43
|
+
## Voice Preservation
|
|
44
|
+
|
|
45
|
+
Preserve:
|
|
46
|
+
|
|
47
|
+
- the client's own words when they are sharp
|
|
48
|
+
- Thomas / Sellable standards for clarity, tone, and realism
|
|
49
|
+
- the distinction between strategy and copy
|
|
50
|
+
|
|
51
|
+
Default rules:
|
|
52
|
+
|
|
53
|
+
- clear over clever
|
|
54
|
+
- readable aloud
|
|
55
|
+
- 5th-grade readability unless the buyer clearly needs more technical language
|
|
56
|
+
- no invented proof
|
|
57
|
+
|
|
58
|
+
## When To Ask Questions
|
|
59
|
+
|
|
60
|
+
Ask questions only when the missing information changes messaging or targeting
|
|
61
|
+
materially.
|
|
62
|
+
|
|
63
|
+
Good questions:
|
|
64
|
+
|
|
65
|
+
- what buyer segment converts fastest
|
|
66
|
+
- whether there is a pilot or design-partner offer
|
|
67
|
+
- what proof the buyer actually cares about
|
|
68
|
+
- whether one persona should be primary vs secondary
|
|
69
|
+
|
|
70
|
+
Bad questions:
|
|
71
|
+
|
|
72
|
+
- anything easy to look up
|
|
73
|
+
- logistics that do not affect strategy
|
|
74
|
+
- generic "tell me more about your business" filler
|
|
75
|
+
|
|
76
|
+
## Main Brief vs Appendix
|
|
77
|
+
|
|
78
|
+
Keep in the main brief:
|
|
79
|
+
|
|
80
|
+
- strategy
|
|
81
|
+
- ICP
|
|
82
|
+
- offer logic
|
|
83
|
+
- proof
|
|
84
|
+
- campaign plan
|
|
85
|
+
- alignment
|
|
86
|
+
|
|
87
|
+
Keep in the bounded appendix:
|
|
88
|
+
|
|
89
|
+
- opener guidance
|
|
90
|
+
- CTA guidance
|
|
91
|
+
- token-fill examples
|
|
92
|
+
- anti-patterns
|
|
93
|
+
- 2-3 approved direction examples at most
|
|
94
|
+
|
|
95
|
+
## Hallucination Guard
|
|
96
|
+
|
|
97
|
+
- Never invent logos, metrics, or case studies.
|
|
98
|
+
- If proof is missing, say `Not provided` or frame it as a question.
|
|
99
|
+
- If a useful strategic inference is being made, keep it close to the source
|
|
100
|
+
evidence.
|