@rayburst/cc 1.0.28 → 1.0.31

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:
@@ -295,6 +334,26 @@ For each `existing_feature` with observed behaviors not yet tracked as criteria:
295
334
 
296
335
  Limit enrichment to 3 new criteria per existing feature to avoid over-loading features with redundant data.
297
336
 
337
+ **After enriching each existing feature**, check its current links and add any missing relationships that were evident from the discovery run:
338
+
339
+ ```
340
+ <MCP_PREFIX>list_feature_links({ featureId: "<existing feature ID>" })
341
+ ```
342
+
343
+ For each clear relationship not yet present (limit: at most 3 new links per feature):
344
+
345
+ ```
346
+ <MCP_PREFIX>link_feature_to_feature({
347
+ sourceFeatureId: "<existing feature ID>",
348
+ targetFeatureId: "<related feature ID>",
349
+ linkType: "<depends_on | implements | extends | related_to>"
350
+ })
351
+ ```
352
+
353
+ Apply the same relationship type guide as Step 7. Only link if the relationship is semantically clear from what you observed in the browser. Track the total count for the Step 9 report.
354
+
355
+ **Also apply this linking check to existing features that were matched but had NO new criteria to add** — if you observed a clear relationship that isn't yet linked, create the link even if no criteria enrichment was needed.
356
+
298
357
  ---
299
358
 
300
359
  ### Step 9: Summary Report
@@ -309,6 +368,7 @@ Feature Atlas Discovery — Summary
309
368
  Existing features enriched : <Y>
310
369
  New tags created : <K>
311
370
  Total criteria added : <total>
371
+ Feature links created : <Z>
312
372
  ──────────────────────────────────────────
313
373
 
314
374
  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
@@ -134,6 +136,53 @@ Print a summary of the feature + criteria created.
134
136
 
135
137
  ---
136
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
+
137
186
  ### Step 4: Create a Board Card
138
187
 
139
188
  ```
@@ -164,6 +213,7 @@ Print a summary:
164
213
  - **Feature:** title (new or existing), criteria count
165
214
  - **Card:** title, full UUID, status (`ready`)
166
215
  - **Link:** confirmed
216
+ - **Links:** N feature-to-feature links created (list the linked feature titles)
167
217
 
168
218
  Then print the next-step prompt:
169
219
 
@@ -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.28",
3
+ "version": "1.0.31",
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",