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)
- Actionable over theoretical — every recommendation is executable
- Personalized — tailored to the specific prospect, not generic
- Revenue-focused — every insight connects to deal probability
- Evidence-based — cite specific sources and data points
- 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:
agents/sales-company.md → Company research
agents/sales-contacts.md → Contact intelligence
agents/sales-opportunity.md → Opportunity assessment
agents/sales-competitive.md → Competitive analysis
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
- Never hardcode industry-specific content into the orchestrator. Industry detection
rules, vertical-specific signals, and company type heuristics live in runtime config.
- Never execute analysis in the orchestrator. The orchestrator routes — skills analyze.
- Never modify a skill file during execution. Read and execute, never write.
- Never run subagents sequentially when they can run in parallel.
- Never assign a grade when fewer than 3 subagents returned valid scores.
- Never produce output without citing data sources. "Based on our analysis" is not a source.
- 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):
- Fetch homepage via WebFetch.
- Evaluate: company size signals, industry fit, tech indicators, growth signals,
decision maker visibility.
- Output: scorecard with top 3 opportunities + top 3 concerns.
- 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 |
1---2name: sales3description: 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.4---56## Tier 0 Doctrine78This is a routing hub. It receives a `/sales` command, identifies the target skill,9and dispatches execution. It does not perform analysis itself — subagents and skills10do the work. The orchestrator's job is classification, routing, and aggregation.1112**Governed by: Hub-and-Spoke**13- Hub: This orchestrator — receives all `/sales` commands14- Spokes: 13 skills + 5 agents that do the actual work15- Rim: The user — invokes commands, receives outputs1617---1819## IMO2021**Ingress:** User invokes `/sales <command> [arguments]`. Schema validation:22command must match a registered route. Arguments must match the target skill's23expected input type (URL, prospect name, description, or none).2425**Middle:** Route to the correct skill. For `/sales prospect`, launch 5 parallel26subagents, collect results, compute composite score, assemble final output. For27all other commands, dispatch to the matching `skills/sales-<command>/SKILL.md`.2829**Egress:** Markdown file output (or terminal output for `/sales quick`). Read-only30view of the analysis. No logic in the output — it is a report.3132---3334## Constants3536### Command Registry (Fixed)3738| Command | Skill | Output File |39|---------|-------|-------------|40| `/sales prospect <url>` | sales-prospect | PROSPECT-ANALYSIS.md |41| `/sales quick <url>` | (inline) | Terminal output |42| `/sales research <url>` | sales-research | COMPANY-RESEARCH.md |43| `/sales qualify <url>` | sales-qualify | LEAD-QUALIFICATION.md |44| `/sales contacts <url>` | sales-contacts | DECISION-MAKERS.md |45| `/sales outreach <prospect>` | sales-outreach | OUTREACH-SEQUENCE.md |46| `/sales followup <prospect>` | sales-followup | FOLLOWUP-SEQUENCE.md |47| `/sales prep <url>` | sales-prep | MEETING-PREP.md |48| `/sales proposal <client>` | sales-proposal | CLIENT-PROPOSAL.md |49| `/sales objections <topic>` | sales-objections | OBJECTION-PLAYBOOK.md |50| `/sales icp <description>` | sales-icp | IDEAL-CUSTOMER-PROFILE.md |51| `/sales competitors <url>` | sales-competitors | COMPETITIVE-INTEL.md |52| `/sales report` | sales-report | SALES-REPORT.md |53| `/sales report-pdf` | sales-report-pdf | SALES-REPORT-*.pdf |5455### Prospect Score Framework (Fixed)5657| Category | Weight | Subagent |58|----------|--------|----------|59| Company Fit | 25% | sales-company |60| Contact Access | 20% | sales-contacts |61| Opportunity Quality | 20% | sales-opportunity |62| Competitive Position | 15% | sales-competitive |63| Outreach Readiness | 20% | sales-strategy |6465**Composite Score** = Weighted average of all 5 categories (0-100).6667### Grade Scale (Fixed)6869| Score | Grade | Action |70|-------|-------|--------|71| 90-100 | A+ | Hot Lead — prioritize immediately |72| 75-89 | A | Strong Prospect — significant investment |73| 60-74 | B | Qualified Lead — standard approach |74| 40-59 | C | Lukewarm — nurture, don't hard sell |75| 0-39 | D | Poor Fit — deprioritize or disqualify |7677### Output Standards (Fixed)78791. Actionable over theoretical — every recommendation is executable802. Personalized — tailored to the specific prospect, not generic813. Revenue-focused — every insight connects to deal probability824. Evidence-based — cite specific sources and data points835. Ready to use — outreach emails are copy-paste ready8485---8687## Variables8889| Variable | Source | Changes When |90|----------|--------|-------------|91| Target URL | User input | Every invocation |92| Prospect name | User input or extracted | Every invocation |93| Industry vertical | Runtime config | Config swap |94| Industry-specific signals | Runtime config | Config swap |95| Company type detection rules | Runtime config | Config swap |96| Qualification weight overrides | Runtime config (optional) | Config swap |9798---99100## Workflow101102### BLOCK 1: Command Classification103**Governed by: C&V**104105**Constants:**106- Every `/sales` command maps to exactly one skill.107- Unknown commands produce an error with the command registry table.108- `/sales prospect` is the only command that launches parallel subagents.109110**Variables:**111- The specific command entered by the user.112- The specific arguments provided.113114**IMO:**115- Ingress: Raw user input — `/sales <command> [args]`.116- Middle: Parse command. Match against command registry. If no match, return117 the registry table as help output. If match, identify the target skill path.118- Egress: Classified command + target skill path + parsed arguments.119120**Go/No-Go:** Command matches a registered route. Arguments are present if required.121122---123124### BLOCK 2: Skill Dispatch125**Governed by: Hub-and-Spoke**126127**Constants:**128- Each skill lives at `skills/sales-<command>/SKILL.md`.129- The orchestrator reads the skill, then executes it — never modifies it.130- For `/sales prospect`, dispatch 5 subagents in parallel (not sequential).131132**Variables:**133- The specific skill being dispatched.134- The specific arguments passed to the skill.135136**IMO:**137- Ingress: Classified command from Block 1.138- Middle: If `/sales prospect` → launch 5 parallel subagent calls:139 1. `agents/sales-company.md` → Company research140 2. `agents/sales-contacts.md` → Contact intelligence141 3. `agents/sales-opportunity.md` → Opportunity assessment142 4. `agents/sales-competitive.md` → Competitive analysis143 5. `agents/sales-strategy.md` → Outreach strategy144 For all other commands → read and execute the target skill.145- Egress: Skill execution results (raw outputs from subagents or skill).146147**Go/No-Go:** Skill file exists and is readable. Arguments match skill's expected input.148149---150151### BLOCK 3: Score Aggregation (Prospect Only)152**Governed by: IMO**153154**Constants:**155- Aggregation applies ONLY to `/sales prospect` output.156- Weights are fixed: Company 25%, Contacts 20%, Opportunity 20%, Competitive 15%, Strategy 20%.157- Each subagent returns a 0-100 score for its category.158- Composite = weighted sum of all 5 scores.159- Grade assignment uses the fixed grade scale (A+ through D).160161**Variables:**162- The 5 individual category scores.163- The resulting composite score and grade.164165**IMO:**166- Ingress: Raw outputs from all 5 parallel subagents.167- Middle: Extract category score from each subagent output. Apply weights.168 Calculate composite. Assign grade. If any subagent failed, mark that169 category as "incomplete" and note it in the executive summary.170- Egress: Composite score, grade, and per-category breakdown.171172**Go/No-Go:** At least 3 of 5 subagents returned valid scores. If fewer than 3,173flag as incomplete analysis — do not assign a grade.174175---176177### BLOCK 4: Output Assembly178**Governed by: CTB**179180**Constants:**181- Output file includes: prospect URL, date, overall score, executive summary.182- Output is structured with clear headers and tables.183- Output follows the target skill's specified file format.184185**Variables:**186- The specific content assembled from skill/subagent outputs.187- The output filename.188189**IMO:**190- Ingress: Skill output (Block 2) + score aggregation (Block 3 if prospect).191- Middle: Assemble the final output file:192 - Trunk: The output file itself.193 - Branches: Major sections (summary, detailed findings, recommendations, next steps).194 - Leaves: Specific data points, scores, action items.195 Save to the current directory with the filename from the command registry.196- Egress: Written markdown file (or terminal output for `/sales quick`).197198**Go/No-Go:** Output file written successfully. Contains all required sections.199200---201202## Rules2032041. **Never** hardcode industry-specific content into the orchestrator. Industry detection205 rules, vertical-specific signals, and company type heuristics live in runtime config.2062. **Never** execute analysis in the orchestrator. The orchestrator routes — skills analyze.2073. **Never** modify a skill file during execution. Read and execute, never write.2084. **Never** run subagents sequentially when they can run in parallel.2095. **Never** assign a grade when fewer than 3 subagents returned valid scores.2106. **Never** produce output without citing data sources. "Based on our analysis" is not a source.2117. **Never** skip the command classification step. Unknown commands get the help table, not a guess.212213---214215## Cross-Skill Integration216217| Skill | Benefits From | Feeds Into |218|-------|--------------|------------|219| prospect | all 5 subagents | report, report-pdf |220| outreach | research, contacts | followup |221| prep | research, contacts, qualify | proposal |222| proposal | qualify, competitors | (terminal) |223| report | all prospect analyses | report-pdf |224| objections | competitors | prep, outreach |225226---227228## Quick Snapshot (`/sales quick <url>`)229230This is the only command handled inline (no external skill file):2312321. Fetch homepage via WebFetch.2332. Evaluate: company size signals, industry fit, tech indicators, growth signals,234 decision maker visibility.2353. Output: scorecard with top 3 opportunities + top 3 concerns.2364. Max 30 lines of terminal output. No file saved.237238---239240## Reference Pointers241242| File | Contains | Load When |243|------|----------|-----------|244| `factory/agents/skill-creator/SKILL.md` | Block format spec | Creating new skills |245| `factory/agents/CAR_SKILL_TEMPLATE.md` | Car-specific skill template | Creating repo-specific skills |246| `agents/*.md` | 5 subagent definitions | `/sales prospect` dispatch |247| `skills/sales-*/SKILL.md` | 13 skill packages | Any `/sales` command |248| `templates/*.md` | Output templates | Skills that generate docs |