generate-match-report

generate-match-report is a skill for Claude Code from narrative-io/narrative-skills-marketplace. It costs 154 tokens per session (12,481 once invoked), scanned A, original, MIT.

A guided workflow for comparing a people-and-relationships dataset with data from a marketplace partner.

In plain words
What is it for?
It helps choose a partner data source, select matching identifiers, optionally add partner attributes, and submit a match report.
Why use it?
It turns a plain-language comparison question into a structured report while checking the request before submitting a run that can take several minutes.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: names the AskUserQuestion tool; mentions Claude Code.

Part of the narrative-identity plugin — 3 skills shipped together

Good fit It helps choose a partner data source, select matching identifiers, optionally add partner attributes, and submit a match report.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/narrative-io/narrative-skills-marketplace/generate-match-report
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 narrative-io/narrative-skills-marketplace --skill generate-match-report
Clone the repo
git clone --depth 1 https://github.com/narrative-io/narrative-skills-marketplace

Made for: Claude Code.

Or install narrative-identity, the plugin that ships this one along with the rest of its 3 skills.

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 generate-match-report

README.md
[![agentmods](https://agentmods.dev/badge/skills/narrative-io/narrative-skills-marketplace/generate-match-report/github.svg)](https://agentmods.dev/skills/narrative-io/narrative-skills-marketplace/generate-match-report)
Your own site
<a href="https://agentmods.dev/skills/narrative-io/narrative-skills-marketplace/generate-match-report"><img src="https://agentmods.dev/badge/skills/narrative-io/narrative-skills-marketplace/generate-match-report/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for generate-match-report

Your own site · 80×15
<a href="https://agentmods.dev/skills/narrative-io/narrative-skills-marketplace/generate-match-report"><img src="https://agentmods.dev/badge/skills/narrative-io/narrative-skills-marketplace/generate-match-report.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 154 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 12,481 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. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.00154 $0.12481
Opus 5 $0.00077 $0.06241
Sonnet 5 $0.00031 $0.02496
Haiku 4.5 $0.00015 $0.01248

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

Security

Grade A, and why

generate-match-report 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 12d 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.

plugins/narrative-identity/skills/generate-match-report/SKILL.md · 1,118 lines

How it starts

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

/generate-match-report — Compare your data to a marketplace partner

Persona

You are a marketplace match-report engineer who turns a plain-English "how does my data compare to theirs" question into a submitted Narrative workflow. You optimize for:

  1. Schema fidelity. The workflow YAML in assets/ and the NQL inside it are external contracts — the downstream report UI keys off the exact ATTRIBUTE_TYPE rows the queries produce. Macro- substitute the variables; never rewrite the queries or the row schema.
  2. Pre-flight before submit. A match-report run takes 5–25 minutes; a 5-second narrative_nql_validate pass per step is free insurance against typos that would otherwise burn that time.
  3. Defaults grounded in data. Pre-tick every option from the partner AR's mapped attributes and the customer dataset's id-type histogram — not from imagination. The user unchecks what they don't want.

You never rewrite the workflow YAML or its NQL, never submit before each step's NQL validates, and never invent identifier types the customer dataset doesn't actually emit.

Translates the user's plain-English overlap question into a workflow submission against assets/workflow.yaml.tmpl. The user doesn't need to know the jargon — they want to know how much of their data overlaps with a partner's and what extra information they could attach to each person if they bought the data. Submit the whole workflow at once (the runner handles step ordering and retries); every AskUserQuestion gets 2–4 recommended options, with free-text reserved for inputs MCP cannot enumerate.

Arguments

  • /generate-match-report — full interactive workflow.
  • /generate-match-report --dataset <id> — skip the customer prompt.
  • /generate-match-report --supplier-ar <id> — skip the partner prompt.
  • /generate-match-report --no-enrichment — identity-only run; omit step 4 and the attribute-related step-5 CTEs.
  • /generate-match-report --match-key <attr[+attr…]|identifiers> — add a match channel (repeatable). identifiers (the default when the flag is omitted) matches on the dataset's graph_edge identifiers (email/phone/etc.). Any other value names one or more Rosetta attributes joined with +, fused into a single compound key — e.g. --match-key soundex_first_name+libpostal_normalized_address_array. Components whose attribute type is array are exploded with UNNEST so the join runs once per array element. Pass the flag twice to match on both channels; the report breaks results down per ID_TYPE. See references/CUSTOM_MATCH_KEY_VARIANT.md.
  • /generate-match-report --array-field-handling <standalone-attribute|graph-edge-json> — (custom match keys, customer side only) how the customer sources the key's component attributes. standalone-attribute (default): read each component as its own mapped Rosetta attribute — e.g. soundex_first_name (81) + libpostal_normalized_address_array (326) — and UNNEST native arrays. graph-edge-json: the components are packed into a graph_edge target_id JSON — TRY_PARSE_JSON + CAST(... AS ARRAY<STRING>) + UNNEST instead. Both yield the identical compound key (proven equivalent, SC-62612). Omit to auto-detect from the customer dataset's mappings. The flag never selects a supplier-side path: the supplier extraction is always raw-then-block (variant doc, step 2), because computed Rosetta attributes re-derive per row at query time (SC-61797).
  • /generate-match-report --dry-run — render the YAML and show it without submitting.

Read the full file on GitHub · 1,118 lines

Files

What ships with it

7 files 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. 12d ago First seen · 1,118 lines · 154 tokens per session scan A 2b65d92b935f

Subscribe to this mod's changes

generate-match-report is a skill published in the GitHub repository narrative-io/narrative-skills-marketplace (8 stars, last pushed yesterday), licensed MIT. It adds 154 tokens to every session and 12,481 once invoked, about $0.0008 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

ops-demo

CocoOps demo mode activator — populates .cocoplus/ops/demo/ with realistic mock data and sets cocoplus.toml [demo] enabled = true. Invoked via $ops demo.

Snowflake-Labs/cocoplus · 46 tokens

managing-astro-local-env

Manage local Airflow environment with Astro CLI (Docker and standalone modes). Use when the user wants to start, stop, or restart Airflow, view logs, query the Airflow API, troubleshoot, or fix environment issues. For project setup, see setting-up-astro-project.

astronomer/agents · 63 tokens

checking-freshness

Quick data freshness check. Use when the user asks if data is up to date, when a table was last updated, if data is stale, or needs to verify data currency before using it.

astronomer/agents · 44 tokens

agent-teams-simplify-and-harden

Implementation + audit loop using parallel agent teams with structured simplify, harden, and document passes. Spawns implementation agents to do the work, then audit agents to find complexity, security gaps, and spec deviations, then loops until code compiles cleanly, all tests pass, and auditors find zero issues or…

LeoYeAI/openclaw-master-skills · 115 tokens

agent-team-orchestration

Orchestrate multi-agent teams with defined roles, task lifecycles, handoff protocols, and review workflows. Use when: (1) Setting up a team of 2+ agents with different specializations, (2) Defining task routing and lifecycle (inbox → spec → build → review → done), (3) Creating handoff protocols between agents, (4)…

LeoYeAI/openclaw-master-skills · 102 tokens

diary

Show CocoDiary operator-facing work journal status.

Snowflake-Labs/cocoplus · 12 tokens