<!-- 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.
* poteto-mode: extend Prototype playbook to empirical forks
Prototype was UI-only (layout/interaction, the eye is the test). Broaden
the trigger and steps 1/5 so a throwaway sketch can settle a behavioral
or timing fork by observation (which behavior, which timing, which
approach), not just a visual one. This is the destination the new
self-unblock trigger routes to.
* poteto-mode: route the AskQuestion reflex to a sketch
Before asking the human a which-approach / how-should-I / what-should-this-do
question, classify it. If the answer is empirical (observable by running
something), sketch it via the Prototype playbook and let the result decide;
reserve the ask for a genuine product or preference call. Wires Never Block
on the Human to Prototype, and broadens the Prototype catalog entry to match.
* poteto-mode: finish the Prototype empirical-fork broadening
Three gaps in the partial broadening. Step 3 still assumed a UI build, so
it now names the script path for a behavioral or timing decision. The Reply
still demanded screenshots, so it asks for the matching evidence instead.
The AskQuestion trigger had no read-only carve-out, so a cited-answer
Investigation no longer routes to a build.
* poteto-mode: add "sequence work into verifiable units" principle
New principle leaf plus its index entry in the Verification group. Break
multi-step work into small units that each end in a check, verify each
before the next, and stack commits and PRs so the sequence proves itself
to a reviewer (the failing test first, then the fix).
* poteto-mode: thread sequence-verifiable-units into playbooks
Reference the principle where it applies: the iterate-and-verify steps of
perf-issue and autonomous-run, the commit-staging steps of bug-fix,
feature, and refactoring, and the figure-it-out loop.
* pstack: per-role model configuration via /setup-pstack, drop codex
Makes pstack's model choices configurable per role instead of hardcoded.
- New /setup-pstack skill detects your available models and writes
~/.cursor/rules/pstack-models.mdc, an always-applied rule with one
line per role.
- poteto-mode gains a Model configuration section (default table and
precedence). Skills read the configured model per role and fall back
to the inline default when the rule is absent, so nothing breaks
with no setup.
- Review panels (arena, architect, interrogate, how critics) are now
config-driven and count-agnostic. One subagent runs per configured
model, with no fixed count or A/B/C/D labels.
- Dropped gpt-5.3-codex-high-fast. bug-fix and perf-issue default to
gpt-5.5-high-fast; feature and refactoring stay composer-2.5-fast.
Version bump to 0.8.0.
* pstack: keep model config out of poteto-mode
Drop the Model configuration section and table from poteto-mode. The
canonical defaults live in the setup-pstack rule shape, and each skill
already carries its inline default, so poteto-mode only needs a one-line
pointer in its Task defaults. Fixes the plan.md and setup-pstack
back-references to the removed section.
* fix: match root planner by exact name in kickoff dedupe
findActiveRootPlanner adopted any active cloud agent whose name merely
started with the kickoff slug (`name.startsWith(rootSlug)`). Because the
kickoff command names every root planner exactly `${rootSlug}-root`, a
slug that is a prefix of another goal's slug would wrongly adopt the
unrelated planner: kicking off goal `auth` while `auth-ui-root` is
active matched `"auth-ui-root".startsWith("auth")`, silently attaching a
fresh run to the wrong goal's planner instead of starting a new one.
Match the deterministic canonical name `${rootSlug}-root` exactly. Adds
a regression test asserting a prefix-only slug overlap does not adopt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* orchestrate: tighten kickoff-dedupe comments
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: lauren <lauren@anysphere.co>