Skip to content
Back to skills

Ingest

ASecurity

Turn a raw session notes file into an ingested note, ready for the enrich stage. Defaults to keeping it whole; only splits when bullets show a real cross-topic signal. Stage 1 of the processing pipeline.

  • 10 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
data-aibash

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add technicalpickles/pickled-claude-plugins --skill ingest --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ingest?

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

Security grade badge for Ingest
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/technicalpickles-ingest/badge)](https://www.skillsdirectory.com/skills/technicalpickles-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: ingest
description: Turn a raw session notes file into an ingested note, ready for the enrich stage. Defaults to keeping it whole; only splits when bullets show a real cross-topic signal. Stage 1 of the processing pipeline.
allowed-tools:
  - Read(~/.claude/vaults/**/*.md)
  - Write(~/.claude/vaults/**/*.md)
  - Edit(~/.claude/vaults/**/*.md)
  - Bash(npx @techpickles/sb:*)
---

# Ingest Stage

Turn a raw session notes file (type: `session-notes`) into an ingested
insight, ready for the `enrich` stage. Defaults to keeping it as one
note — see "Exception" below for when to split.

See `references/pipeline.md` for stage definitions and status flow.

## Input

A session notes file in the inbox with `status: raw` and `type: session-notes`.

## Default: enrich whole

Most session notes — including every `devlog`-produced one — are already
well-organized: one session, one provenance (repo/branch/issue), a handful
of related bullets. Splitting them into N separate notes mints
near-duplicate notes that mostly route to the same destination anyway — a
real run against 32 session notes would have exploded into 120-140
near-duplicates that mostly filed to the same destination.

Default behavior: keep the session note as ONE note. Change its
frontmatter in place, using the Edit tool:
- `status: raw` → `status: ingested`
- `type: session-notes` → `type: insight`

Don't create any new files. Don't touch the body — `enrich` handles prose
cleanup next.

## Exception: split when bullets genuinely diverge

Check for a real cross-topic signal before splitting — not a bullet count.
Read the note's bullets:

- If every bullet shares the same repo/branch/issue context (the common
  case, and always true for a single `devlog` session), keep it whole.
- If bullets explicitly reference **different** repos, branches, or issues
  within the same file (only possible in hand-authored or legacy
  multi-topic session notes — `devlog` output never does this), split
  those bullets into separate notes instead:

  There's no structured per-bullet frontmatter for this — repo/branch/issue
  only ever exist once, at the file level. Infer divergence from what the
  bullet text itself says (e.g. a bullet's prose names a different repo
  than the file's own frontmatter, or than another bullet). Older notes
  may carry `bean:` instead of `issue:`; treat them the same, and copy
  whichever key the source note used.

  1. For each insight, create a new note via
     `sb note create --source auto --title "{insight title}"` with
     `status: ingested`, `type: insight`, `source-session: {original session filename}`,
     and that bullet's own repo/branch/issue.
  2. Write the note body (the bullet text, cleaned into a sentence or
     short paragraph) using the Write tool.
  3. Update the original session file's status to `ingested` using the
     Edit tool — it stays in the inbox as a record, not processed
     further.
  4. Skip empty or trivial bullets when splitting (single words,
     fragments).

## Output

Either:
- The same note, now `status: ingested` and `type: insight` (default
  case), or
- N new insight notes with `status: ingested`, plus the original session
  file updated to `status: ingested` (split case)

## Constraints

- Default to whole. Splitting is the exception, not the rule.
- Preserve all provenance metadata.
- Each split-out note gets its own zettelkasten timestamp (via sb).

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.