Agent skill

Ref Ingest

by Abilityai in Abilityai/cornelius

The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor).

MITAuto-check: notesBusiness, Finance & HR

Install Ref Ingest

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

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

GitHub CLI
$ gh skill install Abilityai/cornelius ref-ingest --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/ref-ingest .claude/skills/ref-ingest && 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
ref-ingest
GitHub stars
109
Token cost
~2.4k tokens
SKILL.md length
891 words
Files
1
Skills in repo
51
Repo updated
First seen
Licence
MIT

At a glance

The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor).

  • Works in 7 steps: Resolve the scope + confirm reference-kind → Extract candidate entity facts → Route to the sub-scope (watch vs transact) → …
  • Tasks that involve Accounting and bookkeeping
  • SKILL.md covers Composes, State Dependencies, The automation split… and Process, plus 2 more sections
  • Calls python

What it does

Ref Ingest is an agent skill from Abilityai/cornelius. The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor). Extracts entity facts, RESOLVES them to the one existing canonical note (never duplicating), reconciles new-vs-old, and upserts (overwrite body, re-stamp asof, append Change Log), then reindexes. Extends manage-reference-data with entity resolution + reconciliation + the market-vs-CRM automation split. Company is the default scope. NEVER writes any provenance but…

Its SKILL.md is about 2.4k 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 Business, Finance & HR, covering Accounting and bookkeeping. 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 Accounting and bookkeeping

Example prompts

  • “/ref-ingest”

Requirements

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

Workflow steps

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

  1. Resolve the scope + confirm reference-kind
  2. Extract candidate entity facts
  3. Route to the sub-scope (watch vs transact)
  4. ENTITY RESOLUTION (never duplicate)
  5. RECONCILIATION (new fact vs old)
  6. Automation gate + upsert
  7. Reindex (unless deferred)

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
    • AskUserQuestion
    • Skill

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

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

  • Network

    No URLs in SKILL.md.

    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

Ref Ingest loads about 2.4k tokens when it runs. Until then it costs about 152 tokens; SKILL.md has 891 words of instructions outside code blocks.

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

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, AskUserQuestion, 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). 891 words, ~2,396 tokens.

Download SKILL.mdSave it as .claude/skills/ref-ingest/SKILL.md (or your agent's skills folder).
name
ref-ingest
description
The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor). Extracts entity facts, RESOLVES them to the one existing canonical note (never duplicating), reconciles new-vs-old, and upserts (overwrite body, re-stamp as_of, append Change Log), then reindexes. Extends manage-reference-data with entity resolution + reconciliation + the market-vs-CRM automation split. Company is the default scope. NEVER writes any provenance but reference; NEVER crystallizes/lifecycle-classifies/promotes a record into an insight.
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill
automation
gated
user-invocable
true
argument-hint
[scope=Company] <entity name or the incoming info> [--source <where it came from>] [--no-reindex]
metadata.version
1.1
metadata.created
2026-07-08
metadata.author
Cornelius
metadata.changelog
1.1: Fix — Step 3 named a phantom agents-as-product/ sub-scope; type: agent notes live in products/. Corrected., 1.0: Initial version…

Ref Ingest

ℹ️ First, set expectations: before anything else, print one short line with this skill's version and its most recent change — the top entry of metadata.changelog above — e.g. ref-ingest v1.0 — recent: initial version. Then proceed.

The one operation every input funnels through for a reference scope: incoming info → resolve → reconcile → upsert. It grows the manual single-upsert manage-reference-data with the two load-bearing hard parts — entity resolution (is this new "Reply" the existing Reply.io?) and reconciliation (new fact contradicts old → overwrite / supersede-with-history / flag) — plus the automation split by scope.

Read first (authoritative — this skill enforces, does not restate):

  • resources/layered-brains/COMPANY-BRAIN-SCHEMA.md → "The update model", "The two axes" (sub-scope routing + type:/relationship: enums), "Automation boundary — split by scope".
  • resources/layered-brains/REFERENCE-SCOPE-SCHEMA.md → the reference-kind frontmatter contract.
  • .claude/skills/manage-reference-data/SKILL.md → the seed upsert (Step 0 scope check + the frontmatter template). This skill is its richer successor; it does not duplicate the contract.

Composes

  • /ref-supersede — when reconciliation finds a validity transition that needs a prior snapshot (contract renewal, role/price change), hand off instead of overwriting. Never invoked on the market/autonomous branch (see the invariant).

State Dependencies

