/world
The human doesn't know what to work on, or wants to see everything at once. They need the big picture — what's active, what's stale, what needs attention. Renders a live world view grouped by ALIVE domain, then routes to open, tidy, find, history, or map.
$ npx -y skills add alivecontext/alive --skill world --agent claude-codeHow 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
/world
Context preview
The summary Claude sees to decide when to auto-load this skill.
The human doesn't know what to work on, or wants to see everything at once. They need the big picture — what's active, what's stale, what needs attention. Renders a live world view grouped by ALIVE domain, then routes to open, tidy, find, history, or map.
SKILL.md
world.SKILL.mdname: alive:world
description: "The human doesn't know what to work on, or wants to see everything at once. They need the big picture — what's active, what's stale, what needs attention. Renders a live world view grouped by ALIVE domain, then routes to open, tidy, find, history, or map."
user-invocable: true
World
This is Mission Control. When the human opens their world, it should feel like booting an operating system — everything they care about, at a glance, with clear paths to action.
NOT a database dump. NOT a flat list. A living view of their world, grouped by what matters, showing relationships, surfacing what needs attention.
---
Load Sequence
1. **Read the injected `<WORLD_INDEX>`** — it's already in your session context from the SessionStart hook. Contains every walnut's type, goal, phase, rhythm, updated, people, links, tags, bundles, and parent relationships. Zero file reads needed. If `<WORLD_INDEX>` is not in context, fall back to reading `.alive/_index.yaml` directly. 2. **If no index exists at all** — generate it first (`python3 "$ALIVE_PLUGIN_ROOT/scripts/generate-index.py" "$WORLD_ROOT"`), then read the output. Fall back to manual scanning only on first-time setup before the index infrastructure exists. 3. **Freshness check** — read the `generated:` timestamp from the index. Display it in the dashboard header. If older than 10 minutes, show a warning. If older than 1 hour, suggest regeneration. This makes index staleness visible instead of invisible. 4. Build the tree from the index — parent/child relationships from `parent:` field 5. **Lightweight fresh checks** — one Bash call each, no subagents, no Explore agents:
- **Unsaved sessions with stash:** already in the index as `unsaved_with_stash:`. If non-zero, surface in the Attention section. No bash loop needed.
- **Unrouted inputs:** resolve the world root via the doctor JSON surface, then list the absolute path. Never use a relative `ls 03_Inbox/` — it silently fails when the Bash tool's cwd isn't the world root. One-liner:
WR=$(alive doctor --check=world-root --json | jq -r '.world_root') && [ -n "$WR" ] && ls "$WR/03_Inbox/" 2>/dev/null | grep -v '^\.' | grep -v '^Icon'
Doctor's pinned-strategy result is the authoritative resolver — preferred over raw config-file reads, which mangle paths with internal whitespace. Just the filenames, no deep reads.
- **API context:** only if context sources are listed in the session start injection (already in your context from the hook — do NOT re-read preferences.yaml).
6. Compute attention items from fresh checks + index staleness signals 7. **Inbox triage (background)** — if `03_Inbox/` has items, dispatch a background agent to triage them. Don't wait for it — render the dashboard immediately, the triage results arrive while the human reads.
Inbox Triage Agent
Dispatch with `run_in_background: true` when inbox has 1+ items. The agent:
1. Reads the subagent brief from the plugin templates (for ALIVE context) 2. Lists all files in `03_Inbox/` with `ls -la` 3. For each item, determines:
- **Type:** transcript, email, document, screenshot, video, extraction directory, financial, unknown
- **Likely destination walnut:** match against the world index (injected in the agent prompt) by keywords, people names, project names
- **Priority:** urgent (contains decisions/deadlines), normal, low (reference material)
- **Age:** how old is the file
4. Returns a structured triage report
When the background agent completes, surface the results:
╭─ 🐿️ inbox triaged (8 items)
│
│ Urgent
│ march-expenses.csv → finance (transactions, needs review)
│ error-log-april-2.txt → my-startup (build error from deploy)
│
│ Route
│ team-dinner-recap.mp4 → my-startup (event footage)
│ fathom-extraction/ → runs via /alive:mine-for-context
│ otter-extraction/ → runs via /alive:mine-for-context
│
│ Auto-route (low priority)
│ gmail/ → capture via sync script
│ slack/ → capture via sync script
│
│ ▸ Route all? Or review one at a time?
│ 1. Route all suggested
│ 2. Review each
│ 3. Skip for now
╰─
The triage agent gets the world index in its prompt so it knows every walnut, person, and active bundle. It matches by name, keywords, and file type patterns. It does NOT move files — it suggests. The human confirms.
**DO NOT read preferences.yaml** — it's already injected at session start. **DO NOT read individual walnut files** (key.md, now.json, log.md) — the index has everything. **DO NOT read .alive/_squirrels/*.yaml files** — recent sessions are in the index under `recent_sessions:` and unsaved stash count is in `unsaved_with_stash:`. **DO NOT spawn Explore agents or subagents** for the dashboard — use the index and the one bash check above. The entire dashboard should render from data already in context plus 1 fast bash call (inputs listing).
State Detection
Before rendering, detect system state:
- **Fresh install** (no walnuts exist) → route to `setup.md`
- **Previous system detected** (v3/v4 `_brain/` folders exist) → offer migration via `/alive:create-walnut` migrate mode
- **Normal** → render dashboard
---
Dashboard Layout
The dashboard has 4 sections. Each tells you something different.
Section 1: Right Now
What needs the human's attention TODAY. Not everything — just what's active and demanding.
╭─ 🐿️ your world
│
│ RIGHT NOW
│ ──────────────────────────────────────────────
│
│ 1. my-startup launching
│ Urgent: 1 · Active: 3
│ Last: 2 hours ago · 6 sessions this week
│
│ 2. freelance-agency legacy
│ Urgent: 3 · Active: 0
│ Last: 2 days ago
│ People: Jake Chen, Sarah Mills
│
│ 3. social-content building
│ Urgent: 0 · Active: 8
│ ⚠ 4 days past rhythm
│
╰─
Only show walnuts that are `active` or
Read more
name: alive:world description: "The human doesn't know what to work on, or wants to see everything at once. They need the big picture — what's active, what's stale, what needs attention. Renders a live world view grouped by ALIVE domain, then routes to open, tidy, find, history, or map." user-invocable: true
World
This is Mission Control. When the human opens their world, it should feel like booting an operating system — everything they care about, at a glance, with clear paths to action.
NOT a database dump. NOT a flat list. A living view of their world, grouped by what matters, showing relationships, surfacing what needs attention.
---
Load Sequence
1. **Read the injected `<WORLD_INDEX>`** — it's already in your session context from the SessionStart hook. Contains every walnut's type, goal, phase, rhythm, updated, people, links, tags, bundles, and parent relationships. Zero file reads needed. If `<WORLD_INDEX>` is not in context, fall back to reading `.alive/_index.yaml` directly. 2. **If no index exists at all** — generate it first (`python3 "$ALIVE_PLUGIN_ROOT/scripts/generate-index.py" "$WORLD_ROOT"`), then read the output. Fall back to manual scanning only on first-time setup before the index infrastructure exists. 3. **Freshness check** — read the `generated:` timestamp from the index. Display it in the dashboard header. If older than 10 minutes, show a warning. If older than 1 hour, suggest regeneration. This makes index staleness visible instead of invisible. 4. Build the tree from the index — parent/child relationships from `parent:` field 5. **Lightweight fresh checks** — one Bash call each, no subagents, no Explore agents:
- **Unsaved sessions with stash:** already in the index as `unsaved_with_stash:`. If non-zero, surface in the Attention section. No bash loop needed.
- **Unrouted inputs:** resolve the world root via the doctor JSON surface, then list the absolute path. Never use a relative `ls 03_Inbox/` — it silently fails when the Bash tool's cwd isn't the world root. One-liner:
WR=$(alive doctor --check=world-root --json | jq -r '.world_root') && [ -n "$WR" ] && ls "$WR/03_Inbox/" 2>/dev/null | grep -v '^\.' | grep -v '^Icon'
Doctor's pinned-strategy result is the authoritative resolver — preferred over raw config-file reads, which mangle paths with internal whitespace. Just the filenames, no deep reads.
- **API context:** only if context sources are listed in the session start injection (already in your context from the hook — do NOT re-read preferences.yaml).
6. Compute attention items from fresh checks + index staleness signals 7. **Inbox triage (background)** — if `03_Inbox/` has items, dispatch a background agent to triage them. Don't wait for it — render the dashboard immediately, the triage results arrive while the human reads.
Inbox Triage Agent
Dispatch with `run_in_background: true` when inbox has 1+ items. The agent:
1. Reads the subagent brief from the plugin templates (for ALIVE context) 2. Lists all files in `03_Inbox/` with `ls -la` 3. For each item, determines:
- **Type:** transcript, email, document, screenshot, video, extraction directory, financial, unknown
- **Likely destination walnut:** match against the world index (injected in the agent prompt) by keywords, people names, project names
- **Priority:** urgent (contains decisions/deadlines), normal, low (reference material)
- **Age:** how old is the file
4. Returns a structured triage report
When the background agent completes, surface the results:
╭─ 🐿️ inbox triaged (8 items) │ │ Urgent │ march-expenses.csv → finance (transactions, needs review) │ error-log-april-2.txt → my-startup (build error from deploy) │ │ Route │ team-dinner-recap.mp4 → my-startup (event footage) │ fathom-extraction/ → runs via /alive:mine-for-context │ otter-extraction/ → runs via /alive:mine-for-context │ │ Auto-route (low priority) │ gmail/ → capture via sync script │ slack/ → capture via sync script │ │ ▸ Route all? Or review one at a time? │ 1. Route all suggested │ 2. Review each │ 3. Skip for now ╰─
The triage agent gets the world index in its prompt so it knows every walnut, person, and active bundle. It matches by name, keywords, and file type patterns. It does NOT move files — it suggests. The human confirms.
**DO NOT read preferences.yaml** — it's already injected at session start. **DO NOT read individual walnut files** (key.md, now.json, log.md) — the index has everything. **DO NOT read .alive/_squirrels/*.yaml files** — recent sessions are in the index under `recent_sessions:` and unsaved stash count is in `unsaved_with_stash:`. **DO NOT spawn Explore agents or subagents** for the dashboard — use the index and the one bash check above. The entire dashboard should render from data already in context plus 1 fast bash call (inputs listing).
State Detection
Before rendering, detect system state:
- **Fresh install** (no walnuts exist) → route to `setup.md`
- **Previous system detected** (v3/v4 `_brain/` folders exist) → offer migration via `/alive:create-walnut` migrate mode
- **Normal** → render dashboard
---
Dashboard Layout
The dashboard has 4 sections. Each tells you something different.
Section 1: Right Now
What needs the human's attention TODAY. Not everything — just what's active and demanding.
╭─ 🐿️ your world │ │ RIGHT NOW │ ────────────────────────────────────────────── │ │ 1. my-startup launching │ Urgent: 1 · Active: 3 │ Last: 2 hours ago · 6 sessions this week │ │ 2. freelance-agency legacy │ Urgent: 3 · Active: 0 │ Last: 2 days ago │ People: Jake Chen, Sarah Mills │ │ 3. social-content building │ Urgent: 0 · Active: 8 │ ⚠ 4 days past rhythm │ ╰─
Only show walnuts that are `active` or
Showing the first part of this file.
Personal Context Manager for Claude Code. Your life in walnuts.
Repo: alivecontext/alive
Other skills on alive.
- /build-extensions
Create new skills, rules, and hooks for your world. Checks plugin compatibility, writes to the human's space (not plugin cache), validates against the system, and suggests when repeated work should become a skill. For marketplace-ready plugins, hands off to the contributor
Open skill - /bundle
Create, share, and graduate bundles — the unit of focused work within a walnut. Manages the full bundle lifecycle from creation through sharing to graduation.
Open skill - /capture-context
Use when external content arrives in the session — emails, transcripts, screenshots, documents, files, or in-session research worth keeping. Also use when there's nothing obvious to capture — the skill checks 03_Inbox/ for unrouted files and enters inbox scan mode. Stores raw
Open skill - /create-walnut
Something new is emerging. A venture, an experiment, a person entering the orbit, a life area getting serious. It needs its own walnut — its own identity, history, and future. Scaffolds the full structure, maps existing context sources, and optionally migrates files across.
Open skill - /demo
Generate a believable, lived-in ALIVE world from a free-text persona description (custom path) or a deterministic sandbox preset. Routes the create/list/activate/deactivate/delete/status surface and orchestrates the 5-stage subagent generation pipeline.
Open skill - /feedback
Report a bug, request a feature, or send general feedback to the ALIVE team. Collects safe system metadata, shows a preview, and creates a GitHub Issue. Nothing personal leaves the machine, only what you type and anonymous system info.
Open skill

