| name | init |
| description | Bootstrap new projects or add the agents-workflow system to existing projects. Use for new project scaffolding (Next.js, Python, Rust) or adding workflow capabilities to any git repository. |
Project Initialization Skill
Unified entry point for project bootstrapping. Handles both new project creation (scaffold + workflow) and adding the workflow system to existing projects. Step 0 before feature planning.
Usage
/skill:init
/skill:init nextjs my-app
/skill:init python my-service
/skill:init rust my-crate
/skill:init --setup
Mode Detection
If no arguments provided, auto-detect the appropriate mode:
| Context | Mode | Action |
|---|
| No project directory specified | Ask user | New project or setup existing? |
Stack + name provided (nextjs my-app) | New project | Scaffold + setup workflow |
--setup flag | Setup only | Add workflow to current project |
Current dir has code but no .pi/ | Suggest setup | Offer to add workflow system |
Current dir already has .pi/ | Warn | Offer to update/overwrite |
Mode 1: New Project
Supported Stacks
| Stack | Runtime | Testing | Linting |
|---|
nextjs | Bun, Next.js 15 App Router, Tailwind v4, Zustand, TanStack Query | Vitest + RTL + Playwright | Biome |
python | uv, src layout | pytest | Ruff + pyright |
rust | Cargo workspace | cargo-nextest | clippy + rustfmt |
Steps
- Select stack — ask if not specified
- Validate name — lowercase, hyphens, no spaces; check if dir exists
- Scaffold project — create structure using stack templates from
templates/
- Setup workflow — run Mode 2 (below) in the new project
- Install dependencies —
bun install / uv sync / cargo build
- Verify —
lint + build/test pass
Stack Templates
Stack-specific config files are in the templates/ directory:
templates/nextjs/ — package.json, biome.json, vitest.config, etc.
templates/python/ — pyproject.toml
templates/rust/ — Cargo.toml, clippy.toml, rustfmt.toml
Use template variables: {{PROJECT_NAME}}, {{PROJECT_NAME_SNAKE}}, {{PROJECT_NAME_PASCAL}}, {{YEAR}}, {{DATE}}
Output
Created: {project-name}/
├── .pi/ # Agents workflow system
├── docs/ # Documentation templates
├── src/ # Source code
└── [config files] # Stack-specific
Next: cd {project-name} && /skill:plan your-first-feature
Mode 2: Setup Workflow (Existing Project)
Add the agents-workflow system to any existing git repository. Uses implementation.ts for the actual file operations.
Prerequisites
- Must be a git repository (
.git/ exists)
- Write permissions to target directory
Git Branch Setup
The init skill automatically configures git branches for the workflow:
| Scenario | Action |
|---|
| Fresh repo (no commits) | Create initial commit, main branch, dev branch |
Has master only | Rename to main, create dev from it |
Has main only | Create dev from main |
Has both main and dev | No changes needed |
After setup:
main — Production branch (protected, only receives PRs)
dev — Working branch (where you develop, default checkout)
Worktrunk Configuration
For the worktree-based swarm workflow, the init skill configures:
-
User config (~/.config/worktrunk/config.toml):
worktree-path = ".worktrees/{{ branch | sanitize }}"
This creates worktrees inside the repo, keeping main repo on dev.
-
.gitignore — adds .worktrees/ to ignore worktree directories
Symlink Strategy
The init skill always symlinks agents, extensions, skills, prompts, and scripts from the agents-workflow root into the target project's .pi/ directory. This avoids duplicating files across projects and ensures all projects use the same up-to-date workflow definitions.
The symlinks are for agent spawn — spawned agents need to find worker.md and other definitions relative to the project. Extensions and skills are not referenced in the project settings.json because they're already loaded globally via ~/.pi/agent/settings.json. Adding them to project settings would cause tool conflicts.
What Gets Created
| Category | Type | Destination |
|---|
| Agents | symlink → agents-workflow | .pi/agents/ |
| Prompts | symlink → agents-workflow | .pi/prompts/ |
| Scripts | symlink → agents-workflow | .pi/scripts/ |
| Config | settings.json (project-specific, no extensions/skills) | .pi/ |
| Context | AGENTS.md (project-specific stub) | .pi/ |
| Directories | Empty scaffolding | docs/{prds,specs,plans,tasks,decisions,reviews,research}/ |
Only agents, prompts, and scripts are symlinked — these are needed for agent spawn to find worker.md and templates. Extensions and skills are not symlinked because they're loaded globally via ~/.pi/agent/settings.json. Symlinking them would cause tool conflicts.
Project AGENTS.md
The project .pi/AGENTS.md is not a copy of the global workflow guide. It's a project-specific stub with placeholders for:
- Tech stack (language, framework, package manager)
- Commands (dev, test, lint, build)
- Project structure (key directories)
- Project-specific conventions
This stub gets automatically enriched by /skill:plan during its codebase analysis phase. Pi loads both the global AGENTS.md (workflow rules, agent tools) and the project AGENTS.md (project context) into every session.
Directory Structure Created
.pi/
├── settings.json # Configuration (project-specific)
├── AGENTS.md # Project-specific context (stub, enriched by /skill:plan)
├── agents/ # → symlink to agents-workflow (for agent spawn)
├── prompts/ # → symlink to agents-workflow
└── scripts/ # → symlink to agents-workflow
docs/
├── prds/ # Product Requirements
├── specs/ # Technical Specifications
├── plans/ # Orchestration Plans
├── research/ # Research Reports
├── tasks/ # Phase Task Files
├── decisions/ # Architecture Decisions
└── reviews/ # Codebase Reviews
.worktrees/ # Created during /skill:swarm (gitignored)
├── feat-xxx/ # Feature branch worktrees
└── feat-xxx-phase-N/ # Phase worktrees
Git Branches Created
main # Production (protected)
└── dev # Working branch (default checkout)
└── feat/xxx # Feature branches (in worktrees)
Git Integration
Updates .gitignore to exclude:
.orchestration-state.json
.agent-state.json
Verification
pi --verbose
ls -la docs/
Output
✅ Setup complete! Available skills:
/skill:plan # PRD → Spec → Tasks
/skill:swarm # Parallel agent execution
/skill:feature # Single-phase implementation
/skill:review-codebase # Quality analysis
/skill:validate-plan # Spec compliance verification
📖 See .pi/AGENTS.md for workflow documentation.
Post-Init: What's Next?
For guidance on which workflow to use, read the Workflow Guide.
/skill:plan feature-name
/skill:swarm feature-name
/skill:validate-plan feature-name
Error Handling
| Error | Resolution |
|---|
| Not a git repo | Run git init first |
| Permission denied | Check directory permissions |
| Source files not found | Run from agents-workflow project |
| Directory exists (new project) | Confirm overwrite or choose new name |
.pi/ already exists (setup) | Offer to update or skip |
Related Skills
/skill:plan — Plan features (next step after init)
/skill:swarm — Parallel agent execution
/skill:feature — Single-phase implementation