elophanto / drive-business
Canonical workflow for "drive my business" / "operate this company". Single entry point — branches internally to onboard (new), Phase 11 plan (existing without strategy), or execute (existing with strategy).
Drive my business
The operator handed you a URL or business name and asks you to operate it. Do NOT respond conversationally. Do NOT jump straight to outreach. Do NOT just goal_create and call it done. Follow this decision tree.
Triggers
- drive my business
- drive X.com
- I have a business at
- operate this company
- run my business
- set up X.com as ABE
- onboard X.com
- launch this business
Decision tree
- Resolve the slug from the URL/name (
alphascala.com→alphascala). company_list— does the slug exist?- If exists, check
data/companies/<slug>/strategy/active/strategy.yaml— does an active strategy exist?
NEW slug → PATH A: onboard
EXISTING + no active strategy → PATH B: Phase 11 pipeline
EXISTING + active strategy → PATH C: execute (don't re-plan)PATH A — onboard a new company
Do NOT write what_we_sell blind and call onboard. Research first, propose the onboard params to the operator as a table, let them approve/modify, THEN call onboard. Same pattern as PATH B step 2.
Research the business (parallel where possible):
browser_navigate(<url>)+browser_extracton homepagebrowser_navigate(<url>/about)+/pricing+/hire+/faqif they existweb_search('<domain> <industry>')for industry contextweb_search('<domain> competitors')for the competitive frame
Propose onboard params in chat as a table:
Field Recommended Rationale slug<derived from domain>URL stem, lowercase, hyphenated name<from homepage title / brand>as the business presents itself what_we_sell<1-3 sentence value prop>from homepage + pricing page seed_goal"Establish baseline metrics + first paid customer"(or stage-appropriate)from product stage price<{amount, currency, model}>from /pricing if found, else nullfulfillment<delivery model>from /hire or how the product is delivered channels<["channel1", "channel2"]>from contact methods / social links on the site kpis<[{type: pipeline_advance, target_weekly: N}]>from stated growth metrics or stage-appropriate defaults Add: "Approve all, or tell me which to change. Slug becomes the ABE id and shouldn't change after onboard."
- After operator confirms: ONE call to
company_onboard(slug, name, what_we_sell, seed_goal, price?, fulfillment?, channels?, kpis?). Atomically creates the row, writescompany.yaml, persists the sidecar, materializesexemplars/{twitter,email}/. Trust state defaults tolearning. - Continue to PATH B — newly onboarded means no strategy yet.
PATH B — Phase 11 pipeline
See [[strategy-pipeline]] for the exact procedure. Briefly:
Research, THEN propose strategy_inputs. Do NOT ask the operator blank questions. Ground every field in research first, then present recommendations with one-line rationale. Operator approves all / modifies specific items / overrides:
- Research moves to run first (parallel where possible):
browser_navigate(<url>)+browser_extract+ revisit/about,/pricing,/hireif they exist;web_search('<domain> competitors')orweb_search('<industry> top tools 2026');company_report(<slug>)for ledger/pipeline state;file_read companies/<slug>/company.yamlfor declared channels/KPIs. Then propose each field with rationale. Most CAN be derived from research:
target_audience← from homepage + /hire positioningcompetitors← web_search + industry knowledgecurrent_challenges← from company_report ledger gaps + product page frictionunique_selling_points← from homepage value props + featuresprimary_goals← from product type (hire page → Sales Growth + Lead Gen; content site → Thought Leadership)strategy_mode← from brand tone (corporate B2B → standard; punk brand → unconventional; small budget + viral potential → guerrilla)focus← from declared channels + recent ledger activityposture (via
company_set_posture): proposeintentpreset or maturity×objective —startup_founder(pre_revenue+validate),established,profitability, orgrowth.
Heuristic: no revenue → startup_founder; thin runway / "cut burn" → profitability;
"scale acquisition" → growth; multi-surface ops with revenue → established.
Operator-decided fields (suggest defaults but flag for confirmation):
budget_type/budget_amount/budget_period— default toorganic/0/monthlyif no signalrisk_tolerance(0-100) — suggest 50 (balanced) unless brand tone is aggressivetimeline_hint— suggest "first paid customer in 30 days, repeatable cadence in 90" or similar based on stage
- Present as a table in chat. Example format:
field | recommended value | rationale (≤15 words). Add: "Approve all, or tell me which to change."
- Research moves to run first (parallel where possible):
- Set posture, then bundle plan. After operator confirms:
company_set_posture(slug, intent=…)(or maturity+objective), thencompany_plan_full(slug, …strategy_inputs…)— ONE MODERATE for the plan bundle. Internally runs capabilities audit + writes strategyinputs tocompany.yaml+ generates the proposal + applies it (mission + goals + schedules + `voiceproposed.yaml+blockers.yaml`). Saves 2 of the previously chained MODERATE gates. - Approve.
company_plan_approve(<slug>)— MODERATE finalize. Trust act forvoice_proposed.yaml— kept separate by design so operator sees the voice draft before promoting. - Surface blockers to operator. Stop — autonomous mind picks up tactics on next wakeup.
Fallback (legacy 4-call chain): if company_plan_full is unavailable, fall back to company_capabilities → company_set_strategy_inputs → company_plan → company_plan_apply → company_plan_approve. Same result, 3 extra MODERATE gates.
PATH C — execute existing strategy
The work is already planned. Don't re-plan unless operator asks.
elophanto strategy show <slug>(orfile_read strategy/active/strategy.yaml).company_report <slug>for current ledger/pipeline.- Unresolved blockers in
blockers.yaml→ surface to operator. - Don't create new goals yourself — arbiter is supposed to pick from strategy's tactics. Let it work.
Hard rules
- ❌ Never
goal_createdirectly for "drive my business" — bypasses planning. - ❌ Never skip
company_capabilities— it grounds the planner in available surfaces. - ❌ Never promote
voice_proposedor trust state yourself — operator only. - ❌ Never draft outreach during this skill — drafts are downstream of plan + voice approval.
Verify
- [ ]
companies/<slug>/company.yamlhas non-emptywhat_we_sell - [ ] PATH B:
companies/<slug>/company.yamlhasposture:(maturity × objective) - [ ] PATH B:
data/companies/<slug>/strategy/active/strategy.yamlexists - [ ] PATH B: blockers surfaced to operator with action hints
- [ ] Sidecar
~/.elophanto/current_companypoints at the right slug