Skip to content
Back to skills

Second Brain Ingest

ASecurity

Ingests an item (inline text and/or attached on-device files) into the domain-split knowledge wiki. Classifies the item's domain (work | life), critically triages each fact (information vs. bloat → document / one line / nothing), writes a factual source page, copies attached artifacts into raw/assets, re-synthesizes the affected entity and concept pages, resolves entities to canonical [[wikilinks]] via aliases.md, and maintains the strong per-domain index and log. Knowledge-only — no tasks, n...

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsgorailsdocumentation

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add philipyaz/cos --skill second-brain-ingest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Second Brain Ingest?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Second Brain Ingest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/philipyaz-second-brain-ingest/badge)](https://www.skillsdirectory.com/skills/philipyaz-second-brain-ingest)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: second-brain-ingest
description: >
  Ingests an item (inline text and/or attached on-device files) into the
  domain-split knowledge wiki. Classifies the item's domain (work | life),
  critically triages each fact (information vs. bloat → document / one line / nothing),
  writes a factual source page, copies attached artifacts into raw/assets,
  re-synthesizes the affected entity and concept pages, resolves entities to
  canonical [[wikilinks]] via aliases.md, and maintains the strong per-domain
  index and log. Knowledge-only — no tasks, no board, no channel polling.
  Invoked headlessly by the vault Agent SDK client via the MCP ingest route.
allowed-tools: Read Write Edit Glob Grep
---

# Second Brain — Ingest (knowledge-only)

This skill turns one incoming item into durable **knowledge** in the domain-split
wiki. It does **one** thing: ingest. It does **not** route to a board, does **not**
create tasks/reminders/events, does **not** poll Gmail / OpenWhispr / Calendar, and
does **not** own any watermark. It receives **marshalled inputs** from the MCP ingest
route: the **inline text** of the item, and zero or more **absolute file paths** to
attached on-device files. Work the inputs you are given; do not go looking for more.

The vault is **knowledge-only**: a fact / context / who-what-why. **Never** write task
checkboxes (`- [ ]`) into any page. Open work and to-dos live on the board, which this
skill has no access to and must not invent.

## Vault layout

The wiki is **split by domain**. Each domain has its own self-contained wiki tree:

| Root | When |
|---|---|
| `work/wiki/` | Professional knowledge — the venture, the role, advisory, work entities/concepts/sources. |
| `life/wiki/` | Personal knowledge — trips, health, admin, personal entities/concepts/sources. |
| `shared/wiki/` | **Truly-dual** entities only — pages referenced by *both* domains (the user themself, the city they live in). Lives under `shared/wiki/entities`. |

Each domain tree holds:

- `<domain>/wiki/index.md` — the **strong index** (see format below) — the entry point.
- `<domain>/wiki/log.md` — the append-only ingest log.
- `<domain>/wiki/entities/` — people / orgs / products / tools.
- `<domain>/wiki/concepts/` — ideas / projects / themes.
- `<domain>/wiki/sources/` — one factual page per real source.

Other shared resources at the vault root:

- `aliases.md` — the manual entity-resolution map (surface forms → canonical `[[Entity]]`).
- `raw/assets/` — preserved copies of attached artifacts. Drop attachments into
  `raw/assets/` inside your vault (the path is relative to the vault root, which is this
  session's cwd).

---

## CORE LOOP

### 0. Triage — information vs. bloat (do this FIRST)

Read the incoming item with an **executive assistant's critical eye** before writing
anything. The vault is selective — not everything that arrives deserves ink. Sort each
discrete fact into one of three tiers:

- **DOCUMENT** — a durable, genuinely new concept / entity, or a fact that *changes* an
  existing page → full synthesis (steps 1–6 below).
- **ONE LINE** — a fact that only sharpens or confirms an existing page → fold a sentence
  in, bump `updated:` / `sources:`, spawn no new page or section.
- **NOTHING** — a passing mention, one-off logistics, a restatement of what a page already
  holds, or anything with no plausible future value → write no page; append a one-line
  `triaged: no change — <gist>` to the domain `log.md`, then stop.

The test is **signal + durability, not strategy or priority**: *"Would a future reader be
worse off if this were never written?"* If no — one line, or nothing. When unsure, take the
lighter tier (a sentence is cheap; a page is costly to keep current).

**Guardrails so the filter never drops something real:**

- A fact that only makes sense *in relation to* another page always clears the bar —
  **relational facts are never NOTHING**.
- A **board case id** handed to ingest always counts as at least ONE LINE.
- For an **inline thought** with no `raw/` artifact, a NOTHING verdict still records the
  verbatim gist in the `triaged: no change` log line, so the raw text survives for a later
  pass to reconsider — nothing is ever *silently* lost.

If the whole item triages to NOTHING, log the one-liner and you're done — no source page,
no synthesis, no index touch.

### 1. Classify the DOMAIN

Decide whether the item is **work** or **life** from its content:

- **work** — your company or venture, your job/role, professional projects,
  work contacts, deliverables. *Default to `work` for ambiguous professional context.*
- **life** — trips, health, citizenship/admin, family, friends, personal logistics.
  *Default to `life` for personal context.*

The chosen domain selects the wiki root: `work/wiki` or `life/wiki`. A **truly-dual
entity** (one referenced by both sides of life — the user themself, the home city) is
written under `shared/wiki/entities` and linked from both domains' pages. Everything
else stays inside its single domain tree.

If an item genuinely spans both domains, ingest its knowledge into the **primary**
domain and link out to the relevant `shared/` entities; do not duplicate a work concept
into `life/wiki` or vice versa.

### 2. Write the source page (for a real source / attached file)

For a real source — an inline note worth preserving verbatim context, or any **attached
file** — create `<domain>/wiki/sources/<Title>.md`:

- Standard frontmatter: `tags`, `sources`, `created`, `updated` (and read-only `cases:`
  only if a board id was passed in — see step 7).
- The source's **factual** summary and key claims (no interpretation — save synthesis
  for concept pages).
- **Entities Mentioned** — `[[…]]` for each actor.
- **Concepts Covered** — `[[…]]` for each idea/project/theme.
- Filename **==** H1.

A bare inline thought with no real source artifact may not need a source page — route its
knowledge straight to the entity/concept pages.

### 3. Preserve attached artifacts

For **each absolute file path** handed to you in the inputs:

1. **Copy** the file into `raw/assets/` (relative to the vault root, which is this
   session's cwd) under a **sensible, human-readable name** (keep the original extension; disambiguate
   with a date or topic if the name is generic like `image.png`). Use `Read` to load the
   file and `Write` to write the copy (or `Read`+`Write` for text; for binary you cannot
   transform, copy by reading then writing the bytes through — preserve the original).
2. **Reference** the preserved copy from the source page via a **relative markdown link**,
   e.g. `[Original deck](../../raw/assets/2026-05-12-example-trip-deck.pdf)` from a page in
   `<domain>/wiki/sources/`. (Sources sit two levels under the vault root, so the relative
   path back to `raw/assets/` is `../../raw/assets/<file>`.)

This keeps the artifact **preserved and retrievable** — the query skill surfaces these
linked assets as associated artifacts.

### 4. Re-synthesize the affected pages (rewrite, don't append)

For **each** entity and concept the item touches, **rewrite** the page to reflect
everything now known — do **not** tack new bullets onto the end:

- Fold the new facts into the existing prose; resolve any contradiction in place and note
  it with both sources cited.
- Add the source to the page's `sources:` frontmatter and bump `updated:`.
- **Reinforce before you spawn.** Default to folding new knowledge into the best existing
  page; create a *new* entity / concept page only when the topic **earns it** — **durable**
  (matters in 6 months, not a passing mention), **standalone** (explainable without leaning
  on a sibling to define it), **referenced** (named by 2+ distinct sources, genuinely
  emphasised, or an entity actually transacted with), and **non-absorbable** (no existing
  page can hold it as a section without distorting scope). One source fanning out into a
  fan of 5 mutually-defining stubs is a merge candidate, not a win.
- Touch **only the pages the triaged facts actually move** — an unchanged page stays
  unchanged (at most a `sources:` / `updated:` touch). A genuinely pivotal source may reach
  ~10–15 pages; most change a few or one. Don't manufacture edits to hit a count — if
  you're about to touch 10+ pages or mint several new ones, stop and re-check the triage;
  breadth is usually over-documentation.
- **Re-synthesis trims, not only grows.** Each rewrite is a chance to cut what no longer
  earns its place; a touched page should come out **sharper, not just longer**.

### 5. Resolve entities to canonical [[wikilinks]]

Before linking any actor, collapse it to **one** canonical entity:

1. **Heuristic first** — match on name, known email, and existing wiki entity pages (read
   the domain `index.md` and the candidate entity page).
2. **Then `aliases.md`** (vault root) — the hand-curated map of surface forms → canonical
   `[[Entity]]`. A sender email, a spoken name, and a written name must all collapse to the
   same page.
3. If you discover a new reliable mapping, **append it to `aliases.md`** in the documented
   format (`surface · surface · … → [[Canonical Entity]]`). Never fabricate a mapping.

Every mention of a page-bearing entity/concept is `[[linked]]`. Never use raw file paths
for internal references — only `[[wikilinks]]`.

### 6. Maintain the strong index + log

- **Strong index** — update `<domain>/wiki/index.md` so every concept, entity, and source
  page in the domain appears under exactly one **overarching theme** (see the verbatim
  format below). New pages slot under their theme; a page that fits no theme goes under a
  final `## Unfiled` so nothing is dropped.
- **Log** — append to `<domain>/wiki/log.md`:

      ## [YYYY-MM-DD] ingest | <Source Title>
      Pages: created [[A]]; re-synthesized [[B]], [[C]], … (N total).
      Entities: [[X]], [[Y]]. Concepts: [[P]], [[Q]]. Assets: raw/assets/<file>.

### 7. (Optional) Record a board case id passed in the prompt — READ-ONLY

If — and only if — the ingest route passes you an explicit board case id in the prompt,
you may record it on the affected pages as a **read-only** reference:

- A `cases:` frontmatter list, e.g. `cases: [CASE-12]`.
- A human-readable body line: `**Board:** [[CASE-12]] — <title>`.

**Never** call a board tool (you have none), **never** invent or guess a case id, and
**never** add task checkboxes. This is the *only* board reference allowed on a knowledge
page, and only when an id was explicitly handed to you.

---

## STRONG-INDEX FORMAT (per domain, `<domain>/wiki/index.md`)

The spec calls for an **ultra strong index: an overarching concept which handles multiple
concepts**. So the index is **NOT** a flat list; it is a navigable **MAP** whose
top-level sections are **OVERARCHING THEMES**, each grouping its constituent concepts +
entities + sources:

```
# <Work|Life> Wiki — Index
> One-line statement of what this domain covers. Overarching map: each ## is a theme that handles multiple concepts.

## <Overarching Theme>            (e.g. for work: "Flagship venture", "Day job & team", "Skill-building"; for life: "Big trip 2026", "Health", "Citizenship & admin")
One-line framing of the theme.
- **Concepts:** [[Concept A]] — 6-word gist · [[Concept B]] — 6-word gist
- **Entities:** [[Entity X]] — role · [[Entity Y]] — role
- **Sources:** [[Source 1]], [[Source 2]]

## <next theme> ...

## Shared (cross-domain)
- [[Your Name]], [[Your City]] — live in shared/wiki/entities (referenced by both domains).
```

Rules: every concept, entity, and source page in the domain MUST appear under exactly one
theme (sources may repeat under the theme they evidence). A page that fits no theme goes
under a final "## Unfiled" so nothing is dropped. Keep each gist <=8 words. The themes
themselves are the "overarching concepts".

---

## Conventions

- **Knowledge-only.** Never write `- [ ]` task checkboxes into any wiki page.
- **Rewrite, don't append.** Re-synthesize each touched page to reflect everything known.
- **Source pages are factual.** Save interpretation/synthesis for concept pages.
- **Triage before you write — information vs. bloat.** Filter each fact to DOCUMENT / ONE
  LINE / NOTHING; a restatement bumps `updated:` and stops, a marginal mention is logged
  `triaged: no change` and not paged. ~10–15 pages is a *ceiling* for a pivotal source, not
  a target — most ingests create 0–1 new pages.
- **Reinforce before you spawn; re-synthesis trims as well as adds.** Fold into an existing
  page by default, and keep pages lean and sharp.
- **`[[wikilinks]]` for every internal reference.** Never raw file paths.
- **Filename == H1** on every page.
- **Domain-split is real.** Keep work knowledge in `work/wiki`, life in `life/wiki`;
  only truly-dual entities live in `shared/wiki`. No cross-domain leaks.
- **Resolve entities first** — heuristic, then `aliases.md`; append new reliable aliases.
- **Strong index, not a flat list** — themes that group concepts/entities/sources.
- **No board, no channels, no watermarks.** This skill receives marshalled inputs and
  produces knowledge. It owns nothing outside the wiki.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.