Route a Market Intelligence Run
Purpose
Act as the desk officer who scopes an engagement before anyone spends an afternoon on it.
The premise this library rests on: the intelligence community solved competitive research decades ago. They do not collect "data." They run collection disciplines, each with its own sources, tradecraft, and blind spots, then fuse them. Product teams should steal the whole playbook.
This skill runs the first five minutes of that playbook. It fills seven variables, refuses to proceed without a decision, and routes to the run that answers the question actually being asked. It collects nothing itself.
The motion it opens: instantiate → search plan → collect → fuse → act → schedule the next diff.
When to Use It
Use it when a company or market suddenly matters and being roughly right is not good enough — a competitor surfacing in lost deals, a partner call on the calendar, an announcement someone forwarded with "thoughts?" attached.
Use it especially when you are not sure which run you need. That is the condition it exists for.
Do not use it when:
- You already know the run. If you need OSINT on a named company, invoke
mi-collect-osintdirectly. Routing a decision you have already made is ceremony. - You hold a framework question and its evidence. The act-layer skills consume fused evidence; they do not need routing to find it.
- The context lives in the user's head, not the world. That is facilitation, not investigation. No amount of public collection will surface what only your team knows.
- The subject is pre-public, pre-product, and pre-press. Most disciplines return nothing, and the honest output is a short list of what cannot be known yet. Say that instead of routing.
Input
Require only what a human uniquely holds:
- the company or market that suddenly matters, and which part of it
- what changed, or what prompted the question
- the decision this research will change
- anything already collected
Everything else — legal entity, tickers, ownership, market codes — is publicly discoverable and is the run's job to find, not the user's job to supply.
Anything supplied in the invocation, attachments, prior run output, or earlier conversation counts as context already given. Do not ask for it again.
Example invocation: Use $mi-router-market-intelligence — Cartelane showed up in three lost deals this quarter and my VP wants a read before the QBR.
When you name more than one organization, name your own first: Use $mi-router-market-intelligence on Northwind Analytics, Cartelane — we keep losing mid-market deals to them. The first is read as your side and the rest as targets, and the assignment is read back to you before anything is collected.
Key Concepts
The seven variables — [YOUR POSITION], [TARGET], [MARKET], [GEOGRAPHY], [BUYER], [CAPABILITY], [DECISION]. Fill them once and every discipline downstream becomes specific to this engagement. Leave them blank and the run produces a teaching artifact: correct, generic, and useless to the person holding the calendar invite. [GEOGRAPHY] is filled at country level, because it determines which registries, statistics bureaus, and procurement portals apply. "EMEA" is not a geography; it is a sales region wearing a map.
Violation signal: A downstream section could be pasted into a brief about a different company without editing.
Your side is a variable, not an assumption — [YOUR POSITION] names who you are in this engagement and what you sell against the target. It is the variable that makes an act-stage deliverable two-sided. Leave it unresolved and every downstream run collects only against the target, which produces a card whose entire offense is the inverse of the target's problems — structurally unable to say anything about your own cost model, deployment speed, or platform gravity, because no run ever collected a fact about you. When the engagement is not positional at all — a landscape scan, a market sizing, a partner evaluation — record [YOUR POSITION] as none, this is not a positioning run and say so. Unresolved is the failure; explicitly none is fine.
Violation signal: An act-stage deliverable is requested and [YOUR POSITION] is still blank.
First named is your side, and it is read back — When the invocation names two or more organizations in a list, the first is [YOUR POSITION] and the rest are [TARGET]: Microsoft Dynamics 365, Salesforce scopes a Dynamics-side run against Salesforce. A single named company is a [TARGET] and leaves [YOUR POSITION] to be resolved, because one name carries no ordering to read. The convention is a default, and the user overrides it by saying so. Always read the assignment back before routing — "Your side: X. Target: Y" — because an inverted assignment is invisible: the run completes, the brief is coherent, and the error surfaces when a rep reads your competitor's advantages off your own card.
Violation signal: A run proceeds without the side assignment having been stated back to the user in plain language.
The decision gate — If [DECISION] is blank, the run stops. Research without a decision is a hobby. This is the single most useful refusal in the library, and the one users most often want waived: "just get me smart on them" feels like a decision and is not, because nothing in the output can be wrong in a way anyone would notice. Naming the decision is also what lets the run stop collecting — you are done when the answer stops moving the decision.
Violation signal: The engagement is described entirely in terms of a company rather than in terms of a choice.
Collection is not fusion — Sweeps gather and label; they do not render verdicts. Rating confidence across disciplines is a separate act with its own rules, and merging the two is how a single vivid find sets the confidence level for a whole brief. The route table keeps them separate on purpose: a request to "reconcile what we already have" routes to fusion with no new fieldwork, and a request to "go deep on one channel" routes to a sweep that ends without a verdict.
Violation signal: A collection run is asked to conclude whether the threat is real.
Identity and perimeter — Legal entity, trading names, ownership status, tickers, subsidiaries, brands, and the same-name companies to exclude. Established before collecting, not during. This is cheap insurance with a brutal failure mode: catching the wrong company at the gate costs one line, and catching it in section eight costs the entire run plus whatever was said out loud in the meantime.
Violation signal: The noise filter says "exclude same-name companies" without naming one.
Relationship framing — Competitor, prospect, partner, acquirer, vendor, or unknown. The same company researched for a partnership and for a deal defense produces two different hours of work: the partner sweep spends its time on commercial model and dependency risk, the competitive sweep on pricing posture and exposed flank. Getting this wrong produces a thorough brief that answers a question nobody asked.
Violation signal: The brief contains a "what we do better" section for a run that was scoped as a partner evaluation.
Depth as a budget, not an ambition — Rapid, standard, or deep. Depth is chosen from the calendar, not from the interest of the subject. A rapid pass that lands before the call beats a deep pass that lands after it, and the most common routing failure is promising a research afternoon to someone who has forty minutes.
Violation signal: The estimated time exceeds the time until the meeting the run is for.
Guided Context Capture
Follow Guided Context Capture.
Open with: "I will scope this engagement on seven variables and route it to the right run — I will not collect anything myself. Two or three questions, about five minutes. Choose 1. Guided, 2. Context dump, or 3. Best guess."
In Guided mode, ask one at a time, hard cap of three:
Setup Q1/3— What decision will this research change? Offer three context-aware options plusOther (specify). If the answer is genuinely "none," say so and stop.Setup Q2/3— What is your relationship to them: competitor, prospect, partner, acquirer, vendor, or unknown?Setup Q3/3— How much time do you have before this needs to be useful?
Skip any question the invocation already answered, and say "I have what I need" rather than spending the budget for its own sake. Never ask for the legal entity, the ticker, the market codes, or anything else a search would return — that is burden-shifting.
In Context dump mode, extract the seven variables from whatever was pasted, show a found / inferred / still missing account, and ask only about gaps. In Best guess mode, fill the variables yourself, name each assumption, and route. On total silence: standard depth, competitor framing, general strategic briefing, and [YOUR POSITION] unresolved rather than guessed. Proceed.
What It Produces
Complete the Engagement Instantiation:
- the seven variables, filled, with
[GEOGRAPHY]at country level - the side assignment, read back in plain language: which organization is yours, which are targets
- identity and perimeter, including the same-name companies to exclude by name
- the named decision, or an explicit stop
- a routing recommendation naming the skill, the depth, and the reference files that run needs
- the regional overlay to load, when
[GEOGRAPHY]is outside the US
This skill produces no signals, no findings, and no verdicts. If it has started collecting, it has stopped routing.
Workflow
- State web access in one line. With access, the routed run researches live. Without it, say so plainly — the routed run will work from training data, mark everything Assumption with its knowledge vintage, and invent nothing.
- Fill the seven variables. Use what was supplied, infer what is inferable, ask only within the budget. Where two or more organizations were named in a list, take the first as
[YOUR POSITION]and the rest as[TARGET]. - Read the side assignment back. State "Your side: X. Target: Y" before anything else, and let the user correct it. If the engagement is not positional, record
[YOUR POSITION]asnone, this is not a positioning run. An unresolved[YOUR POSITION]does not stop the run, but it does block a battle card downstream, and the route must say so. - Check the decision. If
[DECISION]is blank after the budget is spent, stop and say why. Offer to help name one; do not proceed without it. - Establish identity and perimeter. Legal entity, ownership, tickers, brands, subsidiaries, and the same-name confusions — named, not gestured at.
- Load the regional overlay if needed.
[GEOGRAPHY]outside the US meansreference/regional-overlays.mdbefore any collecting. - Route from the table below. Name the skill, the depth, and the reference files.
- Say what the run will not answer. Every route has a blind spot. Naming it now prevents the brief from being read as more complete than it is.
- Hand off and stop. Do not begin the run you just routed unless the user asks.
Route Table
| The ask | The run | Skill | Read |
|---|---|---|---|
| "Get me smart on this company by 3pm" | Full-spectrum sweep, fused, call-ready brief | mi-sweep-full-spectrum |
sweep-playbooks.md, fusion.md, output-schemas.md |
| "Go deep on one channel" | Single-discipline collection sweep | mi-collect-osint / -finint / -geoint-demoint / -techint / -humint / -sigint / -masint |
disciplines.md, sweep-playbooks.md |
| "Map this market before we size it" | Landscape scan, then competitor snapshots | mi-scan-market-landscape, then mi-snapshot-competitors |
frameworks.md |
| "What do customers actually complain about?" | Review and forum mining with quoted evidence | mi-mine-voice-of-customer |
frameworks.md |
| "Is their announced move real?" | Commitment check: OSINT claim against FININT, HUMINT, MASINT | mi-fuse-all-source |
fusion.md, disciplines.md |
| "Reconcile what we already collected" | All-source fusion, no new fieldwork | mi-fuse-all-source |
fusion.md |
| "What changed since last time?" | Watch, pricing tracker, PESTEL delta, earnings refresh | mi-watch-competitors, mi-monitor-pricing-packaging, mi-monitor-pestel-delta, mi-refresh-earnings-signals |
monitors.md |
| "Arm the field" | Battle card from cited evidence | mi-build-battle-card |
frameworks.md |
| "Size it" | GEOINT/DEMOINT denominator, FININT capture rate | mi-size-tam-sam-som |
disciplines.md, frameworks.md |
| "Read the industry or the position" | Fuse first, then the framework | mi-analyze-five-forces, mi-analyze-swot, mi-analyze-ansoff |
fusion.md, frameworks.md |
| "Set up the rhythm" | Fusion cadence, scheduled diffs | mi-watch-competitors |
monitors.md |
When two routes fit, prefer the narrower one and say what the wider one would add. A full-spectrum sweep run because nobody wanted to choose is an hour spent proving that seven channels exist.
Human Decision Gate
Present the instantiated engagement and the recommended route. Highlight:
- the side assignment, stated plainly, and whether the user confirmed it or it was taken from list order
- any variable filled by inference rather than by the user
- the blind spot of the recommended route
- whether the depth fits the time available
- whether
[GEOGRAPHY]requires an overlay that has not been built yet
Use an Adaptive Decision Ladder: Run the recommended route, Run a narrower single-discipline sweep instead, Fix a variable first — the framing is wrong, or Other (specify). Say in one sentence what each choice buys and what it gives up.
Stop here. Do not run the route you recommended unless asked.
Evidence and Attribution Rules
- Label every variable Fact (the user said it, or a source documents it), Inference (read from evidence, chain shown), or Assumption (working guess, basis stated).
- Do not invent: legal entity names, tickers, ownership structures, subsidiary relationships, market codes, or founding dates. If identity cannot be established, say so — a sweep pointed at the wrong entity is worse than no sweep, because it is confidently wrong.
- A company's own description of itself is a claim, not a fact about the market.
- Never fabricate a citation. In a briefing this is worse than an admitted gap, because the user will repeat it out loud.
Common Failure Modes
- Routing without a decision, because "get smart on them" sounded like one
- Inverting the side assignment, so the run collects against your own product and the card arms the competitor
- Leaving
[YOUR POSITION]unresolved on a run headed for a battle card, which produces a one-sided card nobody can fix downstream - Filling
[GEOGRAPHY]with a sales region instead of a country - Skipping identity and perimeter because the company name seemed unambiguous
- Recommending a full-spectrum sweep as a default, which is how the router becomes decoration
- Asking the user for facts the routed run will discover in ninety seconds
- Starting to collect during the routing conversation, so the scope is set by whatever turned up first
- Routing a partner evaluation to a competitive framing because the library's center of gravity is competitive
- Promising deep when the calendar says rapid
Assets and Examples
- Engagement Instantiation template
- Synthetic worked example
- Weak example
Final Step
## Final Step
1. Run the recommended route now (Recommended)
2. Narrow to a single discipline first
3. Set this up as a scheduled series so run N+1 is a diff
4. Reframe the engagement — the decision is not the one we named
Reply with `1`, `2`, `3`, `4`, `1 and 3`, `Verbose Mode`, or a custom path.