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,…
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
$ npx -y skills add alivecontext/alive --skill capture-context --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/capture-contextContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: alive:capture-context description: "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 content, routes to bundles, extracts tasks and insights into the stash." user-invocable: true
Bring context in. The most important skill in the system.
If capture is hard, people skip it. If people skip it, the system dies. Capture must feel instant.
---
**Capture is one of two operations that writes mid-session** (the other is bundle drafts). Everything else waits for save.
---
No processing. Just identification.
Even if extraction fails or is skipped, the raw content is preserved.
**Pre-capture check:** Before proposing a destination, grep the target walnut's bundle manifests and `brief.md` files for the inbox filename. If found, the file is already referenced — route into that bundle's `raw/` with a note "file was already cited by this bundle" rather than creating a duplicate reference elsewhere.
**Routing decision:** Check `_kernel/now.json` for an active `bundle:` field.
**If active bundle exists — all three steps are mandatory, not optional:**
1. **Write raw file** → `{bundle}/raw/[name].[ext]` with frontmatter added (type, date, source, squirrel — see type-specific templates below) 2. **Update manifest** → add entry to `context_routes:` list in `{bundle}/context.manifest.yaml` with `path:`, `description:`, `type:`, `date:` (see Manifest Enrichment below) 3. **Add inline summary** → append structured summary to manifest body (## Summary, ## Key Points, ## Action Items) so the raw file rarely needs to be re-read
**Do not skip steps 2 or 3.** A raw file without a manifest entry is invisible to the context system. A manifest entry without a summary means every future session has to re-read the raw file. Both waste tokens and lose context.
**If no active bundle:**
╭─ 🐿️ captured content — where does it go? │ │ 1. Create new bundle for this │ 2. Add to existing bundle: [list bundle names from walnut root] │ 3. Capture standalone (legacy _references/ style) ╰─
If creating a new bundle: scaffold `{name}/context.manifest.yaml` from `templates/bundle/context.manifest.yaml`, then route raw into its `raw/`.
If standalone (backward compat or no bundle fits): write to `_inbox/raw/[name].[ext]` with a minimal manifest entry. The `_inbox` bundle is a holding pen — route out at next save.
**Manifest enrichment.** Whether updating a bundle manifest or creating a standalone manifest, always write:
**Frontmatter** (scan tier) — the `context_routes:` entry in the bundle manifest includes:
**Inline summary** (read tier) — if the raw content is rich enough, add a structured summary to the bundle manifest body. Default sections:
Type-specific manifest templates (in `templates/manifest/`) can guide the summary structure. Use the template sections when one exists.
The summary should be **detailed enough that you rarely need the raw file.** Write it like someone who has 30 seconds to understand what this reference contains.
**File naming:** `YYYY-MM-DD-descriptive-name.ext` **Garbage filenames** (CleanShot timestamps, IMG_xxxx) get renamed on import.
**Backward compat:** If the walnut still uses `_kernel/_references/`, route there instead. The bundle routing is for walnuts that have bundles (detected by `context.manifest.yaml` files).
Extract actionable content. Bounded by content type — don't over-extract.
| Type | Extract | |------|---------| | Email | Tasks, commitments, deadlines, people mentioned | | Transcript | Decisions, action items, named entities, key quotes | | Screenshot | Visual analysis summary | | Document | Key claims, relevant sections, metadata | | Message | Action items, people, context | | Article | Key arguments, relevant quotes, source credibility | | Research | Synthesis, sources consulted, open questions |
Extracted items become stash items tagged with destination walnuts. They route at save, not immediately.
**Stash insights from references.** When extracting, actively look for powerful phrases, domain knowledge, and standing truths. These should be stashed as insight candidates — bold, quotable, evergreen. Not everything — just the stuff that would change how the squirrel operates in this walnut. Example: a transcript reveals "we always lose 2 weeks to regulatory review" → stash as insight candidate.
---
**Fast capture** (default): Stage 0 + 1 only. Store raw, create manifest entry, index. Done. Insta
Repo: alivecontext/alive
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,…
Create, share, and graduate bundles — the unit of focused work within a walnut. Manages the full bundle lifecycle from creation through sharing to graduation.
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,…
Generate a believable, lived-in ALIVE world from a free-text persona description (custom path) or a deterministic sandbox preset. Routes the…
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.…
The human mentions a walnut to work on, asks about a specific venture/experiment/project, or wants to check status — not just explicit 'load X'. Load the brief…