Skip to content
Data
Skill

/generate-match-report

Render the YAML and show it without submitting.

From plugin
narrative-skills-marketplace
916 skills

Claude Code

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

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
@narrative-io
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.

Stars on GitHub

Momentum

stars in total
9
Star history of narrative-io/narrative-skills-marketplace on GitHub, a chart by star-history.com

More skills from other plugins.

context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

mem08d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

posthog2w41k
@posthog@posthogInstall Skill

Questions about generate-match-report.

Which coding agents can use generate-match-report?
generate-match-report installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.