@rayburst/cc 3.2.1 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +14 -25
- package/hooks/sessionstart.mjs +8 -6
- package/package.json +1 -1
- package/server.bundle.mjs +2 -2
- package/skills/review/SKILL.md +204 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rb:review
|
|
3
|
+
description: |
|
|
4
|
+
Audit the Rayburst feature atlas for cleanup and alignment issues — empty wrappers,
|
|
5
|
+
duplicate criteria, stale descriptions — and apply changes one at a time with user approval.
|
|
6
|
+
Triggers: "rb review", "rayburst review", "audit rayburst", "clean up rayburst", "review atlas".
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# rb:review — Atlas Cleanup & Alignment
|
|
11
|
+
|
|
12
|
+
Audit every feature and criterion in the Rayburst registry. For each proposed change,
|
|
13
|
+
show the user a clear before/after diff using AskUserQuestion with icons and color labels,
|
|
14
|
+
then apply only the approved ones. Skip any the user declines.
|
|
15
|
+
|
|
16
|
+
## MCP Tool Prefix
|
|
17
|
+
|
|
18
|
+
All MCP tools use: `mcp__plugin_rayburst_rayburst__`
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## CRITICAL RULES
|
|
23
|
+
|
|
24
|
+
1. **One change per AskUserQuestion prompt** — never batch multiple proposals together.
|
|
25
|
+
2. **Never apply a change without user approval** — every write, update, or delete requires an explicit "Apply" answer.
|
|
26
|
+
3. **Never delete a feature or criterion** that the user skips — move immediately to the next proposal.
|
|
27
|
+
4. **Present proposals in this order**: deletions first (highest impact), then updates, then additions.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Icon & Color Legend (use consistently in every proposal)
|
|
32
|
+
|
|
33
|
+
| Symbol | Meaning | Use for |
|
|
34
|
+
|--------|------------------|----------------------------------------------|
|
|
35
|
+
| 🗑️ | DELETE (red) | Removing a feature or criterion |
|
|
36
|
+
| ✏️ | UPDATE (yellow) | Changing description, title, or status |
|
|
37
|
+
| ➕ | ADD (green) | Adding a new criterion to an existing feature|
|
|
38
|
+
| ℹ️ | INFO (blue) | Context shown to the user, no action needed |
|
|
39
|
+
|
|
40
|
+
Always prefix the AskUserQuestion `question` text with the relevant icon and a short action label in CAPS, e.g.:
|
|
41
|
+
- `🗑️ DELETE — "Resume / Continue Watching" feature`
|
|
42
|
+
- `✏️ UPDATE — criterion in "Watch Progress"`
|
|
43
|
+
- `➕ ADD — criterion to "Continue Watching Card"`
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Workflow
|
|
48
|
+
|
|
49
|
+
### Step 1: Fetch the Full Atlas
|
|
50
|
+
|
|
51
|
+
Call `rb_list_features` with no filters to get all features for the configured project(s).
|
|
52
|
+
For each feature, call `rb_get_feature` to load its full acceptance criteria.
|
|
53
|
+
|
|
54
|
+
While loading, show a status message: "Auditing Rayburst atlas…"
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Step 2: Analyse — Build a Change Queue
|
|
59
|
+
|
|
60
|
+
Scan every feature and criterion for the following issues. Build an ordered list of proposed
|
|
61
|
+
changes (the **change queue**). Do NOT apply any changes yet.
|
|
62
|
+
|
|
63
|
+
#### Issue Types
|
|
64
|
+
|
|
65
|
+
**🗑️ DELETE — Empty wrapper features**
|
|
66
|
+
A feature with 0 acceptance criteria whose sole purpose is grouping via wikilinks.
|
|
67
|
+
It adds navigation noise without adding testable behavior — all its linked features
|
|
68
|
+
already cross-reference each other. Propose deletion.
|
|
69
|
+
|
|
70
|
+
*Preview format:*
|
|
71
|
+
```
|
|
72
|
+
Feature: "<title>"
|
|
73
|
+
Criteria: 0
|
|
74
|
+
Description: <first 120 chars of description>…
|
|
75
|
+
Reason: Empty wrapper — no testable behavior. All child features link to each other directly.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**🗑️ DELETE — Duplicate criterion**
|
|
79
|
+
Two criteria in the same feature (or across related features) that describe the
|
|
80
|
+
same behavior in nearly identical Given/When/Then terms.
|
|
81
|
+
Keep the criterion in the feature that owns the behavior; propose deleting the other.
|
|
82
|
+
|
|
83
|
+
*Preview format:*
|
|
84
|
+
```
|
|
85
|
+
Feature: "<title>"
|
|
86
|
+
Criterion (to remove):
|
|
87
|
+
"<existing description>"
|
|
88
|
+
|
|
89
|
+
Kept in: "<other feature title>"
|
|
90
|
+
Reason: Same behavior already captured there.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**✏️ UPDATE — Stale criterion**
|
|
94
|
+
A criterion whose description no longer matches the codebase (e.g. it describes
|
|
95
|
+
behavior that was changed by a recent implementation). Show the old text and the
|
|
96
|
+
proposed new text.
|
|
97
|
+
|
|
98
|
+
*Preview format:*
|
|
99
|
+
```
|
|
100
|
+
Feature: "<title>"
|
|
101
|
+
|
|
102
|
+
BEFORE:
|
|
103
|
+
"<old description>"
|
|
104
|
+
|
|
105
|
+
AFTER:
|
|
106
|
+
"<new description>"
|
|
107
|
+
|
|
108
|
+
Reason: <one-line explanation of what changed>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**✏️ UPDATE — Thin feature description**
|
|
112
|
+
A feature description that is missing key behavioral context (e.g. says nothing about
|
|
113
|
+
filtering rules, threshold values, or data sources that the code clearly implements).
|
|
114
|
+
Propose an enriched description.
|
|
115
|
+
|
|
116
|
+
*Preview format:*
|
|
117
|
+
```
|
|
118
|
+
Feature: "<title>"
|
|
119
|
+
|
|
120
|
+
BEFORE:
|
|
121
|
+
"<old description>"
|
|
122
|
+
|
|
123
|
+
AFTER:
|
|
124
|
+
"<new description>"
|
|
125
|
+
|
|
126
|
+
Reason: Description doesn't capture <what's missing>.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**➕ ADD — Missing criterion**
|
|
130
|
+
A behavior clearly present in the codebase that has no corresponding criterion in
|
|
131
|
+
any feature. Propose adding it to the most appropriate feature.
|
|
132
|
+
|
|
133
|
+
*Preview format:*
|
|
134
|
+
```
|
|
135
|
+
Feature: "<title>"
|
|
136
|
+
|
|
137
|
+
NEW CRITERION:
|
|
138
|
+
"<Given/When/Then text>"
|
|
139
|
+
|
|
140
|
+
Reason: <one-line explanation of the behavior being captured>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Step 3: Present Changes One at a Time
|
|
146
|
+
|
|
147
|
+
For each item in the change queue, call **AskUserQuestion** with:
|
|
148
|
+
|
|
149
|
+
- **question**: `<icon> <ACTION> — <short description of the change>`
|
|
150
|
+
- **header**: one of `Delete`, `Update`, `Add`
|
|
151
|
+
- **options**: always exactly these two:
|
|
152
|
+
|
|
153
|
+
| Label | Description |
|
|
154
|
+
|-------|-------------|
|
|
155
|
+
| `Apply` | Apply this change to the Rayburst registry |
|
|
156
|
+
| `Skip` | Leave it as-is and move to the next proposal |
|
|
157
|
+
|
|
158
|
+
- **preview** on each option: show a formatted before/after or full context block so the
|
|
159
|
+
user can compare without having to remember the details.
|
|
160
|
+
|
|
161
|
+
**Wait for the user's answer before proceeding.**
|
|
162
|
+
|
|
163
|
+
- If **Apply** → execute the appropriate MCP call (`rb_update_feature`, `rb_update_criterion`,
|
|
164
|
+
`rb_add_criterion`, `rb_delete_criterion`, `rb_delete_feature`) and confirm success with a
|
|
165
|
+
one-line acknowledgement before presenting the next change.
|
|
166
|
+
- If **Skip** → acknowledge with a one-line "Skipped." and immediately present the next change.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### Step 4: Summary
|
|
171
|
+
|
|
172
|
+
After all proposals have been presented, output a compact summary:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
✅ Atlas review complete.
|
|
176
|
+
|
|
177
|
+
Applied : <N> changes
|
|
178
|
+
Skipped : <N> changes
|
|
179
|
+
|
|
180
|
+
Applied:
|
|
181
|
+
🗑️ Deleted "Resume / Continue Watching" (empty wrapper)
|
|
182
|
+
✏️ Updated criterion in "Watch Progress" (TV save presence signal)
|
|
183
|
+
…
|
|
184
|
+
|
|
185
|
+
Skipped:
|
|
186
|
+
➕ Add criterion to "Continue Watching Card" (next-episode advance)
|
|
187
|
+
…
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
If the change queue was empty, output:
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
ℹ️ Atlas looks clean — no issues found.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Constraints
|
|
199
|
+
|
|
200
|
+
- **One question per turn** — never batch multiple proposals into a single AskUserQuestion call.
|
|
201
|
+
- **Read before writing** — always base proposals on the actual fetched atlas data, never on assumptions.
|
|
202
|
+
- **Only propose changes for the configured project(s)** — do not touch features from other projects.
|
|
203
|
+
- **Preserve criterion IDs** — when updating, always use `rb_update_criterion` with the existing
|
|
204
|
+
`criterionId`; never delete-and-recreate.
|