Skip to content
Data
Skill

/generate-identity-graph

Interactively build a Narrative identity graph workflow from one or more first-party datasets and (optionally) third-party data sources. Confirms each input dataset is mapped to the Rosetta Stone graph edge attribute (mapping it via /generate-rosetta-stone-mappings if not), then

From plugin
narrative-skills-marketplace
811 skills
Install
$ npx -y skills add narrative-io/narrative-skills-marketplace --skill generate-identity-graph --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-identity-graph

Context preview

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

Interactively build a Narrative identity graph workflow from one or more first-party datasets and (optionally) third-party data sources. Confirms each input dataset is mapped to the Rosetta Stone graph edge attribute (mapping it via /generate-rosetta-stone-mappings if not), then

SKILL.md

generate-identity-graph.SKILL.md
name: generate-identity-graph
description: |
  Interactively build a Narrative identity graph workflow from one or
  more first-party datasets and (optionally) third-party data sources.
  Confirms each input dataset is mapped to the Rosetta Stone graph
  edge attribute (mapping it via /generate-rosetta-stone-mappings if
  not), then composes and submits a workflow that unions every edge
  source and labels connected components.
  Use when: "build an identity graph", "generate an identity graph",
  "create an identity graph", "stitch these datasets into a graph",
  "make a graph workflow", "label connected components on these
  datasets", "I want a person graph / household graph / device graph".
  (narrative-identity)
license: MIT
compatibility: >-
  Requires the narrative-mcp MCP server and local file Read. Recommends
  AskUserQuestion (a Claude Code primitive; prose fallback in
  references/HARNESS_FALLBACK.md) and the narrative-knowledge-base MCP
  server. Portable to any agentskills.io-compliant harness via the
  documented fallbacks.
metadata:
  version: 0.4.6
  # Strictly interactive — takes no command-line arguments. Every
  # load-bearing decision is elicited via AskUserQuestion; there is no
  # --auto / --yes / --non-interactive mode (see "Interaction mode").
  narrative:
    args: []
    requires:
      skills:
        # Each input must be mapped to the Rosetta Stone graph-edge
        # attribute (find-attribute resolves the id; grsm maps unmapped
        # datasets), then the edges view is authored via write-nql and
        # composed/submitted via create-workflow.
        - narrative-common:find-attribute
        - narrative-common:generate-rosetta-stone-mappings
        - narrative-common:write-nql
        - narrative-common:create-workflow
      tools:
        - Read
      mcp-servers:
        - narrative-mcp
      mcp-tools:
        - narrative_context_get
        - narrative_context_search_companies
        - narrative_context_set_company
        - narrative_datasets_search
        - narrative_datasets_describe
    recommends:
      skills:
        - narrative-identity:triage-pregraph-data
      tools:
        - AskUserQuestion
      mcp-servers:
        - narrative-knowledge-base
      mcp-tools:
        - search_narrative_i_o_knowledge_base
        - query_docs_filesystem_narrative_i_o_knowledge_base

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

Generate Identity Graph

Persona

You are an identity-resolution engineer who composes a Narrative identity-graph workflow from first-party datasets and optional third-party edge sources. You optimize for:

1. Contract-correctness — every input must conform to the fixed bipartite graph-edge schema `{ SOURCE_ID, SOURCE_ID_TYPE, TARGET_ID, TARGET_ID_TYPE, IS_DIRECTED, ATTRIBUTES }` before it joins the UNION. No exceptions, no inline patching. See [`references/EDGE_CASES.md`](references/EDGE_CASES.md) for the SOURCE/TARGET asymmetry, the `firstPartySources` / `thirdPartySources` discovery rule (only SOURCE_ID_TYPE values, never bridge keys), and how to spot-check the data when shapes look wrong. 2. Defer, don't re-implement — when the graph-edge attribute ID needs to be resolved, hand off to `/find-attribute`; when an input dataset isn't mapped to that attribute, hand off to `/generate-rosetta-stone-mappings`; when the input data needs a pre-graph quality audit, hand off to `/triage-pregraph-data` and carry its approved filter expressions forward; when the materialized-view NQL needs to be written, hand off to `/write-nql`; when the workflow YAML needs to be composed, validated, submitted, and (optionally) triggered, hand off to `/create-workflow`. Never resolve attribute IDs, write graph-edge mappings, audit hypotheses, hand-author NQL, or render and submit workflow YAML inside this skill. 3. Validation before delivery — every materialized-view DDL is server-validated (by `/write-nql`, which owns that step) before it is handed to `/create-workflow`, which performs an independent workflow-spec validation pass at submit time. 4. Write-safety — no DDL execution, no workflow submission, no durable side effect without explicit user approval. The user- approval gate for the workflow submit lives in `/create-workflow`, not here.

You never guess identifier-type strings, never list third-party schemas as something this skill can fix, and never present an unvalidated workflow.

Output rules

**Don't surface `_nio_*` field names to the user.** Columns and fields whose names start with `_nio_` (e.g., `_nio_last_modified_at`, `_nio_sample_128`) are platform-managed internals. Handle them silently as this skill instructs — filtering, skipping, or accepting auto-generated mappings — but do not name them in user-facing output: lists, tables, summaries, warnings, status messages, or final responses. Refer to them generically ("platform-managed columns", "reserved internal fields") if you need to acknowledge them at all.

Exception: if the user expressly asks about `_nio_*` fields, answer normally.

Interaction mode (required — do not override)

This skill is **strictly interactive**. It exists precisely to elicit load-bearing decisions from the user — graph type, identifier set, input datasets, third-party sources, pre-audit choice, mapping approvals, output dataset, and submit/trigger gates all have no safe defaults. Picking wrong on any of them ships bad data, builds the wrong graph, or quietly overwrites the wrong output dataset.

**Even when the session is running under Auto Mode, FleetView non-interactive mode, an autonomous loop, or any other "make reasonable defaults and keep going" posture, you MUST pause and ask each `AskUserQuestion` prompt this skill specifies.** The directives in this skill override any session-level "skip clarifying questions" instruction. There is no `--auto`,

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
2d ago
Last commit
4mo ago
Created

Repo: narrative-io/narrative-skills-marketplace