new-project
Scaffold a complete project + PD in one command. Use when creating a new project, starting a new repo, or setting up a PD for an existing project. Spawns the project-scaffolder agent which creates all
SKILL.mdskills/new-project/SKILL.md
GitHub/new-project
Scaffold a complete project + PD setup via the project-scaffolder agent.
Main session stays clean — all work happens in the subagent.
Step 0 — Pre-flight
Check for existing slugs to warn about conflicts:
python3 -c "
import json, pathlib
p = pathlib.Path.home() / 'projects/index.json'
if p.exists():
d = json.loads(p.read_text())
slugs = [x.get('name','') for x in d.get('projects', [])]
print('Existing:', ', '.join(slugs))
else:
print('Existing: none')
"
Store the output for conflict detection in Step 1.
Step 1 — Collect inputs
Use AskUserQuestion with these 4 questions in a single call:
Question 1 — "Project identity"
- Question: "What's the project slug, display name, and one-line description? (e.g. content-agency | Content Agency | Content production and delivery service)"
- Header: "Identity"
- Options: Let user type freely (use "Other" as the only real option path — present 2 example options as templates)
- Option A: label "Example: content-agency", description "content-agency | Content Agency | Content production and delivery service"
- Option B: label "Example: my-saas", description "my-saas | My SaaS | B2B SaaS platform for X"
Question 2 — "Project location"
- Question: "Where should the project live?"
- Header: "Location"
- Options:
- "~/projects/ (Recommended)" — Standard location for code/business projects
- "~/.claude/projects/" — For system/infrastructure projects
Question 3 — "Folder"
- Question: "Which folder should the PD belong to?"
- Header: "Folder"
- Options:
- "specialized (Recommended)" — Default for most projects
- "project-management" — For the operator's own products/services
- "engineering" — For technical infrastructure projects
Routing (same for every folder):
- PD -> Coord -> general-purpose Exec
- Critics are spawned directly
Question 4 — "Tech stack"
- Question: "Tech stack, hex color, and extra skills? (e.g. Next.js 15, Supabase | #6366f1 | backend, vercel-deploy)"
- Header: "Stack"
- Options: Let user type freely
- Option A: label "Next.js + Supabase", description "Next.js 15, Supabase, Vercel | #6366f1 | backend, supabase-deploy"
- Option B: label "Decide later", description "TBD | #10b981 | (none)"
Step 2 — Parse and validate
From the answers:
- Parse identity: split on
|to get SLUG, NAME, DESCRIPTION (trim whitespace) - Parse location: expand to full path (
~/projects/{SLUG}or~/.claude/projects/{SLUG}) - Parse folder: use the selected value
- Parse stack line: split on
|to get STACK, COLOR, EXTRA_SKILLS (trim whitespace) - Build SKILLS =
save-state, recall+ any EXTRA_SKILLS - Set TODAY = current date (YYYY-MM-DD)
- Normalize all
~to the current user's home directory ($HOME)
Validate:
- SLUG is kebab-case (lowercase, hyphens only)
- COLOR is valid hex (#XXXXXX)
- PATH does not contain spaces
If SLUG appears in existing slugs from Step 0, warn the user via a follow-up AskUserQuestion:
"Slug {SLUG} already exists. Continue anyway or pick a new slug?"
Step 3 — Spawn project-scaffolder agent
Agent({
subagent_type: "project-scaffolder",
description: "Scaffold {SLUG} project + PD",
prompt: "Create the complete project and PD setup with these inputs:\n\nSLUG: {SLUG}\nNAME: {NAME}\nDESCRIPTION: {DESCRIPTION}\nPATH: {PATH}\nSTACK: {STACK}\nDEPARTMENT: {DEPARTMENT}\nCOLOR: {COLOR}\nSKILLS: {SKILLS}\nTODAY: {TODAY}\n\nFollow your agent definition exactly. Work through all 5 steps. Output only the confirmation block at the end."
})
Step 4 — Report
Relay the agent's confirmation to the user. Add:
"Run /recall {SLUG} to start working with the new PD."