@rayburst/cc 1.0.27 → 1.0.30

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,23 @@
1
+ {
2
+ "name": "rayburst",
3
+ "description": "AI-native product management for Claude Code. Track features with acceptance criteria, run Playwright browser validation, and manage board cards through the full dev cycle — all via slash commands and MCP.",
4
+ "version": "1.0.29",
5
+ "author": {
6
+ "name": "Rayburst",
7
+ "email": "hello@rayburst.app"
8
+ },
9
+ "homepage": "https://rayburst.app",
10
+ "repository": "https://github.com/rayburst/rayburst-cc",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "project-management",
14
+ "feature-tracking",
15
+ "qa-validation",
16
+ "playwright",
17
+ "mcp",
18
+ "board",
19
+ "acceptance-criteria",
20
+ "product-manager",
21
+ "browser-testing"
22
+ ]
23
+ }
@@ -2,6 +2,8 @@
2
2
  name: rb:discover
3
3
  description: Feature Atlas discovery — log into the target app with Playwright, crawl all pages, and create/enrich untracked features in the Rayburst atlas
4
4
  argument-hint: "[starting URL or page name, e.g. /dashboard]"
5
+ user-invocable: true
6
+ disable-model-invocation: true
5
7
  allowed-tools:
6
8
  - mcp__playwright__browser_navigate
7
9
  - mcp__playwright__browser_snapshot
@@ -265,6 +267,43 @@ Immediately after `create_feature`, add 4–8 acceptance criteria in batches of
265
267
  })
