setup-environment
Environment Setup Skill
Automatically configure a new user's local development environment for App Factory.
When This Skill Applies
- User says
/setup, "set me up", or "configure my environment" - User asks "how do I get started" or "what do I need to install"
- First-time contributor onboarding
Setup Procedure
When triggered, execute the following checks in order. Skip tools that are already installed and at the correct version. Show a plan before executing any installations.
Phase 1: Core Requirements (BLOCKING)
These MUST pass before proceeding. If any fail, show the fix and stop.
1.1 Node.js (>= 18.0.0)
node --version 2>/dev/null
- PASS: Version >= 18.0.0
- FAIL: Prompt user to install via
brew install node(macOS),nvm install 18, or https://nodejs.org
1.2 npm
npm --version 2>/dev/null
- PASS: Any version (ships with Node.js)
- FAIL: Reinstall Node.js
1.3 Git
git --version 2>/dev/null
- PASS: Any version 2.x+
- FAIL:
xcode-select --install(macOS) orsudo apt-get install git(Linux)
1.4 Claude Code CLI
claude --version 2>/dev/null
- PASS: Any version
- FAIL:
npm install -g @anthropic-ai/claude-code
Phase 2: Repository Integrity
Verify the repo is intact and all 6 pipelines are present.
2.1 Pipeline Directories
Check each directory exists and contains a CLAUDE.md:
app-factory/CLAUDE.md
website-pipeline/CLAUDE.md
dapp-factory/CLAUDE.md
agent-factory/CLAUDE.md
plugin-factory/CLAUDE.md
miniapp-pipeline/CLAUDE.md
- PASS: All 6 exist
- WARN: Missing pipelines (list which ones)
2.2 Core Infrastructure
Check these critical files/directories exist:
plugins/factory/commands/factory.md
scripts/local-run-proof/verify.mjs
scripts/factory_ready_check.sh
core/package.json
.claude/settings.json
.mcp.json
- PASS: All present
- WARN: List missing files with remediation
Phase 3: Dependencies
3.1 Root npm Install
# Check if node_modules exists
ls node_modules/.package-lock.json 2>/dev/null
- PASS: node_modules exists and is populated
- ACTION: Run
npm installat repository root (requires user approval)
3.2 Husky Git Hooks
ls .husky/_/husky.sh 2>/dev/null
- PASS: Husky hooks installed
- ACTION: Run
npx husky install(requires user approval)
Phase 4: Environment Configuration
4.1 Environment Variables
# Check .env exists
test -f .env
- PASS: .env exists
- ACTION: Copy from .env.example → .env, then prompt user to fill in ANTHROPIC_API_KEY
4.2 MCP Server Configuration
Check .mcp.json exists and .claude/settings.json has MCP servers enabled:
github, playwright, filesystem, context7, semgrep
- PASS: Configuration files present and servers listed
- WARN: Missing servers with instructions to enable
Phase 5: Optional Tools (Non-Blocking)
These improve the development experience but are not required.
5.1 watchman (for Expo/React Native hot reload)
watchman --version 2>/dev/null
- PASS: Installed
- SKIP: Not installed (suggest
brew install watchmanon macOS) - Only relevant if user plans to use app-factory
5.2 Xcode Command Line Tools (macOS only)
xcode-select -p 2>/dev/null
- PASS: Installed
- SKIP: Not installed (suggest
xcode-select --install) - Only relevant on macOS for iOS simulator preview
5.3 Development Tools Check
Verify these work from root package.json scripts:
npx eslint --version 2>/dev/null
npx prettier --version 2>/dev/null
npx tsc --version 2>/dev/null
- PASS: All return versions
- WARN: Missing tools (will be available after npm install)
Phase 6: Validation
Run the validation script to confirm everything:
bash scripts/validate-setup.sh
Output: Status Report
After all phases, display a summary table:
============================================================
App Factory Environment Setup Report
============================================================
Core Requirements:
Node.js 18+ PASS (v20.11.0)
npm PASS (v10.2.4)
Git PASS (v2.43.0)
Claude Code CLI PASS (v1.x.x)
Repository Integrity:
app-factory PASS
website-pipeline PASS
dapp-factory PASS
agent-factory PASS
plugin-factory PASS
miniapp-pipeline PASS
Core infrastructure PASS
Dependencies:
npm install PASS
Husky hooks PASS
Environment:
.env file PASS
MCP servers PASS (5/5 configured)
Optional Tools:
watchman SKIP (not needed unless using app-factory)
Xcode CLI Tools PASS (macOS)
ESLint PASS
Prettier PASS
TypeScript PASS
============================================================
Result: READY
You're all set! Next steps:
1. Run /factory help to see available commands
2. Run ./quickstart.sh for an interactive guide
3. cd into any pipeline directory and run claude
============================================================
Critical Rules
- Show plan first - Never install anything without showing what will happen
- Require approval - Ask before running npm install or brew install
- Skip installed tools - Never reinstall something that's already at the right version
- Non-destructive - Never overwrite existing .env files (only create if missing)
- Parallel where safe - Version checks can run in parallel; installations must be sequential
- Respect invariants - All 8 App Factory invariants apply (no silent execution, mandatory approval, etc.)
- macOS awareness - Detect platform and adjust commands accordingly (brew vs apt)
- Graceful degradation - Optional tools failing should not block setup completion
Error Recovery
If any BLOCKING check fails:
- Show the specific error
- Provide the exact fix command
- Ask user to fix and re-run
/setup - Do NOT attempt to continue past blocking failures
If any OPTIONAL check fails:
- Mark as SKIP in the report
- Note what functionality is affected
- Continue with remaining checks