Systems Lab

Agent skill

sales-discovery-brief

Turn call notes, an inbound email, or RFP text into a structured discovery brief for one opportunity, with a qualification verdict and the list of unanswered questions.

activeSelf-containedInstructions only989 words

Filed under Calls, demos and discovery.

From b2bforce/b2bforce · 29 skills · 2 · pushed 2026-08-21

What it does when it runs

Turn call notes, an inbound email, or RFP text into a structured discovery brief for one opportunity, with a qualification verdict and the list of unanswered questions. Use when a prospect replies, a fit call happens, an RFP arrives, or before writing a proposal. Output to workspace/sales/opportunities/.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about sales-discovery-brief

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/b2bforce/b2bforce.git /tmp/b2bforce
git -C /tmp/b2bforce sparse-checkout set ".agents/skills/sales-discovery-brief"
mkdir -p ~/.claude/skills/sales-discovery-brief
cp -R "/tmp/b2bforce/.agents/skills/sales-discovery-brief/." ~/.claude/skills/sales-discovery-brief/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from b2bforce/b2bforce/blob/7682ed90c62190a0f3c09eb135596d08bd6890bc/.agents/skills/sales-discovery-brief/SKILL.md, which is licensed MIT (skill frontmatter). 989 words, 25 headings.

Discovery Brief

Captures what is actually known about one opportunity before anyone writes a proposal. The brief is the input every later sales skill reads.

Most proposal time is lost to hunting for context, not to writing. A brief that records the buyer's own words, the decision process, and — critically — what is still unknown, is what makes a later proposal fast and specific.

Read First

  1. workspace/firm/profile.md — what the firm sells.
  2. workspace/firm/services/{slug}.md — the candidate service, its fit and anti-fit criteria.
  3. workspace/marketing/icp/{slug}.md and its personas — how this buyer type usually buys.
  4. Existing folders in workspace/sales/opportunities/ — do not open a duplicate.

When to Use

  • A prospect replied and there is something real to record.
  • A fit or discovery call happened and notes exist.
  • An RFP or inbound brief arrived.
  • Someone wants a proposal and no brief exists yet.

Core Rules

Brand scope. In a multi-brand workspace (2+ brand homes in workspace/firm/brands/), every path this skill reads or writes is brand-scoped: definitional entities (services, ICP, personas, proof, channels) live in firm/brands/{brand}/…, working pipelines carry a {brand}/ segment under their entity root, and the working brand comes from the user's choice or B2BFORCE_BRAND — never guessed. Rules: Brand Scope Gate in AGENTS.md; paths: docs/WORKSPACE.md.

  1. One opportunity = one folder. Do not create a folder per conversation.
  2. Record only what was said. Everything else goes in ## Open questions. A brief that reads as complete when it is not is how a firm ends up proposing into a decision process it never understood.
  3. Never invent budget, timeline, decision makers, or competitors. Absent is unknown, not a guess.
  4. Distinguish the buyer's words from your interpretation. Quote the buyer for the problem statement; put your reading under ## Firm assessment.
  5. Do not write a proposal in this skill and do not decide bid/no-bid here. Those are sales-proposal and sales-bid-qualification.

Output

Folder: workspace/sales/opportunities/{account}--{service}--{YYYY-MM}/

File: !_discovery.md

The !_ prefix marks it as needing attention until qualification runs, per the repo's naming convention.

Frontmatter:

---
account: acme-industrial
account_public: false
service: platform-migration
icp: mid-market-manufacturing
persona: cto-mid-market
source: inbound | referral | outbound | rfp | existing_client
opened: 2026-07-25
updated: 2026-07-25
budget_signal: unknown          # stated | range_hinted | unknown | no_budget
timeline_signal: unknown        # dated | quarter_hinted | unknown | no_timeline
decision_process: unknown       # mapped | partial | unknown
competitors_known: []
bid_decision: pending           # set by sales-bid-qualification
brief_quality: thin             # thin | workable | strong
---

Body sections:

## Situation
## Problem in the buyer's words
## Impact
## Desired outcome
## Decision process
## Constraints
## Firm assessment
## Open questions
## Next action

Field-by-field rules and a worked example: references/brief-fields.md.

Brief Quality

Set brief_quality honestly, because the Proposal Gate reads it.

ValueMeans
thinProblem is vague, or no impact, decision process, and timeline
workableProblem and desired outcome are concrete; one or two gaps remain
strongProblem, impact, outcome, decision process, and constraints all recorded

A thin brief is a normal first state after a short inbound email. Say what is missing and what question would close the gap.

Refuse To Proceed

If the user asks for a proposal from a thin brief, do not write one. Return the three questions that would move the brief to workable and offer to draft the follow-up message that asks them.

This refusal is the point of the skill. A proposal built on a thin brief is where the average firm spends eight hours and loses.

Workflow

1. Identify the opportunity

Slug the account in kebab-case. Pick the service the request most likely maps to; if two services could fit, record both under ## Firm assessment and let qualification decide.

Check for an existing folder for the same account and service. If found, update it instead of creating a second one.

2. Extract from the source

Work through the source material once, and write down only what is present:

  • the problem, quoted where possible;
  • what it costs them today — money, time, risk, or blocked work;
  • what they say they want instead;
  • who decides, who influences, and what has to happen for a yes;
  • constraints: timing, budget, incumbent vendor, internal capacity, compliance.

For an RFP, also record the submission deadline, required format, and evaluation criteria if stated.

3. Mark the gaps

Everything not stated goes under ## Open questions as a question you would actually ask, not a field name. "Who else has to approve this besides you?" beats "decision process: unknown".

4. Assess fit

Compare against the service's fit and anti-fit criteria and the ICP. Write your reading under ## Firm assessment — including reasons this might not be a good fit. Do not soften anti-fit signals; they are what makes the next step cheap.

5. Set the next action

One concrete next step with an owner. Then hand off to sales-bid-qualification.

Testing Requirements

  1. Build a brief from a three-line inbound email; confirm brief_quality: thin and that ## Open questions is the longest section.
  2. Ask for a proposal from that brief; confirm the skill refuses and returns questions instead.
  3. Build a brief from full call notes; confirm workable or strong.
  4. Re-run for the same account and service; confirm it updates rather than creating a second folder.

Reference Files

FileContent
references/brief-fields.mdSection rules, signal vocabularies, worked example

Related Skills

SkillWhen
sales-bid-qualificationNext — decides bid or no-bid on this brief
sales-proposalAfter a bid or conditional decision
marketing-icpThe ICP or persona for this buyer does not exist yet
firm-contextFirm profile or service definition missing

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what sales-discovery-brief does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.