taskplane 0.25.0 → 0.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,13 +6,15 @@ Multi-agent AI orchestration for coding with [pi](https://github.com/badlogic/pi
6
6
 
7
7
  ## What It Does
8
8
 
9
- Taskplane turns ideas into high-quality code using a proven process of:
9
+ Taskplane orchesrates batches of task to help you turn ideas into high-quality code using a proven process of:
10
10
 
11
11
  have an idea >> create a spec >> create tasks >> orchestrate tasks >> evaluate the outcome
12
12
 
13
+ For background on Taskplane's creation see [Author's Note on Medium](https://medium.com/@henry_49934/welcome-to-taskplane-authors-note-ad3a0278fdd3).
14
+
13
15
  ### Taskplane has:
14
16
  - A skill for creating tasks that the Taskplane orchestrator can run
15
- - PROMPT.md/STATUS.md task definition for persistent memory store
17
+ - prompt.md/status.md task definitions for persistent memory store
16
18
  - Support for both monorepo and polyrepo projects
17
19
  - Complete parallelized worktree isolation with dependency graphing and segment-level repo isolation
18
20
  - 4 agent types: supervisor, worker, reviewer, and merger
@@ -51,6 +53,8 @@ Taskplane is a pi package. You need Node.js 22+, pi and Git installed first.
51
53
  | [pi](https://github.com/badlogic/pi-mono) | Yes | Agent framework |
52
54
  | [Git](https://git-scm.com/) | Yes | Version control, worktrees |
53
55
 
56
+ IMPORTANT: If you just installed pi, make sure you've configured at least one model provider and tested before installing Taskplane.
57
+
54
58
  ### Option A: Global Install (all projects - recommended)
55
59
 
56
60
  ```bash
@@ -66,17 +70,15 @@ pi install -l npm:taskplane
66
70
 
67
71
  ## Quickstart
68
72
 
69
- ### 1. Initialize a project (scaffolds settings)
70
-
73
+ ### 1. Initialize a project (to scaffold settings)
74
+ (NOTE: if 'my-project' is a monorepo, be sure to run git init first. Taskplane uses git worktrees to isolate agent coding until you're ready to merge back to your default branch.)
71
75
  ```bash
72
76
  cd my-project
73
77
  taskplane init
74
78
  ```
75
79
  You'll answer a few questions. You can usually just accept the defaults.
76
80
 
77
- This creates config files in `.pi/`, agent prompts, two example tasks, and adds `.gitignore` entries for runtime artifacts. On first install, init bootstraps global preferences at `~/.pi/agent/taskplane/preferences.json` with thinking defaults set to `high` for worker & reviewer, and off for merger. Interactive init then prompts for worker/reviewer/merger model + thinking defaults (`inherit`, `off`, `minimal`, `low`, `medium`, `high`, `xhigh`). If 2+ providers are available from `pi --list-models`, init recommends cross-provider reviewer/merger selections. Init auto-detects whether you're in a single repo or a multi-repo workspace. See the [install tutorial](docs/tutorials/install.md) for workspace mode and other scenarios.
78
-
79
- Want to reuse model/thinking picks across projects? Run `taskplane config --save-as-defaults` in an initialized project.
81
+ This creates config files in `.pi/`, agent prompts, two example tasks, and adds `.gitignore` entries for runtime artifacts. On first install, init bootstraps global preferences at `~/.pi/agent/taskplane/preferences.json` with thinking defaults set to `high` for worker & reviewer, and off for merger. Init auto-detects whether you're in a single repo or a multi-repo workspace. See the [install tutorial](docs/tutorials/install.md) for workspace mode and other scenarios.
80
82
 
81
83
  Already have a task folder (for example `docs/task-management`)? Use:
82
84
 
@@ -131,6 +133,10 @@ For a single task with full worktree isolation, dashboard, and reviews:
131
133
 
132
134
  This uses the same orchestrator infrastructure as a full batch — isolated worktree, orch branch, supervisor, dashboard, inline reviews — but for just one task.
133
135
 
136
+ ## What to do next
137
+
138
+ When you're in pi, type /taskplane-settings. Near the top you'll see the 4 agents. By default, Taskplane installs with the agent models set to inherit whatever model your pi session is currently using. The best thing you can do is configure the reviewer agent to use a different model provider. If you're using Claude for coding, then consider using OpenAI for the reviews.
139
+
134
140
  ## Commands
135
141
 
136
142
  ### Pi Session Commands
@@ -1,22 +1,19 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1187.09 168.3">
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1176.29 105">
3
3
  <defs>
4
4
  <style>
5
5
  .cls-1 {
6
6
  fill: #244c7c;
7
- font-family: Conthrax-SemiBold, Conthrax;
8
- font-size: 150px;
9
- font-weight: 600;
10
- }
11
-
12
- .cls-2 {
13
- letter-spacing: -.13em;
14
- }
15
-
16
- .cls-3 {
17
- letter-spacing: 0em;
18
7
  }
19
8
  </style>
20
9
  </defs>
21
- <text class="cls-1" transform="translate(0 127.5)"><tspan class="cls-2" x="0" y="0">T</tspan><tspan class="cls-3" x="111.45" y="0">ASKPLANE</tspan></text>
10
+ <path class="cls-1" d="M120.6,0c2.25,0,3.45,1.05,3.45,3.3v14.7c0,2.25-1.2,3.3-3.45,3.3h-47.25v80.4c0,2.25-.9,3.3-3.15,3.3h-16.35c-2.1,0-3.3-1.05-3.3-3.3V21.3H3.3c-2.1,0-3.3-1.05-3.3-3.3V3.3C0,1.05,1.2,0,3.3,0h117.3Z"/>
11
+ <path class="cls-1" d="M184.5,0c7.8,0,12.3,2.25,17.25,11.4l49.65,90.15c1.05,2.1.6,3.45-1.8,3.45h-19.05c-1.95,0-2.85-.45-3.45-1.8l-9.9-18.3h-71.85l-9.75,18.3c-.75,1.35-1.5,1.8-3.45,1.8h-19.65c-2.4,0-2.85-1.35-1.8-3.45L159.9,11.4c4.8-9.15,9.45-11.4,15.75-11.4h8.85ZM206.55,65.4l-23.25-43.05c-.45-.75-1.05-1.05-1.8-1.05h-.9c-.75,0-1.2.3-1.65,1.05l-23.1,43.05h50.7Z"/>
12
+ <path class="cls-1" d="M368.39,0c2.1,0,3.3,1.05,3.3,3.3v14.55c0,2.1-1.2,3.3-3.3,3.3h-75.15c-5.4,0-7.95,2.55-7.95,8.1v5.1c0,5.4,2.4,7.65,7.95,7.65h56.1c16.8,0,26.25,9.6,26.25,26.4v12.15c0,15.45-9.3,24.45-26.55,24.45h-83.1c-2.25,0-3.3-1.05-3.3-3.3v-14.55c0-2.1,1.05-3.3,3.3-3.3h78.75c5.25,0,7.95-2.55,7.95-8.1v-6.15c0-5.4-2.25-7.65-7.8-7.65h-56.25c-16.8,0-26.1-9.6-26.1-26.4v-11.1c0-15.45,9.15-24.45,26.4-24.45h79.5Z"/>
13
+ <path class="cls-1" d="M412.35,0c2.25,0,3.3,1.05,3.3,3.3v39.15h20.85c10.2,0,12.75-.9,16.65-6L479.24,1.95c1.05-1.5,1.8-1.95,4.35-1.95h18.75c2.25,0,3,2.1,1.8,3.6l-29.1,37.65c-3.3,4.35-6.15,7.65-9,10.05,4.05,2.55,7.65,6,11.4,10.8l30.75,39c1.2,1.2.6,3.9-1.95,3.9h-19.05c-2.4,0-3.3-.45-4.35-1.95l-27.75-35.55c-3.9-5.1-6.9-6.15-16.65-6.15h-22.8v40.35c0,2.25-1.05,3.3-3.3,3.3h-16.2c-2.25,0-3.3-1.05-3.3-3.3V3.3c0-2.25,1.05-3.3,3.3-3.3h16.2Z"/>
14
+ <path class="cls-1" d="M605.84,0c22.95,0,32.25,10.65,32.25,30.75v11.25c0,20.25-9.3,31.35-32.25,31.35h-62.1v28.35c0,2.25-1.05,3.3-3.3,3.3h-16.2c-2.25,0-3.3-1.05-3.3-3.3V4.5c0-3,1.5-4.5,4.5-4.5h80.4ZM601.19,52.65c10.2,0,13.95-4.05,13.95-12.9v-5.7c0-9-3.75-13.05-13.95-13.05h-55.5c-1.35,0-1.95.6-1.95,1.8v29.85h57.45Z"/>
15
+ <path class="cls-1" d="M672.29,0c2.25,0,3.3,1.05,3.3,3.3v59.85c0,15.9,4.5,20.55,19.95,20.55h60.75c2.1,0,3.3,1.05,3.3,3.3v14.7c0,2.25-1.2,3.3-3.3,3.3h-61.5c-30.45,0-42-10.8-42-39.6V3.3c0-2.25,1.05-3.3,3.3-3.3h16.2Z"/>
16
+ <path class="cls-1" d="M839.69,0c7.8,0,12.3,2.25,17.25,11.4l49.65,90.15c1.05,2.1.6,3.45-1.8,3.45h-19.05c-1.95,0-2.85-.45-3.45-1.8l-9.9-18.3h-71.85l-9.75,18.3c-.75,1.35-1.5,1.8-3.45,1.8h-19.65c-2.4,0-2.85-1.35-1.8-3.45l49.2-90.15c4.8-9.15,9.45-11.4,15.75-11.4h8.85ZM861.74,65.4l-23.25-43.05c-.45-.75-1.05-1.05-1.8-1.05h-.9c-.75,0-1.2.3-1.65,1.05l-23.1,43.05h50.7Z"/>
17
+ <path class="cls-1" d="M946.34,0c10.8,0,12.6,2.25,17.4,8.85l55.2,73.2c.45.75,1.05,1.05,1.95,1.05h1.35c.75,0,1.2-.45,1.2-1.5V3.3c0-2.25,1.05-3.3,3.3-3.3h16.05c2.25,0,3.3,1.05,3.3,3.3v86.1c0,11.85-4.05,15.6-13.5,15.6h-13.35c-10.8,0-12.6-2.25-17.25-8.85l-55.35-73.2c-.6-.75-1.05-1.05-1.95-1.05h-1.35c-.9,0-1.2.45-1.2,1.5v78.3c0,2.25-1.2,3.3-3.3,3.3h-16.05c-2.25,0-3.3-1.05-3.3-3.3V15.6c0-11.85,3.9-15.6,13.35-15.6h13.5Z"/>
18
+ <path class="cls-1" d="M1172.99,0c2.1,0,3.3,1.05,3.3,3.3v14.55c0,2.1-1.2,3.3-3.3,3.3h-65.85c-15.45,0-19.5,4.35-19.5,20.1v.75h84.45c2.1,0,3.3,1.05,3.3,3.3v13.35c0,2.25-1.2,3.3-3.3,3.3h-84.45v1.8c0,15.75,4.05,20.1,19.5,20.1h65.85c2.1,0,3.3,1.2,3.3,3.3v14.55c0,2.25-1.2,3.3-3.3,3.3h-66c-30.45,0-42-10.95-42-39.6v-25.8c0-28.65,11.55-39.6,42-39.6h66Z"/>
22
19
  </svg>
@@ -1,22 +1,19 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1187.09 168.3">
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1176.29 105">
3
3
  <defs>
4
4
  <style>
5
5
  .cls-1 {
6
6
  fill: #fff;
7
- font-family: Conthrax-SemiBold, Conthrax;
8
- font-size: 150px;
9
- font-weight: 600;
10
- }
11
-
12
- .cls-2 {
13
- letter-spacing: -.13em;
14
- }
15
-
16
- .cls-3 {
17
- letter-spacing: 0em;
18
7
  }
19
8
  </style>
20
9
  </defs>
21
- <text class="cls-1" transform="translate(0 127.5)"><tspan class="cls-2" x="0" y="0">T</tspan><tspan class="cls-3" x="111.45" y="0">ASKPLANE</tspan></text>
10
+ <path class="cls-1" d="M120.6,0c2.25,0,3.45,1.05,3.45,3.3v14.7c0,2.25-1.2,3.3-3.45,3.3h-47.25v80.4c0,2.25-.9,3.3-3.15,3.3h-16.35c-2.1,0-3.3-1.05-3.3-3.3V21.3H3.3c-2.1,0-3.3-1.05-3.3-3.3V3.3C0,1.05,1.2,0,3.3,0h117.3Z"/>
11
+ <path class="cls-1" d="M184.5,0c7.8,0,12.3,2.25,17.25,11.4l49.65,90.15c1.05,2.1.6,3.45-1.8,3.45h-19.05c-1.95,0-2.85-.45-3.45-1.8l-9.9-18.3h-71.85l-9.75,18.3c-.75,1.35-1.5,1.8-3.45,1.8h-19.65c-2.4,0-2.85-1.35-1.8-3.45L159.9,11.4c4.8-9.15,9.45-11.4,15.75-11.4h8.85ZM206.55,65.4l-23.25-43.05c-.45-.75-1.05-1.05-1.8-1.05h-.9c-.75,0-1.2.3-1.65,1.05l-23.1,43.05h50.7Z"/>
12
+ <path class="cls-1" d="M368.39,0c2.1,0,3.3,1.05,3.3,3.3v14.55c0,2.1-1.2,3.3-3.3,3.3h-75.15c-5.4,0-7.95,2.55-7.95,8.1v5.1c0,5.4,2.4,7.65,7.95,7.65h56.1c16.8,0,26.25,9.6,26.25,26.4v12.15c0,15.45-9.3,24.45-26.55,24.45h-83.1c-2.25,0-3.3-1.05-3.3-3.3v-14.55c0-2.1,1.05-3.3,3.3-3.3h78.75c5.25,0,7.95-2.55,7.95-8.1v-6.15c0-5.4-2.25-7.65-7.8-7.65h-56.25c-16.8,0-26.1-9.6-26.1-26.4v-11.1c0-15.45,9.15-24.45,26.4-24.45h79.5Z"/>
13
+ <path class="cls-1" d="M412.35,0c2.25,0,3.3,1.05,3.3,3.3v39.15h20.85c10.2,0,12.75-.9,16.65-6L479.24,1.95c1.05-1.5,1.8-1.95,4.35-1.95h18.75c2.25,0,3,2.1,1.8,3.6l-29.1,37.65c-3.3,4.35-6.15,7.65-9,10.05,4.05,2.55,7.65,6,11.4,10.8l30.75,39c1.2,1.2.6,3.9-1.95,3.9h-19.05c-2.4,0-3.3-.45-4.35-1.95l-27.75-35.55c-3.9-5.1-6.9-6.15-16.65-6.15h-22.8v40.35c0,2.25-1.05,3.3-3.3,3.3h-16.2c-2.25,0-3.3-1.05-3.3-3.3V3.3c0-2.25,1.05-3.3,3.3-3.3h16.2Z"/>
14
+ <path class="cls-1" d="M605.84,0c22.95,0,32.25,10.65,32.25,30.75v11.25c0,20.25-9.3,31.35-32.25,31.35h-62.1v28.35c0,2.25-1.05,3.3-3.3,3.3h-16.2c-2.25,0-3.3-1.05-3.3-3.3V4.5c0-3,1.5-4.5,4.5-4.5h80.4ZM601.19,52.65c10.2,0,13.95-4.05,13.95-12.9v-5.7c0-9-3.75-13.05-13.95-13.05h-55.5c-1.35,0-1.95.6-1.95,1.8v29.85h57.45Z"/>
15
+ <path class="cls-1" d="M672.29,0c2.25,0,3.3,1.05,3.3,3.3v59.85c0,15.9,4.5,20.55,19.95,20.55h60.75c2.1,0,3.3,1.05,3.3,3.3v14.7c0,2.25-1.2,3.3-3.3,3.3h-61.5c-30.45,0-42-10.8-42-39.6V3.3c0-2.25,1.05-3.3,3.3-3.3h16.2Z"/>
16
+ <path class="cls-1" d="M839.69,0c7.8,0,12.3,2.25,17.25,11.4l49.65,90.15c1.05,2.1.6,3.45-1.8,3.45h-19.05c-1.95,0-2.85-.45-3.45-1.8l-9.9-18.3h-71.85l-9.75,18.3c-.75,1.35-1.5,1.8-3.45,1.8h-19.65c-2.4,0-2.85-1.35-1.8-3.45l49.2-90.15c4.8-9.15,9.45-11.4,15.75-11.4h8.85ZM861.74,65.4l-23.25-43.05c-.45-.75-1.05-1.05-1.8-1.05h-.9c-.75,0-1.2.3-1.65,1.05l-23.1,43.05h50.7Z"/>
17
+ <path class="cls-1" d="M946.34,0c10.8,0,12.6,2.25,17.4,8.85l55.2,73.2c.45.75,1.05,1.05,1.95,1.05h1.35c.75,0,1.2-.45,1.2-1.5V3.3c0-2.25,1.05-3.3,3.3-3.3h16.05c2.25,0,3.3,1.05,3.3,3.3v86.1c0,11.85-4.05,15.6-13.5,15.6h-13.35c-10.8,0-12.6-2.25-17.25-8.85l-55.35-73.2c-.6-.75-1.05-1.05-1.95-1.05h-1.35c-.9,0-1.2.45-1.2,1.5v78.3c0,2.25-1.2,3.3-3.3,3.3h-16.05c-2.25,0-3.3-1.05-3.3-3.3V15.6c0-11.85,3.9-15.6,13.35-15.6h13.5Z"/>
18
+ <path class="cls-1" d="M1172.99,0c2.1,0,3.3,1.05,3.3,3.3v14.55c0,2.1-1.2,3.3-3.3,3.3h-65.85c-15.45,0-19.5,4.35-19.5,20.1v.75h84.45c2.1,0,3.3,1.05,3.3,3.3v13.35c0,2.25-1.2,3.3-3.3,3.3h-84.45v1.8c0,15.75,4.05,20.1,19.5,20.1h65.85c2.1,0,3.3,1.2,3.3,3.3v14.55c0,2.25-1.2,3.3-3.3,3.3h-66c-30.45,0-42-10.95-42-39.6v-25.8c0-28.65,11.55-39.6,42-39.6h66Z"/>
22
19
  </svg>
@@ -2126,31 +2126,20 @@ function parseAgentFile(filePath: string): { fm: Record<string, string>; body: s
2126
2126
  * @since TP-117
2127
2127
  */
2128
2128
  function loadBaseAgentPrompt(agentName: string): string {
2129
- const relPath = join("node_modules", "taskplane", "templates", "agents", `${agentName}.md`);
2130
- const candidates: string[] = [];
2131
-
2132
- // Global npm paths
2133
- const home = process.env.HOME || process.env.USERPROFILE || "";
2134
- if (process.env.APPDATA) candidates.push(join(process.env.APPDATA, "npm", relPath));
2135
- if (home) {
2136
- candidates.push(join(home, "AppData", "Roaming", "npm", relPath));
2137
- candidates.push(join(home, ".npm-global", "lib", relPath));
2138
- }
2139
- candidates.push(join("/usr", "local", "lib", relPath));
2140
- candidates.push(join("/opt", "homebrew", "lib", relPath));
2141
-
2142
- // Dynamic: npm root -g
2129
+ // Use the same robust resolution as resolveTaskplanePackageFile, which
2130
+ // handles all npm setups (nvm, Homebrew, volta, Windows, etc.) via
2131
+ // npm root -g caching and well-known fallback paths.
2132
+ // This avoids loadBaseAgentPrompt silently returning "" (which would
2133
+ // cause the worker to skip reviews because the review_step instructions
2134
+ // live in the base template, not the local .pi/agents/ override).
2135
+ const relPath = join("templates", "agents", `${agentName}.md`);
2143
2136
  try {
2144
- const result = spawnSync("npm", ["root", "-g"], { encoding: "utf-8", timeout: 5000, shell: true });
2145
- if (result.stdout?.trim()) {
2146
- candidates.push(join(result.stdout.trim(), "taskplane", "templates", "agents", `${agentName}.md`));
2137
+ const resolved = resolveTaskplanePackageFile(process.cwd(), relPath);
2138
+ if (existsSync(resolved)) {
2139
+ const def = parseAgentFile(resolved);
2140
+ if (def?.body) return def.body;
2147
2141
  }
2148
- } catch { /* ignore */ }
2149
-
2150
- for (const p of candidates) {
2151
- const def = parseAgentFile(p);
2152
- if (def?.body) return def.body;
2153
- }
2142
+ } catch { /* fall through */ }
2154
2143
  return "";
2155
2144
  }
2156
2145
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskplane",
3
- "version": "0.25.0",
3
+ "version": "0.25.2",
4
4
  "description": "AI agent orchestration for pi — parallel task execution with checkpoint discipline",
5
5
  "keywords": [
6
6
  "pi-package",