pi-task
Deterministic spec-orchestration for local models — with bundled web, docs, fetch, and worker sub-agent tools.
What it does
Local models drift. Ask one to plan a non-trivial change and it skips context, hallucinates APIs, and forgets what you actually asked. pi-task fixes this by not trusting a single prompt — it drives your request through a fixed, persisted pipeline of small, verifiable steps (shown above), then hands the main session a clean spec to execute.
Every phase boundary is written to .pi-tasks/TASK_NNNN.md, so a task survives a crash, a restart, or a /task-cancel — pick it back up with /task-resume.
Why it's different
- Deterministic by construction. The phase order is fixed code, not a model's free choice. The orchestrator loops over a config table; each phase has one job and one output section.
- Parallel research, focused output. The research phase fans out to isolated child agents — one indexing project files, others digging into APIs, context, and tooling — and verifies tooling claims before they reach the spec.
- Context stays clean. Noisy file/code spelunking, page fetches, and docs lookups run in throwaway child sessions. The parent only ever sees the distilled answer, never the raw page or the 4k-line file.
- Built for local LLMs. A loop detector and failure classifier catch the stalls, repetitions, and malformed output that smaller models produce, and retry with sharper emphasis instead of giving up.
- Crash-safe. State is a plain Markdown file you can read, diff, and edit by hand.
Install
pi install npm:@mjasnikovs/pi-task
Requires
pi(the Earendil coding agent) ≥ 0.80.
Quickstart
One change — /task runs it through the full pipeline and hands the finished spec back in the same chat:
/task add rate limiting to the /api/upload endpoint
One change, but you want a say in HOW — /task-plan talks it through with you first, one question at a time, then hands the decisions to /task:
/task-plan add rate limiting to the /api/upload endpoint
A whole plan — /task-auto splits it into an ordered task list and runs each one through /task:
/task-auto Implement @MY_DETAILED_AND_LARGE_PLAN.md
@-mentioning a file inlines its contents, so point it at the design doc you already wrote — no copy-paste.
No comments yet.