# Sales

> Master orchestrator for the sales intelligence engine. Routes /sales commands to the correct subagent or skill. Trigger: any message starting with "/sales". Flagship command: /sales prospect <url> launches 5 parallel subagents for comprehensive prospect analysis. All engines are industry-agnostic — the same orchestrator works for SaaS, insurance, real estate, or any vertical by loading the appropriate runtime config.

- Skill: `fdu-ins/sales` (Agent Skill)
- Install (CLI): `npx skillmds@latest add fdu-ins/sales`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fdu-ins/sales/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: FDU-INS (https://skillmd.com/u/fdu-ins)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/fdu-ins/sales

---


## Tier 0 Doctrine

This is a routing hub. It receives a `/sales` command, identifies the target skill,
and dispatches execution. It does not perform analysis itself — subagents and skills
do the work. The orchestrator's job is classification, routing, and aggregation.

**Governed by: Hub-and-Spoke**
- Hub: This orchestrator — receives all `/sales` commands
- Spokes: 13 skills + 5 agents that do the actual work
- Rim: The user — invokes commands, receives outputs

---

## IMO

**Ingress:** User invokes `/sales <command> [arguments]`. Schema validation:
command must match a registered route. Arguments must match the target skill's
expected input type (URL, prospect name, description, or none).

**Middle:** Route to the correct skill. For `/sales prospect`, launch 5 parallel
subagents, collect results, compute composite score, assemble final output. For
all other commands, dispatch to the matching `skills/sales-<command>/SKILL.md`.

**Egress:** Markdown file output (or terminal output for `/sales quick`). Read-only
view of the analysis. No logic in the output — it is a report.

---

## Constants

### Command Registry (Fixed)

| Command | Skill | Output File |
|---------|-------|-------------|
| `/sales prospect <url>` | sales-prospect | PROSPECT-ANALYSIS.md |
| `/sales quick <url>` | (inline) | Terminal output |
| `/sales research <url>` | sales-research | COMPANY-RESEARCH.md |
| `/sales qualify <url>` | sales-qualify | LEAD-QUALIFICATION.md |
| `/sales contacts <url>` | sales-contacts | DECISION-MAKERS.md |
| `/sales outreach <prospect>` | sales-outreach | OUTREACH-SEQUENCE.md |
| `/sales followup <prospect>` | sales-followup | FOLLOWUP-SEQUENCE.md |
| `/sales prep <url>` | sales-prep | MEETING-PREP.md |
| `/sales proposal <client>` | sales-proposal | CLIENT-PROPOSAL.md |
| `/sales objections <topic>` | sales-objections | OBJECTION-PLAYBOOK.md |
| `/sales icp <description>` | sales-icp | IDEAL-CUSTOMER-PROFILE.md |
| `/sales competitors <url>` | sales-competitors | COMPETITIVE-INTEL.md |
| `/sales report` | sales-report | SALES-REPORT.md |
| `/sales report-pdf` | sales-report-pdf | SALES-REPORT-*.pdf |

### Prospect Score Framework (Fixed)

| Category | Weight | Subagent |
|----------|--------|----------|
| Company Fit | 25% | sales-company |
| Contact Access | 20% | sales-contacts |
| Opportunity Quality | 20% | sales-opportunity |
| Competitive Position | 15% | sales-competitive |
| Outreach Readiness | 20% | sales-strategy |

**Composite Score** = Weighted average of all 5 categories (0-100).

### Grade Scale (Fixed)

| Score | Grade | Action |
|-------|-------|--------|
| 90-100 | A+ | Hot Lead — prioritize immediately |
| 75-89 | A | Strong Prospect — significant investment |
| 60-74 | B | Qualified Lead — standard approach |
| 40-59 | C | Lukewarm — nurture, don't hard sell |
| 0-39 | D | Poor Fit — deprioritize or disqualify |

### Output Standards (Fixed)

1. Actionable over theoretical — every recommendation is executable
2. Personalized — tailored to the specific prospect, not generic
3. Revenue-focused — every insight connects to deal probability
4. Evidence-based — cite specific sources and data points
5. Ready to use — outreach emails are copy-paste ready

---

## Variables

| Variable | Source | Changes When |
|----------|--------|-------------|
| Target URL | User input | Every invocation |
| Prospect name | User input or extracted | Every invocation |
| Industry vertical | Runtime config | Config swap |
| Industry-specific signals | Runtime config | Config swap |
| Company type detection rules | Runtime config | Config swap |
| Qualification weight overrides | Runtime config (optional) | Config swap |

---

## Workflow

### BLOCK 1: Command Classification
**Governed by: C&V**

**Constants:**
- Every `/sales` command maps to exactly one skill.
- Unknown commands produce an error with the command registry table.
- `/sales prospect` is the only command that launches parallel subagents.

**Variables:**
- The specific command entered by the user.
- The specific arguments provided.

**IMO:**
- Ingress: Raw user input — `/sales <command> [args]`.
- Middle: Parse command. Match against command registry. If no match, return
  the registry table as help output. If match, identify the target skill path.
- Egress: Classified command + target skill path + parsed arguments.

**Go/No-Go:** Command matches a registered route. Arguments are present if required.

---

### BLOCK 2: Skill Dispatch
**Governed by: Hub-and-Spoke**

**Constants:**
- Each skill lives at `skills/sales-<command>/SKILL.md`.
- The orchestrator reads the skill, then executes it — never modifies it.
- For `/sales prospect`, dispatch 5 subagents in parallel (not sequential).

**Variables:**
- The specific skill being dispatched.
- The specific arguments passed to the skill.

**IMO:**
- Ingress: Classified command from Block 1.
- Middle: If `/sales prospect` → launch 5 parallel subagent calls:
  1. `agents/sales-company.md` → Company research
  2. `agents/sales-contacts.md` → Contact intelligence
  3. `agents/sales-opportunity.md` → Opportunity assessment
  4. `agents/sales-competitive.md` → Competitive analysis
  5. `agents/sales-strategy.md` → Outreach strategy
  For all other commands → read and execute the target skill.
- Egress: Skill execution results (raw outputs from subagents or skill).

**Go/No-Go:** Skill file exists and is readable. Arguments match skill's expected input.

---

### BLOCK 3: Score Aggregation (Prospect Only)
**Governed by: IMO**

**Constants:**
- Aggregation applies ONLY to `/sales prospect` output.
- Weights are fixed: Company 25%, Contacts 20%, Opportunity 20%, Competitive 15%, Strategy 20%.
- Each subagent returns a 0-100 score for its category.
- Composite = weighted sum of all 5 scores.
- Grade assignment uses the fixed grade scale (A+ through D).

**Variables:**
- The 5 individual category scores.
- The resulting composite score and grade.

**IMO:**
- Ingress: Raw outputs from all 5 parallel subagents.
- Middle: Extract category score from each subagent output. Apply weights.
  Calculate composite. Assign grade. If any subagent failed, mark that
  category as "incomplete" and note it in the executive summary.
- Egress: Composite score, grade, and per-category breakdown.

**Go/No-Go:** At least 3 of 5 subagents returned valid scores. If fewer than 3,
flag as incomplete analysis — do not assign a grade.

---

### BLOCK 4: Output Assembly
**Governed by: CTB**

**Constants:**
- Output file includes: prospect URL, date, overall score, executive summary.
- Output is structured with clear headers and tables.
- Output follows the target skill's specified file format.

**Variables:**
- The specific content assembled from skill/subagent outputs.
- The output filename.

**IMO:**
- Ingress: Skill output (Block 2) + score aggregation (Block 3 if prospect).
- Middle: Assemble the final output file:
  - Trunk: The output file itself.
  - Branches: Major sections (summary, detailed findings, recommendations, next steps).
  - Leaves: Specific data points, scores, action items.
  Save to the current directory with the filename from the command registry.
- Egress: Written markdown file (or terminal output for `/sales quick`).

**Go/No-Go:** Output file written successfully. Contains all required sections.

---

## Rules

1. **Never** hardcode industry-specific content into the orchestrator. Industry detection
   rules, vertical-specific signals, and company type heuristics live in runtime config.
2. **Never** execute analysis in the orchestrator. The orchestrator routes — skills analyze.
3. **Never** modify a skill file during execution. Read and execute, never write.
4. **Never** run subagents sequentially when they can run in parallel.
5. **Never** assign a grade when fewer than 3 subagents returned valid scores.
6. **Never** produce output without citing data sources. "Based on our analysis" is not a source.
7. **Never** skip the command classification step. Unknown commands get the help table, not a guess.

---

## Cross-Skill Integration

| Skill | Benefits From | Feeds Into |
|-------|--------------|------------|
| prospect | all 5 subagents | report, report-pdf |
| outreach | research, contacts | followup |
| prep | research, contacts, qualify | proposal |
| proposal | qualify, competitors | (terminal) |
| report | all prospect analyses | report-pdf |
| objections | competitors | prep, outreach |

---

## Quick Snapshot (`/sales quick <url>`)

This is the only command handled inline (no external skill file):

1. Fetch homepage via WebFetch.
2. Evaluate: company size signals, industry fit, tech indicators, growth signals,
   decision maker visibility.
3. Output: scorecard with top 3 opportunities + top 3 concerns.
4. Max 30 lines of terminal output. No file saved.

---

## Reference Pointers

| File | Contains | Load When |
|------|----------|-----------|
| `factory/agents/skill-creator/SKILL.md` | Block format spec | Creating new skills |
| `factory/agents/CAR_SKILL_TEMPLATE.md` | Car-specific skill template | Creating repo-specific skills |
| `agents/*.md` | 5 subagent definitions | `/sales prospect` dispatch |
| `skills/sales-*/SKILL.md` | 13 skill packages | Any `/sales` command |
| `templates/*.md` | Output templates | Skills that generate docs |

