@pi-agents/orchid
Unified pi orchestration package combining batch orchestrator, Ralph loop, and subagent dispatch for multi-agent pipelines
Package details
Install @pi-agents/orchid from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@pi-agents/orchid- Package
@pi-agents/orchid- Version
0.1.0-beta.2- Published
- May 31, 2026
- Downloads
- 304/mo · 304/wk
- Author
- artemisai-dev
- License
- unknown
- Types
- extension, skill
- Size
- 3 MB
- Dependencies
- 2 dependencies · 5 peers
Pi manifest JSON
{
"skills": [
"./skills"
],
"extensions": [
"./extensions/task-orchestrator.ts",
"./extensions/reviewer-extension.ts",
"./extensions/ralph.ts",
"./src/subagents/extension/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
OrchID — Orchestration Identification Pipeline
orch = Orchestration · ID = Identification — like the flower: structured, modular, beautiful when in bloom.
Philosophy
OrchID is a modular orchestration meta-skill for AI agent swarms. It decomposes complex multi-agent development into discrete, composable phases — each encapsulating its own agents, skills, and Ralph loops.
Core Principles
- The Orchestrator Does Not Code. Ever. Investigate, plan, delegate, review.
- Skills in Skills. Each phase is a self-contained sub-skill with its own agent assignments, Ralph loop config, and dependency declarations. Load only what you need.
- Ralph Loops Are the Execution Wrapper. Every delegation goes through a Ralph loop for pacing, progress tracking, and iteration control — not raw subagent fire-and-forget.
- Subagents Only.
interactive_shellis PROHIBITED for work. It is exclusively for external engine evals (Claude Code, Gemini CLI, Codex, Cursor). All internal delegation usessubagent(). - Model-Agnostic. No hardcoded models. Inherit the orchestrator's model by default. Ask the user if cost optimization is desired. Respect agent-defined model preferences.
- Doctor First. Before any pipeline runs, verify all dependencies exist. Fail fast, fail clear.
- Zero File Overlap. Lanes never share files. The file ownership matrix is law.
The 9-Phase Pipeline
PHASE 1: INVESTIGATE → PHASE 2: DOCUMENT → PHASE 3: ISSUES
↓
PHASE 4: DECOMPOSE → PHASE 5: .ralph/ FILES → PHASE 6: LAUNCH
↓
PHASE 7: CONVERGE → PHASE 8: REVIEW
↓
PHASE 9: GAP CLOSURE + CLEANUP
Sub-Skill Architecture
orchID/
├── SKILL.md ← Master: overview, dependency table, triggers
├── orchID-doctor/SKILL.md ← Health check / dependency verification
├── orchID-investigate/SKILL.md ← Phases 1-2: Scout, map, document
├── orchID-decompose/SKILL.md ← Phases 3-5: Issues, ownership, .ralph/ files
├── orchID-launch/SKILL.md ← Phase 6: Subagent dispatch via Ralph loops
├── orchID-converge/SKILL.md ← Phases 7-8: Pull, wire, review gate
└── orchID-cleanup/SKILL.md ← Phase 9: Gap closure, .ralph/ archive
Each sub-skill declares:
- Which agents it uses (from
references/agents/) - Which skills it depends on (from
references/) - Ralph loop configuration (iterations, pacing, reflection)
- Model policy (inherit / ask / agent-defined)
Delegation Architecture
┌──────────────────────────────────────────────────────────┐
│ ORCHESTRATOR │
│ (YOU — the brain) │
│ │
│ Loads orchID master skill │
│ Runs orchID-doctor first │
│ Steps through phases, loading sub-skills as needed │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ orchID- │ │ orchID- │ │ orchID- │ │
│ │ investigate │ │ decompose │ │ launch │ │
│ │ │ │ │ │ │ │
│ │ Agent: scout │ │ Agent: planner│ │ Agent: worker│ │
│ │ Ralph: no │ │ Ralph: no │ │ Ralph: YES │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ Each sub-skill is a "skill in a skill" — │
│ encapsulating agent + loop + project skills │
│ as a single composable unit. │
└──────────────────────────────────────────────────────────┘
Delegation Rules (Non-Negotiable)
subagent() — Internal Work (USE THIS)
For ALL coding, investigation, review, and testing delegation:
subagent({
agent: "worker",
task: "Implement X...",
async: true,
skill: "ms-rust" // project-specific skills injected here
})
interactive_shell — External Eval ONLY (DO NOT USE for work)
interactive_shell is PROHIBITED for any implementation, debugging,
review, or testing task. It is EXCLUSIVELY for launching external
coding agent CLIs for evaluation/benchmarking:
interactive_shell({
command: 'claude "Review the diffs"',
mode: "dispatch"
})
Allowed CLIs: claude, gemini, codex, cursor
Purpose: engine comparison, benchmark, eval — NEVER production work.
| Dimension | subagent() | interactive_shell |
|---|---|---|
| Token cost | One agent | Two agents (you + child) |
| Model control | Explicit per-task | Whatever pi launches with |
| Context | Clean fork | TUI overlay burns context |
| Progress | Structured output | Must poll/parse terminal |
| Parallelism | Unlimited async | One per terminal tab |
| Chaining | chain/parallel support | Manual glue |
| Skills | Inject per-task | Inherit from parent |
Dependencies
Required Agents (must exist in .agents/ or subagent registry)
| Agent | Role | Model | Used By Phase |
|---|---|---|---|
| scout | Codebase recon | glm-5.1-claude | orchID-investigate |
| researcher | Web research | glm-5.1-claude | orchID-investigate |
| planner | Implementation planning | deepseek-v4-pro | orchID-decompose |
| worker | Implementation execution | deepseek-v4-flash | orchID-launch, orchID-cleanup |
| dev-1 | Focused coding | deepseek-v4-flash | orchID-launch |
| reviewer | Code review | glm-5.1-claude | orchID-converge |
| tester | Test verification | deepseek-v4-flash | orchID-converge |
| brain | Architecture reasoning | (inherit) | Any phase (escalation) |
| delegate | Lightweight passthrough | (inherit) | Any phase (simple tasks) |
Required Skills
| Skill | Source | Package | Used By |
|---|---|---|---|
| ralph | src/ | orchid (bundled) | orchID-launch, orchID-cleanup |
| subagents | src/ | orchid (bundled) | orchID-launch (all delegation) |
| orchID-decompose | src/ | orchid (bundled) | Task authoring + issue decomposition |
Project-Specific Skills (loaded per language)
| Skill | When | Source |
|---|---|---|
| ms-rust | Rust projects | ~/.pi/agent/skills/ms-rust-guidelines |
| rustic-prompt | Rust projects | ~/.pi/agent/skills/rustic-prompt |
Required Tools
| Tool | Check Command | Used By |
|---|---|---|
| git | git --version |
All phases |
| gh | gh auth status |
orchID-decompose (issue creation) |
| cargo | cargo --version |
Rust projects, orchID-converge |
| Telepathine bus | agent_memory_telepath_list() |
orchID-launch, orchID-converge |
Model Policy
OrchID does NOT hardcode models. Instead:
- Default: Omit
modelparam → subagent inherits orchestrator's model - User-specified: Use exactly what the user requested
- Capacity-based: If user says "optimize cost", ASK which model to use for workers
- Agent-defined:
.agents/*.mdfiles declare model preferences — respect those - Doctor verifies: orchID-doctor checks that declared agents have valid model configs
orchID-doctor — Health Check
Run before ANY pipeline execution. Verifies:
- All required agents exist and are reachable
- All required skills are loadable
- Project-specific skills are installed for the detected language
- Tools (git, gh, cargo) are available and authenticated
- Telepathine bus has connectivity
- Git repo is clean and on the correct branch
- Build is green
Reports: ✅ Ready / ⚠️ Warnings / ❌ Missing (with fix suggestions)
Workspace Contents
OrchID/
├── README.md ← This file
├── CHANGELOG.md ← Release history
├── LICENSE ← MIT
├── package.json ← npm package manifest
├── ARCHITECTURE.html ← Visual architecture guide
├── src/ ← Unified source (113 .ts files)
│ ├── index.ts ← Barrel exports
│ ├── orchestrator/ ← Batch orchestration engine (42 files)
│ ├── ralph/ ← Iterative Ralph loop (1 file)
│ └── subagents/ ← Subagent dispatch + chains (69 files)
├── extensions/ ← Pi extension entry points
│ ├── task-orchestrator.ts ← /orch commands + supervisor
│ ├── reviewer-extension.ts ← /run review commands
│ └── ralph.ts ← /ralph loop commands
├── skills/orchid/ ← 7 sub-skill pipeline
│ ├── SKILL.md ← Master entry point
│ ├── orchID-doctor/SKILL.md ← Health check
│ ├── orchID-investigate/SKILL.md ← Phases 1-2
│ ├── orchID-decompose/SKILL.md ← Phases 3-5
│ ├── orchID-launch/SKILL.md ← Phase 6
│ ├── orchID-converge/SKILL.md ← Phases 7-8
│ └── orchID-cleanup/SKILL.md ← Phase 9
├── agents/ ← Agent definitions (12)
├── templates/ ← Agent prompt templates
├── prompts/ ← Orchestration prompts
├── dashboard/ ← Web dashboard
├── bin/ ← Utility scripts (excluded from npm)
├── sources/ ← Git submodules (excluded from npm)
└── references/ ← Design docs (excluded from npm)
Development Roadmap
v0.1 (Current — Published) — Unified Package
- All 3 source repos merged (taskplane v0.30.1 + ralph-wiggum v0.2.1 + pi-subagents v0.25.0)
- 113 .ts source files across 3 modules
- 20 tools, 18 commands, 4 extensions, 7 sub-skills, 12 agent defs
- Master SKILL.md + all 7 sub-skill SKILL.md files
- orchID-doctor health check with full dependency verification
- orchID-investigate (phases 1-2: investigate + document)
- orchID-decompose (phases 3-5: issues + decompose + ralph files)
- orchID-launch (phase 6: launch + converge + review + cleanup)
- orchID-converge (phases 7-8: converge + review)
- orchID-cleanup (phase 9: cleanup)
- Model policy (inherit/ask/agent-defined)
- interactive_shell prohibition enforced in all sub-skills
- Published as npm-installable pi package
- Per-project
.orchid-config.jsonconfiguration - Configurable agent model overrides
- Auto-detect project language and load appropriate skills
v1.0 — Production Hardening
- Comprehensive test suite
- Recovery from failed phases (resume where you left off)
- Telemetry / cost tracking integration
- Cross-project templates (Rust, TypeScript, Python, etc.)
Provenance
Born from the RustAPI project (May 2026) where 3 parallel lanes closed 26 issues in a single session with full reviewer gates, clippy verification, and Go→Rust fidelity audits.
The patterns that worked are captured here. The patterns that failed are documented as pitfalls.