pi-missions
Orchestrated multi-phase development missions for pi — architect, implement, test, audit, verify
Package details
Install pi-missions from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-missions- Package
pi-missions- Version
0.2.3- Published
- Apr 3, 2026
- Downloads
- 419/mo · 12/wk
- Author
- itisbryan
- License
- MIT
- Types
- extension, prompt
- Size
- 116.6 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"prompts": [
"./prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-mission
Factory.ai-inspired mission orchestration for pi
Install · Usage · How it works · Modes
Run structured, multi-phase development missions inside pi. Describe your goal, approve the plan, and let the orchestration layer track progress through milestones, features, and validation — with a real-time Mission Control overlay.
Inspired by Factory.ai Missions.
Install
From npm:
pi install npm:pi-missions
From GitHub:
pi install git:github.com/itisbryan/pi-missions
From a local checkout:
pi install /path/to/pi-missions
If pi is already running, use /reload to pick up the new extension.
Requires Pi v0.64.0+.
Usage
/mission Build a user authentication system
Pi opens a planning questionnaire — choose your mode, autonomy level, and optionally assign different models to different phases — then kicks off the mission.
Commands
| Command | Description |
|---|---|
/mission <description> |
Start a new mission (interactive planner) |
/mission |
Quick-check current mission status |
/mission-status |
Detailed status with phase/feature durations |
/mission-features |
Browse features grouped by milestone (full mode) |
/mission-validate |
Show validation assertion status |
/mission-skip |
Skip the current phase or feature |
/mission-done |
Mark the entire mission as complete |
/mission-pause |
Toggle pause/resume |
/mission-reset |
Clear mission state and widget |
Keyboard shortcut
| Shortcut | Action |
|---|---|
Ctrl+Shift+M |
Open Mission Control overlay |
Mission Control
A dashboard overlay with inline actions — no need to type commands:
┌─ Current Feature ──────────────────┐ ┌─ Features ──────── 12/15 ─┐
│ cart-api │ │ ● cart-api │
│ skill: backend-worker │ │ ✓ user-auth │
│ milestone: checkout │ │ ✓ product-catalog │
│ │ │ ○ payment-integration │
│ preconditions │ ├─ Progress Log ────────────┤
│ • Auth service running │ │ <1m ● Feature started │
│ expected behavior │ │ 5m ✓ user-auth done │
│ • Returns 200 with cart items │ │ 23m ⏸ Mission paused │
└─────────────────────────────────────┘ └────────────────────────────┘
P: Pause S: Skip D: Done R: Redirect M: Models V: Validate Esc: Close
| Key | Action |
|---|---|
P |
Pause / Resume |
S |
Skip current phase or feature |
D |
Mark mission done |
R |
Redirect — type a new instruction for the agent |
M |
Edit per-phase model assignment |
V |
Show validation contract status |
Modes
Choose your mode when starting a mission:
| Mode | Structure | Best for |
|---|---|---|
| Standard | 6 phases: Architect → Review → Implement → Test → Audit → Verify | Most development tasks |
| Full | Milestones + features + validation assertions | Large multi-feature projects |
| Minimal | 3 phases: Plan → Build → Verify | Quick fixes and small changes |
Standard / Minimal — phase widget
🎯 Build user authentication
████▓░░░ 📐 Phase 2/6: Review Plan (1/6 done)
Full — feature widget
● Running ██████████▓░░░ 12/15 features
🎯 Build user authentication · Milestone: auth · Feature: jwt-tokens
Paused
⏸ PAUSED (3m) — Build user authentication
████▓░░░ Phase 2/6: Review Plan
How It Works
┌─────────────────────────────────────────────────────────────┐
│ pi session (cwd: /my-project) │
│ │
│ /mission Build a CRM │
│ │ │
│ ├─► Planning questionnaire │
│ │ Mode? Standard / Full / Minimal │
│ │ Autonomy? Low / Medium / High │
│ │ Models? (optional per-phase assignment) │
│ │ │
│ ├─► Mission protocol injected into system prompt │
│ │ on every turn (before_agent_start) │
│ │ │
│ ├─► LLM output scanned after each turn │
│ │ (message_end) for: │
│ │ Phase transitions ("Phase 1 complete") │
│ │ Feature transitions ("Feature cart-api done") │
│ │ Milestone transitions │
│ │ Assertion results ("VAL-AUTH-001 passed") │
│ │ Spec approval ("Plan approved") │
│ │ │
│ ├─► State persists in session entries │
│ │ (survives /compact and session restarts) │
│ │ │
│ └─► Widget + Mission Control show live progress │
│ │
│ Full mode: AI uses mission_update tool to register │
│ features and assertions after spec approval │
└─────────────────────────────────────────────────────────────┘
What gets injected into the system prompt
On every turn, the extension appends:
- Mission protocol — instructions for the current phase (planning, execution, audit, verify)
- Current status — mission description, phase/feature/milestone position, progress counts
- Autonomy guidance — when to pause based on Low/Medium/High setting
- Pause notice — if paused, tells the agent to wait for direction
Per-phase model assignment (optional)
Assign different models to different roles during the planner:
🧠 Planning & Architecture → claude-opus-4-6
🔨 Implementation → claude-sonnet-4
🔍 Code Review / Audit → claude-opus-4-6
✅ Validation → claude-opus-4-6
Models switch automatically when phases transition. Uses your actual modelRegistry — no hardcoded list.
Autonomy levels
| Level | Behavior |
|---|---|
| Low | Pause after every feature, wait for "continue" |
| Medium | Pause at milestone boundaries and decision points (default) |
| High | Run to completion, only pause on critical failure |
State persistence
Mission state is stored via pi.appendEntry() — custom entries survive /compact and session restarts. When you resume a session, the widget and session name are automatically restored.
/mission-reset appends a null marker that tells the restore logic to stay cleared — the old state won't reappear.
Full mode — mission_update tool
In full mode, a custom LLM-callable tool (mission_update) is registered. After spec approval, the AI calls it to:
- Add features to milestones
- Add validation assertions
- Update feature status (active / done / failed)
This keeps the state in sync with what the AI is actually doing, not just what it announces in text.
Architecture
extensions/
├── index.ts # Thin orchestrator (~290 lines)
├── types.ts # All interfaces (MissionState, Feature, Milestone, etc.)
├── config.ts # Mission templates (standard / full / minimal)
├── state.ts # Persistence + TypeBox runtime validation
├── tools.ts # Custom LLM-callable tool (mission_update)
├── widget.ts # Progress widget (phase bar / feature bar / pause)
├── mission-control.ts # Mission Control overlay (P/S/D/R/M/V)
├── progress-log.ts # Event timeline with relative timestamps
├── detector.ts # Phase / feature / milestone / assertion detection
├── protocol.ts # System prompt generation (planning, audit, verify)
├── planner.ts # Interactive planning questionnaire
├── commands.ts # 8 commands + Ctrl+Shift+M shortcut
└── utils.ts # Shared helpers
Development
# Install dependencies
npm install
# Type check
npm run typecheck
# Lint
npm run lint
# Run tests
npm test
# Test in watch mode
npm run test:watch
# Test locally without installing
pi -e /path/to/pi-missions/extensions/index.ts
Tests
The test suite covers core logic that doesn't depend on the pi runtime:
tests/
├── state.test.ts — state persistence, advancePhase, advanceFeature, addProgressEvent
├── detector.test.ts — phase/feature/milestone/assertion detection patterns
└── utils.test.ts — formatDuration, icons, extractText, truncate, generateId
Inspired By
- Factory.ai Missions — multi-agent orchestration with milestones, features, and validation
- Factory's orchestrator/worker architecture, validation contracts, and skill-aware execution patterns
License
MIT