From cc0d5834e83b59588a322b7b9d6bb60ccb630fad Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 21 Oct 2026 02:20:01 +0000 Subject: [PATCH] Restore the app verification offer in setup-pstack. Seat pinning stays. The optional offer is /create-verification-skill again, the budget examples are back in seat terms, and the guide drops the extra effort clause. Co-authored-by: Kaitian Xie --- docs/guide/01-setup.md | 2 +- skills/setup-pstack/SKILL.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guide/01-setup.md b/docs/guide/01-setup.md index 58e1a6a..3fcf772 100644 --- a/docs/guide/01-setup.md +++ b/docs/guide/01-setup.md @@ -21,7 +21,7 @@ Run: [`/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 the pstack-models section into `~/.factory/AGENTS.md`, a small rule every pstack skill reads. -The defaults run at `xhigh` effort, the same as the `large` budget. `unlimited` lifts each model to its highest effort, up to `max`. Opus goes to `max`. Grok tops out at `xhigh`, so it stays there. `medium` and `small` lower the effort to `high` and `medium`, and spend fewer tokens. +The defaults run at `xhigh` effort, the same as the `large` budget. `unlimited` lifts each model to its highest effort, up to `max`. Opus goes to `max`. Grok tops out at `xhigh`, so it stays there. `medium` and `small` lower the effort and spend fewer tokens. You only override what you care about. A role with no line in the rule 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 rule written before the change still pins the old default, so delete those role lines, or delete the section, then run `/setup-pstack` again. diff --git a/skills/setup-pstack/SKILL.md b/skills/setup-pstack/SKILL.md index 133a334..d3cca56 100644 --- a/skills/setup-pstack/SKILL.md +++ b/skills/setup-pstack/SKILL.md @@ -19,14 +19,14 @@ The default role-to-model mapping is the section shape shown in step 5 below. If ### 3. Budget, map, and confirm -**(a) Ask for a budget.** Prefer AskUser over free text. Offer these four options with these exact labels, and name the current budget when the section records one. With no section, say that `large` matches the plugin defaults. +**(a) Ask for a budget.** Prefer AskUser over free text. Offer these four options with these exact labels, and name the current budget when the section records one. With no section, say that `large` matches the skill defaults. - `unlimited — max reasoning` - `large — xhigh reasoning` - `medium — high reasoning` - `small — medium reasoning` -**(b) Apply it.** Build the working table from the plugin defaults, and on a re-run keep any role you changed by family, list, or alias (`inherit-parent`, `auto`). `unlimited`, `large`, `medium`, and `small` set the reasoningEffort the seats pin to `max`, `xhigh`, `high`, or `medium`. A model family whose ladder tops out lower caps there: Grok tops out at `xhigh`, so under `unlimited` Grok stays at `xhigh`. If the result is not a detected model ID, use the same family's detected model with the highest effort at or below the target, else mark the role as needing a choice. `inherit-parent` and `auto` do not change. +**(b) Apply it.** Build the working table from the skill defaults, and on a re-run keep any role you changed by family, list, or alias (`inherit-parent`, `auto`). `unlimited`, `large`, `medium`, and `small` set the reasoningEffort the seats pin to `max`, `xhigh`, `high`, or `medium`. A model family whose ladder tops out lower caps there: Grok tops out at `xhigh`, so under `unlimited` Grok stays at `xhigh`. So `unlimited` sets the judgment seat to `max` and the code seat stays at `xhigh`. `large` keeps both defaults. `small` sets both seats to `medium`. If the result is not a detected model ID, use the same family's detected model with the highest effort at or below the target, else mark the role as needing a choice. `inherit-parent` and `auto` do not change. **(c) Show the roles and confirm.** Show every role with its model, marking any real model ID 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 spawns the built-in `worker` droid and runs on the parent chat model) as the options. Prefer AskUser 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 family 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. @@ -73,7 +73,7 @@ Tell the user the section was written and that it applies to new sessions. Re-ru ### 8. Offer a verification skill (optional) -The default section pins every role to one of two models, and the panel roles run two subagents each, so the panel loses diversity. The same effort budget on two different model families gives a more honest second opinion than two seats on one family. To restore diversity, offer to write a pstack verification skill under `~/.factory/skills/`: a directory whose name starts with `pstack-verify`, a `SKILL.md` inside with frontmatter `name` and `description`, and no model line. The skill runs a small real task against the working tree twice, once per seat droid, and diffs the outputs in place, writing all files under `~/.factory/skills//`. If accepted, read `~/.factory/AGENTS.md` first so no rule contradicts the generated skill, and keep the generated skill under 30 lines. Keep the offer to one line. The user may decline. +Check whether the project has a way to drive the real app for proof (a `verify-*` skill, or an existing harness). If not, offer once: "want a project-local verification skill, so agents can drive the app the way a user does and prove changes work? I can generate one with /create-verification-skill." On yes, invoke `/create-verification-skill` (resolves wherever pstack is installed: workspace, user, or plugin). On no, move on without pushing. ### 9. Offer a formal verification skill (optional)