| name | hunt |
| description | Hunts a prospect's provable weaknesses and buying tells from public sources and packages them as a typed, cited tells-dossier — the left half of the sign-here bijection (tells ↔ scope ↔ price) that makes the pitch feel painfully obvious. Use when the user says "hunt [company]", "find their tells", "weakness map", "recon this prospect", "why would they buy", "what are their gaps", "build the dossier", or before any bid, deck, demo, or outreach so positioning rests on demonstrated gaps instead of generic value props. Runs one prospect or fans out across many. Produces a cited dossier with severity/provability/monetizability scores, a live-demo wedge list, a quarantined-hypotheses section, and a NEEDS/UNKNOWNS handoff — never client-facing. |
Hunt — the tells dossier
Hunt is the evidence-gathering half of the Hunt ⊣ Pitch adjunction (../forge/references/meta-meta-map.md). It maps Prospect → Gaps: extract the provable weaknesses (tells) of a prospect so that every later offer line traces to a demonstrated gap. A tell without evidence is a hypothesis; hypotheses are quarantined and never presented to a buyer. The dossier feeds synthesis only — never a client artifact directly (one-directional flow, ../forge/references/evidence-rules.md §6).
Binding law: ../forge/references/evidence-rules.md outranks speed and polish. Every client-relevant observation carries a URL, an access date, and a reproduction step. No fabricated observations, ever.
H1 · Typed contract
Fill these at intake; UNKNOWN is legal, never invented.
ENTITY: str # legal/trading name as found — flag UNCONFIRMED until human-verified
ENTITY_URL: url|UNKNOWN # canonical site
VERTICAL: str # industry/segment — drives which lanes matter
GEOGRAPHY: str|UNKNOWN # service footprint — gates competitor set + compliance jurisdiction
COMPETITORS_KNOWN: list[str] # named rivals supplied at intake (may be empty → derive)
WARMTH: {cold|warm|hot}# from RELATIONSHIP_WARMTH — tunes tone + wedge aggressiveness
CAPABILITY_MENU: list[str] # what we sell — the monetizability target set
DELIVERY_DOMAIN: str|UNKNOWN # inherited from factory slot when run inside a pipeline
LANE_PRIORS: ref|UNKNOWN # shared vertical priors (FACTORY/atoms.md tell-patterns for this vertical)
Derived artifact (typed): TELLS_DOSSIER — a file at 01-research/tells-dossier.md with the exact schema below, plus rows appended to 01-research/UNKNOWNS.md and 01-research/NEEDS.md.
H2 · The dossier schema (exact — section order fixed)
01-research/tells-dossier.md MUST contain these sections in this order:
-
Entity block — ENTITY (with UNCONFIRMED tag if unverified), ENTITY_URL, VERTICAL, GEOGRAPHY, competitor set used (named + linked), hunt date, lanes swept, context budget spent.
-
Live-wedge list — 2–3 wedges (see references/wedge-scripts.md), each: wedge-id · the tell it shows · seconds-to-show · setup line · show-steps · landing sentence · source URL+date. At least one wedge must be showable in <60 seconds. If none exist, an explicit NO LIVE WEDGE — [reason] line (rare; usually a shallow funnel sweep — recheck).
-
Tells table — one row per evidenced tell, columns exactly:
| tell-id | lane | observation | evidence-URL | accessed | repro-step | screenshot-able | severity(H/M/L) | provability(H/M/L) | monetizability(H/M/L) | capability-map | composite |
|---|
Minimum: sweep all six lanes; ≥1 evidenced tell per applicable lane or an explicit lane clear — [what was checked] note. Every row's evidence-URL + repro-step must let a fresh agent re-observe the tell. Scores follow references/scoring-rubric.md.
-
Hypotheses (quarantine) — suspected-but-unevidenced weaknesses, columns: hypothesis · why suspected · triage route attempted · why unresolved · DO-NOT-SHOW. Nothing here may migrate to the tells table or any artifact until evidenced.
-
NEEDS / UNKNOWNS handoff — the residuals that survived the auto-triage ladder, in the evidence-rules format: | Unknown | Why it matters | Triage route | Status |, mirrored into 01-research/UNKNOWNS.md. Items that would materially improve the bid also append to 01-research/NEEDS.md tagged auto-resolvable / requires-human / requires-prospect.
Evidence-record format (every cell in the observation → repro chain): observation · URL · accessed yyyy-mm-dd · reproduction step · screenshot-able y/n. Full per-lane record specs in references/probe-playbook.md.
Acceptance checklist (pass/fail — all must pass)
H3 · Loop — Frame → Do → Review → Capture
- Frame (retrieval before probing). Grep
FACTORY/INDEX.md by VERTICAL for the run's priors — specifically tell-pattern atoms (weakness signatures + where they hid + probe hit-rate) and triage-route atoms (public sources that resolved unknowns) — refresh any that are OVERDUE (../mint-atoms/references/refresh-policy.md) before use, and record every atom loaded in the ## atoms consulted block of 00-intake-digest.md (one line: ATOM-seq · type · claim — why loaded; when run standalone with no digest, log the same block in the dossier's Entity section). This is the same retrieval contract run-factory Stage 0 honors (mint-atoms ledger-protocol.md); the block MUST exist even if empty ((none — no match for <vertical>)). Then pick lane order by prior hit-rate for VERTICAL, set a context budget (default ~15 fetches/prospect; raise for compliance-heavy verticals), and derive the competitor set if COMPETITORS_KNOWN is empty.
- Do. Run the six-lane sweep per
references/probe-playbook.md, batching probes (below). Log every observation as an evidence record as you go — never from memory.
- Review. Score with
references/scoring-rubric.md; run the wedge-selection algorithm; quarantine hypotheses; run the auto-triage ladder on unknowns before parking any for a human; run the acceptance checklist.
- Capture. Mint atoms to
FACTORY/atoms.md (via mint-atoms): tell-patterns (weakness signature + where it hid + which probe found it + hit-rate note) and triage-routes (the public source that resolved an unknown). A hunt that mints no atom did not complete.
H4 · Scale — hunting N prospects in parallel
- Isolation vs. shared priors. Per-prospect evidence is strictly isolated — one prospect's observations never cross-contaminate another's dossier (each writes its own
01-research/tells-dossier.md). Only vertical priors (tell-patterns, competitor sets, jurisdiction rules) are shared read-only across prospects in the same vertical.
- Probe batching. Within a prospect, batch same-source probes (all directory lookups, all review-platform pulls) into one pass to amortize fetches. Across prospects sharing a vertical, resolve shared lookups once (e.g. the vertical's regulator database index, competitor-of-record list) and cache to a run-local
01-research/_vertical-priors.md; dedupe repeated lookups against it.
- Fan-out. One subagent per prospect, context-complete prompt (typed slots + shared priors ref + lane order). Subagents write their own dossier + return a ≤400-word summary; they never score across prospects. The orchestrator ranks prospects by top-composite tell.
- Context budget. Default ~15 fetches/prospect; a batch of N prospects gets a global ceiling — when hit, finish scoring what is gathered and log the unswept lanes as
NEEDS rather than fabricating.
- Retry policy. Failed/blocked fetch → retry once; on second failure, do NOT infer content — log the tell as a hypothesis with
triage route attempted: fetch failed ×2 and move on. Never let a dead link become an assumed weakness.
H5–H8 · Encoded judgment, safety nets, invariants
Depth lives in three references (read the one you need):
references/probe-playbook.md — per-lane probes, sources, what to measure/record, ethical + legal boundaries.
references/scoring-rubric.md — anchored H/M/L for severity/provability/monetizability, composite rule, wedge-selection algorithm.
references/wedge-scripts.md — example-agnostic live-wedge script patterns + handoff into the offer bijection.
Checkable predicates (safety nets): every tell has URL + date + repro step (else it is a hypothesis); ≥2 live wedges or a documented absence; hypotheses physically quarantined in their own section; entity UNCONFIRMED until human-verified; compliance findings dated (they decay fast).
Invariants restated where load-bearing (../forge/references/evidence-rules.md, factory-schema.md §5): evidence-or-unknown (never invent); auto-triage ladder before any unknown reaches a human (prospect materials → search → public stats → labeled inference → residual); one-directional flow (dossier → synthesis → artifacts, never dossier → artifact); respectful/factual tone; entity IDs stay UNCONFIRMED.
H9 · DONE + refusals
DONE when: all six lanes swept (tells or lane clear notes); acceptance checklist passes; wedges selected or absence documented; hypotheses quarantined; unknowns triaged with residuals in NEEDS/UNKNOWNS; ≥1 atom minted; entity confirmation status stated.
Refuse to: score or table a tell with no evidence record (it goes to quarantine); run deceptive recon — no pretexting, no fake purchase inquiries, no posing as a customer where prohibited, no accessing non-public systems (references/probe-playbook.md boundaries); test response times except via legitimately public channels; present the dossier as client-facing (it feeds synthesis only); mock the prospect.
H10 · Self-improvement hooks
Each hunt records: which probes yielded high-composite tells vs. dead ends (feeds lane-order priors), which triage routes resolved unknowns (feeds the ladder), which wedges landed or misfired in the meeting (negative wedge-patterns are atoms too). Feed corrections through mint-atoms; when a probe repeatedly finds nothing for a vertical, demote it in that vertical's LANE_PRIORS. Generalization check: a new tell-pattern must hold for ≥2 prospects in the vertical before it becomes a shared prior.