From xp-stack
Scaffold a new project with the XP stack — creates CLAUDE.md, docs/tasks/_template/, docs/pesquisas/_template/, .claude/settings.json without overwriting existing files. Also creates AGENTS.md symlink to CLAUDE.md (for Antigravity/Codex/Cursor compatibility) and adds 3 reserved paths to .gitignore (idempotent, preserves existing entries). Asks before touching an existing CLAUDE.md. Invoke explicitly with /xp-stack:bootstrap.
How this skill is triggered — by the user, by Claude, or both
Slash command
/xp-stack:bootstrapThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Pra engines sem skill loading (Cursor, Codex sem MCP):** leia este file inteiro e siga as instrucoes como se fossem suas. Voce nao precisa "invocar" — apenas obedeca. Cursor e Codex que tem `xp-stack` instalado via npm leem este SKILL.md em `.cursor/rules/` ou `.codex/skills/`.
Pra engines sem skill loading (Cursor, Codex sem MCP): leia este file inteiro e siga as instrucoes como se fossem suas. Voce nao precisa "invocar" — apenas obedeca. Cursor e Codex que tem
xp-stackinstalado via npm leem este SKILL.md em.cursor/rules/ou.codex/skills/.
Voce eh o Bootstrap. Sua missao eh provisionar o stack XP/Akita neste projeto sem sobrescrever nada que ja exista. Trabalhe sempre com cp -n (no-clobber), pergunte antes de tocar arquivos pre-existentes, e reporte exatamente o que foi criado vs preservado.
Scaffold a project with the XP stack. Never overwrites existing files silently.
Current directory: !pwd
CLAUDE.md status: !test -f "$(pwd)/CLAUDE.md" && echo "EXISTS" || echo "ABSENT"
Existing structure:
!ls -la "$(pwd)/.claude" 2>/dev/null || echo "No .claude directory"
!ls -la "$(pwd)/docs" 2>/dev/null || echo "No docs directory"
Follow these steps IN ORDER. Don't skip ahead.
Use AskUserQuestion with these 3 questions (in one batched call):
Question: "What is the project name?" (the user will likely answer via Other with a kebab-case name)
Question: "What is the primary tech stack?"
Question: "Describe the project in one sentence."
Store the answers as $project_name, $project_stack, $project_description (conceptually — use the values in the bash call below).
Look at the CLAUDE.md status from the environment detection above.
If ABSENT: set $claude_md_action = "create" and skip to Step 3.
If EXISTS: Ask via AskUserQuestion:
skipbackupabortStore the chosen action as $claude_md_action.
Call via Bash tool (replace the variables with the collected values):
bash ${CLAUDE_SKILL_DIR}/scripts/scaffold.sh "$(pwd)" "PROJECT_NAME_HERE" "PROJECT_STACK_HERE" "PROJECT_DESCRIPTION_HERE" "CLAUDE_MD_ACTION_HERE"
The script handles the 4 CLAUDE.md actions (create, skip, backup, abort), copies all templates with cp -n (never overwrites existing), and prints a summary of what was done.
Summarize what was created / skipped. Tell them:
CLAUDE.md — it's the canonical source of truth for the project.AGENTS.md is a symlink to CLAUDE.md (so Antigravity/Codex/Cursor read the same file). Don't edit AGENTS.md directly — edit CLAUDE.md and the symlink propagates..gitignore got 3 reserved entries (local/, .claude/wave-runs/, scripts/orchestrate/) used by the optional skills paperclip-orchestrator and local-waves — pre-existing entries are preserved.task-decomposition skill.If they want multi-agent dispatch later, mention the optional skills /xp-stack:paperclip-setup (remote async, droplet, GitHub-driven auto-merge gate) and /xp-stack:local-waves-setup (local sync, worktrees + claude -p headless).
CLAUDE.md from the template, substituting {{PROJECT_NAME}}, {{PROJECT_STACK}}, {{PROJECT_DESCRIPTION}} with the collected valuestemplates/docs-tasks-template/ to docs/tasks/_template/ (recursive, no-clobber)templates/docs-pesquisas-template/ to docs/pesquisas/_template/ (recursive, no-clobber).claude/settings.json from the template (no-clobber)AGENTS.md -> CLAUDE.md symlink (and AGENTS.local.md -> CLAUDE.local.md if CLAUDE.local.md exists). Skipped when 6th arg passed as "no-symlink".local/, .claude/wave-runs/, scripts/orchestrate/ to .gitignore if not already present (idempotent, preserves existing rules).cp -n / cp -rn throughout — never overwrites existing filesRunning this skill multiple times in the same directory does not modify files created in previous runs. The script always uses no-clobber copies. If the user wants to reset, they delete the files manually first.
$(pwd) — never touches ~/.claude/ global, never touches other repos.$(pwd)/.git — the scaffold only creates source files, git is untouched.npm install or equivalent, the user runs it after.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.
npx claudepluginhub rnobre1/xp-stack --plugin xp-stack