Files
cursor__plugins/pstack/automations/benny/templates/configuration.example.yaml
lauren 0452e08a31 pstack: add Benny issue automation pack (#137)
## 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 -->
2026-06-23 21:43:34 -07:00

85 lines
2.4 KiB
YAML

schema_version: 1
automations:
triage_name: "benny-triage"
reproduce_name: "benny-reproduce"
slack:
source_channel_id: "SOURCE_CHANNEL_ID"
operations_channel_id: ""
triage_identity_user_id: "TRIAGE_IDENTITY_USER_ID"
read_action: "configured-slack-read-action"
thread_post_action: "configured-slack-thread-post-action"
file_download_action: "configured-slack-file-download-action"
operations_edit_action: "configured-slack-edit-action"
prefer_cursor_actions: true
optional_bot_token_env: "BENNY_SLACK_BOT_TOKEN"
allow_source_root_posts: false
allow_worker_slack_writes: false
repository:
url: "https://github.com/example-org/example-repo"
default_branch: "main"
pull_request_action: "configured-draft-pull-request-action"
pull_request_url_format: "https://github.com/{owner}/{repo}/pull/{number}"
draft_only: true
tracker:
type: "linear"
adapter_skill_name: "issue-tracker-adapter-placeholder"
team: "team-placeholder"
project: "project-placeholder"
labels:
bug: "bug-label-placeholder"
performance: "performance-label-placeholder"
intake: "intake-label-placeholder"
needs_repro: "needs-repro-label-placeholder"
status: "intake-status-placeholder"
source_link_title: "Slack report"
require_compensation_action: true
routing:
map_path: ".cursor/benny/routing.md"
owner_pings_default: false
allow_feature_owner_ping: false
allow_confirmed_regression_author_ping: false
control:
skill_name: "control-target-app"
feature_map_path: ".cursor/benny/feature-map.md"
environment: "safe-test-environment-placeholder"
artifact_directory: "/tmp/benny-artifacts"
artifact_retention_hours: 24
verdict_markers:
bug: "[benny:bug]"
performance: "[benny:performance]"
other: "[benny:other]"
tracker_attribute: "tracker"
status_emoji:
seen: "👀"
reproducing: "🔎"
reproduced: "✅"
could_not_reproduce: "⚪"
blocked: "⛔"
fixing: "🛠️"
fix_failed: "❌"
pull_request_opened: "🔗"
budgets:
poll_seconds: 45
verdict_wait_minutes: 45
triage_follow_up_minutes: 10
triage_total_minutes: 30
repro_minutes: 60
rejection_window_minutes: 10
fix_minutes: 90
operations_follow_up_minutes: 45
models:
triage: "choose-an-available-public-model-slug"
reproduce: "choose-an-available-public-model-slug"
code: "choose-an-available-public-model-slug"
media_review: "choose-an-available-public-model-slug"