From gaiia-api
Explore and query the Gaiia GraphQL API (https://api.gaiia.com/api/v1). Use when a developer wants to build, test, or understand GraphQL queries or mutations against the Gaiia OSS/BSS platform API. Covers iterative schema exploration, query construction, mutation discovery, and API execution. Trigger on requests like "query the Gaiia API", "find subscriptions for customer X", "what mutations exist for billing", "explore the Gaiia schema", or any task involving the Gaiia GraphQL API.
npx claudepluginhub gaiia-systems/agent-plugins-official --plugin gaiia-apiThis skill uses the workspace's default tool permissions.
GraphQL API at `https://api.gaiia.com/api/v1`. Root query type: `Query`. Root mutation type: `Mutation`.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
GraphQL API at https://api.gaiia.com/api/v1. Root query type: Query. Root mutation type: Mutation.
Load these as needed:
Connection/PageInfo types, iterating all pages. Load when building any query that returns a list.data.*.errors[], not top-level errors. Load when handling mutation responses or debugging errors.RATE_LIMITED error. Load when making batch requests or debugging rate limit errors.type_<base58uuid>), UUID↔GlobalID conversion in JS and Python. Load when working with IDs or bridging Snowflake UUIDs to API calls.All scripts live in ${CLAUDE_SKILL_DIR}/scripts/. Make them executable once:
chmod +x ${CLAUDE_SKILL_DIR}/scripts/*.sh
| Script | Purpose |
|---|---|
introspect.sh [output-file] | Fetch and cache the full schema |
search_types.sh <term> [schema] | Find types/fields matching a keyword |
describe_type.sh <TypeName> [schema] | Show all fields + descriptions for a type |
search_mutations.sh <term> [schema] | Find mutations matching a keyword |
Schema defaults to .gaiia-schema.json in the current directory if not specified.
Follow this loop to build any query from scratch. Always explore before writing a query — never guess type or field names.
Check if .gaiia-schema.json exists. If not (or if the user wants a refresh):
bash ${CLAUDE_SKILL_DIR}/scripts/introspect.sh
If a cached schema exists, ask: "I found a cached schema — should I use it or refresh from the API?"
Search by domain keyword to find where to start:
bash ${CLAUDE_SKILL_DIR}/scripts/search_types.sh "subscription"
Show results to the user and confirm which type looks right before proceeding. Example: "I found these types matching 'subscription': Subscription, SubscriptionItem, SubscriptionStatus. Which one should I explore further?"
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh Subscription
Review fields. If a field's type looks relevant but unfamiliar, describe that type too:
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh SubscriptionItem
Repeat until you understand the shape of data needed.
Search the Query type for the relevant root field:
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh Query
Use only field names confirmed from schema exploration. Execute with curl:
curl -s \
-H "Content-Type: application/json" \
-H "X-Gaiia-Api-Key: ${GAIIA_API_KEY}" \
-d '{"query": "{ ... }"}' \
https://api.gaiia.com/api/v1 | jq .
If the query returns errors, check field names against describe_type.sh output — do not guess corrections.
Use results to refine. If a field returns an ID to another type, describe that type and expand the query. Repeat steps 3–5 as needed.
Same principle — search first, then build:
# Find mutations
bash ${CLAUDE_SKILL_DIR}/scripts/search_mutations.sh "subscription"
# Describe the input type for a mutation's argument
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh CreateSubscriptionInput
# Execute
curl -s \
-H "Content-Type: application/json" \
-H "X-Gaiia-Api-Key: ${GAIIA_API_KEY}" \
-d '{"query": "mutation { ... }"}' \
https://api.gaiia.com/api/v1 | jq .
# 1. Cache schema
bash ${CLAUDE_SKILL_DIR}/scripts/introspect.sh
# 2. Find subscription-related types
bash ${CLAUDE_SKILL_DIR}/scripts/search_types.sh "subscription"
# → Show results to user, confirm which type to explore
# 3. Describe the Subscription type
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh Subscription
# → Note fields: id, status, customerId, items, ...
# 4. Find the query entry point
bash ${CLAUDE_SKILL_DIR}/scripts/describe_type.sh Query
# → Find field: subscriptions(customerId: ID!): [Subscription]
# 5. Execute
curl -s \
-H "Content-Type: application/json" \
-H "X-Gaiia-Api-Key: ${GAIIA_API_KEY}" \
-d '{"query": "{ subscriptions(customerId: \"CUSTOMER_X_ID\") { id status items { id } } }"}' \
https://api.gaiia.com/api/v1 | jq .
describe_type.sh first.