From project-starter
Scaffold a brand-new BeSpunky-standard project - an integrated Nx monorepo with Angular (a clean --minimal app, no demo content), a devcontainer (Claude CLI + VS Code extension), a tailored CLAUDE.md, and the bespunky/claude-toolkit marketplace wired in. Node comes from the devcontainer base image via Docker (no nvm). Use when the user asks to "start", "create", "scaffold", "bootstrap", or "spin up" a new project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/project-starter:new-projectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a new project into the projects root (see step 1).
Scaffold a new project into the projects root (see step 1).
yarn create nx-workspace (latest Nx, no version pinning).apps/ + libs/), via --preset=apps then nx add @nx/angular. (A literal angular-* preset always forces a demo app and is verified impossible to suppress; apps + nx add @nx/angular is the only one-shot Angular-ready path with no demo.)--minimal app (no Nx welcome/demo content).mcr.microsoft.com/devcontainers/typescript-node:<major> tag and uses it both to run the scaffold and as the devcontainer image (single source of truth for Node).Anthropic.claude-code), plus the .claude persistence mount..claude/settings.json AND pre-installed by the devcontainer's postCreateCommand (claude plugin marketplace add + claude plugin install --scope project), so the toolkit's skills/agents are live the moment the container builds - no manual install. (Declaring enabledPlugins alone does not auto-install; the CLI step is what makes it immediate.)For anything Nx can generate - apps, libraries, components, services, project config - use the Nx generator (nx g ...); never hand-create and fill files. Before hand-writing anything structural, check what exists: nx list <plugin> / nx g <generator> --help (or the nx-generate skill / the Nx MCP server). Only fall back to manual file creation when no generator covers the task. Never guess flags - verify against --help / nx_docs.
In this skill that means: the workspace, the Angular plugin, and the app all come from generators. The only hand-written files are the ones Nx genuinely doesn't own: .devcontainer/devcontainer.json, .claude/settings.json, and the tailored CLAUDE.md.
apps/<app-name>.The bundled script is at ${CLAUDE_SKILL_DIR}/assets/scaffold.sh (that variable resolves to wherever this skill is installed - never hardcode a path). It needs bash + Docker and writes into the projects root:
$HOME/projects (resolves to the current user's home at runtime).PROJECTS_DIR=/some/other/root before running (e.g. set it once in your shell profile for a permanent personal choice).Invoke it according to the environment you're running in:
${CLAUDE_SKILL_DIR} is a Windows path, and Docker/the projects root live in WSL - so run the script inside WSL, converting the path with wslpath. Construct and run, via the Bash tool:
wsl.exe bash -lc 'bash "$(wslpath "<CLAUDE_SKILL_DIR>")"/assets/scaffold.sh <PROJECT_NAME> [<APP_NAME>]'
(substitute <CLAUDE_SKILL_DIR> with the resolved value; quote carefully).bash "${CLAUDE_SKILL_DIR}/assets/scaffold.sh" <PROJECT_NAME> [<APP_NAME>]
Wait for the final SCAFFOLD_OK <path> line. First run pulls the base image (a few hundred MB). If a generator/CLI flag is rejected, check yarn create nx-workspace --help or nx g @nx/angular:application --help - never guess.
Read ${CLAUDE_SKILL_DIR}/assets/CLAUDE.md.tmpl. Use it as the base:
Write the result to <project>/CLAUDE.md.
Tell the user:
apps/<app-name>,.claude, and pre-installs the bespunky/claude-toolkit plugins on build - so every house skill/agent is live inside the container with no setup (open via "Dev Containers: Reopen in Container"),.claude/settings.json already declares the marketplace, so Claude offers a one-click install on first run.scaffold.sh, and all templates is the claude-toolkit repo. Edit there - never fork copies into individual projects.apps/, libraries in libs/. Generate more with nx g @nx/angular:application apps/<name> --minimal and nx g @nx/angular:library libs/<name>.yarn create nx-workspace runs git init + an initial commit inside the container (git identity is passed through from the host).Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub bespunky/claude-toolkit --plugin project-starter