@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.
@@ -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.