Agent skill

Ingest Source

by Abilityai in Abilityai/cornelius

Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index…

MITAuto-check: notesKnowledge Management

Install Ingest Source

skills CLI
$ npx skills add Abilityai/cornelius --skill ingest-source -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Abilityai/cornelius ingest-source --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Abilityai/cornelius.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ingest-source .claude/skills/ingest-source && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ingest-source
GitHub stars
109
Token cost
~4.3k tokens
SKILL.md length
1,564 words
Files
1
Skills in repo
51
Repo updated
First seen
Licence
MIT

At a glance

Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index…

  • Works in 7 steps: Read inputs and checkpoint → Prepare source → markdown → Extract insights (against the live index) → …
  • Tasks that involve Knowledge bases
  • SKILL.md covers Purpose, Configuration (safety rails…, State Dependencies and Prerequisites, plus 6 more sections
  • Calls git

What it does

Ingest Source is an agent skill from Abilityai/cornelius. Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index, auto-link to existing knowledge, and changelog. One source per invocation.

Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management, covering Knowledge bases, Changelog and release notes and Markdown. The repository describes itself as: AI-powered second brain template for Claude Code + Obsidian. The licence is MIT.

When your agent uses it

  • Tasks that involve Knowledge bases
  • Tasks that involve Changelog and release notes
  • Tasks that involve Markdown

Example prompts

  • “/ingest-source”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Glob, Grep, Task, Skill

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Read inputs and checkpoint
  2. Prepare source → markdown
  3. Extract insights (against the live index)
  4. Refresh the index
  5. Discover connections (bounded, new → existing)
  6. Auto-write links (the gated step, made safe)
  7. Changelog

What it can do on your machine

Read from SKILL.md and the folder at commit fd5e9a4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • Glob
    • Grep
    • Task
    • Skill

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ingest Source loads about 4.3k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 1,564 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, Skill

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Abilityai/cornelius at commit fd5e9a4, republished under its MIT licence (© Abilityai). 1,564 words, ~4,294 tokens.

Download SKILL.mdSave it as .claude/skills/ingest-source/SKILL.md (or your agent's skills folder).
name
ingest-source
description
Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index, auto-link to existing knowledge, and changelog. One source per invocation.
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, Task, Skill
automation
autonomous
user-invocable
true
argument-hint
<source path or URL> [session name]
effort
high
metadata.version
1.0
metadata.created
2026-06-03
metadata.author
Cornelius

Ingest Source

Fully autonomous pipeline that takes one source from raw file to integrated, connected knowledge. Each invocation handles a single source; drive a whole corpus by invoking once per source (e.g. via /loop or a shell loop over a file list), then run the corpus-level finalize steps once at the end.

ultrathink

Purpose

The unit of work for building a knowledge base from a book corpus. One source in → deduplicated, epistemically-classified notes out, embedded in the graph and linked to existing knowledge, with every auto-action logged for post-hoc review.

The design principle (established in the architecture discussion): insights are extracted against the current KB, not in a vacuum — retrieval-augmented extraction. The index is the KB's queryable state, so it must be refreshed before connection discovery, and refreshed again on the next source so each source builds on the last.

Configuration (safety rails that replace human gates)

KnobDefaultPurpose
AUTO_LINK_THRESHOLD0.75Only auto-write links at or above this cosine similarity. Below → logged as review candidates, not written.
LINKS_PER_NOTE5Max auto-links written per new note (top-k). Caps combinatorial blowup.
MUTATE_EXISTING_NOTESfalseIf false, only the NEW notes get edited (links written FROM new → existing). Existing/hub notes are never mutated by auto-linking.
REJECT_ON_TIERrejectedIf the extractor tiers the source rejected (content-farm / regurgitated), abort and notify.

These are the autonomous substitute for the two approval gates a gated version would have. See Architecture Note for why.

State Dependencies

SourceLocationReadWriteDescription
Source filearg path / URL✓Book, paper, article, transcript, or YouTube URL
Working markdownresources/ingest-workspace/<slug>/✓✓Extracted/prepared markdown + checkpoint
Book scope (books)Brain/Books/<book-slug>/✓✓Per-book scope: notes + _book.md hub land here
Document Insights (non-books)Brain/Document Insights/<session>/✓✓Papers / articles / web extracted notes land here
FAISS index + BDGresources/local-brain-search/, resources/brain-graph/✓✓Refreshed mid-pipeline
ChangelogsBrain/05-Meta/Changelogs/✓Per-source ingestion report
Ingest ledgerresources/ingest-workspace/INGEST-LEDGER.md✓✓Corpus progress: which sources done
Checkpointresources/ingest-workspace/<slug>/.checkpoint✓✓Resume marker for the 45-min rule

Prerequisites

  • Local Brain Search installed (resources/local-brain-search/run_index.sh, run_connections.sh)
  • Brain Dependency Graph engine (resources/brain-graph/run_brain_graph.sh)
  • Extractor agents available: document-insight-extractor
  • Source-prep skills available: epub-chapter-extractor, multi-format-book-extractor, get-youtube-transcript

Process

Step 0: Read inputs and checkpoint

Parse $ARGUMENTS: first token = source path/URL, optional remainder = session name. Derive a <slug> and, if no session name given, derive one from the source title (e.g. "<Book Title>").

bash
date '+%Y-%m-%d'
test -f resources/ingest-workspace/<slug>/.checkpoint && cat resources/ingest-workspace/<slug>/.checkpoint || echo "phase=start"

If a checkpoint exists, resume from the next phase rather than restarting (re-running earlier phases is safe — they are idempotent — but wasteful for large books).

Scope routing (book vs. non-book). Decide the destination scope now:

Source is…Destination dirScope token (for read-scope mounts)
a book — .epub / .pdf / .mobi / .azw3, or --book is passedBrain/Books/<book-slug>/Books/<book-slug> (its own pluggable scope)
anything else — paper / article / web / transcript / YouTubeBrain/Document Insights/<session>/document-insights (the shared bucket)

A book gets its own scope (Books/<slug>): non-core (never pollutes the core fingerprint or trains q-values), cognitive (its gems can graduate to core via the human /graduate-insights act), and pluggable (mount with BRAIN_READ_SCOPE=core,Books/<slug> or the whole shelf with core,Books). Set TARGET_DIR and BOOK_SLUG accordingly and use them in Steps 2/4/6 below.

Step 1: Prepare source → markdown

Detect format by extension/URL and convert to markdown:

InputAction
.epubSkill: epub-chapter-extractor → per-chapter .md
.pdf / .mobi / .azw3Skill: multi-format-book-extractor
YouTube URLSkill: get-youtube-transcript
.md / .txtuse directly (no conversion)

Write prepared markdown into resources/ingest-workspace/<slug>/. Checkpoint: phase=prepared.

Step 2: Extract insights (against the live index)

Spawn the extractor directly (autonomous — skip the interactive insight-interview suggestion).

For a book (Step-0 routing → Brain/Books/<book-slug>/), invoke in Book Mode:

Task(
  subagent_type="document-insight-extractor",
  prompt="BOOK MODE. Extract insights from <prepared markdown path(s)> into the book scope
          Brain/Books/<book-slug>/ (NOT Document Insights). Follow your Book Mode doctrine:
          mine like a scientist THROUGH THE KB LENS (contextualize against the CURRENT index
          as a GATE); capture ONLY genuine frameworks / mental models / methods / evidenced
          contrarian claims; REJECT narrative, anecdote, biography, he-said-she-said, and
          restatements of the obvious or of concepts the KB already holds; MECE + atomic
          (one idea per note, no overlap within the book scope); expected shape ~10 core
          concepts + up to ~20 supporting nodes as REFERENCE POINTS not caps; prefer
          statistically-meaningful research (N, effect size, replication, year) over one-off
          examples and record dates. Apply Gate 1 source-tiering and provenance: encountered;
          SEARCH FOR DUPLICATES (mount BRAIN_READ_SCOPE=core,Books,document-insights) and
          merge/link rather than re-create; create the _book.md literature hub; update the
          changelog. Return: list of new note file paths, total count, epistemic split,
          assigned source-tier, and the book scope path."
)

For non-books (paper / article / web → Brain/Document Insights/<session>/):

Task(
  subagent_type="document-insight-extractor",
  prompt="Extract insights from <prepared markdown path(s)> into session '<session name>'.
          Follow your mandatory workflow: contextualize against the CURRENT index,
          apply Gate 1 source-tiering and Gate 2 provenance (provenance: encountered),
          epistemically classify each note, SEARCH FOR DUPLICATES and merge/link rather
          than re-create, write notes to Brain/Document Insights/<session>/, update the
          session changelog. Return: list of new note file paths, total count,
          epistemic split, and the assigned source-tier."
)

Safety rail (replaces Gate 1): if the returned source-tier is REJECT_ON_TIER, abort, log the rejection to the changelog, and notify. Low-confidence/speculative notes are kept but flagged in the changelog, never silently dropped.

Capture the new note paths — only these notes are processed downstream (this keeps connection discovery linear, not all-vs-all). Checkpoint: phase=extracted (persist the note list).

Step 3: Refresh the index

The FAISS index does not auto-update, and connection discovery looks notes up by title in the index — so new notes are invisible until reindexed. Refresh now, before discovery:

bash
resources/local-brain-search/run_index.sh
resources/brain-graph/run_brain_graph.sh bootstrap --force
resources/local-brain-search/run_connections.sh --stats --json   # verify count grew

(This is exactly /refresh-index; one full rebuild per source also sweeps in the prior source's auto-links.) Checkpoint: phase=indexed.

Step 4: Discover connections (bounded, new → existing)

For each new note only, query its neighbors. Use a wide read-scope so a new note resolves and links against existing non-core neighbors (core-only would miss them once scope enforcement is on). Mount the destination scope: for a book use core,Books (so it links to core and across the whole shelf); for a non-book use core,document-insights:

bash
# book:
BRAIN_READ_SCOPE=core,Books resources/local-brain-search/run_connections.sh "<New Note Title>" --json
# non-book:
BRAIN_READ_SCOPE=core,document-insights resources/local-brain-search/run_connections.sh "<New Note Title>" --json
resources/brain-graph/run_brain_graph.sh inspect "<New Note Title>" --json   # edge type + lifecycle

Collect top-LINKS_PER_NOTE connections per note with similarity scores and BDG edge type. Do not run all-pairs or hub/bridge sweeps here — that is the combinatorial explosion this step is designed to avoid. New→existing is linear in the source's note count. Checkpoint: phase=connections-discovered (persist the connection report).

For each new note, write wiki-links to its qualifying connections:

  • Threshold: only connections with similarity ≥ AUTO_LINK_THRESHOLD.
  • Cap: at most LINKS_PER_NOTE per note.
  • Idempotent: skip if the [[link]] already exists in the note.
  • Labeled + reversible: append under a clearly marked section in the NEW note only:
    markdown
    ## Related (auto-linked by /ingest-source)
    <!-- AI-discovered via semantic similarity; review critically. similarity ≠ conceptual validity -->
    - [[Target Note]] — 0.82, derives-from
  • Never mutate existing notes when MUTATE_EXISTING_NOTES=false — links go FROM the fresh notes outward, so hub notes are never polluted and every auto-edit is confined to notes created this run (trivially reversible by deleting the session folder).
  • Below-threshold connections → recorded in the changelog as "candidates for human review," not written.
  • Tension preservation: if a high-similarity connection is to a note with an opposing claim (BDG edge type tension, or the extractor flagged a contradiction), DO NOT collapse or dedupe it away. Record it in the changelog under "Tension candidates" for the manual /detect-tensions pass. Never auto-resolve a contradiction.

Use Edit on the new note files (their paths are known from Step 2). Checkpoint: phase=linked.

Show full SKILL.md (612 more words)Show less
Step 6: Changelog

Write Brain/05-Meta/Changelogs/CHANGELOG - Source Ingestion <session> YYYY-MM-DD.md:

markdown
## Source Ingestion: <session> — YYYY-MM-DD

**Source:** <path/URL>  |  **Tier:** <primary|credible-interpreter>  |  **Format:** <epub/pdf/...>
**Notes created:** N  (confirmed: X · theoretical: Y · speculative: Z)

### Auto-linked (≥ AUTO_LINK_THRESHOLD)
- [[New Note]] → [[Existing]] (0.82, derives-from)

### Review candidates (below threshold)
- [[New Note]] ~ [[Existing]] (0.71)

### Tension candidates (DO NOT auto-resolve — for /detect-tensions)
- [[New Note]] vs [[Existing]] — opposing claims at 0.78

### Isolated notes (0 connections ≥ threshold) — priority for human attention
- [[New Note]]

Checkpoint: phase=changelogged.

Final Step: Write ledger + state, notify

Append to resources/ingest-workspace/INGEST-LEDGER.md:

markdown
| YYYY-MM-DD | <session> | <source> | N notes | done |

Print a summary and the after-the-corpus reminder (these are manual — judgment work, per the architecture):

Source ingested. After the LAST source in the corpus, run once: /detect-tensions → /coherence-sweep → /graduate-insights (cross-source contradictions, structural health, and canonicalization into permanent notes).

Notify on completion. On any unrecoverable failure, notify with the failed phase and the checkpoint path so the run can be resumed. Then clear the checkpoint (phase=done).

Outputs

  • Deduplicated, epistemically-classified notes in the destination scope — Brain/Books/<book-slug>/ (books, plus a _book.md literature hub) or Brain/Document Insights/<session>/ (non-books)
  • Refreshed FAISS index + BDG enrichments
  • AI-labeled wiki-links from the new notes into the existing graph
  • Per-source ingestion changelog (auto-links, review candidates, tension candidates, isolated notes)
  • Updated corpus ledger entry

Error Recovery

FailureRecovery
Source-prep fails (unsupported format)Log, notify, abort. Markdown/text passthrough always works as fallback.
Source tiered rejectedLog rejection to changelog, notify, abort — do not extract.
Extractor returns 0 notesLog "no extractable insights," notify, mark ledger empty, exit.
run_index.sh failsAbort before linking (linking on a stale index would mislink). Resume from phase=extracted.
BDG bootstrap failsNon-critical — LBS links still work. Log and continue without edge-type labels.
Connection query fails for a noteLog, skip that note, continue with the rest.
Interrupted mid-run (45-min rule)Re-invoke with same source; the .checkpoint resumes from the next phase.

Autonomous Validation Checklist

  • No approval gates — none present; the two judgment points are replaced by threshold + cap + label + audit rails.
  • No human decision points — runs unattended start to finish.
  • Complete error handling — every phase has a recovery path.
  • Notifications on failure — failed phase + checkpoint path reported.
  • Under 45 minutes — one source per invocation; extractor chunks large files internally; refresh cost equals the daily scheduled refresh. Checkpointing resumes if exceeded.
  • Idempotent / safe to retry — extractor dedups; refresh is idempotent; link-writing checks for existing links; resume via checkpoint.
  • Single-task scope — exactly one source per invocation; the scheduler / loop drives the corpus.

Architecture Note (deliberate deviation)

ARCHITECTURE.md and the autonomy principle state: "Automate measurement and maintenance. Never automate creation or judgment," and list connection-writing as manual-only. This skill deliberately crosses that line for connection-writing because the use case is bulk ingestion of a book corpus, where per-source human gating does not scale.

The deviation is bounded, not unbounded. The architecture's real concern is un-auditable, irreversible auto-judgment. This skill substitutes:

  • a similarity threshold + per-note cap for the "which links are valid" judgment,
  • AI-labeled, new-notes-only edits so every auto-action is transparent and reversible (delete the session folder),
  • a changelog audit trail enabling review-after instead of approve-before,
  • tension-preservation so contradictions are surfaced, never auto-collapsed.

This mirrors how /auto-discovery and the incubation loop already auto-write AI-labeled content to the graph. What remains strictly manual — and is intentionally NOT in this skill — is the corpus-level judgment work: /detect-tensions, the final /coherence-sweep, and canonicalization via /graduate-insights. If you want the conservative posture instead, set MUTATE_EXISTING_NOTES=false (already default), raise AUTO_LINK_THRESHOLD, or fork a gated variant that stops at Step 4 and emits the connection report for human approval.

Self-Improvement

After completing this skill's primary task, consider tactical improvements:

  • Review execution: Were there friction points, unclear steps, or inefficiencies (e.g. extractor timeouts, mislinks, threshold too loose/tight)?
  • Identify improvements: Could error handling, step ordering, the safety-rail defaults, or instructions be clearer?
  • Scope check: Only tactical/execution changes — NOT changes to core purpose (the per-source pipeline shape) or the architecture-deviation rationale.
  • Apply improvement (if identified):
    • Edit this SKILL.md with the specific improvement
    • Keep changes minimal and focused
  • Version control (if in a git repository):
    • Stage: git add .claude/skills/ingest-source/SKILL.md
    • Commit: git commit -m "refactor(ingest-source): <brief improvement description>"

© Abilityai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/ingest-source of Abilityai/cornelius.

Open the folder on GitHubat commit fd5e9a4

Compare with similar skills

Ingest Source next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ingest Source compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ingest Source this skillAbilityai/cornelius109—~4.3kAutomated safety check: NotesMIT
QmdSAP/e-mobility-charging-stations-simulator2271 repos~2.8kAutomated safety check: PassMIT
Open Knowledgeinkeep/open-knowledge4.4k—~4.7kAutomated safety check: PassGPL-3.0
Wiki Viewerrohitg00/pro-workflow2.9k—~1.1kAutomated safety check: PassNone
Okf Open Knowledge Formatfabricioctelles/skills106—~5.7kAutomated safety check: PassApache-2.0
Qmdcompozy/compozy2.8k—~1kAutomated safety check: PassMIT

Similar skills

  • Qmd

    SAP/e-mobility-charging-stations-simulator

    Official

    Search local markdown knowledge bases, notes, docs, and wikis with QMD.

    227 GitHub starsUsed in 1 repo~2.8k tokens
    Knowledge ManagementAuto-check passed
  • Open Knowledge

    inkeep/open-knowledge

    Authoritative agent-runtime contract for working inside an OpenKnowledge project — a markdown-CRDT knowledge base exposed over MCP.

    4.4k GitHub stars~4.7k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Wiki Viewer

    rohitg00/pro-workflow

    Render a self-contained HTML viewer for a pro-workflow wiki.

    2.9k GitHub stars~1.1k tokensUpdated 9 days ago
    Knowledge ManagementAuto-check passed
  • Okf Open Knowledge Format

    fabricioctelles/skills

    Create, validate, and enrich Open Knowledge Format (OKF) bundles — the open spec for representing organizational knowledge as markdown files with YAML frontmatter.

    106 GitHub stars~5.7k tokensUpdated 4 days ago
    Knowledge ManagementAuto-check passed
  • Qmd

    compozy/compozy

    Search markdown knowledge bases, notes, and documentation using QMD.

    2.8k GitHub stars~1k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Kb Setup

    BlackBeltTechnology/pi-agent-dashboard

    Set up, initialize, or configure the local markdown knowledge base for a project.

    315 GitHub stars~776 tokensUpdated today
    Knowledge ManagementAuto-check passed

More from Abilityai/cornelius

All 51 skills in this repo
  • Nano Banana Image Generator

    Abilityai/cornelius

    Generate images using Google's Nano Banana (Gemini 2.5 Flash Image).

    109 GitHub stars~1.2k tokensUpdated 15 days ago
    Auto-check: notes
  • Changelog Protocol

    Abilityai/cornelius

    Protocol for creating dated changelog files after significant agent sessions.

    109 GitHub stars~555 tokensUpdated 15 days ago
    Auto-check passed
  • Create Article

    Abilityai/cornelius

    Create long-form articles from knowledge base insights. An agent skill from Abilityai/cornelius.

    109 GitHub stars~2.1k tokensUpdated 15 days ago
    Auto-check: notes
  • Epistemic Classification

    Abilityai/cornelius

    Framework for distinguishing research findings from hypotheses and speculative synthesis.

    109 GitHub stars~1.5k tokensUpdated 15 days ago
    Auto-check passed
  • Get Youtube Transcript

    Abilityai/cornelius

    Extract the transcript from a YouTube video by URL or video ID.

    109 GitHub stars~525 tokensUpdated 15 days ago
    Auto-check: notes
  • Insight Capture Format

    Abilityai/cornelius

    Standard format for capturing and documenting insights in the knowledge base.

    109 GitHub stars~616 tokensUpdated 15 days ago
    Auto-check passed

Questions about Ingest Source

What does Ingest Source do?

Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index…. Ingest Source is an agent skill from Abilityai/cornelius. Fully autonomous end-to-end ingestion of a SINGLE source (book, paper, article, transcript) into the knowledge base - prepare to markdown, extract insights against the live index, refresh the index, auto-link to existing knowledge, and changelog.

When should I use Ingest Source?

Ingest Source fits situations like: tasks that involve Knowledge bases; tasks that involve Changelog and release notes; tasks that involve Markdown.

How do I install Ingest Source in Claude Code?

Run `npx skills add Abilityai/cornelius --skill ingest-source -a claude-code`. Or copy the skill folder (.claude/skills/ingest-source in Abilityai/cornelius) into .claude/skills/ingest-source in your project. Claude Code loads it when a task matches its description.

How do I install Ingest Source in Codex?

Run `npx skills add Abilityai/cornelius --skill ingest-source -a codex`. Or copy the skill folder (.claude/skills/ingest-source in Abilityai/cornelius) into .agents/skills/ingest-source in your project. Codex loads it when a task matches its description.

Can I use Ingest Source in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Abilityai/cornelius --skill ingest-source -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ingest-source, .gemini/skills/ingest-source, .github/skills/ingest-source and .opencode/skills/ingest-source in your project.

What does Ingest Source need to run?

Going by SKILL.md and its folder, Ingest Source needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, Task, Skill.

Does Ingest Source access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Ingest Source safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Ingest Source use?

Ingest Source is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ingest Source use?

About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ingest Source?

Skills that share tags, products or a category with Ingest Source: Qmd (SAP/e-mobility-charging-stations-simulator, 227 stars), Open Knowledge (inkeep/open-knowledge, 4.4k stars), Wiki Viewer (rohitg00/pro-workflow, 2.9k stars) and Okf Open Knowledge Format (fabricioctelles/skills, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ingest Source?

Abilityai (a GitHub organization) maintains it in Abilityai/cornelius, which has 109 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on September 22, 2026.

Source: Abilityai/cornelius on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.