pi-dev-loops is a source-loaded workspace for reusable Pi development loops. It combines generic role agents, local and GitHub-first workflow skills, a thin /dev-loops extension, and deterministic support code for the parts of planning, review, GitHub, and Copilot workflows that should not depend on ad hoc shell glue.
This repo supports both local and GitHub-first workflows, but the current repo contract is:
- use
dev-loopas the single public workflow entrypoint - let the canonical current state route that public entrypoint deterministically to the correct internal strategy
- prefer the GitHub-first internal strategies by default for active implementation and release work when practical
- use the local implementation strategy only when the user explicitly wants phase-bounded local planning/implementation
High-level shorthand examples for the unattended issue-based GitHub/Copilot path:
auto dev loop on issue 112enter copilot auto dev loop on issue 112run auto dev loop on 112 until approval gate
These all map to the same public dev-loop intent (not a second public workflow name) and continue through the normal GitHub/Copilot loop until the final human approval gate unless merge was explicitly authorized.
For the latest durable roadmap and status, start with:
PLAN.mddocs/IMPLEMENTATION_STATE.mddocs/IMPLEMENTATION_WORKFLOW.md
This repo currently contains four main layers. The design goal is generic role agents plus thin workflow entrypoint agents where needed, with thin workflow entrypoint agents allowed when they only load a skill and defer policy to it.
- Role agents in
agents/- reusable prompts such as coordinator, developer, docs, quality, review, fixer, and refiner
- Workflow skills in
skills/dev-loopas the single public façade that routes to the correct internal loop strategy- internal compatibility seams remain runtime-only and are not public workflow choices
- Extension UX in
extension//dev-loopsreadiness checks plus explicit skill install/update flows
- Deterministic support code in
packages/core/andscripts/- shared pure/stateful helpers, loop-state detectors, and CLI entrypoints
This means the repo is no longer just a bootstrap import area. It is an active workflow toolkit with current tests, CI, and durable workflow docs.
A few important current-state facts from the repo itself:
- the root package
pi-dev-loopsis currentlyprivate: true - the shared workspace package
@pi-dev-loops/coreis alsoprivate: true - the repo is currently documented as a source-loaded workspace, not a published npm-package workflow
- MIT is the current license
- current implementation/phase status lives in
docs/IMPLEMENTATION_STATE.md
The root package.json loads ./extension/index.ts through pi.extensions.
Current commands:
/dev-loops— help output/dev-loops status— concise readiness summary/dev-loops doctor— full diagnostics/dev-loops install— prompt forrepoorsystemwhen no target is provided/dev-loops install repo— copy packaged skills into the current repository under.pi/skills/dev-loops install system— copy packaged skills into~/.pi/agent/skills/dev-loops update— prompt forrepoorsystemwhen no target is provided/dev-loops update repo|system— refresh previously installed packaged skills/dev-loops hide— clear the readiness widget
Important install/update contract:
- installing the package exposes both the
/dev-loopsextension command surface and thepi-dev-loopsshell CLI - packaged skills are still installed explicitly with
/dev-loops install ... updaterefreshes existing installed copies but does not create first-time installs- installed copies of
copilot-dev-loopandcopilot-autopilotinclude the allow-listed runtime support they need fromscripts/,packages/core/src/, and the selected docs underdocs/ - restart Pi or refresh skill discovery after install/update before expecting newly copied skills to appear in the current session
See extension/README.md for the full command and install/update contract.
packages/core/ contains the current reusable support package, @pi-dev-loops/core.
Current exported areas include:
./bash-exit-one./loop/phase-files./loop/copilot-loop-state./loop/reviewer-loop-state./loop/outer-loop-state./loop/conductor-ownership./loop/tracker-pr-state./loop/public-dev-loop-routing./github/review-threads
It also exposes these CLI binaries:
pi-dev-loops-log-bash-exit-1pi-dev-loops-ensure-phase-filespi-dev-loops-parse-review-threads
Current in-repo core modules that are part of the source-loaded workflow surface, but are not yet package-exported as public entrypoints, include:
packages/core/src/loop/conductor-routing.mjspackages/core/src/loop/run-inspection.mjspackages/core/src/loop/steering.mjs
Current script entrypoints include:
scripts/github/capture-review-threads.mjsscripts/github/detect-linked-issue-pr.mjsscripts/github/reply-resolve-review-thread.mjsscripts/github/request-copilot-review.mjsscripts/github/stage-reviewer-draft.mjsscripts/github/watch-copilot-review.mjsscripts/loop/copilot-pr-handoff.mjsscripts/loop/detect-copilot-loop-state.mjsscripts/loop/detect-initial-copilot-pr-state.mjsscripts/loop/detect-reviewer-loop-state.mjsscripts/loop/detect-tracker-pr-state.mjsscripts/loop/inspect-run.mjsscripts/loop/inspect-run-viewer.mjsscripts/loop/outer-loop.mjsscripts/loop/steer-loop.mjsscripts/loop/summarize-loop-state.mjs
Reference docs:
scripts/README.mddocs/public-dev-loop-contract.mddocs/conductor-ownership-contract.mddocs/conductor-routing-contract.mddocs/copilot-loop-state-graph.mddocs/reviewer-loop-state-graph.mddocs/outer-loop-state-graph.mddocs/steering-contract.mddocs/tracker-first-mvp-state-graph.mddocs/tracker-story-pr-contract.md
Current code and docs assume:
- Node
>=20 - a Pi host that satisfies peer dependencies on
@mariozechner/pi-coding-agentand@mariozechner/pi-tui pi-subagentsfor the current workflow assumptionsghinstalled and authenticated for GitHub/Copilot workflows- a git repository checkout for the normal local and remote loop paths
agents/— reusable role-agent definitionsdocs/— implementation state, workflow docs, contract/state-graph docs, and durable phase plansbin/— shell entrypoints exposed by the root packagecli/— shell-facing command wrappers used by the root CLIextension/—/dev-loopsextension implementation and docslib/— shared deterministic library layer used by the extension and shell CLIpackages/core/— private deterministic support packagescripts/— deterministic CLI helpers for GitHub/review/loop mechanicsskills/— packaged workflow skillstest/— root contract and regression teststmp/— gitignored local execution artifacts and resumable temporary state
Root test commands from package.json:
npm testnpm run test:assetsnpm run test:extensionnpm run test:scriptsnpm run test:corenpm run test:dev-loop
CI currently runs npm ci and npm test on Node 24 in .github/workflows/ci.yml.
PLAN.md— durable repo intent and roadmapdocs/IMPLEMENTATION_STATE.md— current implementation snapshotdocs/IMPLEMENTATION_WORKFLOW.md— repo workflow contract and docs-sync rulesdocs/public-dev-loop-contract.md— public façade, canonical state, and compatibility routing contractextension/README.md—/dev-loopscommand and install/update contractscripts/README.md— deterministic script contractsskills/*/SKILL.md— workflow-specific operating instructions