Repository navigation
pstack 0.15.9 → 0.15.25: what Lauren changed #2
Copy link
Copy link
Open
Description
Lauren added four typed-only skills: /poteto-help, /ketchup, /in-your-own-words and /sharpen. She dropped Sol from the model defaults, so pstack now defaults to Opus at xhigh plus Grok. She also fixed how /poteto-mode hands work to poteto-agent, because a nested subagent has no Task tool.
New skills
/poteto-helpanswers "how do I use pstack?" and "which skill fits this?", then hands back a prompt to send. It started as a skill that loaded from its description, and a follow-up made it typed-only so its description is not in every session's skill list. #502, #506/poteto-helpgained two reference files,references/prompting.md(rules for writing a prompt) andreferences/recipes.md(prompt templates per job type). The agent that answers had no dense rules to draft a prompt from. #507/poteto-helpnow asks whether to run/setup-pstackwhen~/.cursor/rules/pstack-models.mdcis missing. It asks only when the rule matters, at most once per chat. Before, it only mentioned the fact. #509/ketchuprecaps the current chat from your last message before/ketchup. It is read-only and checks the live state of each PR, CI run or agent the chat touched. It lists the decisions only you can make, and it says what it could not check. It turns a prompt people kept retyping into one command. #539- The
/ketchupreply format changed four times, and the current shape is:- It uses the plain
/brovoice and stays well under 150 words. - Screenshots and videos from the work are embedded first, then a diagram where a picture beats sentences.
- Words inside visuals no longer count toward the limit. Tables still count.
- The summary and the action items are plain bullets, with the action items stating a recommendation and what happens if you do not answer.
- It never draws a screen nobody captured. A visible change with no screenshot is marked as such.
- #570, #595, #609, #628
- It uses the plain
/in-your-own-wordshas the agent say what it thinks your goals are and what problem you are trying to solve. It first waited for confirmation, and a reword dropped that wait. #602, #606/sharpenis manual-only. Before starting, it asks how a top expert would approach the task, what you are really after, and whether the task is over- or underspecified. It loosens constraints that do not serve the goal, leaves your choices open, then does the work. It never returns a rewritten prompt. #615
Changes to existing skills
- Sol is out of the defaults. The defaults are now Opus (
claude-opus-5-5-xhigh) and Grok (grok-4.7-xhigh-fast). Opus ran atmaxbefore./arena,/architectand/interrogatenow start two default subagents, not three./interrogatehas two reviewers, one Opus and one Grok.reflect toolingmoved to Grok, since pstack already gives code and tooling work to Grok./reflectstill has three lenses.- In
/setup-pstack, theunlimitedbudget now lifts each model to its highest effort. Opus goes tomax, and Grok stays atxhighbecause it has nomax.largematches the defaults. - A
pstack-models.mdcrule that names a Sol slug orclaude-opus-5-5-maxstill runs that slug. To get the new defaults, delete those lines or the file and rerun/setup-pstack. - #511
- Subagents now pick their effort per job. Each spawn starts from the role's configured slug and changes only the effort level and whether the slug is fast.
- Hard work goes one step up, judgment one step down, routine work two or more steps down.
- Fast mode is for urgent jobs only, meaning CI or trunk is red or a person is blocked.
- Verification stays on the
swarm workersmodel. - In
/arenaand/interrogate, slugs starting withcursor-grok-orcomposer-now count as the grok family, so a refusedcomposer-*entry falls back to the grok default. - #613
- Prompts were tightened to cut tokens. Every rule stays. #538 tightened 35 skill, reference and playbook files. #571 removed sections from seven skills where the agent does the same work without the text, such as restated rules, generic search steps, evidence checklists and return-format blocks. #538 also fixed
/architectPhase A, which asked for the "traced model" that/howprescribes, when/howproduces an architectural explanation. /unsloplost "Must always apply." from its description. The skill is typed-only, and agents read that sentence as a command. This carries jhneves's change from #234, with a co-author credit. #572/create-verification-skillnow defines ready as usable, not "a port answering". Launch must reach a usable state from an empty data dir. A journey that the seed data cannot satisfy reports a failure and records why inGotchas. Proof run in a stand-in lists the setup steps that stay unverified. In the original measurement, a database socket was up at 3 s but init finished at 19 s. Reworked from sidneyvanness's #501, with a co-author credit. #573
Principles
- Four principles were rewritten to state the reasoning, not a rule. The other 20 were audited and kept.
/correctstep 3 uses the same test wording asprinciple-test-behavior-not-implementation. #633principle-test-behavior-not-implementationjudges a test by two imagined edits. If you break the behavior, the test must fail. If you change the internals, it must pass.principle-fix-root-causessays a guard is a fix only when the state it handles is legitimate.principle-attack-the-premisesays to find an observation that would differ if the premise were false.principle-make-operations-idempotentsays to judge a stale lock by evidence that stays true wherever the previous run stopped, not by PID.
principle-fix-root-causeshas a new Pattern bullet. When the deciding fact took a deep dig to find, propose a cheap, always-on signal that would have shown it at first look. #604
Playbooks and scripts
- The shipping playbook went from nine steps to six, with a reason for each rule. After a parent merges, the child is retargeted to trunk. Its patch moves onto the merge result, and it is pushed with
--force-with-lease. The patch-id rule then decides whether its verdict survives. #613 - The autopilot playbooks keep their rules and drop the procedure around them. Autopilot-stack now states only where it differs from Autopilot-full. Three rules are new:
- Pin
--force-with-leaseto the SHA you last pushed or took over. - Run the patch's checks on the merge result when trunk changed a caller or dependency of the patch.
- Hold and report instead of taking a third rebase past merge prep.
- #613
- Pin
- A multi-phase PR gets one full swarm, at the code-ready head. It runs again only for new behavior, a redesign or a large new diff. A rebase, conflict resolution or minor fix gets one verifier at the new head. #613
- Orchestrate no longer needs Graphite.
orch frontier setwalks the pull request base chain down to trunk and up through open children, usingghby default. Workers and babysitters no longer rungt, and one stacker owns chain rebases, retargets and merges. #613 - Both autopilot playbooks now report to the operator through
/ketchup. Inautopilot-full, each hourly tick that changes something ends with a catch-up, and a tick that changes nothing stays quiet. The final reply of both playbooks is a catch-up too. #616
Agents
- The chat that receives
/poteto-modenow runs the playbook, andpoteto-agentis a delegate that chat spawns. The old text calledpoteto-agentthe "Routing target", so a parent could spawn one to run the whole playbook. That subagent is nested and has no Task tool, so it could not spawn thehow,why, Comment Sicko or code delegates. Issue #357 showed 5 failedtodo_writecalls and 0 Task calls. This is dev2o's #358, reworked and co-credited. #575 - The parent now passes the absolute path of
poteto-modeto everypoteto-agent. The agent reads bundled leaf skills at../<name>/SKILL.mdfrom that file. Leaf skills are typed-only, so an agent never saw their paths. This cuts down sunxiuguo's #532 and uses the first sentence of darkhan-nace's #569, with co-author credits. #577 - When the parent passes no path,
poteto-agentsearches~/.cursor/plugins/for a file ending inskills/poteto-mode/SKILL.md. With several matches it picks the one whose.cursor-plugin/plugin.jsonhas the highest version. If nothing matches, it stops and tells its parent. The description says install locations outside~/.cursor/plugins/were not tested. #597 - The Comment Sicko agent id is now
comment-sicko. On Grok, the spaced idpstack:Comment Sickowas rejected byspawn_subagent. The README and/no-commentsstep 1 point at the new id. Community fix by lab1207. #486
Fixes
check-plan.mjsno longer treats headings inside tilde-fenced or longer backtick-fenced examples as plan sections. It tracks the opening fence's character and length and closes only on a matching fence. Community fix by Ehsan-hash, with regression tests added. #536watch-prnow pages through all review threads. It read only the first 100, so an unresolved thread past that could not block readiness. Bugbot pass counts are computed once after all pages are loaded. Community fix by Yi-111-a. #484watch-prmaps a completedCode Review Gatecheck run with anACTION_REQUIREDconclusion to the owner-approval gate. Before, it counted as a failed check. #613worktree-audit.shchecksMERGEDagainst the default branch, not a literalorigin/main. In amasterrepo, a merged branch showedMERGED=no. The base comes fromorigin/HEAD, thenorigin/main, thenorigin/master, or from the new-b|--base <ref>.-hand--helpnow print usage. Reworked from heliowap's #568, with a co-author credit. #574
Packaging
- A root
pstack/plugin.jsonfor the Agent Plugins 1.0.0 schema sits next to the Cursor manifest. Codex now reads pstack's name, version, description and author from it. The skill set is the same, because both manifests point atskills/.- The repo validator does not read the root file or compare versions, so a version bump must change both by hand. #606 bumps both.
- Codex ignores
disable-model-invocation. 51 of pstack's 52 skills set it, so Codex can start slash-only skills such aspoteto-mode,swarmandarenaon its own. This was already true before this PR. Keeping them manual in Codex would take a per-skillagents/openai.yamlsidecar. - Original change by mantrakp04 in #257, reworked and co-credited.
- #576
Docs
- The guide was brought up to date with the skills that ship. It adds sections on
/correctand/benchmark-checklist, notes on/poteto-helpand/make-bot-ui, and prompting habits from the published pstack articles. Habits covered include what goes in a prompt, short follow-ups, never taking the first design, and cloud subagents for parallel work. It also has seven new recipes and six new pitfalls. #508
How she did it
/poteto-helpevals.- A trigger eval of 33 queries, 2 runs each, on a real plugin install through the Cursor CLI. All 22 help questions that name pstack loaded the skill, and none of the 34 coding, work or near-miss turns did.
- An answer-quality eval, frozen before any run, used 40 questions, 10 of them held out. Opus 5.5 answered each 3 times with the branch and with main. GPT-5.6 Sol and Odango EAP graded blind. Correctness was 0.87 with the skill and 0.55 without (gain 0.32, 95% CI 0.20 to 0.45).
- A grade audit moved the gain to 0.31. Fixes for the errors it found raised correctness on the touched questions from 0.88 to 0.91 and cut wrong claims per answer from 0.36 to 0.15.
- A hillclimb kept two changes, linking the source file and cutting the closing next-topic line. On the 10 weakest questions, correctness went from 0.86 to 0.94 and wrong claims per answer fell from 0.45 to 0.23. On 9 new held-out questions, scores did not change significantly.
- Reviewers on Opus 5.5, GPT-5.6 Sol and Grok 4.7 all flagged the same two overbroad claims, and both were fixed.
- #502
- Typed-only switch. In the Cursor CLI, the old skill loaded on 5 of 7 pstack help questions and the new one on 0 of 7. A typed
/poteto-helpstill loaded it. #506 - The setup ask. Fresh subagents ran typed
/poteto-helpmessages with no model rule. The branch asked about/setup-pstackon setup, cost and models questions, and main never asked. It did not ask when the rule existed, when the question was about keeping/poteto-modeon, or after the user had already picked Later. #509 /ketchupblind evals.- #570 used 12 runs on 3 invented chats with Opus 5.5 and Grok 4.7. Decisions shown side by side went from 0/10 to 10/10, and changes with a before column from 0/8 to 8/8. Invented links stayed at 0. Average replies grew from 617 to 756 words.
- #595 was a preregistered eval on 5 invented chats, with the skill, grader and gates frozen by hash. Median Opus text went from 736 to 213 words. Replies with a real visual went from 8/15 to 15/15, and must-cover recall was 0.950 against 0.956. A separate two-catch check showed the first version dropped two catches the old skill made, and the final text restored both.
- #628 compared versions blind on invented chats. The runs showed the 150-word limit, which counted diagram words, crowded out the expected diagrams. Excluding visual words fixed it. The description says the busiest chat's replies now sit right at the limit.
- Principles eval. 10 held-out decision cases, 3 candidate models and 3 arms (old text, new text, no principle), 180 runs in total. A blinded Grok 4.7 judge graded each run against a hidden rubric. The new text kept the stored-status-code test in 6 of 6 order-test runs, against 0 of 6 before. A PID liveness check decided stale locks in 1 of 6 runs, against 4 of 6 before. The new text scored one run lower on two attack-the-premise criteria, and the transcripts showed both runs tested the premise but did not say so in the final message. The
/correctchange was not part of the eval. #633 - Size cuts. Touched Markdown went from 169,348 to 153,004 bytes (-9.7%) and from 26,177 to 23,829 words (-9.0%) in #538. In #571 it went from 32,508 to 18,711 bytes (-42.4%) and from 5,028 to 2,902 words (-42.3%). #538, #571
- Spawn and path tests.
- A spawned subagent was asked to list its own tools and had no Task tool, while its parent did. #575
- A plugin-cache copy showed that passing the hub path in the spawn prompt is what lets
poteto-agentfind leaf skills. A control with main's text and a hand-passed path also worked, so main's gap was that it never tells the parent to pass the path. #577 - For the
~/.cursor/plugins/search,poteto-agentwith no path readpoteto-modein 2 of 2 runs on both models after one search. On main, the default model read it in 1 of 2 runs, and Grok 4.7 found it only after four searches each. With two copies on disk, both runs chose the higher version. Windows was not tested. #597
- Script tests.
- #613 has 67 passing tests. The orchestrate tests build a real git stack and run the frontier through fake
ghandoriginCLIs. - #484 shows its new pagination tests are not vacuous by reverting to the old single read, where the page-2 and multi-page cases fail.
- #574 compared
main, the original PR and the rework across 12 cases in throwaway repos with a local bare remote. - #576 validated the root manifest with Ajv, with 0 errors. It also installed pstack in Codex CLI 0.162.1 with and without the root file. Both installs offered the same 52 skills.
- #613 has 67 passing tests. The orchestrate tests build a real git stack and run the frontier through fake
- Credited community PRs she reworked. Each states its differences from the original.
Cursor-only
- The README and guide pages 1 and 2 said
/poteto-modestays on by itself. In Cursor, Enter attaches a skill to one message, and Option+Enter or Alt+Enter starts a Custom Mode that stays on. Guide page 5 also wrongly saidtypescript-best-practicesloads by itself. Itspathsglob has no effect whiledisable-model-invocationis set. #502 /poteto-modelost themode: trueandreminder:frontmatter keys, because Cursor ignores them. The README now tells users to pick/poteto-modefrom the/menu before typing the task, so Cursor attaches the skill. The README line was not verified. #597- #597 also lists open questions for the pstack owner. They cover whether
poteto-modeshould become model-invocable and whether/how,/why,/recalland/ketchupshould trigger from plain requests. They also ask whether Grok Bot drops slash-only skills before its 24-skill catalog limit. No descriptions were shortened until these have answers. #597 - On the Origin forge,
orch frontier settakes--forge origin, and the orchestrate playbook resolves the forge once. It usesorigin prwhen the Origin CLI can resolve the repository, andghotherwise.worktree-audit.shreadsorigin pr listwhen the Origin CLI can read the repository, becausegh pr listcannot see Origin pull requests and the PR column was always empty. It falls back togh, and a draft pull request also holds the worktree. #613
Cursor diff e43c7ee...e5136d8 · 30 PRs · summarised by claude-sonnet-5-5
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity