Skip to content
Data
Skill

/generate-match-report

Render the YAML and show it without submitting.

From plugin
narrative-skills-marketplace
811 skills
Install
$ npx -y skills add narrative-io/narrative-skills-marketplace --skill generate-match-report --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/generate-match-report

Context preview

The summary Claude sees to decide when to auto-load this skill.

Render the YAML and show it without submitting.

SKILL.md

generate-match-report.SKILL.md
name: generate-match-report
description: |
  Compare your data to a partner's data in the marketplace. Given a
  dataset you already own with person/edge data, this skill walks you
  through picking a partner data source to match against, choosing which
  identifier types to match on, optionally selecting which enrichment
  attributes to attach, and then submits the report — returning overlap,
  match counts, and demographic coverage.
  Use when: "how does my data compare to your marketplace", "compare my
  data to [partner]", "how much overlap do I have with [supplier]",
  "run a match report", "match my customers against 3P data", "see
  what enrichment is available for my dataset", or any open-ended
  question about marketplace overlap.
  (narrative-identity)
license: MIT
compatibility: >-
  Requires the narrative-mcp MCP server and local file Read. Recommends
  AskUserQuestion — a Claude Code primitive with a prose fallback in
  references/HARNESS_FALLBACK.md. Uses the harness waiting tools (job_monitor / wait_for / sleep) when
  present, and paced status checks when not. Portable to any agentskills.io-compliant
  harness via the documented fallbacks.
metadata:
  version: 0.7.4
  narrative:
    args:
      - name: "--dataset"
        value: "<id>"
        required: false
        description: "Pre-bind the customer's dataset; skip the customer prompt."
      - name: "--supplier-ar"
        value: "<id>"
        required: false
        description: "Pre-bind the partner access rule; skip the partner prompt."
      - name: "--no-enrichment"
        required: false
        description: >-
          Identity-only run; omit step 4 and the attribute-related step-5
          CTEs.
      - name: "--match-key"
        value: "<attr[+attr…]|identifiers>"
        required: false
        description: >-
          Add a match channel (repeatable). identifiers (default) =
          graph_edge identifiers (email/phone). Any other value names
          Rosetta attributes joined with + and fused into one compound
          key, e.g. soundex_first_name+libpostal_normalized_address_array.
          Array-typed components (attribute type = array) are exploded
          with UNNEST. Pass twice to match on both channels.
      - name: "--array-field-handling"
        value: "<standalone-attribute|graph-edge-json>"
        required: false
        description: >-
          Custom match keys, CUSTOMER side only. How the customer
          sources the key's component attributes: standalone-attribute
          (each mapped as its own attribute, UNNEST native arrays) or
          graph-edge-json (TRY_PARSE_JSON the graph_edge target_id,
          CAST AS ARRAY<STRING>, UNNEST). Auto-detected if omitted;
          both yield the identical compound key. The supplier side
          always goes raw-then-block regardless (SC-61797).
      - name: "--dry-run"
        required: false
        description: "Render the YAML and show it without submitting."
    requires:
      skills:
        - narrative-common:profile-dataset
      tools:
        - Read
      mcp-servers:
        - narrative-mcp
      mcp-tools:
        - narrative_context_get
        - narrative_datasets_search
        - narrative_datasets_describe
        - narrative_dataset_request_sample
        - narrative_jobs_describe
        - narrative_jobs_search
        - narrative_nql_validate
        - narrative_workflows_create
        - narrative_workflow_runs_list
    recommends:
      skills:
        - narrative-common:generate-rosetta-stone-mappings
      tools:
        - AskUserQuestion
      mcp-servers:
        - narrative-mcp
      mcp-tools:
        - narrative_context_get_companies
        - narrative_context_search_companies
        - narrative_context_set_company
        - narrative_attributes_describe
        - narrative_attributes_search
        - narrative_nql_execute
        - narrative_workflows_trigger

<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly --> <!-- Regenerate: bun run gen:skill-docs -->

/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 C

Read more
Ships withnarrative-skills-marketplace

An agent skills marketplace from Narrative I/O. Interactive, AI-powered workflows that walk you through the recurring work of a modern data company — mapping schemas, writing NQL, qualifying leads, shipping code, building decks — one approval at a time.

Get the whole plugin
Stats
8
Stars
0
Forks
Active
Maintenance
Go Template
Language
MIT
License
3d ago
Last commit
4mo ago
Created

Repo: narrative-io/narrative-skills-marketplace