266
268
  ```
267
269
 
270
+ **After creating a feature's criteria**, search for related already-tracked features (both from the existing atlas loaded in Step 2 and from features created earlier in this same discovery run) and link them:
271
+
272
+ ```
273
+ <MCP_PREFIX>list_features({ search: "<keyword from feature title>", limit: 10 })
274
+ ```
275
+
276
+ For each clear relationship found (limit: at most 3 links per newly created feature):
277
+
278
+ ```
279
+ <MCP_PREFIX>link_feature_to_feature({
280
+ sourceFeatureId: "<new feature ID>",
281
+ targetFeatureId: "<related feature ID>",
282
+ linkType: "<depends_on | implements | extends | related_to>"
283
+ })
284
+ ```
285
+
286
+ Relationship type guide:
287
+ - `depends_on` — the new feature cannot work without the related feature
288
+ - `implements` — the new feature is a concrete implementation of the related feature
289
+ - `extends` — the new feature builds on top of the related feature
290
+ - `related_to` — thematically related but not a hard dependency
291
+
292
+ Only link if the relationship is semantically clear. Prefer `depends_on` and `implements` over `related_to`.
293
+
294
+ After creating links, embed `[[Feature Name]]` wikilink syntax in the new feature's description for the 1-2 most important connections:
295
+
296
+ ```
297
+ <MCP_PREFIX>update_feature({
298
+ featureId: "<new feature ID>",
299
+ description: "<existing description with [[Related Feature Name]] wikilinks added inline>"
300
+ })
301
+ ```
302
+
303
+ Track the total count of feature-to-feature links created across this discovery run (for the Step 9 report).
304
+
305
+ ---
306
+
268
307
  **Tag strategy**:
269
308
  - Reuse an existing tag if `tagNameLower` matches the page/area concept (e.g. "board-view", "settings")
270
309
  - Create a new tag only if no existing tag fits the page/area context:
@@ -309,6 +348,7 @@ Feature Atlas Discovery — Summary
309
348
  Existing features enriched : <Y>
310
349
  New tags created : <K>
311
350
  Total criteria added : <total>
351
+ Feature links created : <Z>
312
352
  ──────────────────────────────────────────
313
353
 
314
354
  New features:
@@ -1,5 +1,9 @@
1
1
  ---
2
+ name: rb:implement
3
+ description: Implement a Rayburst board card end-to-end — load the card and linked features, plan with a subagent, execute with a subagent, then move the card to validation
2
4
  argument-hint: "<cardId or card title>"
5
+ user-invocable: true
6
+ disable-model-invocation: true
3
7
  allowed-tools:
4
8
  - Read
5
9
  - Glob
@@ -2,6 +2,8 @@
2
2
  name: rb:init
3
3
  description: Initialize project config — set project URL, user credentials, and MCP server role assignments for use by other rb: commands
4
4
  argument-hint: ""
5
+ user-invocable: true
6
+ disable-model-invocation: true
5
7
  allowed-tools:
6
8
  - Bash
7
9
  - Read
@@ -2,6 +2,8 @@
2
2
  name: rb:plan
3
3
  description: Task-driven PM session — search the feature atlas for a matching feature, enrich or create it, create a board card, and link them together
4
4
  argument-hint: "<task description, e.g. 'Feature Validation Tab', 'card drag and drop'>"
5
+ user-invocable: true
6
+ disable-model-invocation: true
5
7
  allowed-tools:
6
8
  - Read
7
9
  - Bash
@@ -9,6 +11,23 @@ allowed-tools:
9
11
 
10
12
  # rb:plan — Task-Driven PM Session
11
13
 
14
+ > **HARD STOP — READ BEFORE ANYTHING ELSE**
15
+ >
16
+ > This command is **PM-only**. It MUST NOT touch any code or files outside `.claude/rb-config.md`.
17
+ >
18
+ > The following actions are **absolutely forbidden** for the duration of this command:
19
+ > - Writing, editing, or creating any code file (no Edit, no Write, no file changes)
20
+ > - Running build, test, lint, or npm commands
21
+ > - Making git commits or git operations
22
+ > - Suggesting implementation steps or architectural decisions
23
+ > - Moving cards to `in-progress` or `done`
24
+ >
25
+ > If you feel tempted to implement anything — **stop immediately and return to Step 4 (Create Board Card)**.
26
+ >
27
+ > The CLAUDE.md "PM Feature Sync" rule does NOT apply here — skip it entirely. This command IS the PM step.
28
+
29
+ ---
30
+
12
31
  Given a task description, act as a PM to set it up in the feature atlas and on the board. This command **never implements anything** — it only does PM + board setup.
13
32
 
14
33
  ## Reference Data
@@ -117,6 +136,53 @@ Print a summary of the feature + criteria created.
117
136
 
118
137
  ---
119
138
 
139
+ ### Step 3.5: Connect Related Features (Wikilinks)
140
+
141
+ Search the atlas for features that are semantically related to the current feature:
142
+
143
+ ```
144
+ <MCP_PREFIX>list_features({ search: "<1-2 keywords from feature title>", limit: 15 })
145
+ ```
146
+
147
+ For each candidate feature (excluding the current feature itself), decide the relationship type:
148
+ - `depends_on` — the current feature cannot work without the candidate (e.g. "Feature Graph Canvas" depends_on "Feature-to-Feature Link Graph")
149
+ - `implements` — the current feature is a concrete UI/API implementation of the candidate (e.g. "Gherkin Syntax Detection" implements "Cucumber-Style Criteria Display")
150
+ - `extends` — the current feature builds on top of the candidate (e.g. "Feature Graph Canvas" extends "Experimental Features Page Layout")
151
+ - `related_to` — thematically related but not a hard dependency
152
+
153
+ **Rules for linking:**
154
+ - Only link if the relationship is semantically clear and meaningful
155
+ - Create at most 3-5 links per feature (don't over-connect)
156
+ - Prefer `depends_on` and `implements` over `related_to` when the relationship is directional
157
+ - Skip features that are clearly from a different domain (e.g. billing features when working on a board feature)
158
+
159
+ For each clear relationship found:
160
+ ```
161
+ <MCP_PREFIX>link_feature_to_feature({
162
+ sourceFeatureId: "<current feature ID>",
163
+ targetFeatureId: "<related feature ID>",
164
+ linkType: "<depends_on | implements | extends | related_to>"
165
+ })
166
+ ```
167
+
168
+ **Update the feature description with wikilinks:**
169
+
170
+ After creating links, update the feature description to embed `[[Feature Name]]` wikilink syntax for the most important 1-3 connections:
171
+
172
+ ```
173
+ <MCP_PREFIX>update_feature({
174
+ featureId: "<feature-id>",
175
+ description: "<existing description text, with [[Related Feature Name]] wikilinks added inline where relevant>"
176
+ })
177
+ ```
178
+
179
+ Example description with wikilinks:
180
+ > "Adds a React Flow graph view on the Features page. Nodes represent features colored by status; edges come from [[Feature-to-Feature Link Graph]] typed links. Clicking a node opens the feature detail panel from [[Experimental Feature Detail Overview Tab Layout]]."
181
+
182
+ Print a brief summary of links created.
183
+
184
+ ---
185
+
120
186
  ### Step 4: Create a Board Card
121
187
 
122
188
  ```
