Full project bootstrap orchestrator — from idea to deployable MVP with infrastructure. Zero roleplay, subagent-driven.
Orchestrates full project bootstrapping from idea to deployable MVP using subagents for each development phase.
/plugin marketplace add rootly-be/ccp/plugin install apex@ccpThis skill inherits all available tools. When active, it can use any tool Claude has access to.
steps/00-init.mdsteps/01-brainstorm.mdsteps/02-prd.mdsteps/03-architecture.mdsteps/04-scaffold.mdsteps/05-validate.mdsteps/06-mvp-implement.mdsteps/07-mvp-validate.mdsteps/07b-e2e-chrome.mdsteps/07c-playwright.mdsteps/08-docker.mdsteps/09-deploy.mdsteps/10-cicd.mdsteps/11-docs.mdsteps/12-finish.mdYou orchestrate the full bootstrap of a new project. You stay lightweight — delegate all work to subagents, track state, enforce gate checks.
The brainstorm and architecture phases should consider and propose from:
Parse flags from the /apex-init invocation. See command file for full flag reference.
Notable defaults:
--save, --interactive, --docker, --cicd, --mvp are ON by default--k8s, --helm, --kustomize are OFF unless explicitly enabled or --all-deploy is usedThe orchestrator uses a persistent state file for crash recovery and session resume. See ../apex/state.md for full specification.
After EVERY phase transition:
state.json with phase result and summarydocs/apex-init/state.json.claude/apex-state/current.jsonState enables:
Maintain orchestrator state with these fields:
APEX_INIT_STATE:
project_name: ""
project_description: ""
flags: {auto: false, docker: true, ...}
current_phase: {number, name, status, started_at, attempt}
completed_phases: [{number, name, status, summary, output_file}]
pending_phases: [{number, name}]
tech_stack:
backend: ""
frontend: ""
database: []
cache: ""
other: []
blockers: []
recovery_info:
last_clean_state: ""
can_resume_from: ""
START → Parse flags → 00-Init
→ 01-Brainstorm (interactive with user)
→ 02-PRD (generate from brainstorm)
→ HARD GATE: user validates PRD
→ 03-Architecture (tech decisions + design)
→ HARD GATE: user validates architecture
→ 04-Scaffold (generate project structure + boilerplate)
→ 05-Validate (build/lint check)
→ GATE: if fails, fix scaffold
→ [if --mvp] 06-MVP-Implement (subagent: apex-implementer)
→ [if --mvp] 07-MVP-Validate (subagent: apex-validator)
→ GATE: if fails, fix MVP
→ [if --mvp] 07b-E2E-Chrome (subagent: apex-e2e-chrome) → validate stories in browser
→ [if --mvp] 07c-Playwright (subagent: apex-playwright) → generate CI-runnable E2E tests
→ [if --docker] 08-Docker (subagent: apex-infra)
→ [if deploy flags] 09-Deploy-Manifests (subagent: apex-infra)
→ [if --cicd] 10-GitLab-CI (subagent: apex-infra)
→ 11-Docs (subagent: apex-docs)
→ 12-Finish
→ DONE
Phases 02 (PRD) and 03 (Architecture) have hard gates — even in --auto mode, the orchestrator MUST present the output and get explicit user confirmation. These decisions shape everything downstream.
Exception: --pilot mode overrides hard gates. In pilot mode, hard gates are auto-approved and all assumptions are logged in the pilot report. The user reviews the PRD/architecture after the session completes. This is by design — pilot mode is zero-interruption.
For each phase:
Task: "APEX-Init Phase {N}: {phase name} — Project: {project_name}"
Instructions: "Read the apex-init skill's steps/{NN}-{step}.md and follow the instructions."
Agent: "Use the apex-{role} agent from this plugin"
Context: task description + previous phase summaries (compressed)
Before and after each phase:
.claude/apex-config.yaml (if exists)../apex/helpers.md#Execute-Hooks../apex/helpers.md#Execute-HooksIf apex-config.yaml doesn't exist, skip all hooks silently.
During Phase 04 (Scaffold) or Phase 12 (Finish), install git hooks per ../apex/helpers.md#Install-Git-Hooks based on the git_hooks section of apex-config.yaml.
All phase outputs go to docs/apex-init/:
docs/
├── apex-init/
│ ├── 00-init.md
│ ├── 01-brainstorm.md
│ ├── 02-prd.md
│ ├── 03-architecture.md
│ ├── 04-scaffold.md
│ ├── 05-validate.md
│ ├── 06-mvp-implement.md
│ ├── 07-mvp-validate.md
│ ├── 08-docker.md
│ ├── 09-deploy.md
│ ├── 10-cicd.md
│ ├── 11-docs.md
│ └── 12-finish.md
├── prd.md ← promoted from phase 02
├── architecture.md ← promoted from phase 03
├── api-spec.yaml ← generated in phase 03
└── stories/ ← generated in phase 02
├── US-001.md
├── US-002.md
└── ...
After /apex-init completes, the project is fully set up for iterative development with /apex:
CLAUDE.md documents the project conventionsdocs/prd.md and docs/architecture.md are in placedocs/stories/ contains the backlog/apex -a implement US-003 to pick up storiesActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.