ingest

A document-ingestion workflow that adds files or web content to a memory graph, a connected store of documents and extracted information. It accepts local files such as PDFs and spreadsheets, plus URLs including web pages, YouTube, Wikipedia, and RSS feeds.

In plain words
What is it for?
Use it to add documents, images, spreadsheets, web pages, videos, feeds, and other supported sources to the knowledge graph, with optional source, author, and topic details.
Why use it?
It turns different kinds of source material into content that the memory system can process, instead of requiring manual conversion first.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/stevepridemore/graph-memory/ingest
Any agent
npx skills add stevepridemore/graph-memory --skill ingest
Clone the repo
git clone --depth 1 https://github.com/stevepridemore/graph-memory

Made for: Claude Code, Codex.

Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,236 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00062 $0.01236
Opus 5 $0.00031 $0.00618
Sonnet 5 $0.00012 $0.00247
Haiku 4.5 $0.00006 $0.00124

Measured 2d ago against content hash 0bda1ef5bfbe, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

ingest scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/ingest/SKILL.md · 99 lines

How it starts

The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.

The user wants to ingest a document or URL into the graph memory system.

Arguments: $ARGUMENTS

Step 1: Parse arguments

  • First positional argument: file path or URL (required)
  • --now: process immediately inline (Claude extracts entities in this session)
  • --source: document type label, e.g. "article", "meeting notes", "YouTube transcript"
  • --author: creator/author name
  • --topic: topic hints for better extraction (comma-separated string)

If no argument is provided, ask the user for a file path or URL.

Step 2: Detect input type

URL (starts with http:// or https://):

  • YouTube URLs (youtube.com or youtu.be) → MarkItDown fetches transcript + metadata
  • All other URLs (web pages, Wikipedia, RSS, Bing) → MarkItDown converts to markdown
  • Go to Step 3A

Local file:

  • Native text formats (.md, .txt, .srt, .vtt, .json, .html, .csv) → queue directly, skip MarkItDown
  • Binary/rich formats (.pdf, .docx, .doc, .xlsx, .xls, .pptx, .ppt, .epub, .ipynb, .msg, .eml, .zip, images) → convert via MarkItDown first
  • Go to Step 3B

Step 3A: URL ingestion via MarkItDown

  1. Run MarkItDown on the URL:
    markitdown "<url>" -o "~/graph-memory/.tmp/graph-ingest-tmp.md"
    
  2. If it fails, report the error and stop
  3. Read the output file to check it has content (not empty)
  4. Derive a filename from the URL: slugify the domain + path, e.g. youtube-com-watch-dQw4w9WgXcQ.md
  5. Continue to Step 4 using the temp .md file as the file to queue

Step 3B: Local file ingestion

Native text file: use the file path as-is, go to Step 4.

Binary/rich file:

  1. Run MarkItDown on the local file:
    markitdown "<file-path>" -o "~/graph-memory/.tmp/graph-ingest-tmp.md"
    
  2. If it fails, report the error with the MarkItDown output and stop
  3. Read the output to verify it has meaningful content
  4. Derive a filename: take the original basename and replace the extension with .md
    • e.g. report.pdfreport.md
  5. Continue to Step 4 using the temp .md file

Read the full file on GitHub · 99 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 99 lines · 62 tokens per session scan A 0bda1ef5bfbe

Subscribe to this mod's changes

ingest is a skill published in the GitHub repository stevepridemore/graph-memory (2 stars, last pushed 3mo ago), licensed MIT. It adds 62 tokens to every session and 1,236 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

pdf-markdown-validator

Validate PDF to Markdown conversion quality using multi-dimensional metrics. Assess table accuracy, style preservation (bold/italic/headings), robustness, and performance with standardized F1-scoring methodology.

raphaelmansuy/edgequake · 41 tokens

liteparse

Parse documents into LLM-ready content entirely on the local machine — PDF / DOCX / XLSX / PPTX / images → Markdown, structured JSON (with bounding boxes), or page screenshots, via the lit CLI. No cloud, no LLM, works offline. Use whenever the user attaches or points to a document that must be read before reasoning…

Prismer-AI/PrismerCloud · 90 tokens

office-artifacts

Generate real DOCX, PPTX, XLSX, PDF, CSV files using python-docx / python-pptx / openpyxl / reportlab by writing them into the dispatch artifacts dir, then explicitly deliver each one with cloud deliver . Use whenever the user asks for documents, slides, spreadsheets, reports, or PDFs.

Prismer-AI/PrismerCloud · 75 tokens

ori-memory

Persistent agent memory with learning retrieval. Knowledge graph on markdown files — capture insights, decisions, research, and learnings during work, then retrieve them weeks or months later. Use when knowledge is too valuable to lose but too much to inject into every prompt.

aayoawoyemi/Ori-Mnemos · 54 tokens

svoboda-profiler

Use when asked to profile someone, unpack a person, build a psychological portrait, run a Svoboda session, or map life state. Triggers on распаковка, профилирование, психопортрет, точка А, колесо баланса, profile someone, unpack, svoboda session.

xcota/pos · 69 tokens

vault-scaffolder

Use when a completed svoboda profile.yaml exists and a new Personal OS needs to be personalized in the current workspace.

xcota/pos · 29 tokens