Superseded runtime guide: use SSOT omptask. The live model tool is
backlog, not OMP’s reservedtask; runtime imports are@oh-my-pi/*.
Native Oh My Pi task tracking. One .ts extension + one YAML file. No MCP, no DB, no CLI.
Runtime location
The live wrapper is ~/.omp/agent/extensions/taskmaster.ts, which re-exports src/taskmaster.ts; keep both files together. Canonical runtime details: SSOT omptask.
Current API surface
pi.on("before_agent_start", (e,ctx) => ({ systemPrompt: [...e.systemPrompt, "<active task>"] }))— auto-inject focus.pi.registerTool({ name:"backlog", parameters /*pi.zod*/, execute })— actions: init | list | next | add | update | expand | parse_prd.pi.registerCommand("tm", { handler })— human summary.- State:
.taskmaster/tasks.yml—{ id, title, status, priority, deps[], description?, details?, subtasks?[] }. next= pending tasks whose deps are done/cancelled, ranked by priority → dep-count → id.
NOT this (the old draft was fiction)
omp.registerHook / ctx.systemPrompt += / 3-arg registerTool / extension.yml manifests / js-yaml do not exist in OMP.