refresh-tarkovdev-schema

Refresh Tarkov.dev Schema Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "refresh-tarkovdev-schema" with this command: npx skills add sjtw/tarkov-build-optimiser/sjtw-tarkov-build-optimiser-refresh-tarkovdev-schema

Refresh Tarkov.dev Schema Skill

Use this skill when updating the tarkov.dev GraphQL schema or regenerating the Go client.

When to Use

  • Tarkov.dev API has added new fields or types you need

  • GraphQL queries are failing with "unknown field" errors

  • You want to use new data that's available in the API

  • After a major tarkov.dev API update

  • Setting up the project for the first time (if schema is missing)

Quick Update

Fetch latest schema and regenerate client

task tarkovdev

This runs two steps:

  • tarkovdev:get-schema

  • Downloads the latest schema from tarkov.dev

  • tarkovdev:regenerate

  • Regenerates Go code from your queries

Step-by-Step Process

Step 1: Fetch Latest Schema

task tarkovdev:get-schema

What it does:

Requirements:

  • graphql-inspector CLI tool (installed via task deps:install:node )

  • Internet connection to reach api.tarkov.dev

Step 2: Update Your Queries (if needed)

If you want to use new fields, update your queries in:

internal/tarkovdev/schemas/queries.graphql

Example: Adding a new field to an existing query

query GetWeapons { items(type: weapon) { id name # Add new fields here weight basePrice } }

Step 3: Regenerate Go Client

task tarkovdev:regenerate

What it does:

  • Runs genqlient code generator

  • Reads genqlient.yaml configuration

  • Generates Go types and functions in internal/tarkovdev/generated-queries.go

Configuration file: genqlient.yaml

schema: internal/tarkovdev/schemas/schema.graphql operations:

  • internal/tarkovdev/schemas/queries.graphql generated: internal/tarkovdev/generated-queries.go

Step 4: Verify the Changes

Check what changed

git diff internal/tarkovdev/

Ensure it compiles

go build ./...

Run relevant tests

go test ./internal/tarkovdev/... go test ./internal/importers/...

What Gets Generated

After regeneration, internal/tarkovdev/generated-queries.go contains:

  • Go structs for all GraphQL types used in your queries

  • Query functions like GetWeapons(ctx, client) , GetMods(ctx, client) , etc.

  • Response types with proper JSON unmarshaling

Example generated code:

type GetWeaponsResponse struct { Items []GetWeaponsItem json:"items" }

type GetWeaponsItem struct { Id string json:"id" Name string json:"name" // New fields appear here automatically }

func GetWeapons(ctx context.Context, client graphql.Client) (*GetWeaponsResponse, error) { // Generated query execution }

Making Query Changes

Add a New Query

  • Open internal/tarkovdev/schemas/queries.graphql

  • Add your query:

query GetTraderOffers { traders { id name cashOffers { item { id name } price } } }

  • Regenerate:

task tarkovdev:regenerate

  • Use the generated function:

import "tarkov-build-optimiser/internal/tarkovdev"

resp, err := tarkovdev.GetTraderOffers(ctx, graphqlClient)

Modify an Existing Query

  • Edit the query in queries.graphql

  • Regenerate: task tarkovdev:regenerate

  • Update any code using the old structure (compiler will help find it)

Remove a Query

  • Delete or comment out the query in queries.graphql

  • Regenerate: task tarkovdev:regenerate

  • Remove any code calling the deleted query function

Understanding the Schema

View the Schema

Open in your editor

code internal/tarkovdev/schemas/schema.graphql

The schema shows:

  • Available types (Item, Weapon, Mod, Trader, etc.)

  • Fields on each type

  • Query operations you can use

  • Enums and their values

Explore Available Fields

Look for the type you're interested in

type Item { id: ID! name: String weight: Float types: [ItemType!]!

... many more fields

}

Check Query Operations

type Query { items(type: ItemType): [Item] item(id: ID!): Item traders: [Trader]

... etc

}

Troubleshooting

Schema fetch fails

Error: Can't connect to api.tarkov.dev

Solutions:

  • Check internet connection

  • Verify API is online: curl https://api.tarkov.dev/graphql

  • Check if API endpoint changed (update in Taskfile)

  • Try again later (API might be down)

Code generation fails

Error: genqlient errors during regeneration

Check:

  • Query syntax is valid GraphQL

  • Field names match the schema exactly (case-sensitive)

  • Types used in queries exist in the schema

  • Required fields are included in queries

Debug:

Validate your queries manually

cat internal/tarkovdev/schemas/queries.graphql

Check genqlient version

go list -m github.com/Khan/genqlient

Generated code has compilation errors

After regeneration, Go build fails

Solutions:

  • Update code using the changed types

  • Check if field names or types changed in the API

  • Verify your queries match the new schema

  • Look for breaking changes in tarkov.dev API

New fields not appearing

You fetched the schema but new fields aren't available

Check:

  • Did you run task tarkovdev:get-schema ?

  • Is the field added to your query in queries.graphql ?

  • Did you run task tarkovdev:regenerate after updating queries?

  • Is the field actually in the schema? (Check schema.graphql )

Best Practices

When to Update

  • ✅ Before starting work that needs new API fields

  • ✅ When GraphQL errors mention unknown fields

  • ✅ Periodically to stay current with API changes

  • ❌ Not during active development unless needed

  • ❌ Not if your queries are working fine

After Updating

  • Check the diff to understand what changed

  • Update your queries if needed

  • Rebuild and test

  • Update importers if data structures changed

  • Commit schema and generated code together

Query Design

  • Request only fields you actually use (performance)

  • Use fragments for reusable field sets

  • Keep queries focused and named clearly

  • Document complex queries with comments

Files Involved

  • Schema source: https://api.tarkov.dev/graphql

  • Schema file: internal/tarkovdev/schemas/schema.graphql

  • Your queries: internal/tarkovdev/schemas/queries.graphql

  • Generated code: internal/tarkovdev/generated-queries.go

  • Config: genqlient.yaml

  • Client wrapper: internal/tarkovdev/tarkov-dev.go

Dependencies

Installed via task deps:install:node :

  • graphql-inspector
  • For schema introspection

Installed via task deps:install:go :

  • github.com/Khan/genqlient
  • For code generation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

build-evaluation-developer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

troubleshoot-local-dev

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

setup-dev-environment

No summary provided by upstream source.

Repository SourceNeeds Review