Scaffold a New Project
Create a fully set up project from scratch — GitHub repo, Linear project, Claude Code configuration, and documentation structure.
Steps
- •
Gather project info — ask the user for:
- •Project name (will be used for repo name, directory name, Linear project)
- •Description (one-line summary)
- •Language/stack (e.g., Python, Swift/iOS, TypeScript/Node, etc.)
- •Linear team — use existing team or create a new one? List available teams from
mcp__linear-server__list_teams - •Visibility — public or private GitHub repo?
- •
Create GitHub repo:
- •Use
mcp__github__create_repositorywith the project name and description - •Set visibility as specified
- •Note the repo URL for later
- •Use
- •
Set up Linear:
- •If using existing team: note the team ID
- •If creating new team: use
mcp__linear-server__create_project(or ask user to create the team manually if the API doesn't support team creation) - •Create initial milestone or project for the first sprint
- •
Scaffold files from templates:
Read each template from
templates/and customize:- •
CLAUDE.md— fromtemplates/docs/CLAUDE.md.tmpl, fill in{{project_name}},{{project_description}},{{development_setup}}based on the language/stack - •
.claude/skills/retro/SKILL.md— copy fromtemplates/skills/retro/SKILL.md - •
.claude/skills/persist-plan/SKILL.md— copy fromtemplates/skills/persist-plan/SKILL.md - •
.claude/rules/feedback-loop.md— copy fromtemplates/rules/feedback-loop.md - •
.claude/rules/workflow-conventions.md— copy fromtemplates/rules/workflow-conventions.md - •
.claude/settings.json— fromtemplates/settings/settings.json, add language-specific plugins if applicable (e.g.,pyright-lspfor Python,typescript-lspfor TS) - •
docs/process/learnings.md— from template - •
docs/process/retrospective.md— from template - •
docs/process/process.md— from template - •
docs/product/decisions.md— from template - •
docs/product/vision.md— from template, fill in placeholders
- •
- •
Push scaffold to GitHub:
- •Use
mcp__github__push_filesto push all scaffolded files to themainbranch - •Commit message: "Initial project scaffold from project-support templates"
- •If
push_filesreturns 404: the repo has no commits yet and no default branch. Workaround: clone the repo locally (git clone <url> /tmp/<name>), write all files there, make an empty init commit, and push. Then use the local clone for all remaining file operations in this session.
- •Use
- •
Add to registry:
- •Append the new project to
registry.yaml(in the main worktree at~/dev/project-support/registry.yaml) with path, repo, and Linear info - •Do NOT commit —
registry.yamlis gitignored and private, lives only in the main worktree
- •Append the new project to
- •
Print setup instructions for the user:
codeProject created! Next steps: 1. Clone: git clone git@github.com:your-username/{project-name}.git ~/dev/{project-name} 2. Open in Conductor to start a workspace 3. Start planning your first feature (use plan mode for non-trivial work)
Principles
- •Fast and complete. The user should go from zero to a working project in one invocation.
- •Templates are the source of truth. Always read from
templates/, never hardcode content in this skill. - •Ask, don't assume. Get the project name, stack, and team preference from the user before creating anything.