skills/startup-init/SKILL.md
Autonomous startup builder — idea to running company in 11 phases
npx skillsauth add Cheggin/skill-chain startup-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Take a startup idea from zero to running company. Research, design, build, deploy, grow. The user is CEO, not engineer. They get Slack investor updates, not questions.
Read .harness/stacks.yml for stack. Read .harness/agent-categories.yml for rules. Read .harness/tool-catalog.yml for integrations. All are law.
gh issue list --state open --json number,title,body,comments to rebuild state.!important, or left outlines.yarn dev or npm run dev. Use npm (not yarn, not pnpm).This is not "what's your idea?" It is a comprehensive diagnostic. Ask each question one at a time. Wait for the answer before asking the next. Adapt follow-ups based on prior answers. Skip questions already answered.
Q1: The Idea
"What's your startup idea? One sentence to one paragraph."
Save raw answer to .harness/idea.md.
Q2: Company Type
"What type of company is this?"
Options: B2C consumer app | B2B SaaS | DevTool (CLI/SDK/API) | Infrastructure | Marketplace (two-sided) | Hardware + Software | E-commerce | Fintech | Healthcare/Biotech | AI/ML product | Content/Media platform | Other
Store as startup_type in .harness/config.yml.
Q3: Target Users "Who are the target users? Be specific — a job title at a company type, not a category." Push if vague. "Developers" is not specific. "Frontend engineers at mid-size SaaS companies frustrated with CSS-in-JS performance" is specific.
Q4: Business Model
"How does this make money?"
Options: Subscription (monthly/annual) | Usage-based (pay per API call, etc.) | Freemium (free tier + paid) | Marketplace commission | One-time purchase | Ad-supported | Open-core (open source + paid features) | Enterprise licensing | Not sure yet
Store as business_model.
Q5: Budget & Funding "What's your budget situation?" Options: Bootstrapped (minimal spend) | Pre-seed/angels ($0-$500K) | Seed ($500K-$2M) | Series A+ ($2M+) | Enterprise-backed (internal project) Determines: infra choices, monitoring tier, tool selection.
Q6: Technical Level "What's your technical background?" Options: Non-technical (no coding) | Technical but not coding daily | Full-stack developer | Specialized (backend only, frontend only, ML/AI, etc.) Determines: how much to explain, how autonomous to be, Slack update detail level.
Q7: Existing Tools "What tools and services do you already use?" Probe for: GitHub account? Vercel? Domain registrar? Figma? Slack workspace? Stripe? AWS/GCP? Any existing codebase? Pre-populates Phase 1 service connections.
Q8: Compliance Requirements "Any regulatory or compliance requirements?" Probe based on startup_type:
compliance[].Q9: Hardware Component Only ask if startup_type includes hardware or if Q1 answer mentions physical products. "Tell me about the hardware. What does the device do? What connectivity? What sensors/actuators?" Probe: BOM estimate? Manufacturing partner? Firmware platform (ESP32, nRF, STM32, Raspberry Pi)?
Q10: Integrations Needed "What third-party services need to connect?" Probe based on startup_type:
.harness/tool-catalog.yml.Q11: Timeline "What's your timeline?" Options: Weekend hack (2-3 days) | Sprint (1-2 weeks) | Month | Quarter | Ongoing (no deadline) Determines: P0 scope aggressiveness, whether to skip P1/P2 features initially.
Q12: Existing Designs
"Do you have any designs already?"
Probe: Figma file URL? Screenshots? Wireframes? Napkin sketches? Inspiration sites?
If Figma URL: use mcp__figma__get_design_context to extract immediately.
If screenshots: save to .harness/design-inputs/.
If inspiration: save URLs to .harness/config.yml under design.inspirations[].
Q13: Domain Name "Do you have a domain name? Or a name for the startup?" If yes: validate availability via web search. Store in config. If no: note "domain TBD" — will be resolved in Phase 4.
Write .harness/founder-profile.yml:
idea: <raw idea>
startup_type: <type>
target_users: <specific description>
business_model: <model>
budget: <tier>
technical_level: <level>
existing_tools: [<list>]
compliance: [<list>]
hardware: <null or description>
integrations: [<list>]
timeline: <timeline>
designs: <null, figma_url, or path>
domain: <name or TBD>
interview_date: <date>
Slack: "Founder interview complete. Building: {idea}. Type: {type}. Timeline: {timeline}. Starting service connections."
Walk through each service. Validate before proceeding. Skip services the founder already confirmed in Q7.
Agent: Commander (orchestrates)
Validate: gh auth status
Extract: username, org
Fail: "Run `gh auth login` in your terminal."
Validate: vercel whoami
Fail: "Run `vercel login`"
Validate: railway whoami
Fail: "Run `railway login`"
Validate: ls ~/.convex/credentials 2>/dev/null || npx convex auth check
Fail: "Run `npx convex login`"
Prompt: "Confirm Cubic GitHub App is installed on your account (cubic.dev)"
Prompt: "Where should investor updates go? (1) DM (2) #channel (3) group DM"
Validate: send test message via slack plugin
Store: slack_destination + slack_target -> .harness/config.yml
Validate: mcp__figma__whoami
Fail: "Reconnect via Figma plugin"
Skip unless business_model requires payments. If needed:
Validate: stripe config --list 2>/dev/null
Fail: "Run `stripe login`"
Prompt: "Create a Sentry project at sentry.io. We'll connect via MCP."
Store: SENTRY_DSN -> .harness/secrets.env
Prompt: "Create a PostHog project at posthog.com (free tier is fine)."
Store: NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_POSTHOG_HOST -> .harness/secrets.env
Only if domain is confirmed from Q13.
Prompt: "Point your domain DNS to Vercel. Add these records: ..."
Write .harness/secrets.env (gitignored). Write .harness/config.yml with all connections.
Print connection summary table.
Slack: "All services connected. {N}/{M} configured. Starting market research."
Agent: Commander + WebSearch | Supporting: Writing (reports)
Use WebSearch. Search for:
"{keywords}" startup / "{keywords}" app / "{keywords}" SaaSPer competitor: name, URL, features, pricing, strengths, weaknesses.
If compliance[] is non-empty:
Output: Write research-report.md — executive summary, competitor table, market sizing, audience profile, positioning, compliance notes.
Create GitHub Issue: "Research: Market Analysis" with executive summary.
Slack: "Research complete. {N} competitors analyzed. Key differentiator: {one-liner}. Market size: {TAM}. Target: {audience}."
Agent: Commander | Reads: research-report.md, founder-profile.yml, .harness/stacks.yml
Generate product-spec.md with:
DevTool additions:
Hardware additions:
Marketplace additions:
Fintech additions:
Healthcare additions:
If compliance requirements exist: map each requirement to specific technical implementation (encryption at rest, field-level encryption, audit tables, consent flows).
Create GitHub Issues for every P0/P1 feature with acceptance criteria and labels.
gh project create --title "{Startup Name}" --owner @me
Add all issues. Columns: Backlog, In Progress, In Review, Done.
Slack: "Product spec complete. {N} features ({P0} critical, {P1} important). Top priorities: {top 5 P0 features}."
Agent: Website (Figma) | Supporting: Writing (brand voice)
.harness/brand.yml)If founder provided Figma designs (Q12): use those as source of truth. If not: generate designs.
For each page in product spec:
mcp__figma__generate_figma_design — all components, desktop + mobile.harness/design-screenshots/{page-name}.pngRequirements:
Write .harness/design-system.md — colors, typography, spacing, component tokens.
Configure Tailwind v4 with these tokens.
If domain confirmed:
Slack: "Designs complete. {N} pages in Figma. Brand identity established. {Figma URL if available}."
Agent: Ops | Supporting: Backend
npx create-next-app@latest {project-dir} --typescript --tailwind --eslint --app --turbopack --import-alias "@/*"
cd {project-dir}
npm install @tanstack/react-query zustand convex
npm install -D vitest @vitejs/plugin-react playwright @playwright/test
npx convex init
git init && git add . && git commit -m "Scaffold: {name} with Next.js + Convex + Tailwind v4"
gh repo create {repo-name} --private --source=. --push
Write .github/workflows/ci.yml: vitest + playwright on push, Cubic scan on PR.
Configure: staging (auto-deploy on PR merge), production (deploy on release tag).
vercel link (frontend)railway link (backend, if needed)@sentry/nextjs)DevTool additions:
Hardware additions:
Marketplace additions:
Fintech additions:
Healthcare additions:
.harness/ configs.mcp.json (Cubic, Sentry)Slack: "Infrastructure ready. Repo: {GitHub URL}. CI/CD configured. Monitoring active. Ready to build."
Agents: Website + Backend | Supporting: Ops (CI), Growth (analytics hooks)
Write tests BEFORE implementation for every P0 feature:
npx vitest run --reporter=verbose # ALL red
npx playwright test --reporter=list # ALL red
Commit tests separately: git commit -m "Tests: failing tests for {feature list}"
For each P0 feature in dependency order:
mcp__figma__get_design_context. Build it. Follow .harness/design-system.md.npx vitest run && npx playwright test. Fix until green. Max 10 iterations.npx playwright test --grep @visual. Compare vs design screenshots. Diff > 2%? Fix. Max 5 loops.gh pr merge --squash. Move Issue to Done.Slack per feature: "Feature shipped: {name}. Tests: {N} passing. Cubic: clean. Progress: {done}/{total}."
Context filling? Commit everything. Update all Issues with status. Next session:
gh issue list --state open --label "priority:P0" --json number,title,body,comments
gh project item-list --owner @me --format json
Agent: Commander (coordinates all agents to verify their domain)
sitemap.xml)robots.txtSlack: "Launch checklist complete. {N}/{M} items verified. Ready to deploy."
Agent: Ops | Supporting: All agents verify their domain
vercel --prod # Frontend
npx convex deploy # Database
railway up # Backend (if any)
curl -s -o /dev/null -w "%{http_code}" {prod-url} # Health check
PLAYWRIGHT_BASE_URL={prod-url} npx playwright test # E2E against prod
Fail? Read logs, fix, retry. Max 5 attempts. Still failing? Slack full error log.
Slack:
DEPLOYED — {Name} is LIVE URL: {url} Features: {N} shipped. Tests: all passing. Cubic: clean. Stack: Next.js + Tailwind v4 + Convex on Vercel + Railway Next: {P1_count} features in backlog.
Agent: Growth | Supporting: Writing, Website (A/B tests)
Slack (weekly): "Week {N}: {X} users, {Y} revenue, {Z} features shipped. Top metric: {A}. Focus: {B}."
Agent: Ops | Supporting: Website/Backend (fixes), Commander (escalation)
Sentry MCP detects error → Ops agent investigates → fix → deploy → verify. Escalate to Slack if can't fix within budget.
Monitor down → webhook → Ops agent → diagnose → fix → verify. Status page updated automatically.
npm auditAgent: Commander (prioritization) | Supporting: All agents
| Phase | Primary Agent | Supporting Agents | |-------|--------------|-------------------| | 0 (Interview) | Commander | — | | 1 (Connections) | Commander | — | | 2 (Research) | Commander + WebSearch | Writing (reports) | | 3 (Spec) | Commander | — | | 4 (Design) | Website (Figma) | Writing (brand voice) | | 5 (Infrastructure) | Ops | Backend | | 6 (Build) | Website + Backend | Ops (CI), Growth (analytics) | | 7 (Launch Prep) | Commander | All agents verify | | 8 (Deploy) | Ops | All agents verify | | 9 (Growth) | Growth | Writing, Website | | 10 (Maintenance) | Ops | Website/Backend, Commander | | 11 (Iteration) | Commander | All agents |
Phase complete: {Name} — {Phase Title} + 2-3 sentences + key metrics + next phase.
Feature shipped: {Name} — Feature: {feature} + test/cubic/visual status + progress fraction.
Blocker: {Name} — Attention Needed + issue + impact + plan. "Reply if you want a different approach."
Weekly: {Name} — Week {N} + shipped + in progress + blockers + metrics + ETA.
Milestone: {Name} — LIVE or {Name} — {X} Users + celebration + metrics.
| Scenario | Action | |----------|--------| | Auth expired | Slack user, pause | | Tests loop > 10 | Slack details, skip feature, move on | | Cubic > 20 issues | Break PR into smaller pieces | | Figma MCP down | Build from spec + screenshots | | Deploy fails x5 | Slack full error log | | Context filling | Commit, update Issues, reset | | Rate limited | Exponential backoff + retry | | Compliance gap found | Slack immediately, do not ship without resolution |
User replies in Slack? Pick up via /slack:find-discussions.
Acknowledge: "Got it. {change}. Adjusting."
development
Design engineering principles for making interfaces feel polished. Use when building UI components, reviewing frontend code, implementing animations, hover states, shadows, borders, typography, micro-interactions, enter/exit animations, or any visual detail work. Triggers on UI polish, design details, "make it feel better", "feels off", stagger animations, border radius, optical alignment, font smoothing, tabular numbers, image outlines, box shadows.
documentation
Agentic memory system for writers - track characters, relationships, scenes, and themes
documentation
LLM Wiki — persistent markdown knowledge base that compounds across sessions (Karpathy model)
development
Build production-quality SaaS websites with opinionated design presets. Use when creating any startup website. The user MUST pick a design style before building. Enforces shadcn/ui, Figma design principles, specific CSS values per style, and anti-AI-writing. Load alongside anti-ai-writing skill. LIGHT MODE ONLY.