{
  "source": "https://github.com/indykite/skills",
  "commit": "ea7dd7895647b00f4cd43bf9f0083819b020fe46",
  "syncedAt": "2026-07-28",
  "install": {
    "generic": "npx skills add indykite/skills",
    "claudeCode": "/plugin marketplace add indykite/skills && /plugin install indykite-skills",
    "geminiCli": "gemini extensions install https://github.com/indykite/skills",
    "singleSkill": "npx skills add indykite/skills --skill <name> --agent <agent>"
  },
  "usage": "Agents without skill support: fetch links.markdown for a skill and follow it in-context; relative links resolve under links.base.",
  "relatedGuide": "/guides/guide-skills.md",
  "skills": [
    {
      "name": "indykite-agent-gateway",
      "family": "Agent Gateway",
      "description": "Deploy and configure IndyKite Agent Gateway (IAG) in front of agent-to-agent (A2A) workflows or MCP servers. Use when wiring up A2A or MCP policy enforcement, modeling workflows in the IKG, or debugging IAG 401/403 responses.",
      "compatibility": "Requires Docker and Docker Compose for the iag-demo reference deployment, or a Kubernetes cluster for production. Runtime network access to the configured IndyKite Hub, OAuth IdP, AuthZEN, and ContX IQ endpoints is required.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/config-template.yaml",
        "references/architecture.md",
        "references/configuration.md",
        "references/troubleshooting.md"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-agent-gateway/SKILL.md",
        "base": "/agent-skills/indykite-agent-gateway/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-agent-gateway"
      }
    },
    {
      "name": "indykite-authzen-evaluation",
      "family": "AuthZEN / KBAC",
      "description": "Make a single KBAC authorization decision via the IndyKite AuthZEN REST API (`POST /access/v1/evaluation`) - returns a boolean `decision` for one (subject, action, resource) triple, optionally with per-request `context.input_params`. Use for a single yes/no question - \"can ada PROVISION gpu-node-7?\", \"is this user allowed to delete this document?\", \"gate this operation on a live check\", or debugging why one decision is false. Not for many checks at once (use indykite-authzen-evaluations), not for enumerating which actions/resources/subjects are allowed (use indykite-authzen-search-action / -search-resource / -search-subject), and not for authoring the policy behind the decision (use indykite-authzen-kbac-policies). For the same decision over MCP/JSON-RPC see indykite-mcp-server (`authzen_evaluate`).",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/evaluation-provision-server.json",
        "references/evaluation-reference.md",
        "references/troubleshooting.md",
        "scripts/evaluate.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-evaluation/SKILL.md",
        "base": "/agent-skills/indykite-authzen-evaluation/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-evaluation"
      }
    },
    {
      "name": "indykite-authzen-evaluations",
      "family": "AuthZEN / KBAC",
      "description": "Run many KBAC authorization decisions in one call via the IndyKite AuthZEN REST API (`POST /access/v1/evaluations`), with top-level subject/action/resource/context as defaults overridden per entry; returns one `decision` per entry, in order. Use when checking a known, fixed set of checks at once - one subject against many resources, one action across many subjects, or any mix of triples - e.g. \"of these servers, which can grace provision?\", \"for each of these users, can they deploy gpu-node-7?\". For a single check use indykite-authzen-evaluation; to enumerate ALL allowed actions/resources/subjects (open-ended, not a fixed list) use indykite-authzen-search-action / -search-resource / -search-subject; to author the policy use indykite-authzen-kbac-policies.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/evaluations-provision-servers.json",
        "references/evaluations-reference.md",
        "scripts/evaluate-batch.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-evaluations/SKILL.md",
        "base": "/agent-skills/indykite-authzen-evaluations/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-evaluations"
      }
    },
    {
      "name": "indykite-authzen-kbac-policies",
      "family": "AuthZEN / KBAC",
      "description": "Author and manage an IndyKite KBAC (Knowledge-Based Access Control) authorization policy - a single subject type, an actions list, a single resource type, and a Cypher condition over the IKG - through the Config API (`/configs/v1/authorization-policies` - create / read / list `?type=kbac` / update / delete, ETag-guarded). Covers `2.0-kbac` and `3.0-kbac` (raw Cypher, optional location routing for composite / data-residency IKGs). Use to write, publish, inspect, update, or delete a KBAC policy - e.g. \"write a policy letting a Person PROVISION a Server within budget\", \"author a location-routed policy for our composite IKG\". This authors the rule; it does NOT make decisions - for \"can X do Y on Z?\" use indykite-authzen-evaluation (single) or indykite-authzen-evaluations (batch), and to enumerate allowed actions/resources/subjects use indykite-authzen-search-action / -search-resource / -search-subject. This is KBAC, not ContX IQ - for CIQ read/write data policies use the indykite-ciq-* skills.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/policy-deploy-prod.json",
        "assets/policy-location-routed.json",
        "assets/policy-provision-server.json",
        "references/policy-reference.md",
        "scripts/create-policy.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-kbac-policies/SKILL.md",
        "base": "/agent-skills/indykite-authzen-kbac-policies/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-kbac-policies"
      }
    },
    {
      "name": "indykite-authzen-search-action",
      "family": "AuthZEN / KBAC",
      "description": "List the actions a subject is allowed to perform on a resource via the IndyKite AuthZEN REST API (`POST /access/v1/search/action`) - returns the granted action names for one pinned (subject, resource) pair. Use to enumerate permitted operations - \"what can linus do with gpu-node-7?\", \"which actions does this user have on this item?\" (e.g. to render only allowed UI controls). Not for a specific-action yes/no (\"can linus DEPLOY gpu-node-7?\" -> indykite-authzen-evaluation); to enumerate the other axes use indykite-authzen-search-resource (which resources) or indykite-authzen-search-subject (which subjects); to author the policy use indykite-authzen-kbac-policies.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/search-action-request.json",
        "references/search-action-reference.md",
        "scripts/search-action.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-search-action/SKILL.md",
        "base": "/agent-skills/indykite-authzen-search-action/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-search-action"
      }
    },
    {
      "name": "indykite-authzen-search-resource",
      "family": "AuthZEN / KBAC",
      "description": "List the resources a subject is allowed to perform a given action on via the IndyKite AuthZEN REST API (`POST /access/v1/search/resource`) - given a subject and an action, returns the matching resource instances of a type. Use to enumerate permitted resources - \"which servers can linus provision?\", \"list the documents this user can read\" (access-filtered feeds). Returns `{type,id}` references, not a yes/no decision and not the resource data itself (for graph data use indykite-ciq-read). For a single-resource yes/no use indykite-authzen-evaluation; to enumerate the other axes use indykite-authzen-search-action (which actions) or indykite-authzen-search-subject (which subjects); to author the policy use indykite-authzen-kbac-policies.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/search-resource-request.json",
        "references/search-resource-reference.md",
        "scripts/search-resource.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-search-resource/SKILL.md",
        "base": "/agent-skills/indykite-authzen-search-resource/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-search-resource"
      }
    },
    {
      "name": "indykite-authzen-search-subject",
      "family": "AuthZEN / KBAC",
      "description": "List the subjects allowed to perform a given action on a resource via the IndyKite AuthZEN REST API (`POST /access/v1/search/subject`) - given a resource and an action, returns the matching subject instances of a type. Use to enumerate who has access - \"who can provision gpu-node-7?\", \"list the people allowed to approve this document\" (audit / reviewer views). Not for a specific-subject yes/no (\"can grace provision gpu-node-7?\" -> indykite-authzen-evaluation); to enumerate the other axes use indykite-authzen-search-action (which actions) or indykite-authzen-search-resource (which resources); to author the policy use indykite-authzen-kbac-policies.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/search-subject-request.json",
        "references/search-subject-reference.md",
        "scripts/search-subject.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-authzen-search-subject/SKILL.md",
        "base": "/agent-skills/indykite-authzen-search-subject/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-authzen-search-subject"
      }
    },
    {
      "name": "indykite-capture-delete-node-properties",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch node-property delete (`POST /capture/v1/nodes/properties/delete`) - a `nodes` array (1-250 per request) where each entry names a node (`external_id` + `type`) and the `property_types` (1-250 names) to strip from it; the node itself survives. On composite IKGs an optional per-node `location` routes the delete. Use when the user wants to remove specific properties from entities in the IndyKite Knowledge Graph (IKG) - \"drop the email property from millicent\", \"strip these deprecated fields from all listed devices\", \"prepare a property-delete payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for deleting whole nodes (indykite-capture-delete-nodes), property metadata only (indykite-capture-delete-node-property-metadata), relationship properties (indykite-capture-delete-relationship-properties), or CIQ policy-mediated deletes (indykite-ciq-delete).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/delete-node-properties.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-delete-node-properties/SKILL.md",
        "base": "/agent-skills/indykite-capture-delete-node-properties/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-delete-node-properties"
      }
    },
    {
      "name": "indykite-capture-delete-node-property-metadata",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch property-metadata delete (`POST /capture/v1/nodes/properties/metadata/delete`) - a `nodes` array (1-250 per request) where each entry names a node (`external_id` + `type`), one `property_type`, and the `metadata_fields` (1-250, e.g. source, assurance_level, verified_time, custom_metadata) to remove from that property; the property and its value survive. Use when the user wants to strip provenance metadata in the IndyKite Knowledge Graph (IKG) - \"remove the assurance level from millicent's name property\", \"clear the verified_time metadata on these records\", \"prepare a metadata-delete payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for deleting the property itself (indykite-capture-delete-node-properties), whole nodes (indykite-capture-delete-nodes), or attaching metadata (indykite-capture-upsert-nodes re-upserts it).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/delete-property-metadata.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-delete-node-property-metadata/SKILL.md",
        "base": "/agent-skills/indykite-capture-delete-node-property-metadata/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-delete-node-property-metadata"
      }
    },
    {
      "name": "indykite-capture-delete-nodes",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch node delete (`POST /capture/v1/nodes/delete`) - a `nodes` array (1-250 per request) of `{external_id, type}` references, each removing one whole node from the IndyKite Knowledge Graph (IKG); on composite IKGs an optional per-node `location` routes the delete to the right constituent. Use when the user wants to remove entities - \"delete these test people from the graph\", \"remove the car kitt\", \"prepare a node-delete payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for removing individual properties (indykite-capture-delete-node-properties), property metadata (indykite-capture-delete-node-property-metadata), relationships (indykite-capture-delete-relationships), or CIQ policy-mediated deletes (indykite-ciq-delete).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/delete-nodes.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-delete-nodes/SKILL.md",
        "base": "/agent-skills/indykite-capture-delete-nodes/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-delete-nodes"
      }
    },
    {
      "name": "indykite-capture-delete-relationship-properties",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch relationship-property delete (`POST /capture/v1/relationships/properties/delete`) - a `relationships` array (1-250 per request), each entry identifying a relationship by `source` node, `target` node (each `external_id` + `type`), and relationship `type`, plus the `property_types` (1-250 names) to strip from it; the relationship itself survives. On composite IKGs setting the top-level `use_global_db` field to `true` targets the global constituent. Use when the user wants to remove properties from edges in the IndyKite Knowledge Graph (IKG) - \"drop the status property from millicent's OWNS edge\", \"prepare a relationship-property-delete payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for deleting the relationship (indykite-capture-delete-relationships), node properties (indykite-capture-delete-node-properties), or CIQ policy-mediated deletes (indykite-ciq-delete).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/delete-relationship-properties.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-delete-relationship-properties/SKILL.md",
        "base": "/agent-skills/indykite-capture-delete-relationship-properties/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-delete-relationship-properties"
      }
    },
    {
      "name": "indykite-capture-delete-relationships",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch relationship delete (`POST /capture/v1/relationships/delete`) - a `relationships` array (1-250 per request), each entry identifying a relationship by `source` node, `target` node (each `external_id` + `type`), and relationship `type`; on composite IKGs setting the top-level `use_global_db` field to `true` targets relationships stored in the global constituent. Use when the user wants to disconnect entities in the IndyKite Knowledge Graph (IKG) - \"remove the CAN_DRIVE link between ryan and kitt\", \"unlink these contracts from their vehicles\", \"prepare a relationship-delete payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. The endpoint nodes survive. Not for deleting nodes (indykite-capture-delete-nodes), removing only relationship properties (indykite-capture-delete-relationship-properties), creating relationships (indykite-capture-upsert-relationships), or CIQ policy-mediated deletes (indykite-ciq-delete).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/delete-relationships.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-delete-relationships/SKILL.md",
        "base": "/agent-skills/indykite-capture-delete-relationships/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-delete-relationships"
      }
    },
    {
      "name": "indykite-capture-upsert-nodes",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch node upsert (`POST /capture/v1/nodes`) - a `nodes` array (1-250 per request) of entities, each with `external_id`, `type`, optional `is_identity` / `labels` / `location`, and typed `properties` (values, external-data references, and per-property metadata such as source, assurance level, and verified time). Use when the user wants to ingest or update entities in the IndyKite Knowledge Graph (IKG) - \"add these people and cars to the graph\", \"upsert this customer with verified email metadata\", \"prepare a nodes payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for connecting nodes (indykite-capture-upsert-relationships), removing them (indykite-capture-delete-nodes), or CIQ policy-mediated writes (indykite-ciq-create-node).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/nodes-vehicle-rental.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-upsert-nodes/SKILL.md",
        "base": "/agent-skills/indykite-capture-upsert-nodes/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-upsert-nodes"
      }
    },
    {
      "name": "indykite-capture-upsert-relationships",
      "family": "Capture API",
      "description": "Build the request-body JSON for the IndyKite Capture API batch relationship upsert (`POST /capture/v1/relationships`) - a `relationships` array (1-250 per request), each entry connecting a `source` node to a `target` node (by `external_id` + `type`) with a relationship `type` and optional typed `properties`; on composite IKGs setting `use_global_db` to `true` routes cross-location relationships to the global constituent. Use when the user wants to connect existing entities in the IndyKite Knowledge Graph (IKG) - \"link millicent OWNS kitt\", \"wire these contracts to their vehicles\", \"prepare a relationships payload for the Capture API\". Produces a ready-to-send JSON file; sending it is optional. Not for creating the nodes themselves (indykite-capture-upsert-nodes), removing relationships (indykite-capture-delete-relationships), or CIQ policy-mediated writes (indykite-ciq-create-relationship).",
      "compatibility": "Requires curl, bash 4+, and jq for the bundled helper script; authoring the JSON payload itself needs no tools. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/relationships-vehicle-rental.json",
        "references/capture-reference.md",
        "scripts/capture.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-capture-upsert-relationships/SKILL.md",
        "base": "/agent-skills/indykite-capture-upsert-relationships/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-capture-upsert-relationships"
      }
    },
    {
      "name": "indykite-ciq-add-property",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that sets one or more properties on an existing node in the IndyKite Graph (IKG), then run it via `POST /contx-iq/v1/execute`. Use when adding a brand-new property, overwriting an existing one, or attaching property metadata - no node creation, no relationship writes, no deletes.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-update-own-profile.json",
        "assets/policy-update-own-profile.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-add-property/SKILL.md",
        "base": "/agent-skills/indykite-ciq-add-property/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-add-property"
      }
    },
    {
      "name": "indykite-ciq-add-relationship-property",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that sets one or more properties on an existing relationship in the IndyKite Graph (IKG), then run it via `POST /contx-iq/v1/execute`. Use when adding a brand-new property, overwriting an existing one, or attaching property metadata on a relationship that's already in the IKG - no relationship creation, no node writes, no deletes.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-annotate-played-at.json",
        "assets/policy-annotate-played-at.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-add-relationship-property/SKILL.md",
        "base": "/agent-skills/indykite-ciq-add-relationship-property/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-add-relationship-property"
      }
    },
    {
      "name": "indykite-ciq-create-node",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that creates a brand-new node in the IndyKite Graph (IKG), then run it via `POST /contx-iq/v1/execute`. Use when ingesting a new entity through CIQ - no relationship creation, no updates to existing nodes, no deletes.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-create-track.json",
        "assets/policy-create-track.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-create-node/SKILL.md",
        "base": "/agent-skills/indykite-ciq-create-node/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-create-node"
      }
    },
    {
      "name": "indykite-ciq-create-node-with-link",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that creates a brand-new node AND links it to one or more existing nodes via new relationships in a single `POST /contx-iq/v1/execute` call. Use when ingesting a new entity that must be wired into the IKG atomically - combines node creation and relationship creation in one operation.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-create-contract.json",
        "assets/policy-create-contract.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-create-node-with-link/SKILL.md",
        "base": "/agent-skills/indykite-ciq-create-node-with-link/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-create-node-with-link"
      }
    },
    {
      "name": "indykite-ciq-create-relationship",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that creates a brand-new relationship between two existing nodes in the IndyKite Graph (IKG), then run it via `POST /contx-iq/v1/execute`. Use when wiring two existing entities together through CIQ - no new nodes, no relationship updates, no deletes.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-create-played-at.json",
        "assets/policy-create-played-at.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-create-relationship/SKILL.md",
        "base": "/agent-skills/indykite-ciq-create-relationship/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-create-relationship"
      }
    },
    {
      "name": "indykite-ciq-delete",
      "family": "ContX IQ",
      "description": "Author an IndyKite ContX IQ (CIQ) policy plus its Knowledge Query that deletes a node, a relationship, or one or more properties from the IndyKite Graph (IKG), then run it via `POST /contx-iq/v1/execute`. Use when removing data through CIQ - three modes (whole node, whole relationship, individual property) sharing the same policy/KQ shape.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-delete-music-mood.json",
        "assets/policy-delete-music-mood.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "references/troubleshooting.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-delete/SKILL.md",
        "base": "/agent-skills/indykite-ciq-delete/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-delete"
      }
    },
    {
      "name": "indykite-ciq-read",
      "family": "ContX IQ",
      "description": "Author a read-only IndyKite ContX IQ (CIQ) policy plus its Knowledge Query, then run it via `POST /contx-iq/v1/execute`. Use when exposing IKG nodes, relationships, or aggregate values as a parameterized read query - no upserts, no deletes.",
      "compatibility": "Requires curl, bash 4+, and jq. Network access to the regional IndyKite REST API (eu.api.indykite.com or us.api.indykite.com) is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "assets/knowledge-query-read-cars.json",
        "assets/policy-read-cars.json",
        "references/execution-reference.md",
        "references/knowledge-query-reference.md",
        "references/policy-reference.md",
        "scripts/execute.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-ciq-read/SKILL.md",
        "base": "/agent-skills/indykite-ciq-read/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-ciq-read"
      }
    },
    {
      "name": "indykite-mcp-server",
      "family": "MCP Server",
      "description": "Make live IndyKite authorization decisions (AuthZEN/KBAC) and run ContX IQ graph queries from an AI agent over the Model Context Protocol - one Bearer-token JSON-RPC session, no bespoke REST wiring. Use when initializing an MCP session, calling its tools (authzen_evaluate, authzen_evaluations, authzen_search_*, ciq_execute), configuring an MCP server, or debugging its single Bearer-token auth.",
      "compatibility": "Requires curl and bash 4+. Network access to eu.mcp.indykite.com or us.mcp.indykite.com, plus the OAuth IdP that issues Bearer tokens, is required at runtime.",
      "license": "Apache-2.0",
      "files": [
        "SKILL.md",
        "references/architecture.md",
        "references/configuration.md",
        "references/tools.md",
        "references/troubleshooting.md",
        "scripts/init-session.sh"
      ],
      "links": {
        "markdown": "/agent-skills/indykite-mcp-server/SKILL.md",
        "base": "/agent-skills/indykite-mcp-server/",
        "github": "https://github.com/indykite/skills/tree/ea7dd7895647b00f4cd43bf9f0083819b020fe46/indykite-mcp-server"
      }
    }
  ]
}