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: >4 Master orchestrator for the sales intelligence engine. Routes /sales commands5 to the correct subagent or skill. Trigger: any message starting with "/sales".6 Flagship command: /sales prospect <url> launches 5 parallel subagents for7 comprehensive prospect analysis. All engines are industry-agnostic — the same8 orchestrator works for SaaS, insurance, real estate, or any vertical by loading9 the appropriate runtime config.10---1112## Tier 0 Doctrine1314This is a routing hub. It receives a `/sales` command, identifies the target skill,15and dispatches execution. It does not perform analysis itself — subagents and skills16do the work. The orchestrator's job is classification, routing, and aggregation.1718**Governed by: Hub-and-Spoke**19- Hub: This orchestrator — receives all `/sales` commands20- Spokes: 13 skills + 5 agents that do the actual work21- Rim: The user — invokes commands, receives outputs2223---2425## IMO2627**Ingress:** User invokes `/sales <command> [arguments]`. Schema validation:28command must match a registered route. Arguments must match the target skill's29expected input type (URL, prospect name, description, or none).3031**Middle:** Route to the correct skill. For `/sales prospect`, launch 5 parallel32subagents, collect results, compute composite score, assemble final output. For33all other commands, dispatch to the matching `skills/sales-<command>/SKILL.md`.3435**Egress:** Markdown file output (or terminal output for `/sales quick`). Read-only36view of the analysis. No logic in the output — it is a report.3738---3940## Constants4142### Command Registry (Fixed)4344| Command | Skill | Output File |45|---------|-------|-------------|46| `/sales prospect <url>` | sales-prospect | PROSPECT-ANALYSIS.md |47| `/sales quick <url>` | (inline) | Terminal output |48| `/sales research <url>` | sales-research | COMPANY-RESEARCH.md |49| `/sales qualify <url>` | sales-qualify | LEAD-QUALIFICATION.md |50| `/sales contacts <url>` | sales-contacts | DECISION-MAKERS.md |51| `/sales outreach <prospect>` | sales-outreach | OUTREACH-SEQUENCE.md |52| `/sales followup <prospect>` | sales-followup | FOLLOWUP-SEQUENCE.md |53| `/sales prep <url>` | sales-prep | MEETING-PREP.md |54| `/sales proposal <client>` | sales-proposal | CLIENT-PROPOSAL.md |55| `/sales objections <topic>` | sales-objections | OBJECTION-PLAYBOOK.md |56| `/sales icp <description>` | sales-icp | IDEAL-CUSTOMER-PROFILE.md |57| `/sales competitors <url>` | sales-competitors | COMPETITIVE-INTEL.md |58| `/sales report` | sales-report | SALES-REPORT.md |59| `/sales report-pdf` | sales-report-pdf | SALES-REPORT-*.pdf |6061### Prospect Score Framework (Fixed)6263| Category | Weight | Subagent |64|----------|--------|----------|65| Company Fit | 25% | sales-company |66| Contact Access | 20% | sales-contacts |67| Opportunity Quality | 20% | sales-opportunity |68| Competitive Position | 15% | sales-competitive |69| Outreach Readiness | 20% | sales-strategy |7071**Composite Score** = Weighted average of all 5 categories (0-100).7273### Grade Scale (Fixed)7475| Score | Grade | Action |76|-------|-------|--------|77| 90-100 | A+ | Hot Lead — prioritize immediately |78| 75-89 | A | Strong Prospect — significant investment |79| 60-74 | B | Qualified Lead — standard approach |80| 40-59 | C | Lukewarm — nurture, don't hard sell |81| 0-39 | D | Poor Fit — deprioritize or disqualify |8283### Output Standards (Fixed)84851. Actionable over theoretical — every recommendation is executable862. Personalized — tailored to the specific prospect, not generic873. Revenue-focused — every insight connects to deal probability884. Evidence-based — cite specific sources and data points895. Ready to use — outreach emails are copy-paste ready9091---9293## Variables9495| Variable | Source | Changes When |96|----------|--------|-------------|97| Target URL | User input | Every invocation |98| Prospect name | User input or extracted | Every invocation |99| Industry vertical | Runtime config | Config swap |100| Industry-specific signals | Runtime config | Config swap |101| Company type detection rules | Runtime config | Config swap |102| Qualification weight overrides | Runtime config (optional) | Config swap |103104---105106## Workflow107108### BLOCK 1: Command Classification109**Governed by: C&V**110111**Constants:**112- Every `/sales` command maps to exactly one skill.113- Unknown commands produce an error with the command registry table.114- `/sales prospect` is the only command that launches parallel subagents.115116**Variables:**117- The specific command entered by the user.118- The specific arguments provided.119120**IMO:**121- Ingress: Raw user input — `/sales <command> [args]`.122- Middle: Parse command. Match against command registry. If no match, return123 the registry table as help output. If match, identify the target skill path.124- Egress: Classified command + target skill path + parsed arguments.125126**Go/No-Go:** Command matches a registered route. Arguments are present if required.127128---129130### BLOCK 2: Skill Dispatch131**Governed by: Hub-and-Spoke**132133**Constants:**134- Each skill lives at `skills/sales-<command>/SKILL.md`.135- The orchestrator reads the skill, then executes it — never modifies it.136- For `/sales prospect`, dispatch 5 subagents in parallel (not sequential).137138**Variables:**139- The specific skill being dispatched.140- The specific arguments passed to the skill.141142**IMO:**143- Ingress: Classified command from Block 1.144- Middle: If `/sales prospect` → launch 5 parallel subagent calls:145 1. `agents/sales-company.md` → Company research146 2. `agents/sales-contacts.md` → Contact intelligence147 3. `agents/sales-opportunity.md` → Opportunity assessment148 4. `agents/sales-competitive.md` → Competitive analysis149 5. `agents/sales-strategy.md` → Outreach strategy150 For all other commands → read and execute the target skill.151- Egress: Skill execution results (raw outputs from subagents or skill).152153**Go/No-Go:** Skill file exists and is readable. Arguments match skill's expected input.154155---156157### BLOCK 3: Score Aggregation (Prospect Only)158**Governed by: IMO**159160**Constants:**161- Aggregation applies ONLY to `/sales prospect` output.162- Weights are fixed: Company 25%, Contacts 20%, Opportunity 20%, Competitive 15%, Strategy 20%.163- Each subagent returns a 0-100 score for its category.164- Composite = weighted sum of all 5 scores.165- Grade assignment uses the fixed grade scale (A+ through D).166167**Variables:**168- The 5 individual category scores.169- The resulting composite score and grade.170171**IMO:**172- Ingress: Raw outputs from all 5 parallel subagents.173- Middle: Extract category score from each subagent output. Apply weights.174 Calculate composite. Assign grade. If any subagent failed, mark that175 category as "incomplete" and note it in the executive summary.176- Egress: Composite score, grade, and per-category breakdown.177178**Go/No-Go:** At least 3 of 5 subagents returned valid scores. If fewer than 3,179flag as incomplete analysis — do not assign a grade.180181---182183### BLOCK 4: Output Assembly184**Governed by: CTB**185186**Constants:**187- Output file includes: prospect URL, date, overall score, executive summary.188- Output is structured with clear headers and tables.189- Output follows the target skill's specified file format.190191**Variables:**192- The specific content assembled from skill/subagent outputs.193- The output filename.194195**IMO:**196- Ingress: Skill output (Block 2) + score aggregation (Block 3 if prospect).197- Middle: Assemble the final output file:198 - Trunk: The output file itself.199 - Branches: Major sections (summary, detailed findings, recommendations, next steps).200 - Leaves: Specific data points, scores, action items.201 Save to the current directory with the filename from the command registry.202- Egress: Written markdown file (or terminal output for `/sales quick`).203204**Go/No-Go:** Output file written successfully. Contains all required sections.205206---207208## Rules2092101. **Never** hardcode industry-specific content into the orchestrator. Industry detection211 rules, vertical-specific signals, and company type heuristics live in runtime config.2122. **Never** execute analysis in the orchestrator. The orchestrator routes — skills analyze.2133. **Never** modify a skill file during execution. Read and execute, never write.2144. **Never** run subagents sequentially when they can run in parallel.2155. **Never** assign a grade when fewer than 3 subagents returned valid scores.2166. **Never** produce output without citing data sources. "Based on our analysis" is not a source.2177. **Never** skip the command classification step. Unknown commands get the help table, not a guess.218219---220221## Cross-Skill Integration222223| Skill | Benefits From | Feeds Into |224|-------|--------------|------------|225| prospect | all 5 subagents | report, report-pdf |226| outreach | research, contacts | followup |227| prep | research, contacts, qualify | proposal |228| proposal | qualify, competitors | (terminal) |229| report | all prospect analyses | report-pdf |230| objections | competitors | prep, outreach |231232---233234## Quick Snapshot (`/sales quick <url>`)235236This is the only command handled inline (no external skill file):2372381. Fetch homepage via WebFetch.2392. Evaluate: company size signals, industry fit, tech indicators, growth signals,240 decision maker visibility.2413. Output: scorecard with top 3 opportunities + top 3 concerns.2424. Max 30 lines of terminal output. No file saved.243244---245246## Reference Pointers247248| File | Contains | Load When |249|------|----------|-----------|250| `factory/agents/skill-creator/SKILL.md` | Block format spec | Creating new skills |251| `factory/agents/CAR_SKILL_TEMPLATE.md` | Car-specific skill template | Creating repo-specific skills |252| `agents/*.md` | 5 subagent definitions | `/sales prospect` dispatch |253| `skills/sales-*/SKILL.md` | 13 skill packages | Any `/sales` command |254| `templates/*.md` | Output templates | Skills that generate docs |