@jiroamato/pstack 0.16.0 → 0.17.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jiroamato/pstack",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "poteto's pstack for Claude Code and Codex. npx installer: copies the skills and agents into your project or your home directory.",
5
5
  "keywords": [
6
6
  "pstack",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pstack",
3
3
  "displayName": "pstack",
4
- "version": "0.16.0",
4
+ "version": "0.17.0",
5
5
  "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.",
6
6
  "author": {
7
7
  "name": "Lauren Tan"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "pstack",
4
- "version": "0.16.0",
4
+ "version": "0.17.0",
5
5
  "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.",
6
6
  "author": {
7
7
  "name": "Lauren Tan"
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Cursor
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Cursor
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -40,7 +40,7 @@ Run:
40
40
 
41
41
  [`/setup-pstack`](../../skills/setup-pstack/SKILL.md) detects the models you have access to, asks for a reasoning budget, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `~/.pstack/models.md`, a small file every pstack skill reads. It has one section per harness.
42
42
 
43
- On Codex the defaults run at `xhigh` reasoning, the same as the `large` budget. `unlimited` lifts each model to `max`. `medium` and `small` lower the reasoning and spend fewer tokens. On Claude Code effort is a session setting, so the budget tells you which `/effort` level to set instead of rewriting the roles.
43
+ On Codex the defaults run at `high` reasoning, the same as the `medium` budget. `unlimited` and `large` lift each model to `max` and `xhigh`. `small` lowers the reasoning and spends fewer tokens. On Claude Code effort is a session setting, so the budget tells you which `/effort` level to set instead of rewriting the roles.
44
44
 
45
45
  You only override what you care about. A role with no line in the file keeps the skill's default. To restore a default, delete that role's line. A rerun of `/setup-pstack` keeps any role whose model differs from the default. When a default changes, a file written before the change still pins the old default, so delete those role lines, or delete the file, then run `/setup-pstack` again.
46
46
 
@@ -34,7 +34,7 @@ Each explorer gets the prompt in `references/explorer-prompt.md` with its angle
34
34
  Spawn one subagent that explores and explains in one pass:
35
35
 
36
36
  - `subagent_type`: `general-purpose` (harness **default agent** row)
37
- - `model`: the `how explainer` line, default the judgment tier
37
+ - `model`: the `how explainer` line, default the code tier
38
38
  - `readonly`: `true` (harness **read-only** row)
39
39
 
40
40
  Build its prompt from `references/explainer-prompt.md` without the explorer-findings section. Go to Step 4.
@@ -44,7 +44,7 @@ Build its prompt from `references/explainer-prompt.md` without the explorer-find
44
44
  Once all explorers have returned, spawn one subagent to synthesize their findings into one explanation:
45
45
 
46
46
  - `subagent_type`: `general-purpose` (harness **default agent** row)
47
- - `model`: the `how explainer` line, default the judgment tier
47
+ - `model`: the `how explainer` line, default the code tier
48
48
  - `readonly`: `true` (harness **read-only** row)
49
49
 
50
50
  Build its prompt from `references/explainer-prompt.md` with every explorer's findings filled in.
@@ -37,7 +37,7 @@ Wherever a row below writes `pstack:name`, drop the `pstack:` prefix in a copied
37
37
  | **models file** | `~/.cursor/rules/pstack-models.mdc`, "the rule" | `~/.pstack/models.md`, section `## claude-code` | `~/.pstack/models.md`, section `## codex` |
38
38
  | **model** | `model: <slug>` | `model` takes `opus`, `sonnet`, `haiku`, `fable`, or a full model id. Effort is session-wide on Claude Code (`/effort`, `effortLevel` in settings, or `CLAUDE_CODE_EFFORT_LEVEL`), so a role value carries no effort | A role value is `<model>@<effort>`. Pass `model` and `reasoning_effort` separately. Effort is one of `low`, `medium`, `high`, `xhigh`, `max`. If the build rejects `model` or `reasoning_effort`, omit them and say so |
39
39
  | **inherit** | `inherit-parent`, `auto` | Omit `model` | Omit `model` and `reasoning_effort` |
40
- | **tiers** | "the code tier default", "the judgment tier default" | code tier `sonnet`, judgment tier `opus` | code tier `gpt-6-luna@xhigh`, judgment tier `gpt-6-astra@xhigh` |
40
+ | **tiers** | "the code tier default", "the judgment tier default" | code tier `opus`, judgment tier `fable` | code tier `gpt-6.1-sol@high`, judgment tier `gpt-6-astra@high` |
41
41
  | **families** | "a different model family" | Every model is Claude. Treat `opus`, `sonnet`, `haiku`, and `fable` as the families | Every model is GPT. Treat `gpt-6-astra`, `gpt-6.1-sol`, and `gpt-6-luna` as the families |
42
42
  | **background** | `run_in_background: true` | Pass it as written | Nothing to pass. Every spawn runs in the background |
43
43
  | **isolation** | `environment: "cloud"`, `cloud_base_branch` | `isolation: "worktree"` on the `Agent` call. Name the base branch in the prompt | Create a `git worktree` per worker under the repo's worktree directory and name its path and base branch in the message. The Codex app's worktree option does the same for a whole thread |
@@ -22,7 +22,7 @@ The default role-to-model mapping is the file shape shown in step 5. If `~/.psta
22
22
 
23
23
  ### 3. Budget, map, and confirm
24
24
 
25
- **(a) Ask for a budget.** Prefer the harness **ask** tool over free text. Offer these four options with these exact labels, and name the current budget when the file records one. With no file, say that `large` matches the skill defaults.
25
+ **(a) Ask for a budget.** Prefer the harness **ask** tool over free text. Offer these four options with these exact labels, and name the current budget when the file records one. With no file, say that `medium` matches the skill defaults.
26
26
 
27
27
  - `unlimited — max reasoning`
28
28
  - `large — xhigh reasoning`
@@ -31,7 +31,7 @@ The default role-to-model mapping is the file shape shown in step 5. If `~/.psta
31
31
 
32
32
  **(b) Apply it.** Build the working table from the skill defaults, and on a re-run keep any role you changed by model, list, or alias (`inherit-parent`, `auto`).
33
33
 
34
- - **Codex.** A role value is `<model>@<effort>`. `unlimited`, `large`, `medium`, and `small` set the effort of every real value, panel entries included, to `max`, `xhigh`, `high`, or `medium`. Every current Codex model accepts those four levels. `inherit-parent` and `auto` do not change. So `unlimited` turns `gpt-6-astra@xhigh` into `gpt-6-astra@max`, and `small` turns `gpt-6-luna@xhigh` into `gpt-6-luna@medium`.
34
+ - **Codex.** A role value is `<model>@<effort>`. `unlimited`, `large`, `medium`, and `small` set the effort of every real value, panel entries included, to `max`, `xhigh`, `high`, or `medium`. Every current Codex model accepts those four levels. `inherit-parent` and `auto` do not change. So `unlimited` turns `gpt-6-astra@high` into `gpt-6-astra@max`, and `small` turns `gpt-6.1-sol@high` into `gpt-6.1-sol@medium`.
35
35
  - **Claude Code.** Effort is session-wide, not per spawn, so a role value is a bare model alias and the budget does not rewrite the roles. Instead, record the budget and tell the user the matching session setting: `/effort max`, `/effort xhigh`, `/effort high`, or `/effort medium` in an interactive session, or `"effortLevel"` in `~/.claude/settings.json` to make it stick. Do not write settings.json yourself.
36
36
 
37
37
  **(c) Show the roles and confirm.** Show every role with its model, marking any real model not in the detected set as needing a choice. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering the detected models plus `inherit-parent` and `auto` (both mean: this role runs on the parent chat model) as the options. Prefer the harness **ask** tool over free text. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one subagent runs per entry, alias entries included, so the list length sets the count. `arena cross-judge pool` is also a list, but Arena selects one value from it whose model differs from the parent's when possible. `swarm workers` is the default model for every worker unless a race or comparison assigns another model per arm.
@@ -47,47 +47,47 @@ Write `~/.pstack/models.md`. Create the directory when it is missing. Rewrite th
47
47
  ```
48
48
  # pstack model configuration. One line per role under each harness section. Delete a line to fall back to the skill default.
49
49
  # `inherit-parent` or `auto` as a value: the role runs on the parent chat model (omit `model`). Alias entries in a panel list still count toward its fan-out.
50
- # budget: large (xhigh)
50
+ # budget: medium (high)
51
51
 
52
52
  ## claude-code
53
53
  # Values: opus, sonnet, haiku, fable, a full model id, or inherit-parent. Effort is session-wide on Claude Code (/effort).
54
- feature, refactoring: sonnet
55
- bug-fix: sonnet
56
- perf-issue: sonnet
57
- hillclimb: sonnet
58
- judgment and prose: opus
59
- hardest tasks: opus
60
- how explorer: sonnet
54
+ feature, refactoring: opus
55
+ bug-fix: opus
56
+ perf-issue: opus
57
+ hillclimb: opus
58
+ judgment and prose: fable
59
+ hardest tasks: fable
60
+ how explorer: opus
61
61
  how explainer: opus
62
- why investigators: sonnet
62
+ why investigators: opus
63
63
  why synthesizer: opus
64
- reflect tooling: sonnet
65
- reflect judgment, divergent, synthesizer: opus
64
+ reflect tooling: opus
65
+ reflect judgment, divergent, synthesizer: fable
66
66
  arena runners: opus, sonnet
67
- arena cross-judge pool: opus, sonnet
67
+ arena cross-judge pool: opus, sonnet, fable
68
68
  swarm workers: sonnet
69
- architect runners: opus, sonnet
69
+ architect runners: opus
70
70
  interrogate reviewers: opus, sonnet
71
71
 
72
72
  ## codex
73
73
  # Values: <model>@<effort> or inherit-parent. Effort is low, medium, high, xhigh, or max.
74
- feature, refactoring: gpt-6-luna@xhigh
75
- bug-fix: gpt-6-luna@xhigh
76
- perf-issue: gpt-6-luna@xhigh
77
- hillclimb: gpt-6-luna@xhigh
78
- judgment and prose: gpt-6-astra@xhigh
79
- hardest tasks: gpt-6-astra@xhigh
80
- how explorer: gpt-6-luna@xhigh
81
- how explainer: gpt-6-astra@xhigh
82
- why investigators: gpt-6-luna@xhigh
83
- why synthesizer: gpt-6-astra@xhigh
84
- reflect tooling: gpt-6-luna@xhigh
85
- reflect judgment, divergent, synthesizer: gpt-6-astra@xhigh
86
- arena runners: gpt-6-astra@xhigh, gpt-6-luna@xhigh
87
- arena cross-judge pool: gpt-6-astra@xhigh, gpt-6-luna@xhigh
88
- swarm workers: gpt-6-luna@xhigh
89
- architect runners: gpt-6-astra@xhigh, gpt-6-luna@xhigh
90
- interrogate reviewers: gpt-6-astra@xhigh, gpt-6-luna@xhigh
74
+ feature, refactoring: gpt-6.1-sol@high
75
+ bug-fix: gpt-6.1-sol@high
76
+ perf-issue: gpt-6.1-sol@high
77
+ hillclimb: gpt-6.1-sol@high
78
+ judgment and prose: gpt-6-astra@high
79
+ hardest tasks: gpt-6-astra@high
80
+ how explorer: gpt-6.1-sol@high
81
+ how explainer: gpt-6.1-sol@high
82
+ why investigators: gpt-6.1-sol@high
83
+ why synthesizer: gpt-6-astra@high
84
+ reflect tooling: gpt-6.1-sol@high
85
+ reflect judgment, divergent, synthesizer: gpt-6-astra@high
86
+ arena runners: gpt-6-astra@high, gpt-6.1-sol@high
87
+ arena cross-judge pool: gpt-6-astra@high, gpt-6.1-sol@high
88
+ swarm workers: gpt-6.1-sol@high
89
+ architect runners: gpt-6-astra@high, gpt-6.1-sol@high
90
+ interrogate reviewers: gpt-6-astra@high, gpt-6.1-sol@high
91
91
  ```
92
92
 
93
93
  ### 6. Install the Codex agents (Codex only)