From hebb vault
Use this skill whenever the user drops raw information into Claude that needs filing into the current vault. Triggers on "ingest this", "file this", "categorise this", "drop this in the vault", "where should this go", "add this to the vault", and any message where the user pastes contacts, notes, lists, links, screenshots, or other raw content without naming a destination. Also triggers when the user has set up an ingest/categorisation session and follows up with raw content. Don't trigger for retrieval-only questions or edits to a file already open.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hebb:vault-ingestThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Files incoming information into the right place in a PARA-structured vault at
Files incoming information into the right place in a PARA-structured vault at creation time, and enriches it with related existing material so the vault stays the source of truth.
Each vault documents its own conventions (exact folders, area categories, tagging,
whether it keeps an ingest log) in its CLAUDE.md. Follow that file when it
exists; the layout and rules below are the generic defaults to fall back on.
The hebb MCP (mcp__hebb__*) is the primary retrieval and indexing surface.
Prefer it over directory listing or grep when looking for existing content.
1-Projects/ — active work with a deadline or completion criterion2-Areas/ — ongoing responsibilities, no end date3-Resources/ — reference and learning material4-Archives/ — completed projects, inactive materialNotes/ — atomic evergreen ideas, filename YYYYMMDDHHNN - Clear idea.mdJournal/Daily|Weekly|Monthly|Yearly/ — time-stamped reflectionsFile at creation; don't stage everything in a holding/inbox folder. Defer to the
vault's CLAUDE.md for any different or additional folders.
Some incoming content is personal: coaching reflections, performance reviews, family or relationship context, health, finances. File these with explicit visibility framing rather than letting them blend with work material:
visibility: private, #private tagBackground context for understanding the user's framing lives in these folders. Citing the specifics in other notes does not.
Confirm today's date from the session context before stamping any file. When the user says "today" or "had a chat", use that date — but state it explicitly in the report so they can correct before files are stamped. Date errors create wiki-link debt across the vault that's painful to clean up. Worth the one line.
Run mcp__hebb__search_vault for the key entities/topics in the incoming content
before creating anything. The vault is the source of truth — duplicating into a
new note when one already exists fragments it. If a related note already exists,
default to appending to it rather than starting a new one.
Use mcp__hebb__get_context_for_topic or mcp__hebb__expand_context when the
content sits in a broader topic and you want a wider sweep of related material.
If the vault keeps an ingest log and there's any chance the same source has been ingested before, search the log too.
Apply this order (most specific destination wins):
1-Projects/<project>/2-Areas/<category>/3-Resources/<topic>/Notes/ with YYYYMMDDHHNN - Clear idea.mdJournal/Daily|Weekly|Monthly/4-Archives/ or deleteIf genuinely uncertain (e.g. could be project-scoped or general reference), ask
with AskUserQuestion. Don't ask reflexively — when the answer is clear from the
content, just file. Reflexive questions waste the user's time.
A list of three agencies becomes three agency notes plus a small index, not one combined file. Rule of thumb: if each item could plausibly accumulate its own contacts, links, history, or related material over time, give it its own note and wiki-link them together. If the items are tightly bound (attributes of a single concept), keep them in one note.
Recurring streams. For things that arrive periodically (fortnightly product updates, sprint updates, weekly reports, meeting series), set up the folder structure once and subsequent items slot in without re-deciding:
<Area>/Teams/<Team>/_TEAM-INFO.md + Updates/ (or Sprint Updates/) subfolder<Series>/_SERIES-INFO.md + dated notes for meeting series<Source>/_INDEX.md + dated pointer notes for low-priority registersAfter creating the new note, search the vault for content about the same
entities/topics and decide what to link or consolidate. If the vault's CLAUDE.md
names legacy or import folders, sweep those too.
Worth pulling (durable, reusable reference): profiles and bios, positioning or testimonial wording, contacts that aren't time-bound, past engagements that explain current relationships, reusable templates or playbooks.
Skip (point-in-time noise): one-off action items, staffing decisions from years ago, passing daily-note mentions with no standalone substance, logistics-only meeting notes.
When pulling content forward, fix typos and modernise formatting. Add a date marker or "(legacy)" annotation if the details might be stale.
If told someone has left, a contract has lapsed, or a project has wound down, mark the historical record clearly ("Left", "Past engagements", "Status: closed") rather than removing it. The history is often why the current state makes sense.
End the writing operation with mcp__hebb__reindex_vault. The search index is the
primary retrieval path — a stale index means invisible content. Once per ingest
operation is enough, not once per file.
If the vault's CLAUDE.md defines an ingest log, append one row per ingest
operation (not per file), newest at the top:
| Date | Source | Type | Primary destination | Notes |
meeting,
comms, memo, project, reference); consistency matters more than taxonomy.Reindex once more after writing the log entry — it's a vault write. The log is the source of truth for "have I ingested this before?"; search it first if duplication is a risk.
Close with a short summary in the chat: the date you're filing under, which notes were filed where (as markdown links so the user can click through), what was pulled from existing material, what was skipped and why. Keep it tight, and mention the ingest log entry if one was made.
Action propagation. Capture any actions raised by the ingest inside the
canonical note, and flag the action-bearing ones in a dedicated section
(## Actions raised or ## Items worth a glance). Don't promote actions to a
central register (OPEN-ACTIONS or equivalent) without asking. Ask once: "Add
these to the action register or leave in the note?" Repeated registry updates
during rapid-fire ingest sessions create friction and risk over-tracking. If the
user has already said "leave actions for now" in this session, take it as
standing instruction and don't re-ask.
.eml)Parse with Python's email module (policy.default). Extract plain-text body +
named attachments.
Strip when ingesting:
Preserve:
When in doubt, strip. The source .eml file remains accessible if specifics are
needed later.
Copilot recaps, Otter notes, Granola exports — anything that's already paraphrased rather than verbatim transcript.
sharepoint_search, chat_message_search,
read_resource with file:///{driveId}/{itemId}).Parse to extract <v Speaker>text</v> tuples. Collapse consecutive turns by the
same speaker. Compute participation share by word count for the attendees table.
Save the raw VTT to Artifacts/ alongside the meeting note.
word/document.xml for paragraph text.pages parameter to read in chunks if large; large PDFs require
explicit page ranges.Artifacts/ alongside the note when substantive.#resource, #area, #project,
#permanent) with context (#work, #personal, #private) and domain tags.[[Note Name]] for internal references. Link liberally — a link
to a not-yet-written note is a useful breadcrumb, not an error.tags: [...] is usually enough. Don't add
elaborate templates unless asked.YYYYMMDDHHNN - Clear idea.md only for
atomic Notes/ entries.assets/ alongside the note as
Pasted image YYYYMMDDHHMMSS.png.CLAUDE.md.#private into
work-facing notes unless the user explicitly asks.The user pastes a list of three agency contacts.
mcp__hebb__search_vault for each agency name to find existing notes (and
check the ingest log if duplication is a risk).3-Resources/Agencies/ — reference material, ongoing
relationships, will likely grow. If it had felt project-scoped, ask once.3-Resources/Agencies/, plus a small
Agencies.md index that wiki-links them.mcp__hebb__reindex_vault.reference, destination [[Agencies]], notes). Reindex again.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cizer/hebb --plugin hebb