Configure Benny and prepare its triage and repro automations. Use when installing Benny or changing its Slack, tracker, repository, routing, control, model, or budget settings.
71
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Benny ships as a dormant automation pack inside pstack. The plugin manifest exposes only pstack's normal skill root; this file and the two operational files are not slash skills.
The human enters setup by pointing Cursor at the pack's FOR_AGENTS.md. The bootstrap flow copies the whole pack into the target repository, then reads this file directly at .cursor/automations/benny/skills/setup-benny/SKILL.md.
Benny needs external configuration and two live Cursor automations.
Do not create or update an automation until the user explicitly asks. Never put a secret value in plugin files, prompts, or committed configuration.
Do this before asking for Benny configuration and before invoking the built-in /automate skill.
Ask which repository will run the automations. The source pack is the directory containing FOR_AGENTS.md. The destination is <target-repository>/.cursor/automations/benny/.
Merge the entire source pack into the destination:
FOR_AGENTS.md, this setup file, both operational files, their references, and the templates.If this file is already being read from the target destination, treat the copy as complete and run the same verification before continuing.
Add pstack to the target repository's .cursor/settings.json. If the file or .cursor directory does not exist, create it.
Merge this entry into the existing JSON or JSONC:
{
"plugins": {
"pstack": { "enabled": true }
}
}Preserve every unrelated top-level setting and every other plugin entry. If plugins.pstack already exists, change only its enabled value. Preserve comments and valid JSONC syntax when the file uses JSONC. Validate the file after editing it.
Reload the target project or start a fresh agent rooted there. Verify that these shared pstack skills resolve from project scope:
howwhytddunslopprinciple-separate-before-serializing-shared-stateprinciple-minimize-reader-loadprinciple-guard-the-context-windowprinciple-sequence-verifiable-unitsprinciple-fix-root-causesprinciple-prove-it-worksDo not count a skill loaded from the current session or a user-scoped plugin. The check must show that a fresh agent in the target repository receives pstack through project settings.
If project-scoped plugin installation is unavailable or any shared dependency does not resolve, stop and explain the failure.
The Benny files are read directly from .cursor/automations/benny/. Do not add that directory to a plugin manifest or expect its SKILL.md files to appear in the slash-skill list.
Tell the user that .cursor/settings.json, .cursor/automations/benny/, and any referenced secret-free configuration must be committed before either automation is enabled. Do not commit them unless the user asks.
Once this check passes, live automation prompts may read the committed operational files by their stable repository-relative paths. They must not embed a plugin cache path or copy the file contents.
Open these copied examples:
../../templates/configuration.example.yaml../reproduce-and-fix-issues/references/feature-map.example.mdCreate user-owned copies outside .cursor/automations/benny/. These are configuration files, not pack files. Example locations:
.cursor/benny/configuration.yaml.cursor/benny/feature-map.md.cursor/benny/routing.md~/.config/benny/configuration.yaml~/.config/benny/feature-map.mdFill one feature-map section for every user-facing feature the automation may reproduce. Keep it at the user point of view. Do not freeze implementation details or current code paths in the map.
Do not edit the copied examples. Pack refreshes may update source-managed files after conflict review, but they must never touch the user-owned copies.
Prefer committed, secret-free files in the target repository when a fresh automation checkout must read them. Otherwise paraphrase the required values into the live prompt. Reference a repository file only after the built-in /automate skill confirms that the file is committed in the repository where the automation runs.
Use stable repository-relative paths for committed pack and configuration files. Never reference the plugin source directory or a plugin cache path from a live automation.
Ask for or confirm:
Use only model slugs shown as available in the user's Cursor model picker or supported model list. Do not guess a slug and do not carry over a private default.
The source channel, triage identity, repository, tracker adapter, control skill, and feature map must be explicit. Fail setup if any required value stays ambiguous.
Use pstack's unslop skill on the final automation names, descriptions, and prompt shims before saving them.
The triage automation needs:
The repro automation needs:
Prefer configured Cursor Slack actions for reads and posts. The optional BENNY_SLACK_BOT_TOKEN may fill a narrow gap such as editing one operations status message or downloading an attachment. Store the value in a secret manager or environment, not in YAML.
Do not use undocumented integration endpoints.
If the user wants reroutes or owner pings:
../triage-issue-reports/references/routing.example.md outside .cursor/automations/benny/.If no routing map is configured, triage may classify a report but must not guess a destination or owner.
Read ../reproduce-and-fix-issues/references/control-adapter.md and the user's completed feature map.
Confirm that the named skill can:
If any capability is missing, leave the repro automation disabled. It must fail closed rather than claim a reproduction it did not perform.
Ask whether this is first-time creation or configuration of existing automations.
Read ../../FOR_AGENTS.md from the copied pack as the primary user-intent source for either path. Use it to understand the two triggers, tools, instructions, outcomes, and shared rules.
Create one automation at a time.
For each automation:
FOR_AGENTS.md, the finished Benny configuration, and the template intent into a complete natural-language request..cursor/automations/benny/.automate skill.automate discover Slack channels, the repository, and connected integrations.automate confirm that the copied pack and any referenced configuration files are committed in the same repository where the automation will run.automate show its draft table, obtain approval, ask readiness, and open the Automations editor.Give automate this complete triage intent, filled from configuration:
benny-triage..cursor/automations/benny/skills/triage-issue-reports/SKILL.md for every run.[benny:bug], [benny:performance], or [benny:other] marker and optional tracker URL.After the triage editor handoff is complete, give automate this complete repro and fix intent:
benny-reproduce..cursor/automations/benny/skills/reproduce-and-fix-issues/SKILL.md for every run.automate confirms an eligible committed file in the same repository.Do not duplicate automate's Slack, repository, integration, completeness, authentication, draft-review, approval, readiness, or editor-handoff work.
The built-in automate skill is creation-only. Do not use it to search for, inspect, or update existing automations.
Finish configuration, routing, control-adapter, and feature-map validation. Then give the user this concise editor checklist.
For the existing triage automation, update:
.cursor/automations/benny/skills/triage-issue-reports/SKILL.mdFor the existing repro automation, update:
.cursor/automations/benny/skills/reproduce-and-fix-issues/SKILL.mdAsk the user to update each existing automation directly in its Automations editor. Do not create replacements or duplicates.
Never call a direct automation backend service or backend automation tool. Never use a browser URL that carries draft fields. Never build or open a Cursor protocol deep link. For new automations, the only finish path is the built-in automate skill's reviewed Automations editor handoff.
Do not enable either automation until the thread-safety test passes after the editor save.
Use a test channel or a harmless test report.
Before testing, confirm that the target repository's .cursor/settings.json, .cursor/automations/benny/, and every referenced secret-free configuration file are committed on the branch used by the automation checkout. Confirm that both live prompts point at their exact committed operational files. If any check fails, stop. Tell the user that the automation cannot be enabled yet.
Verify:
thread_ts and posts exactly one verdict as a reply.Enable normal traffic only after all seven checks pass.
c47b128
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.