graphql-api

graphql-api is a skill for Claude Code, Codex from cohen-liel/hivemind. It costs 34 tokens per session (1,776 once invoked), scanned A, original, Apache-2.0.

A set of patterns for designing and building GraphQL APIs. GraphQL is an API style where clients request the exact data they need through a defined schema.

In plain words
What is it for?
Use it when creating GraphQL schemas and servers, writing resolvers, adding subscriptions, or connecting an application to a GraphQL API.
Why use it?
It helps keep the API’s data types, queries, updates, live events, pagination, relationships, and error responses consistent.

Skill for Claude CodeCodex

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.

agentmods
npx agentmods add skills/cohen-liel/hivemind/graphql-api
Any agent
npx skills add cohen-liel/hivemind --skill graphql-api
Clone the repo
git clone --depth 1 https://github.com/cohen-liel/hivemind

Made for: Claude Code, Codex.

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 graphql-api

README.md
[![agentmods](https://agentmods.dev/badge/skills/cohen-liel/hivemind/graphql-api.svg)](https://agentmods.dev/skills/cohen-liel/hivemind/graphql-api)
Your own site
<a href="https://agentmods.dev/skills/cohen-liel/hivemind/graphql-api"><img src="https://agentmods.dev/badge/skills/cohen-liel/hivemind/graphql-api.svg" alt="Measured on agentmods" height="20"></a>
Per session 34 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,776 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00034 $0.01776
Opus 5 $0.00017 $0.00888
Sonnet 5 $0.00007 $0.00355
Haiku 4.5 $0.00003 $0.00178

Measured 5d ago against content hash 87ebbae8b5b1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

graphql-api 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 5d 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.

.claude/skills/graphql-api/SKILL.md · 286 lines

How it starts

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

GraphQL API Patterns

Schema Design (SDL)

# schema.graphql
type Query {
  user(id: ID!): User
  users(filter: UserFilter, pagination: Pagination): UserConnection!
  posts(authorId: ID, published: Boolean): [Post!]!
}

type Mutation {
  createUser(input: CreateUserInput!): UserPayload!
  updateUser(id: ID!, input: UpdateUserInput!): UserPayload!
  deleteUser(id: ID!): Boolean!
}

type Subscription {
  messageAdded(chatId: ID!): Message!
}

type User {
  id: ID!
  email: String!
  name: String!
  posts: [Post!]!
  createdAt: DateTime!
}

type Post {
  id: ID!
  title: String!
  body: String!
  published: Boolean!
  author: User!
  tags: [String!]!
}

# Pagination (Relay-style)
type UserConnection {
  edges: [UserEdge!]!
  pageInfo: PageInfo!
  totalCount: Int!
}
type UserEdge { node: User!; cursor: String! }
type PageInfo { hasNextPage: Boolean!; endCursor: String }

# Input types
input CreateUserInput {
  email: String!
  name: String!
  password: String!
}

input UserFilter {
  role: Role
  search: String
}

input Pagination {
  first: Int
  after: String
}

# Error handling — union pattern
union UserPayload = User | UserError
type UserError { message: String!; code: String! }

enum Role { USER ADMIN }
scalar DateTime

Server Setup (Strawberry / Python)

# graphql_app.py
import strawberry
from strawberry.fastapi import GraphQLRouter
from strawberry.types import Info

@strawberry.type
class User:
    id: strawberry.ID
    email: str
    name: str

    @strawberry.field
    async def posts(self, info: Info) -> list["Post"]:
        return await info.context["loaders"].posts_by_user.load(self.id)

@strawberry.type
class Query:
    @strawberry.field
    async def user(self, id: strawberry.ID, info: Info) -> User | None:
        return await info.context["db"].get_user(id)

    @strawberry.field
    async def users(self) -> list[User]:
        return await info.context["db"].list_users()

@strawberry.type
class Mutation:
    @strawberry.mutation
    async def create_user(self, email: str, name: str, info: Info) -> User:
        return await info.context["db"].create_user(email=email, name=name)

schema = strawberry.Schema(query=Query, mutation=Mutation)

# FastAPI integration
graphql_app = GraphQLRouter(schema, context_getter=get_context)
app.include_router(graphql_app, prefix="/graphql")

Read the full file on GitHub · 286 lines

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. 5d ago First seen · 286 lines · 34 tokens per session scan A 87ebbae8b5b1

Subscribe to this mod's changes

graphql-api is a skill published in the GitHub repository cohen-liel/hivemind (108 stars, last pushed 4mo ago), licensed Apache-2.0. It adds 34 tokens to every session and 1,776 once invoked, about $0.0002 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-30.

Related

Other skills, from other repositories

om-auto-continue-pr

This skill was authored inside the Open Mercato monorepo. In a standalone app the differences below apply. Everything tracker-facing (branches, labels, comments, PRs, issues) goes through the tracker abstraction: execute the operations and label guards exactly as .ai/trackers/github.md defines them, and never inline…

open-mercato/open-mercato · 0 tokens

om-create-ai-agent

Build, override, or extend a typed Open Mercato AI agent (chat or structured-object) using the unified AI framework — declare ai-agents.ts, register tool packs via defineAiTool, patch existing agents with aiAgentExtensions, configure agentic loop controls (loop.stopWhen / loop.prepareStep / loop.budget /…

open-mercato/open-mercato · 227 tokens

ss-dial

Turn ONE design axis up or down as a coordinated, deterministic transform — "denser", "sharper corners", "more muted", "bolder", "flatter", "livelier". Not a vibe the model reinterprets each time; a defined ramp that moves many tokens together, respects the guardrails (8px grid, a11y floors, single accent…

bitjaru/styleseed · 114 tokens

alchemy-webhooks

Receive and verify Alchemy Notify webhooks. Use when setting up Alchemy webhook handlers, debugging X-Alchemy-Signature verification, or handling onchain events like ADDRESSACTIVITY, NFTACTIVITY, or GRAPHQL (Custom Webhook).

hookdeck/webhook-skills · 51 tokens

fireblocks-webhooks

Receive and verify Fireblocks webhooks. Use when setting up Fireblocks webhook handlers, debugging Fireblocks-Webhook-Signature verification (detached JWS / RS512 / JWKS), or handling digital-asset events like transaction.created, transaction.status.updated, or transaction.approvalstatus.updated.

hookdeck/webhook-skills · 65 tokens

utila-webhooks

Receive and verify Utila webhooks. Use when setting up Utila webhook handlers, debugging x-utila-signature RSA/PSS verification, or handling Utila digital-asset events like TRANSACTIONCREATED, TRANSACTIONSTATEUPDATED, WALLETCREATED, WALLETADDRESSCREATED, and TRANSACTIONAMLSCREENINGRESULTREADY.

hookdeck/webhook-skills · 70 tokens