@adverant/nexus-memory-skill 2.0.0 → 2.1.0

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/SKILL.md CHANGED
@@ -528,3 +528,155 @@ Your API key may be invalid or expired.
528
528
  If you see "Endpoint not found" errors, the hooks may be using outdated endpoints. Update to:
529
529
  - Store: `/api/memory/store`
530
530
  - Recall: `/api/memory/recall`
531
+
532
+ ---
533
+
534
+ ## Beads: Git-Backed Issue Tracking
535
+
536
+ > **Attribution**: Beads (bd) is created by [Steve Yegge](https://github.com/steveyegge).
537
+ > Repository: https://github.com/steveyegge/beads
538
+ > License: See the beads repository for license terms.
539
+ >
540
+ > This integration extends beads with GraphRAG sync capabilities for cross-device memory.
541
+
542
+ Beads (bd) integrates issue/task tracking with your memory system. Beads are stored both locally in git (`.beads/beads.jsonl`) and synced to GraphRAG as searchable memories. This enables:
543
+
544
+ - **Local git versioning** of issues (distributed, offline-capable)
545
+ - **Semantic search** across all issues via GraphRAG
546
+ - **Cross-device sync** through bidirectional GraphRAG sync
547
+ - **Dependency tracking** (blocks, relates, discovered-from)
548
+ - **Ready-work queries** (what tasks have no blockers?)
549
+
550
+ ### First-Time Setup
551
+
552
+ The `bd` binary auto-installs on first use:
553
+
554
+ ```bash
555
+ # Install bd binary (or let it auto-install)
556
+ ~/.claude/hooks/bead-sync.sh install
557
+
558
+ # Initialize beads in your repository
559
+ bd init
560
+ ```
561
+
562
+ ### Core Commands
563
+
564
+ | Command | Description |
565
+ |---------|-------------|
566
+ | `bd list` | List all open beads |
567
+ | `bd ready` | Show beads with no blockers (ready to work) |
568
+ | `bd create "title" -p P1` | Create new bead with priority |
569
+ | `bd work <id>` | Mark bead as in-progress |
570
+ | `bd close <id>` | Mark bead as complete |
571
+ | `bd dep add <a> blocks <b>` | Create dependency (A blocks B) |
572
+ | `bd show <id>` | Show bead details |
573
+ | `bd graph` | Visualize dependency graph |
574
+
575
+ ### Sync Commands
576
+
577
+ ```bash
578
+ # Full bidirectional sync (push local + pull remote)
579
+ ~/.claude/hooks/bead-sync.sh sync
580
+
581
+ # Push local beads to GraphRAG only
582
+ ~/.claude/hooks/bead-sync.sh push
583
+
584
+ # Pull beads from GraphRAG (cross-device sync)
585
+ ~/.claude/hooks/bead-sync.sh pull
586
+
587
+ # Search beads in GraphRAG
588
+ ~/.claude/hooks/bead-sync.sh query "authentication bug"
589
+ ```
590
+
591
+ ### How Beads Become Memories
592
+
593
+ Beads are automatically synced to GraphRAG with:
594
+ - `event_type: "bead"`
595
+ - `metadata.bead_id: "bd-xxxx"`
596
+ - `tags: ["bead", "status:open", "priority:P1", "project:my-project"]`
597
+
598
+ This integration enables:
599
+ - **Auto-recall** surfaces relevant beads when discussing tasks
600
+ - **Semantic search** finds beads by meaning, not just ID
601
+ - **Causal chains** link beads to related code changes
602
+ - **Cross-project** search works across all repositories
603
+
604
+ ### Typical Workflow
605
+
606
+ 1. **See what's ready**: `bd ready`
607
+ 2. **Claim a task**: `bd work bd-a1b2`
608
+ 3. **Do the work**: (make code changes)
609
+ 4. **Complete**: `bd close bd-a1b2`
610
+ 5. **Sync to memory**: `~/.claude/hooks/bead-sync.sh sync`
611
+
612
+ ### Dependencies
613
+
614
+ ```bash
615
+ # A blocks B (B can't start until A is done)
616
+ bd dep add bd-a1b2 blocks bd-c3d4
617
+
618
+ # A relates to B (informational link)
619
+ bd dep add bd-a1b2 relates bd-c3d4
620
+
621
+ # Discover new issue from existing work
622
+ bd create "Found bug while fixing auth" --discovered-from bd-a1b2
623
+
624
+ # See dependency graph
625
+ bd graph
626
+ ```
627
+
628
+ ### Priority Levels
629
+
630
+ | Priority | Meaning |
631
+ |----------|---------|
632
+ | P0 | Critical - drop everything |
633
+ | P1 | High - do this sprint |
634
+ | P2 | Medium - normal priority (default) |
635
+ | P3 | Low - nice to have |
636
+ | P4 | Backlog - someday/maybe |
637
+
638
+ ### Multi-Agent Coordination (Molecules)
639
+
640
+ For coordinating work across multiple agents:
641
+
642
+ ```bash
643
+ # Create a molecule (epic/theme)
644
+ bd mol create "Authentication Overhaul"
645
+
646
+ # Add beads to molecule
647
+ bd mol add <mol-id> bd-a1b2
648
+ bd mol add <mol-id> bd-c3d4
649
+
650
+ # Check molecule progress
651
+ bd mol status <mol-id>
652
+ ```
653
+
654
+ ### Environment Variables
655
+
656
+ | Variable | Default | Description |
657
+ |----------|---------|-------------|
658
+ | `BD_VERSION` | `latest` | Version of bd to install |
659
+ | `NEXUS_VERBOSE` | `0` | Set to 1 for debug output |
660
+
661
+ ### Troubleshooting
662
+
663
+ **bd command not found:**
664
+ ```bash
665
+ # Install or reinstall
666
+ ~/.claude/hooks/bead-sync.sh install
667
+
668
+ # Check installation
669
+ ls -la ~/.local/bin/bd
670
+ ```
671
+
672
+ **Beads not syncing:**
673
+ ```bash
674
+ # Check API key is set
675
+ echo $NEXUS_API_KEY
676
+
677
+ # Manual sync with verbose output
678
+ NEXUS_VERBOSE=1 ~/.claude/hooks/bead-sync.sh sync
679
+ ```
680
+
681
+ **No beads in auto-recall:**
682
+ Make sure you've run `~/.claude/hooks/bead-sync.sh push` at least once to sync local beads to GraphRAG.
@@ -299,6 +299,43 @@ if [[ "$EPISODIC_COUNT" -gt 0 ]] && [[ "$EPISODIC_COUNT" != "null" ]]; then
299
299
  echo ""
300
300
  fi
301
301
 
302
+ # Output active beads (if bd is available and initialized)
303
+ BD_BIN="${HOME}/.local/bin/bd"
304
+ BD_CMD=""
305
+ if [[ -x "$BD_BIN" ]]; then
306
+ BD_CMD="$BD_BIN"
307
+ elif command -v bd &> /dev/null; then
308
+ BD_CMD="bd"
309
+ fi
310
+
311
+ if [[ -n "$BD_CMD" ]]; then
312
+ # Check if beads is initialized in this directory
313
+ if [[ -d ".beads" ]] || "$BD_CMD" list &>/dev/null 2>&1; then
314
+ ACTIVE_BEADS=$("$BD_CMD" list --json 2>/dev/null | jq -c '[.[] | select(.status == "open" or .status == "in_progress")]' 2>/dev/null || echo "[]")
315
+ ACTIVE_COUNT=$(echo "$ACTIVE_BEADS" | jq 'length' 2>/dev/null || echo "0")
316
+
317
+ if [[ "$ACTIVE_COUNT" -gt 0 ]] && [[ "$ACTIVE_COUNT" != "0" ]]; then
318
+ echo "## Active Beads"
319
+ echo "$ACTIVE_BEADS" | jq -r '.[:5] | .[] |
320
+ "- [\(.id // .ID)] \(.title // .Title) (\(.status // .Status))"
321
+ ' 2>/dev/null
322
+ echo ""
323
+ fi
324
+
325
+ # Show ready work (no blockers)
326
+ READY_BEADS=$("$BD_CMD" ready --json 2>/dev/null || echo "[]")
327
+ READY_COUNT=$(echo "$READY_BEADS" | jq 'length' 2>/dev/null || echo "0")
328
+
329
+ if [[ "$READY_COUNT" -gt 0 ]] && [[ "$READY_COUNT" != "0" ]]; then
330
+ echo "## Ready Work (No Blockers)"
331
+ echo "$READY_BEADS" | jq -r '.[:3] | .[] |
332
+ "- [\(.id // .ID)] \(.title // .Title)"
333
+ ' 2>/dev/null
334
+ echo ""
335
+ fi
336
+ fi
337
+ fi
338
+
302
339
  # Output suggested follow-ups
303
340
  FOLLOWUP_COUNT=$(echo "$FOLLOWUPS" | jq 'length' 2>/dev/null || echo "0")
304
341
  if [[ "$FOLLOWUP_COUNT" -gt 0 ]] && [[ "$FOLLOWUP_COUNT" != "null" ]] && [[ "$INCLUDE_FOLLOWUPS" == "true" ]]; then