Skip to content

/my-context-graph

Render an interactive map of your world. Generates the world index from all walnut and bundle frontmatter, then produces a force-directed graph showing connections between walnuts, people, bundles, and tags. Opens in the browser.

shell
$ npx -y skills add alivecontext/alive --skill my-context-graph --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/my-context-graph
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Render an interactive map of your world. Generates the world index from all walnut and bundle frontmatter, then produces a force-directed graph showing connections between walnuts, people, bundles, and tags. Opens in the browser.

SKILL.md

my-context-graph.SKILL.md
name: alive:my-context-graph
description: "Render an interactive map of your world. Generates the world index from all walnut and bundle frontmatter, then produces a force-directed graph showing connections between walnuts, people, bundles, and tags. Opens in the browser."
user-invocable: true

Map

Visual overview of the entire ALIVE world — connections, clusters, health.

Not a list (that's the tree in alive:world). Not a search (that's alive:search-world). Map is spatial — it shows how everything connects and where the energy is.

---

What It Does

1. Generate the World Index

Run `generate-index.py` from the plugin to walk all walnuts and collect frontmatter. Always use the plugin cache copy — never copy scripts to the world (world-local copies drift from the plugin and produce stale data).

python3 "$ALIVE_PLUGIN_ROOT/scripts/generate-index.py" "$WORLD_ROOT"

The script walks all directories for `key.md` files, handling both `_kernel/key.md` (current structure) and root-level `key.md` (flat/legacy structure). It deduplicates entries and skips template walnuts.

**Collected data per walnut:**

  • Name, type, goal, phase, rhythm, tags
  • People (from `key.md` `people:` field — multi-line list)
  • Links (from `key.md` `links:` field — wikilink extraction)
  • Parent (from `key.md` `parent:` field)
  • Bundles (detected by `*/context.manifest.yaml` in walnut root — name, status, goal)
  • Task counts (from `_kernel/now.json` if present)
  • Last updated (from `_kernel/now.json` `updated` field)

**Projection tiers:** The graph supports three projection levels for controlling visual density:

  • **Tier 1 — Walnuts only** — just the walnut nodes and their connections. Fast, clean overview.
  • **Tier 2 — Walnuts + People** — adds people nodes that bridge multiple walnuts. Shows relationship topology.
  • **Tier 3 — Full graph** — walnuts, people, bundles, tags. Maximum detail. Can get dense in large worlds.

Default to Tier 2. Offer toggle controls for Tier 1 (simplified) and Tier 3 (full detail).

**Outputs:**

  • `.alive/_index.yaml` — human-readable world index
  • `.alive/_index.json` — machine-readable for graph consumption

2. Render the Graph

Run `generate-graph.py` from the plugin to read the JSON index and generate an interactive D3.js graph.

python3 "$ALIVE_PLUGIN_ROOT/scripts/generate-graph.py" "$WORLD_ROOT"

The graph is written to `.alive/context-graph.html` — an HTML file with embedded data. Requires internet connection (D3.js loads from CDN, fonts from Fontshare/Google Fonts).

**Open in browser:**

# macOS
open "$WORLD_ROOT/.alive/context-graph.html"
# Linux
xdg-open "$WORLD_ROOT/.alive/context-graph.html"
# Windows
start "" "$WORLD_ROOT/.alive/context-graph.html"

**Theme:** Alive branded. Light mode default (cream #FAF8F5, orange primary #F97316). Dark mode toggle (forest green #0A1F0D, copper #B87333 accents). Custom fonts: Array (display), Khand (headings), Inter (body).

**Nodes:**

  • Walnuts (primary nodes — sized by bundle count and recency)
  • People (toggle — shown for people who connect 2+ walnuts)
  • Bundles (expandable — click a walnut to show its bundles as orbiting nodes)
  • Central node connecting top-level walnuts
  • Inputs buffer node showing unrouted count

**Edges:**

  • `links:` field connections between walnuts
  • `parent:` -> child relationships (dashed)
  • Person -> walnut connections (dotted, when people shown)
  • Bundle -> parent walnut (when expanded)

**Color by ALIVE domain:**

  • Life = blue
  • Ventures = orange
  • Experiments = green
  • Archive = warm gray
  • People = purple
  • Inputs = red

Colors adapt per theme (lighter in dark mode for visibility).

**Size by activity:**

  • 15+ bundles = largest (20px)
  • 5+ bundles = large (15px)
  • Updated in last 2 days = medium-large (12px)
  • Updated in last week = medium (9px)
  • Stale = small (5px)

**Health signals visible:**

  • Active (recent) = full opacity, glow on today's updates
  • Quiet (1-2 weeks) = reduced opacity
  • Waiting (2+ weeks) = dim, small
  • Bundle-heavy walnuts get outer glow rings

3. Open in Browser

╭─ squirrel map generated
│
│  58 walnuts, 78 people, 41 bundles
│  60 nodes, 36 links, 11 people connectors
│
│  > Opening in browser...
╰─

---

Graph Features

Interactive Controls

  • **Hover node** -> tooltip with goal, phase, bundle count, urgent task count
  • **Hover node** -> highlight all connected nodes and edges, dim everything else
  • **Click walnut** -> expand bundles as orbiting nodes + open details panel
  • **Click node** -> pin details panel (right sidebar) with full context
  • **Drag** -> reposition nodes (physics simulation)
  • **Zoom + pan** -> navigate large worlds
  • **Hover edge** -> show connection type label (linked / parent -> child / person name)
  • **Esc** -> close details panel

Details Panel

Click any node to open a pinned side panel showing:

  • Name, domain badge, phase badge
  • Goal description
  • Metadata (rhythm, last updated, days since, session count)
  • Urgent + active task count badges (from the index's `task_counts` payload)
  • Bundle list with status badges (draft/prototype/published/done)
  • Active bundle highlighted in primary color
  • People list
  • Tags

Search

  • **`/` hotkey** -> focus search box
  • Searches walnut names, goals, tags, and people
  • Matching nodes highlighted, everything else dims
  • **Esc** -> clear search

Theme Toggle

  • Light mode default (Alive cream branding)
  • Dark mode toggle (forest green + copper)
  • Theme persists via localStorage
  • Sun/moon toggle in header

Controls

  • **reset view** -> zoom to fit
  • **show people** -> toggle people connector nodes
  • **labels on/off** -> toggle node labels
  • **show archive** -> toggle archived walnuts
  • **cluster** -> group nodes by ALIVE domain with background labels
  • **projection tier** -> switch between Tier 1/2/3

Bundle Expansion

Click any walnut with bundles to expand them as orbiting nodes:

  • Bundle nodes sized by active status (active
Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withalive

Personal Context Manager for Claude Code. Your life in walnuts.

Get the whole plugin, auto-invoked
Stats
121
Stars
0
Views
6
Forks
Active
Maintenance
Python
Language
MIT
License
8d ago
Last commit
5mo ago
Created

Repo: alivecontext/alive

Other skills on alive.