Onboard a new company into MCM Forge. Creates the company record, sets the north star goal, creates the project, writes the vision doc, and hires the CEO agent. Run this BEFORE any agent work begins. Triggers on: onboard company, add company, new company, setup company.
This is a MANDATORY procedure. Every step must be completed and verified before moving to the next. Skipping a step = broken company. No exceptions.
mcp__supabase__execute_sql)Check if the company already has a row in forge.companies:
SELECT id, name, slug, issue_prefix, issue_counter, budget_monthly_cents
FROM forge.companies WHERE slug = '<company-slug>';
If exists: Verify all fields are correct. Update if needed. If missing: STOP. Companies are created during Forge setup. Ask Steve.
Checkpoint: Company row exists with correct name, slug, issue_prefix, description.
Every company MUST have a company-level goal. This is the north star ALL work traces back to.
INSERT INTO forge.goals (id, company_id, title, description, level, status)
VALUES (
gen_random_uuid(),
'<company-id>',
'<specific, measurable goal>',
'<why this goal matters, what success looks like>',
'company',
'active'
);
Rules for the goal:
Checkpoint: SELECT * FROM forge.goals WHERE company_id = '<id>' AND level = 'company' returns at least 1 active goal.
Break the company goal into measurable sub-goals. Each sub-goal becomes a goal with parent_id pointing to the company goal:
INSERT INTO forge.goals (id, company_id, parent_id, title, description, level, status)
VALUES (
gen_random_uuid(),
'<company-id>',
'<parent-goal-id>',
'<specific sub-goal>',
'<what done looks like>',
'team',
'active'
);
Sub-goals become issues. When the CEO creates issues, they link them to sub-goals via goal_id. The goal-watcher loop auto-completes:
completed when ALL linked issues are donecompleted when ALL sub-goals are completedThis creates the chain: Vision → Goal → Sub-goals → Issues → Code
Example for DirtSync:
Goal: "Ship DirtSync v1 for April 9 group ride"
├─ Sub-goal: "Navigation works end-to-end"
│ ├─ Issue: Build nav HUD
│ ├─ Issue: Trail routing with Valhalla
│ └─ Issue: Offline route caching
├─ Sub-goal: "Trail maps display correctly"
│ ├─ Issue: Tile rendering
│ └─ Issue: Trail detail panel
└─ Sub-goal: "Ride recording works"
├─ Issue: Silent track recording
└─ Issue: Ride history screen
Every company needs at least one project linking to a code repository:
INSERT INTO forge.projects (id, company_id, name, description, status, repo_url, repo_branch)
VALUES (
gen_random_uuid(),
'<company-id>',
'<project-name>',
'<what this project builds>',
'active',
'<owner/repo>',
'<branch>'
);
Checkpoint: SELECT * FROM forge.projects WHERE company_id = '<id>' returns 1+ active project.
UPDATE forge.companies SET budget_monthly_cents = <amount> WHERE id = '<company-id>';
Budget guidelines:
Checkpoint: budget_monthly_cents > 0 on the company record.
Create companies/<slug>/vision/NORTH-STAR.md with:
# <Company Name> -- North Star Vision
**Author:** Steve McMillian
**Date:** <today>
**Status:** Living document
## The Soul
<one paragraph: what is this company, why does it exist>
## Core Features
<numbered list of what the product does>
## Deal-Breakers
<what MUST work or trust is gone>
## Anti-Patterns
<what to avoid>
## Technical Decisions
<stack, architecture, key choices>
IMPORTANT: This doc is what agents read to understand WHY they're working. If it's vague, agents will be vague. Be specific.
Checkpoint: File exists and contains all sections.
Before hiring builders, run scout agents to build domain expertise for the company's tech stack.
Why: Agents with generic knowledge produce B+ work. Agents loaded with official docs, reference analysis, and production gotchas produce A+ work. The research investment pays for itself on the first feature.
Procedure:
Deliverables:
Checkpoint: At least 2 reference docs exist before hiring any builder agents.
The issue counter determines the next issue identifier (e.g., DIRA-1, FORGE-6):
SELECT issue_prefix, issue_counter FROM forge.companies WHERE id = '<company-id>';
Checkpoint: issue_prefix is set, issue_counter is correct.
The CEO is ALWAYS the first agent hired. Run the /agent-onboarding skill with:
STOP HERE. Do not hire any other agents until:
After CEO is validated, the hiring order matters:
The auto-handoff chain: Builder sets in_review → orchestrator auto-creates QA subtask → QA sets approved → orchestrator auto-creates Ship subtask. Agents don't need to manually delegate these handoffs.
After all 7 steps, report to Steve:
Company Onboarding Complete: <Company Name>
- Company ID: <id>
- Slug: <slug>
- Issue Prefix: <prefix>
- Goal: <goal title>
- Project: <project name> (<repo>)
- Budget: $<amount>/month
- Vision: companies/<slug>/vision/NORTH-STAR.md
- CEO: PENDING (run /agent-onboarding next)