mirror of
https://github.com/cursor/plugins.git
synced 2026-09-14 20:00:00 +08:00
0452e08a31
## 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 -->
85 lines
2.4 KiB
YAML
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"
|