@rayburst/cc 1.0.30 → 1.0.32

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.
@@ -202,10 +202,10 @@ Initialize:
202
202
 
203
203
  3. From the accessibility tree, record:
204
204
  - **Page name** — derive from `<title>` tag or the main heading visible (e.g. "Board View", "Settings > Integrations", "Card Detail")
205
- - **Behaviors** — list of interactive elements (buttons, forms, modals, sidebars) and their apparent purpose, expressed as user-facing actions:
206
- - "User can create a new card using the + button"
207
- - "User can filter cards by label"
208
- - "User can drag cards between columns"
205
+ - **Behaviors** — list of interactive elements (buttons, forms, modals, sidebars) and their apparent purpose, expressed as Gherkin scenarios:
206
+ - "Given the user is on the board page\nWhen the user clicks the + button\nThen a new card creation form appears"
207
+ - "Given cards exist on the board\nWhen the user selects a label filter\nThen only cards with that label are visible"
208
+ - "Given a card is in one column\nWhen the user drags the card to another column\nThen the card moves to the target column"
209
209
  - **Links** — all `<a href>` values and navigation elements pointing to internal pages
210
210
 
211
211
  4. For any clearly interactive element that opens a modal or panel (e.g. "+ New Card", "Settings", "Detail view"):
@@ -256,17 +256,25 @@ For each `new_candidate`, create a feature:
256
256
  })
257
257
  ```
258
258
 
259
- Immediately after `create_feature`, add 4–8 acceptance criteria in batches of 4–5. Each criterion must describe a **testable, user-facing behavior**:
259
+ Immediately after `create_feature`, add 4–8 acceptance criteria in batches of 4–5. Each criterion must be written in **Gherkin syntax** (Given/When/Then) to describe a testable, user-facing behavior:
260
260
 
261
261
  ```
262
262
  <MCP_PREFIX>add_criterion({
263
263
  featureId: "<new feature ID>",
264
- description: "<testable behavior — e.g. 'User can remove a dependency by clicking the × icon'>",
264
+ description: "<Gherkin scenario — e.g. 'Given a card exists in a column\\nWhen the user clicks the × icon on a dependency\\nThen the dependency is removed from the card'>",
265
265
  status: "pass",
266
266
  tagIds: ["<tag IDs from Step 2 cache or newly created tags>"]
267
267
  })
268
268
  ```
269
269
 
270
+ **Gherkin format rules:**
271
+ - Always use `Given / When / Then` structure, with optional `And` for additional steps
272
+ - `Given` — the precondition or starting state (e.g. "Given the user is on the board page")
273
+ - `When` — the user action or system event (e.g. "When the user clicks + New Card")
274
+ - `Then` — the observable outcome (e.g. "Then a new card appears in the first column")
275
+ - Keep each scenario focused on one behavior — one Given/When/Then block per criterion
276
+ - Use `\n` to separate Given/When/Then lines within the description string
277
+
270
278
  **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
279
 
272
280
  ```
@@ -326,7 +334,7 @@ For each `existing_feature` with observed behaviors not yet tracked as criteria:
326
334
  ```
327
335
  <MCP_PREFIX>add_criterion({
328
336
  featureId: "<existing feature ID>",
329
- description: "<newly observed behavior not yet in criteria>",
337
+ description: "<Gherkin scenario Given [precondition]\\nWhen [action]\\nThen [outcome]>",
330
338
  status: "pass",
331
339
  tagIds: ["<relevant tag IDs>"]
332
340
  })
@@ -334,6 +342,26 @@ For each `existing_feature` with observed behaviors not yet tracked as criteria:
334
342
 
335
343
  Limit enrichment to 3 new criteria per existing feature to avoid over-loading features with redundant data.
336
344
 
345
+ **After enriching each existing feature**, check its current links and add any missing relationships that were evident from the discovery run:
346
+
347
+ ```
348
+ <MCP_PREFIX>list_feature_links({ featureId: "<existing feature ID>" })
349
+ ```
350
+
351
+ For each clear relationship not yet present (limit: at most 3 new links per feature):
352
+
353
+ ```
354
+ <MCP_PREFIX>link_feature_to_feature({
355
+ sourceFeatureId: "<existing feature ID>",
356
+ targetFeatureId: "<related feature ID>",
357
+ linkType: "<depends_on | implements | extends | related_to>"
358
+ })
359
+ ```
360
+
361
+ 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.
362
+
363
+ **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.
364
+
337
365
  ---
338
366
 
339
367
  ### Step 9: Summary Report
@@ -379,6 +407,6 @@ New tags:
379
407
  5. **Batch MCP calls** in groups of 4–5 to stay within the 60 req/min rate limit.
380
408
  6. **Do not create tags for every page** — reuse existing tags aggressively; create new ones only for genuinely new UI contexts.
381
409
  7. **Feature titles = Noun Phrases** (e.g. "Card Label Management", "GitHub OAuth Integration", "Swimlane Board View") — not verb phrases or sentences.
382
- 8. **Criteria = user-facing behaviors** — write in the form "User can…" or "System displays…". Avoid implementation details.
410
+ 8. **Criteria = Gherkin scenarios** — write in `Given / When / Then` format. Each criterion must have exactly one Given (precondition), one When (action), and one Then (observable outcome). Use `And` for additional steps. Avoid implementation details — focus on observable user-facing behavior.
383
411
  9. **Login only once** — after Step 4, reuse the authenticated browser session for all navigation in Step 5.
384
412
  10. **Depth limit = 30 pages** — prioritize pages reachable from the main navigation over deeply nested sub-pages.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rayburst/cc",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
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"