@@ -147,6 +213,7 @@ Print a summary:
147
213
  - **Feature:** title (new or existing), criteria count
148
214
  - **Card:** title, full UUID, status (`ready`)
149
215
  - **Link:** confirmed
216
+ - **Links:** N feature-to-feature links created (list the linked feature titles)
150
217
 
151
218
  Then print the next-step prompt:
152
219
 
@@ -165,15 +232,6 @@ Always use the full UUID from the `create_card` response — never a short hash.
165
232
 
166
233
  ---
167
234
 
168
- ## What `/rb:plan` Must NOT Do
169
-
170
- - Never write, edit, or create code files
171
- - Never run implementation commands (npm, git commits, builds, tests)
172
- - Never suggest implementation steps or architectural decisions
173
- - Never move cards to `in-progress` or `done`
174
-
175
- ---
176
-
177
235
  ## Feature Quality Rules
178
236
 
179
237
  **Titles:**
@@ -2,6 +2,8 @@
2
2
  name: rb:status
3
3
  description: Show feature atlas status — counts by status, draft features ready for planning, and active board cards
4
4
  argument-hint: ""
5
+ user-invocable: true
6
+ disable-model-invocation: false
5
7
  allowed-tools:
6
8
  - Read
7
9
  - Bash
@@ -67,6 +69,28 @@ Extract:
67
69
  - Cards in `validation` status (awaiting QA)
68
70
  - Cards in `in-progress` status (actively being built)
69
71
 
72
+ ### Step 3.5: Sample Feature Links
73
+
74
+ Call `list_feature_links` on a sample of 5-10 features from the loaded list to estimate graph density:
75
+
76
+ ```
77
+ <MCP_PREFIX>list_feature_links({ featureId: "<feature ID 1>" })
78
+ <MCP_PREFIX>list_feature_links({ featureId: "<feature ID 2>" })
79
+ <MCP_PREFIX>list_feature_links({ featureId: "<feature ID 3>" })
80
+ <MCP_PREFIX>list_feature_links({ featureId: "<feature ID 4>" })
81
+ <MCP_PREFIX>list_feature_links({ featureId: "<feature ID 5>" })
82
+ ```
83
+
84
+ Pick a representative sample spread across different status groups (draft, active, completed). Call up to 10 features if the atlas is large.
85
+
86
+ Compute from the results:
87
+ - `features_with_links`: count of sampled features where `list_feature_links` returned > 0 results
88
+ - Extrapolate: `estimated_linked` = (features_with_links / sample_size) × total_feature_count
89
+ - `estimated_isolated` = total_feature_count − estimated_linked
90
+ - Note the feature with the most links as "most connected"
91
+
92
+ ---
93
+
70
94
  ### Step 4: Cross-Reference Features and Cards
71
95
 
72
96
  For each feature:
@@ -103,6 +127,12 @@ Sorted by criteria count (highest first):
103
127
  ### Active Features (in-progress on board)
104
128
  - [Feature Title] → card: [card title] ([status])
105
129
 
130
+ ### Knowledge Graph Health
131
+ - Features with at least 1 link: N
132
+ - Isolated features (no links): N
133
+ - Most connected feature: [Feature Title] (N links)
134
+ - Run `/rb:plan <area>` to connect isolated features
135
+
106
136
  ### Next Actions
107
137
  - Run `/rb:plan <area>` to generate more draft features
108
138
  - Run `/rb:sync <task>` to track a new task in the atlas
@@ -2,6 +2,8 @@
2
2
  name: rb:sync
3
3
  description: Passive feature sync — find or create the matching Rayburst feature for a task description
4
4
  argument-hint: "<task description, e.g. add monthly billing toggle>"
5
+ user-invocable: true
6
+ disable-model-invocation: false
5
7
  allowed-tools:
6
8
  - Read
7
9
  - Bash
@@ -113,6 +115,53 @@ Then add 4-8 acceptance criteria:
113
115
 
114
116
  Coverage: happy path (2-3), empty states (1), error handling (1), edge cases (1).
115
117
 