SourceLocationReadWriteDescription
Company familyBrain/Company/{people,orgs,products,engagements,market}/*.md✓✓Entity notes (one note = one entity)
Scope registryresources/local-brain-search/memory_config.py✓Confirm reference-kind
LBS indexresources/local-brain-search/data/✓✓ (reindex)FAISS + graph; reindexed after a write
Search wrappersresources/local-brain-search/run_search.sh✓Entity-resolution search under a core,Company mount

The automation split (load-bearing)

Sub-scopeWriterThis skill
market/ (watched competitors/ecosystem)autonomousauto-overwrite, no gate — reference facts sit outside the encountered→endorsed gate
people/ orgs/ products/ engagements/ (transacted CRM)curatedhuman-gated — present the diff, get approval before writing

Invariant (what makes any autonomous caller safe): the market/ branch is overwrite-only — it never opens an approval gate and never calls /ref-supersede. A validity transition in market/ that would need a snapshot is flagged for a human ref-supersede, not auto-run. So a scheduled caller (e.g. ref-refresh, or domain-watch in 9e) that routes market items here always takes a gate-free path.


Process

Step 1 — Resolve the scope + confirm reference-kind
bash
cd resources/local-brain-search
SCOPE="${scope:-Company}"
./venv/bin/python - "$SCOPE" <<'PY'
import sys, memory_config as mc
f = sys.argv[1]
print("kind:", mc.scope_kind(f), "| is_reference:", mc.is_reference_scope(f))
PY

If is_reference is False → stop (this skill only writes reference scopes). See the schema doc's "Adding a new reference scope".

Step 2 — Extract candidate entity facts

From the incoming info (the user in conversation · a document/contract/deck/call · a domain-watch market signal · another agent's report), pull the atomic facts about one real-world entity: display name + aliases, type:, the relation to us (relationship:), body facts, and any term-bearing fact (a contract window, a role start, a price effective date).

Step 3 — Route to the sub-scope (watch vs transact)

Apply the partition rule from COMPANY-BRAIN-SCHEMA "The two axes":

  • an entity you watch (competitor, competitor product, ecosystem player) → market/
  • an entity you own or transact with (self, client, prospect, partner, vendor, your offering, internal agent, a deal) → people/ orgs/ products/ engagements/ by type:. The internal agent workforce (type: agent) lives in products/ alongside own products — there is no separate agents/ sub-scope.
  • type:/relationship: values MUST come from the schema doc's enum (person·organization·product·agent·engagement·interaction × the relationship axis). Never invent a value.
Step 4 — ENTITY RESOLUTION (never duplicate)

Find the one canonical note this fact belongs to before writing:

bash
# semantic: does an entity like this already exist in the family?
BRAIN_READ_SCOPE=core,Company resources/local-brain-search/run_search.sh "<entity name + a distinctive fact>" --limit 8 --json
# exact/alias: title + body match
grep -rilE "<name>|<alias1>|<alias2>" Brain/Company/
  • Match found → this is an update to that note. Use its exact path.
  • Ambiguous (2+ plausible matches, e.g. "Reply" vs "Reply.io") → present the candidates and ask which entity this is (AskUserQuestion); do NOT guess a new note into existence.
  • No match → genuinely new entity → add.
Show full SKILL.md (376 more words)Show less
Step 5 — RECONCILIATION (new fact vs old)

Compare the incoming fact to the note's current body:

SituationAction
New fact corrects/refreshes an existing fact (same validity window)overwrite the body (Step 6)
A validity window closed and a full prior snapshot matters (contract renewed, role changed, price re-termed)hand to /ref-supersede — CRM only; on market/ flag for a human instead
New fact contradicts old with no clear winnerflag — surface both, ask; do not silently overwrite
Step 6 — Automation gate + upsert
  • market/ → proceed (no gate). CRM sub-scopes → show the before/after diff and get explicit approval (AskUserQuestion) before writing.
  • Write the note with the reference frontmatter contract (copy the template from manage-reference-data Step 2 — do not restate it here). On update: overwrite the body (current truth), preserve created/created_by, re-stamp as_of + updated to today, bump updated_by to your model. Append a ## Change Log line:
    markdown
    ## Change Log
    - 2026-07-08 — <what changed> (source: <where it came from>)
  • Going forward only: for a term-bearing fact, add valid_from:/valid_until:. Do NOT backfill these onto notes that lack them — incremental adoption.
Step 7 — Reindex (unless deferred)
bash
cd resources/local-brain-search && ./run_index.sh && ./run_daemon.sh restart   # daemon on :7437, RESTART not reload

Content-hash detection → a changed note triggers a full FAISS rebuild (minutes). Reference notes are BDG-excluded, so no run_brain_graph.sh bootstrap is needed. If invoked with --no-reindex (batch mode, e.g. by ref-refresh over many market items), skip this step and let the batch caller reindex once at the end.


Verification

  • Round-trip: after an add/overwrite + reindex, the entity surfaces under a mount and is absent unmounted:
    bash
    BRAIN_READ_SCOPE=core,Company resources/local-brain-search/run_search.sh "<entity>" --limit 5 --json   # present
    resources/local-brain-search/run_search.sh "<entity>" --limit 5 --json                                  # absent (core default)
  • Learn-gate held: md5 resources/local-brain-search/data/q_values.json is byte-identical before and after (a mounted read trains nothing).
  • Audit trail: the note has a new ## Change Log line; the body is the current truth (no append-only drift); as_of = today.
  • No duplicate: exactly one note exists for the entity (grep -ril "<name>" Brain/Company/ returns one canonical file).

This skill must refuse to

  • Write into a non-reference / core / cognitive folder, or set any provenance but reference.
  • Create a duplicate entity note when resolution finds (or is unsure of) an existing one.
  • Auto-supersede or gate-skip on a CRM sub-scope, or run /ref-supersede on the market/ branch.
  • Crystallize, lifecycle-classify, synthesis-pulse, or promote a record into an endorsed cognitive insight — that crossing stays the human encountered → endorsed act.

© 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/ref-ingest of Abilityai/cornelius.

Open the folder on GitHubat commit fd5e9a4

Compare with similar skills

Ref Ingest 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.

Ref Ingest compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ref Ingest this skillAbilityai/cornelius109—~2.4kAutomated safety check: NotesMIT
Sync Upstreamnyaruka/phonenumbers1.6k—~2.8kAutomated safety check: PassMIT
Longbridge Value Investinghelsome/folio2692 repos~1.2kAutomated safety check: PassMIT
Radiology Tablehuang-sir1/radiology-skills1.9k—~1.3kAutomated safety check: PassCustom licence
Odoo Agency Fleet Reviewerpipe-org/mcp-odoo420—~699Automated safety check: PassMIT
Beancount Closebex-co/beancount-io295—~1.4kAutomated safety check: PassMIT

Similar skills

  • Sync Upstream

    nyaruka/phonenumbers

    Sync this Go port with a new upstream google/libphonenumber release — regenerate the embedded metadata and reconcile the ported Java logic.

    1.6k GitHub stars~2.8k tokensUpdated 5 days ago
    Business, Finance & HRAuto-check passed
  • Value investing analysis using Graham (NCAV/net-net/defensive-investor) and Buffett (economic moat/ROE/FCF) methodologies.

    269 GitHub starsUsed in 2 repos~1.2k tokens
    Business, Finance & HRAuto-check passed
  • Radiology Table

    huang-sir1/radiology-skills

    Create/audit editable publication tables with source reconciliation; not figures or statistical inference.

    1.9k GitHub stars~1.3k tokensUpdated 16 days ago
    Business, Finance & HRAuto-check passed
  • Odoo Agency Fleet Review

    erpipe-org/mcp-odoo

    Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage — for agencies and partners managing 5–50…

    420 GitHub stars~699 tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Beancount Close

    bex-co/beancount-io

    Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…

    295 GitHub stars~1.4k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • ERPClaw ERP Controller

    avansaber/erpclaw

    Operates the ERPClaw self-hosted ERP in plain language: accounting, invoicing, inventory, purchasing, tax, HR, payroll and reports, treating the ERP as the single source of truth.

    114 GitHub stars~15k tokensUpdated 2 days ago
    Business, Finance & HRAuto-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 Ref Ingest

What does Ref Ingest do?

The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor). Ref Ingest is an agent skill from Abilityai/cornelius. The single entry point for incoming information of ANY kind about a reference entity (a person, org, product, engagement, or watched competitor).

When should I use Ref Ingest?

Ref Ingest fits situations like: tasks that involve Accounting and bookkeeping.

How do I install Ref Ingest in Claude Code?

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

How do I install Ref Ingest in Codex?

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

Can I use Ref Ingest 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 ref-ingest -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ref-ingest, .gemini/skills/ref-ingest, .github/skills/ref-ingest and .opencode/skills/ref-ingest in your project.

What does Ref Ingest need to run?

Going by SKILL.md and its folder, Ref Ingest needs the command-line tools its instructions call (python). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill.

Does Ref Ingest access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ref Ingest 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 Ref Ingest use?

Ref Ingest 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 Ref Ingest use?

About 2.4k tokens (SKILL.md is roughly 9.6k 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 Ref Ingest?

Skills that share tags, products or a category with Ref Ingest: Sync Upstream (nyaruka/phonenumbers, 1.6k stars), Longbridge Value Investing (helsome/folio, 269 stars), Radiology Table (huang-sir1/radiology-skills, 1.9k stars) and Odoo Agency Fleet Review (erpipe-org/mcp-odoo, 420 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ref Ingest?

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.