entity-crossref

entity-crossref is a skill for Claude Code from TimSimpsonJr/magpie. It costs 82 tokens per session (1,636 once invoked), scanned A, original, MIT.

A tool for comparing resolved people and organisations from an investigation with a private document collection and, optionally, sanctions or politically exposed person watchlists.

In plain words
What is it for?
Use it after building an entity graph to search an investigator's own corpus or opt-in watchlists through a local yente and OpenSearch setup.
Why use it?
It helps surface possible matches for further research while keeping external watchlists optional and treating matches as leads rather than conclusions.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the magpie plugin — 13 skills, 2 agents, 1 MCP server shipped together

Good fit Use it after building an entity graph to search an investigator's own corpus or opt-in watchlists through a local yente and OpenSearch setup.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/timsimpsonjr/magpie/entity-crossref
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.

Any agent
npx skills add TimSimpsonJr/magpie --skill entity-crossref
Clone the repo
git clone --depth 1 https://github.com/TimSimpsonJr/magpie

Made for: Claude Code.

Or install magpie, the plugin that ships this one along with the rest of its 13 skills, 2 agents, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for entity-crossref

README.md
[![agentmods](https://agentmods.dev/badge/skills/timsimpsonjr/magpie/entity-crossref.svg)](https://agentmods.dev/skills/timsimpsonjr/magpie/entity-crossref)
Your own site
<a href="https://agentmods.dev/skills/timsimpsonjr/magpie/entity-crossref"><img src="https://agentmods.dev/badge/skills/timsimpsonjr/magpie/entity-crossref.svg" alt="Measured on agentmods" height="20"></a>
Per session 82 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,636 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00082 $0.01636
Opus 5 $0.00041 $0.00818
Sonnet 5 $0.00016 $0.00327
Haiku 4.5 $0.00008 $0.00164

Measured 8d ago against content hash d781239d93c1, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

entity-crossref 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 8d 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/entity-crossref/SKILL.md · 107 lines

How it starts

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

entity-crossref

Take the Phase-13a resolved snapshot for an investigation, index it as a private yente dataset, and cross-reference the resolved entities against (a) your own corpus -- the pure-FOSS default, with ZERO external data -- and (b) sanctions/PEP watchlists, which are OPT-IN, CC-BY-NC, and documented below. A thin read-only yente-mcp server exposes the same lookups to the model. This runs AFTER entity-graph (13a): it consumes the resolved snapshot UNCHANGED and never reaches back into the resolver DB.

This skill is Layer-2, OPERATOR-tier, and Docker-gated. The journalist onramp (the JOURNALIST_START path and the doctor Track-A capabilities) stays Docker-free and is NOT touched by anything here. Watchlist hits are LEADS for a human to chase, never verdicts.

What you need before you start

  • A Phase-13a resolved snapshot (one JSON file) for the investigation -- the entity_resolved_snapshot output.
  • Docker running. Confirm with the doctor skill: it reports "cross-reference entities (Layer 2)" as READY or UNAVAILABLE off a read-only Docker probe. doctor never starts services; it only probes.
  • The crossref deps installed from requirements-crossref.txt (httpx + mcp). These are cross-platform.

The code surface (all under scripts/, plus infra/):

  • scripts/entity_yente_dataset.py -- pure: turns a snapshot into a yente entities file (line-delimited FtM JSON) plus render_manifest.
  • scripts/entity_crossref.py -- pure: /match request and response shaping, typed hits, and the cross-ref report.
  • scripts/entity_yente_client.py -- the live yente HTTP edge (lazy httpx import) plus run_crossref.
  • scripts/yente_mcp_server.py -- the thin read-only yente-mcp server (5 tools).
  • infra/docker-compose.yml (the crossref profile) plus infra/yente/*.yml (manifest TEMPLATES).

PRECONDITION -- emit the dataset, bring up the stack, build the index

  1. Emit the own-corpus dataset and render the live manifest into the gitignored data dir. In Python:

    from scripts.entity_yente_dataset import (
        write_dataset, render_manifest, DatasetEntry, DATASET_NAME,
    )
    res = write_dataset(snapshot, "data/magpie_corpus")
    render_manifest(
        [DatasetEntry(
            name=res["name"],
            title="Magpie corpus",
            path="/data/entities.ftm.json",
            version=res["version"],
        )],
    )  # write the rendered manifest to data/magpie_corpus/manifest.yml
    

Read the full file on GitHub · 107 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 8d ago First seen · 107 lines · 82 tokens per session scan A d781239d93c1

Subscribe to this mod's changes

entity-crossref is a skill published in the GitHub repository TimSimpsonJr/magpie (2 stars, last pushed 2mo ago), licensed MIT. It adds 82 tokens to every session and 1,636 once invoked, about $0.0004 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-table-extractor-brief

Produces a structured extraction plan and clean spreadsheet template for pulling tabular data out of a PDF document — identifying the table structure, defining column headers, flagging extraction pitfalls, and providing a ready-to-use template that ensures the data lands in a consistent, analysable format.

ur-grue/autopunk-media-skills · 61 tokens

foia-request-writer

Drafts legally complete public records requests (federal FOIA and all 50 state laws), administrative appeals, and redaction challenge strategies for U.S. government records.

ur-grue/autopunk-media-skills · 40 tokens

osint-tool-catalog

Produces a categorised catalog of open-source intelligence tools relevant to a journalist's investigation, with practical guidance on what each tool does, when to use it, and what its limitations are.

ur-grue/autopunk-media-skills · 43 tokens

social-media-intelligence

Produces a structured open-source intelligence brief on a social media account or set of accounts, covering account authenticity analysis, narrative tracking, and coordination-detection patterns to support investigative reporting.

ur-grue/autopunk-media-skills · 40 tokens

data-cleaning-brief

Writes clear, step-by-step instructions for cleaning a messy or inconsistent dataset — specifying exactly what needs to be standardised, corrected, or removed to make the data ready for analysis and publication.

ur-grue/autopunk-media-skills · 44 tokens

data-outlier-finder

Identifies unusual values, unexpected patterns, and potential stories hidden in a dataset by systematically checking for statistical outliers and contextual anomalies.

ur-grue/autopunk-media-skills · 32 tokens