118
+ ### Step 4.5: Connect Related Features (Wikilinks)
119
+
120
+ Search the atlas for features that are semantically related to the current feature:
121
+
122
+ ```
123
+ <MCP_PREFIX>list_features({ search: "<1-2 keywords from feature title>", limit: 15 })
124
+ ```
125
+
126
+ For each candidate feature (excluding the current feature itself), decide the relationship type:
127
+ - `depends_on` — the current feature cannot work without the candidate (e.g. "Feature Graph Canvas" depends_on "Feature-to-Feature Link Graph")
128
+ - `implements` — the current feature is a concrete UI/API implementation of the candidate (e.g. "Gherkin Syntax Detection" implements "Cucumber-Style Criteria Display")
129
+ - `extends` — the current feature builds on top of the candidate (e.g. "Feature Graph Canvas" extends "Experimental Features Page Layout")
130
+ - `related_to` — thematically related but not a hard dependency
131
+
132
+ **Rules for linking:**
133
+ - Only link if the relationship is semantically clear and meaningful
134
+ - Create at most 3-5 links per feature (don't over-connect)
135
+ - Prefer `depends_on` and `implements` over `related_to` when the relationship is directional
136
+ - Skip features that are clearly from a different domain (e.g. billing features when working on a board feature)
137
+
138
+ For each clear relationship found:
139
+ ```
140
+ <MCP_PREFIX>link_feature_to_feature({
141
+ sourceFeatureId: "<current feature ID>",
142
+ targetFeatureId: "<related feature ID>",
143
+ linkType: "<depends_on | implements | extends | related_to>"
144
+ })
145
+ ```
146
+
147
+ **Update the feature description with wikilinks:**
148
+
149
+ After creating links, update the feature description to embed `[[Feature Name]]` wikilink syntax for the most important 1-3 connections:
150
+
151
+ ```
152
+ <MCP_PREFIX>update_feature({
153
+ featureId: "<feature-id>",
154
+ description: "<existing description text, with [[Related Feature Name]] wikilinks added inline where relevant>"
155
+ })
156
+ ```
157
+
158
+ Example description with wikilinks:
159
+ > "Adds a React Flow graph view on the Features page. Nodes represent features colored by status; edges come from [[Feature-to-Feature Link Graph]] typed links. Clicking a node opens the feature detail panel from [[Experimental Feature Detail Overview Tab Layout]]."
160
+
161
+ Print a brief summary of links created.
162
+
163
+ ---
164
+
116
165
  ### Step 6: Report
117
166
 
118
167
  Print a compact summary:
@@ -122,6 +171,7 @@ Feature sync complete:
122
171
  - Title: [feature title]
123
172
  - ID: [full UUID]
124
173
  - Criteria: N
174
+ - Links: N feature-to-feature links created (list the linked feature titles)
125
175
  ```
126
176
 
127
177
  ---
@@ -2,6 +2,8 @@
2
2
  name: rb:validate-card
3
3
  description: Validate all acceptance criteria of a board card using Playwright browser automation, submit a formal validation report, move the card to done if all criteria pass, or post a failure comment and return the card to in-progress if any criteria fail
4
4
  argument-hint: "<cardId or card title>"
5
+ user-invocable: true
6
+ disable-model-invocation: true
5
7
  allowed-tools:
6
8
  - mcp__playwright__browser_navigate
7
9
  - mcp__playwright__browser_snapshot
@@ -2,6 +2,8 @@
2
2
  name: rb:validate-feature
3
3
  description: Validate all acceptance criteria of a feature using Playwright browser automation, create bug cards for failures, and submit a formal validation report
4
4
  argument-hint: "<featureId or feature title>"
5
+ user-invocable: true
6
+ disable-model-invocation: true
5
7
  allowed-tools:
6
8
  - mcp__playwright__browser_navigate
7
9
  - mcp__playwright__browser_snapshot
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@rayburst/cc",
3
- "version": "1.0.27",
3
+ "version": "1.0.30",
4
4
  "description": "Rayburst slash commands for Claude Code — /rb:init, /rb:plan, /rb:sync, /rb:status, /rb:validate-feature, /rb:validate-card, /rb:implement, /rb:discover",
5
5
  "bin": {
6
6
  "rayburst-cc": "bin/install.js"
7
7
  },
8
8
  "files": [
9
9
  "bin",
10
- "commands"
10
+ "commands",
11
+ ".claude-plugin"
11
12
  ],
12
13
  "keywords": [
13
14
  "claude",