* pstack: every claim carries its evidence or its label
Add one bullet to the end of the Writing the reply list in the mode
skill. Agents state predictions and unseen causes as fact. The bullet
requires each claim to carry its evidence or its label (measured,
inferred, or guess) in the same sentence, and forbids handing the human
a check the agent could run.
* chore(pstack): bump to 0.15.1
* chore(pstack): bump plugin version to 0.15.0
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): sync playbook count and table to twenty-three
The tree ships 23 playbooks, and the README table omitted opening-a-pr.
Add the row and change the two README counts and the guide's front-door
count from twenty-two to twenty-three.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): fix principle count in guide index and 08 heading
The guide index and the 08 heading still said 21 while the tree and the
08 body list 23 principles.
Co-authored-by: lauren <poteto@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Punctuation and single-word swaps only. No sentence added or deleted, no
restructuring, no new text.
- 65 markdown files under pstack/skills. 220 changed lines, every changed
line pairs with one base line.
- 272 rewrites. 239 semicolons (224 became a period plus a capital, 15 became
a comma). 29 connector colons (28 became a period, 1 became a comma).
1 em dash before a list became a colon. 3 word swaps (`public surface` and
`smaller surface area` to `API`, `echo the scaffolding` to `echo the
structure`).
- Label colons, colons before a list or an example, template strings such as
`file:line`, and the literal `TL;DR` stay.
- Heading, numbered-step, fenced-block, and line counts are unchanged in
every file. No frontmatter, code span, or fenced block changes.
- o200k tokens of the pstack/skills markdown tree 87,747 before, 87,766
after (+19), because a period plus a capital tokenizes one token longer
than a semicolon in a few places.
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* docs(pstack): port the September skill audit cuts from the internal tree
Port of the 2026-09-01 to 2026-09-07 audit program on the internal skill
tree. Deletion-only density cuts and the mannered prose pass applied
wherever the OSS sentence is the same sentence. Two new principle leaves,
Attack the Premise and Test Behavior Not Implementation, with their index
lines. Critique mode removed from how and its callers. PR-body briefing
rules in opening-a-pr and technical-writing. Model pins stay on the
setup-pstack role mechanism. No internal path, slug, or name added.
* docs(pstack): restore the autopilot chooser rule that multi-phase-plan cites
multi-phase-plan step 4 picks between autopilot-full and autopilot-stack
"per the rule at the end of playbooks/autopilot-stack.md". The density
pass removed that paragraph and left the pointer dangling. Restore the
paragraph verbatim. The chooser is a rule, not a restatement, and no
other file states it.
Addresses the Bugbot finding on PR #329.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* feat(pstack): reference plugin logo and bump to 0.14.7
Add "logo": "assets/logo.png" to the pstack manifest, matching the
relative-path style used by google-calendar and thermos, and bump the
patch version 0.14.6 -> 0.14.7.
The pstack/assets/logo.png file itself is added in a follow-up commit;
the image attachment did not reach the agent VM in this run.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* feat(pstack): add plugin logo.png
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* docs(pstack): complete the poteto-mode route map
The guide's route paragraph predates the autopilot playbooks, so a
reader browsing routes never learns a PR queue can run on autopilot.
Add that route, and give worktree cleanup a prompt in the section
that tells readers to fan out worktrees in the first place.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): teach /no-comments and Comment Sicko in the cleanup chapter
The cleanup habit covered /deslop and /unslop but not the comment
pass, so readers never met Comment Sicko or the constraint-encoding
offer. Add the before-review step and state the deslop / unslop /
no-comments division of labor.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): cover Babysit and Shipping after the PR opens
The chapter ended at opening the PR and a note claiming pstack
bundles no PR monitoring. That note is stale: Babysit ships with the
watch-pr watcher and Shipping lands verified stacks through Graphite
merge-when-ready. Replace it with the two playbooks, their prompts,
and the merge-ready versus land distinction.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): teach the autopilots and orchestrate in the overnight chapter
The chapter covered one task per night and nothing bigger, so the
queue and program playbooks had no home in the guide. Add
autopilot-full, autopilot-stack, and orchestrate with prompts and
the rule for choosing between them.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): introduce /technical-writing and /bro in the later chapters
Both skills shipped without a guide mention. /technical-writing sits
with skill authoring, where readers already write prose that agents
and humans consume. /bro joins the recipes as the one-word prompt for
a jargon-free restatement.
Co-authored-by: lauren <poteto@users.noreply.github.com>
* docs(pstack): technical-writing pass over the new guide prose
Fixes traced to the skill's rules. Split sentences carrying two or
three thoughts (STE). Moved 'only' next to what it changes and gave
the merge-ready heading a real subject instead of 'it' (Global
English). One name per thing: uncommitted work, Autopilot-full,
verdict instead of say-so. Replaced unglossed jargon with plain
words: 'drains completions' and 'merge frontier' now say what the
coordinator does, 'the real surface' is now 'proves the behavior
live'.
Co-authored-by: lauren <poteto@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* pstack: add /bro, restate the last message in plain language
* poteto-mode: add babysit, shipping, orchestrate, and worktree-cleanup playbooks
Ships the watch-pr status watcher, the orch coordinator CLI, and
worktree-audit.sh under scripts/, plus a Bugbot triage rubric under
references/. Wires the new playbooks into the mode's triggers and
catalog, and repoints autopilot babysit references at the bundled
playbooks.
* pstack: catch-up edits to unslop, automate-me, type-system-discipline, poteto-agent
unslop gains the cross-project swap test, more banned metaphor nouns,
and plainer rule titles. automate-me learns nested personal-category
mode skills. principle-type-system-discipline states the define-errors-
out-of-existence rule. poteto-agent defaults to background execution.
* pstack 0.14.0: README and guide updates for the new skill and playbooks
* fix(pstack): queued babysit stops on WAITING/merge-queue, not READY
Queued watch-pr never emits READY; a green frontier is non-terminal
WAITING with reason merge-queue. The playbook wrongly told agents to
wait for READY, which hangs drive with the default timeout.
* Port Comment Sicko foreign-gotcha tip and no-comments step 5
Catch up to the merged tip: our-code surprises die with MUST KILL
reshape, foreign/unowned keeps survive, step 5 simplified. Sanitize
how/why and principle paths for the public plugin.
* Fix capitalization after principle path sanitize
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* pstack: add autopilot and writing workflows
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: tighten autopilot handoff rules
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: restore tip-faithful Sicko/no-comments and full autopilot ports
Prior commit reconstructed these from secondary metadata. Restore from
the real tip/main sources with only public-path edits.
* pstack: fix Comment Sicko spawn path and add /no-comments to Opening a PR
Spawn Comment Sicko by subagent_type alone; the hardcoded
.cursor/agents/ path does not exist on plugin installs. Add the
/no-comments pass to the Opening a PR playbook so the Before review
trigger holds outside the autopilot playbooks.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## What
Model routing behavior is unchanged; the prose shrinks to the places that define it.
- `setup-pstack` keeps the `inherit-parent` / `auto` definition (steps 1, 3, 4) and writes it into the generated rule's header comment; the five-line resolution block collapses to one definition line.
- `poteto-mode` keeps one alias clause at the end of the Task-call defaults paragraph.
- `how`, `why`, `arena`, `architect`, `reflect`, and `interrogate` drop their per-call-site resolution instructions ("pass a real slug / omit `model` for `inherit-parent`/`auto` / if the role line is absent...") and return to compact configured-role pointers. All current model defaults stay exactly as they are.
- `interrogate` gains configurable reviewer counts: the `interrogate reviewers` list sets the panel size, the Reviewer A/B/C labels extend or shrink to the configured entry count, and a default table keeps the current panel.
## Why
Call-mechanics instructions in skill prose do not change agent behavior; the subagent tool schema (model optional, omitted inherits the parent) governs. Prose that defines what a config value means is what earns its place. Verified with blinded behavioral runs on this tree: a mixed config planted (aliases on panel roles, real slugs elsewhere, one role line deleted), multiple parent model families, spawn calls graded mechanically from transcripts. One blinded run showed a config-misread unrelated to this change (that agent never opened the skill file this change edits for that path); the fan-out and alias invariants held across all runs.
## Version
0.11.7 -> 0.11.8 (skill-content change, per repo convention).
<!-- CURSOR_AGENT_PR_BODY_END -->
<div><a href="https://cursor.com/agents/bc-12823923-1f75-47d8-81ba-e78099b4add8"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-12823923-1f75-47d8-81ba-e78099b4add8"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a> </div>
* pstack: add public usage tutorial
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: document verification skill workflows
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: mention verification setup offer
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: clarify optional verification setup
Co-authored-by: lauren <poteto@users.noreply.github.com>
* pstack: rewrite tutorial prompts to match real usage
The example prompts read like specs. Real prompts are short, informal,
and goal-first, so every example now uses that register. The prose
reshapes around them: friendly second-person tutorial voice, goals
before mechanics, pitfalls where readers actually trip, and the
playbook reference table replaced with prompts in context. Every
skill claim re-checked against the skill files at this commit.
* pstack: make the README guide link an invitation
Point new readers at what the guide walks them through instead of
listing its topics.
* pstack: drop the version bump
This PR only adds documentation, so the plugin manifest stays at
main's 0.11.7.
* pstack: add illustrations to the guide
One hero image per major guide page (routing, understanding, design,
verification, overnight runs, recipes), 1200px JPEGs under
docs/guide/images/.
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
1. hillclimb.md: port steps 1-2 (workload grounding before choosing the
ruler; harness sensitivity proof before freezing), fold the how-skill
grounding into step 1 and rewrite step 4 to reference it.
2. refactoring.md: insert missing step 2 (name the structure the code is
missing per principle-model-the-domain), renumber 3-8, and restore the
"safety net" framing sentence in the intro.
3. feature.md + poteto-mode SKILL.md: expand the delegation scope and the
any-code trigger to choose the organizing structure per
principle-model-the-domain.
4. typescript-best-practices: restore the dropped "Real tests" and
"Structured telemetry" rules in generic form.
5. poteto-mode Subagents: add the difficulty tiering criteria (judgment vs
precisely specified vs trivial mechanical) and the setup-pstack rule
override semantics.
6. One-liner tells ported verbatim into bug-fix, runtime-forensics,
session-pickup, autonomous-run, and authoring-a-skill.
7. Bug fix: interrogate is "(multi-model adversarial)", not four-model;
the default panel is three models.
8. Leak fix: drop the dangling databricks-use-dbt-models skill reference
in why/references/sources/databricks.md.
Plus: arena cross-judge pool role line in setup-pstack, version bump to
0.11.3.
* maintain-verification-skill: cleanup granularity, re-doctor, evidence checks
Follow-up to the four bugbot comments that landed on #150 seconds
before merge: failed-drive cleanup now matches the granularity of what
failed (never tearing down a shared instance mid-pass), a failed drive
on a long-lived instance triggers re-doctor before the next feature,
the doctor-drift retry includes cleanup and relaunch, and every cleanup
is followed by an evidence-survival check.
* State the live-pass recovery rules as invariants, not enumerated procedures
* Restore the per-session doctor check inside invariant 1
* pstack: add create-verification-skill and maintain-verification-skill
Generalizes the control-glass approach (feature map, doctor, proof
standards, harness-first) for any language or platform. The generator
interviews the repo, writes a project-local verify skill + seeded
feature map, and must prove its own output by running it once. The
maintainer is the upkeep loop: source wave per feature, one live pass,
at most one PR. setup-pstack gains an optional final step offering the
generator. Validated by 4 cloud agents generating against real repos
(go TUI, node CLI, HTTP service, full-stack web app) - all four proof
runs passed, and their friction reports drove 6 revisions.
* Address bugbot: frontmatter spec, teardown, launch-model deference, target discovery
* Rewrite live pass: per-session health checks, doctor-drift retry, per-failure cleanup, teardown after re-proof
* pstack: lead the README with the two-step quickstart
* Keep version at 0.10.4; README-only change
* README: no version bump, reorder for first-time readers, collapse long blocks
make-it-yours and automations move below the reference sections; the
sixteen-playbook table and the examples block collapse behind <details>
so the top of the page is install -> get started -> usage.
* README: collapse the skills table too, keep four examples visible
* README: link every skill, playbook, and principle to its file; split examples by section
* README: visible examples are bare copy-paste prompts
* README: link every prose skill mention and the playbooks dir
* README: visible example prompts wrap at 100 chars and lead their sections
* README: principles as a collapsible table
## Summary
- add a dormant Benny source pack for thread-only issue triage and evidence-backed repro and fix workflows
- copy the pack into target repositories so live automations read committed files directly without exposing Benny as slash skills
- keep pstack enabled only for shared workflow dependencies and preserve user-owned configuration outside pack refreshes
## Test plan
- [x] `node scripts/validate-plugins.mjs`
- [x] validate the manifest exposes only `./skills/`, direct operational paths, Markdown links, JSON and YAML examples, frontmatter, and unique skill names
- [x] scan the branch for discovery contradictions, private names, IDs, credentials, endpoints, and local plugin paths
- [x] run `git diff --check origin/main...HEAD` and review the full branch diff
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Documentation and dormant automation sources only; no runtime code paths in the plugin. Operational risk applies only after users enable automations with Slack, tracker, and repo write access in their own repos.
>
> **Overview**
> **Bumps pstack to 0.10.0** and documents a new **dormant Benny pack** under `automations/benny/` for Slack-driven issue workflows (not added to the plugin slash-skill manifest).
>
> The pack defines **two coordinated Cursor automations**: **triage** (classify reports, cause-aware routing, tracker dedupe, single thread reply with `[benny:bug]` / `[benny:performance]` / `[benny:other]`) and **repro/fix** (wait for trusted triage markers, double UI repro via a configured control adapter, verify existing PRs, optional bounded fix with **draft-only** PRs). Operational behavior lives in committed `SKILL.md` files with strict thread-only Slack rules, fail-closed gates, and coordinator-only posting.
>
> **Setup** is agent-driven via `FOR_AGENTS.md` and `setup-benny`: merge the pack into the target repo at `.cursor/automations/benny/`, enable **pstack** in `.cursor/settings.json` for shared skills (`how`, `why`, `tdd`, `unslop`, principles), keep user config outside the pack, and wire live automations through `/automate` (or editor updates for existing ones). Templates cover configuration, routing, feature maps, control-adapter contract, and prompt shims.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 1028dd3a69. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
two new skills, a version bump, and README rows.
**`/recall`** rebuilds your recent working context on a topic from two records: your own chat history (mined in parallel by subagents) and the shared record the `why` skill searches (source control, issue tracker, chat, error tracking). hands back a tight current-state brief: a capsule, status-tagged threads, recurring problems, and the next move. explicit-invoke; composes `why` and `automate-me`.
**`/blast-radius`** maps what a change could break beyond the diff (consumers, dependency contracts, lifecycle and timing, serialized boundaries), then proves the one fact it's safe because of by running code instead of asserting it. includes a "how sure are you" trust ladder; any load-bearing safety claim that doesn't reach "ran it" is labeled unproven. explicit-invoke; composes `how`, `why`, `arena`, and `unslop`.
bumped to 0.9.2 and added both to the skills table.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Documentation and agent workflow definitions only; no application runtime or security-sensitive code paths change.
>
> **Overview**
> Ships **two new explicit-invoke skills** and bumps the plugin to **0.9.2**, with README table rows for when to use each.
>
> **`/recall`** adds a playbook for resuming work: scope a time window and topic, mine recent agent transcripts in parallel (with routing away from `session-pickup` / `automate-me`), optionally sweep the same shared evidence sources as **`why`** (rephrased toward current state and recurring failures), verify PRs/branches with `git`/`gh`, and return a fixed brief (capsule, status-tagged threads, problems, next move).
>
> **`/blast-radius`** adds a change-risk workflow beyond caller grep: identify the single load-bearing safety fact, hunt cross-boundary breakage (deps, lifecycle, wire formats), rate risks honestly, and **prove** safety via a trust ladder that requires runnable checks—unproven claims stay labeled; wide changes can use **`arena`**.
>
> Both skills set `disable-model-invocation: true` and compose existing skills (`why`, `how`, `unslop`, etc.); discovery is unchanged via `skills: "./skills/"`.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d7f9a4db02. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
* poteto-mode: add the Hillclimb playbook
A generic, metric-agnostic scientific hill-climb loop. Fix a metric and a
stop predicate, freeze a measurement harness, keep a decision.tsv, and loop
one hypothesis at a time with before/after measurement, a regression gate,
and one commit per accepted win. The agent supervises and delegates the
attempts. Registered in the playbook list; perf-issue points here for
sustained work.
* setup-pstack: add the hillclimb model role
The Hillclimb playbook reads a configured hillclimb model. Group it with
bug-fix and perf-issue on the gpt-5.5-high-fast default so /setup-pstack
offers the choice and the playbook reference is not dangling.
* setup-pstack: split bug-fix, perf-issue, hillclimb into separate model lines
* hillclimb: scope the autonomous-run deferral to the wake mechanism, not its stop rule
* poteto-mode: drop the two-no-progress stop from Autonomous run; keep going past plateaus
The README fell behind recent merges. Add sequence-verifiable-units to the
principle index (nineteen to twenty), add the pause-safely playbook to the
table (fourteen to fifteen), and broaden the prototype one-liner to match
its empirical-fork scope.
The sequence-verifiable-units continuation landed after "Run Opening a PR",
which read as open-then-shape. Fold it into the rebase sentence so commit
shaping comes before the PR step. Bugbot flagged this after the original
change had merged.