Official agent skill

SDK Contract Navigator

by microsoft in microsoft/terraform-provider-fabric

Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.

OfficialMPL-2.0Auto-check passedDevOps & Cloud

Install SDK Contract Navigator

skills CLI
$ npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/terraform-provider-fabric sdk-contract-navigator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/terraform-provider-fabric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/sdk-contract-navigator .claude/skills/sdk-contract-navigator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sdk-contract-navigator
GitHub stars
128
Token cost
~3k tokens
SKILL.md length
919 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MPL-2.0

At a glance

Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.

  • Works in 2 steps: Check SDK Version and Ensure Local Cache → Determine Resource Category
  • : identifying SDK packages
  • SKILL.md covers Prerequisites, Step 1 — Check SDK Version and…, Step 2 — Determine Resource… and Fabric Items Path (Category A), plus 2 more sections
  • Calls go

What it does

SDK Contract Navigator is an agent skill from microsoft/terraform-provider-fabric, published by the product's own GitHub organization. Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource. USE FOR: identifying SDK packages, client factories, DTO structs, item type constants, and pager methods for any Fabric resource.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud. It works with GitHub, Go and Terraform. The repository describes itself as: Terraform Provider for Microsoft Fabric. The licence is MPL-2.0.

When your agent uses it

  • : identifying SDK packages
  • Client factories
  • Item type constants
  • Pager methods for any Fabric resource

Example prompts

  • “/sdk-contract-navigator”

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Check SDK Version and Ensure Local Cache
  2. Determine Resource Category

What it can do on your machine

Read from SKILL.md and the folder at commit 86c83be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

SDK Contract Navigator loads about 3k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 919 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/terraform-provider-fabric at commit 86c83be, republished under its MPL-2.0 licence (© microsoft). 919 words, ~3,027 tokens.

Download SKILL.mdSave it as .claude/skills/sdk-contract-navigator/SKILL.md (or your agent's skills folder).
name
sdk-contract-navigator
description
Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource. USE FOR: identifying SDK packages, client factories, DTO structs, item type constants, and pager methods for any Fabric resource.

Skill: SDK Contract Navigator

Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.

Prerequisites

  • The user has identified a Fabric resource name (e.g. "Lakehouse", "Connection", "Shortcut")

Step 1 — Check SDK Version and Ensure Local Cache

Read go.mod in the provider repo root and find the github.com/microsoft/fabric-sdk-go dependency line to determine the current version:

github.com/microsoft/fabric-sdk-go <version>

Record the exact version string. All SDK browsing must target the version found in go.mod.

Important: Always read go.mod dynamically — never assume or hardcode the SDK version. It changes with dependency upgrades.

Then ensure the SDK is in the local Go module cache:

powershell
go mod download github.com/microsoft/fabric-sdk-go@<version>

The SDK source is now available at a deterministic path:

$(go env GOPATH)/pkg/mod/github.com/microsoft/fabric-sdk-go@<version>/

Primary source: Always use the local Go module cache for SDK browsing. It is faster and more reliable than GitHub MCP tools (get_file_contents returns large JSON blobs that are hard to search; search_code has indexing lag). Use read_file and Select-String (PowerShell) to browse and search SDK files directly.

Fallback only: Use GitHub MCP tools or pkg.go.dev only if the local cache is unavailable.

Useful search commands
powershell
# Find a struct definition
Select-String -Path "<sdk-path>\models.go" -Pattern "^type <StructName> struct"

# Find a field across all structs (with context)
Select-String -Path "<sdk-path>\models.go" -Pattern "<FieldName>" -Context 5

# List all structs matching a pattern
Select-String -Path "<sdk-path>\models.go" -Pattern "^type .*Connection.*struct" | Select-Object -ExpandProperty Line

# List directory contents
Get-ChildItem "<sdk-path>\fabric\" -Directory | Select-Object -ExpandProperty Name

Step 2 — Determine Resource Category

This provider has two resource categories with different SDK patterns:

Category A: Fabric Items (~60% of resources)

These use the generic fabricitem abstraction with per-item SDK packages.

Identifying trait: The SDK has a dedicated package under fabric/<itempackage>/ with its own client factory, and the provider service uses fabricitem.NewResource* constructors.

Examples: Lakehouse, Eventhouse, Data Pipeline, SQL Database, KQL Database, Notebook, Semantic Model, Spark Job Definition, ML Experiment, ML Model, Environment, Warehouse, etc.

Category B: Non-item resources (~40% of resources)

These use bespoke CRUD implementations with clients from the fabric/core/ package or other shared packages.

Identifying trait: The SDK client is accessed via fabcore.*Client (e.g. fabcore.ConnectionsClient, fabcore.ShortcutsClient, fabcore.GatewaysClient). The provider service implements resource.Resource directly without fabricitem generics.

Examples: Connection, Shortcut, Gateway, Workspace, Domain, Workspace Role Assignment, Connection Role Assignment, Gateway Role Assignment, Deployment Pipeline Role Assignment, Workspace Git, etc.

Proceed with Step 3A for Fabric Items or Step 3B for non-item resources.


Fabric Items Path (Category A)

Step 3A — Locate the SDK Package

The SDK organizes item packages under fabric/<packagename>/.

Using local module cache — List directories to find the item package:

powershell
Get-ChildItem "<sdk-path>\fabric\" -Directory | Select-Object -ExpandProperty Name

Look for a directory matching the item name (lowercased, no spaces). Common patterns:

Item NameSDK Package Path
Lakehousefabric/lakehouse/
Eventhousefabric/eventhouse/
SQL Databasefabric/sqldatabase/
Data Pipelinefabric/datapipeline/
KQL Databasefabric/kqldatabase/
Spark Job Definitionfabric/sparkjobdefinition/
Mirrored Databasefabric/mirroreddatabase/
Copy Jobfabric/copyjob/
Step 4A — Identify the Client Factory

Read the SDK package's client factory file (usually client_factory.go) from the local cache. The pattern is:

go
fab<package>.NewClientFactoryWithClient(fabricClient).NewItemsClient()

For example:

  • fablakehouse.NewClientFactoryWithClient(fabricClient).NewItemsClient()
  • fabeventhouse.NewClientFactoryWithClient(fabricClient).NewItemsClient()
Step 5A — Identify CRUD Methods

Read the items client file (usually items_client.go) for these methods:

Method TypePatternExample
Getclient.Get<ItemName>(ctx, workspaceID, itemID, nil)client.GetLakehouse(ctx, wID, iID, nil)
List pagerclient.NewList<ItemNames>Pager(workspaceID, nil)client.NewListLakehousesPager(wID, nil)
Createclient.Create<ItemName>(ctx, workspaceID, payload, nil)client.CreateLakehouse(ctx, wID, payload, nil)
Updateclient.Update<ItemName>(ctx, workspaceID, itemID, payload, nil)client.UpdateLakehouse(ctx, wID, iID, payload, nil)
Deleteclient.Delete<ItemName>(ctx, workspaceID, itemID, nil)client.DeleteLakehouse(ctx, wID, iID, nil)

Also check for definition methods (indicates definition or *-definition-* archetype):

  • client.Get<ItemName>Definition(ctx, workspaceID, itemID, nil)
  • client.Update<ItemName>Definition(ctx, workspaceID, itemID, payload, nil)
Step 6A — Identify the ItemType Constant

The item type constant lives in the core package (fabric/core/), typically in constants.go or models.go:

go
fabcore.ItemType<ItemName>

Examples: fabcore.ItemTypeLakehouse, fabcore.ItemTypeEventhouse, fabcore.ItemTypeSQLDatabase

Show full SKILL.md (372 more words)Show less
Step 7A — Identify DTO Structs

Read the SDK package's models.go file for these key structs:

DTOPurposeHow to Identify
Main item structTop-level item (e.g. Lakehouse)Has fields: ID, DisplayName, Description, WorkspaceID, Properties
PropertiesRead-only properties from Get responseStruct named Properties with server-computed fields
CreationPayloadCreate-time configurationStruct named CreationPayload with user-settable fields

Also look for:

  • Enum types — Any type <Name> string with Possible<Name>Values() func
  • Nested structs — Structs referenced as pointer fields within Properties
Step 8A — Determine the Item Archetype

Use the "Item Archetypes" table in .github/instructions/fabric-item-patterns.instructions.md to match SDK capabilities to the correct archetype.

How to check:

  • Has Properties → The Get response struct has a Properties field of a named struct type
  • Has CreationPayload → A CreationPayload struct exists in the package
  • Has Definition → The items client has GetDefinition / UpdateDefinition methods

Non-item resources path (Category B)

Step 3B — Locate the SDK Client

Non-item resources typically use clients from the fabric/core/ package. For the SDK client mapping, see the "SDK Client Mapping" table in .github/instructions/non-item-patterns.instructions.md.

Client access pattern:

go
client := fabcore.NewClientFactoryWithClient(fabricClient).NewConnectionsClient()
Step 4B — Identify CRUD Methods

Non-item clients have bespoke method names. Read the client source to find:

  • Create/Get/Update/Delete methods
  • List pager methods
  • Any sub-resource methods (e.g. role assignments)
Step 5B — Identify DTO Structs

Read fabric/core/models.go or the specific client models for:

  • Request/Response structs (e.g. CreateConnectionRequest, Connection)
  • Nested configuration structs
  • Enum types

Output Format

For Fabric Items (Category A)
FieldValue
CategoryFabric Item
SDK Version<version from go.mod>
SDK Packagegithub.com/microsoft/fabric-sdk-go/fabric/<package>
Import Aliasfab<package>
Client Factoryfab<package>.NewClientFactoryWithClient(fabricClient).NewItemsClient()
Get Methodclient.Get<ItemName>(ctx, workspaceID, itemID, nil)
List Pagerclient.NewList<ItemNames>Pager(workspaceID, nil)
ItemType Constantfabcore.ItemType<ItemName>
Archetypebasic / definition / properties / etc.
Properties DTOfab<package>.Properties — list fields
CreationPayload DTOfab<package>.CreationPayload — list fields (or "N/A")
Enum TypesList any enum types with their possible values
For non-item resources (Category B)
FieldValue
CategoryNon-item (bespoke CRUD)
SDK Version<version from go.mod>
SDK Packagegithub.com/microsoft/fabric-sdk-go/fabric/core (or other)
Import Aliasfabcore (or other)
Clientfabcore.<Resource>Client
CRUD MethodsList all relevant methods
Request DTOsList create/update request structs with fields
Response DTOsList response structs with fields
Enum TypesList any enum types with their possible values
Go Struct Fields

For each DTO struct found, list all fields with their Go types. Example:

go
type Properties struct {
    OneLakeFilesPath      *string                  `json:"oneLakeFilesPath,omitempty"`
    OneLakeTablesPath     *string                  `json:"oneLakeTablesPath,omitempty"`
    SQLEndpointProperties *SQLEndpointProperties   `json:"sqlEndpointProperties,omitempty"`
    DefaultSchema         *string                  `json:"defaultSchema,omitempty"`
}

The output from this skill feeds directly into #skill:schema-model-generator and #skill:itemgen-command-builder.

© microsoft, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/sdk-contract-navigator of microsoft/terraform-provider-fabric.

Open the folder on GitHubat commit 86c83be

Compare with similar skills

SDK Contract Navigator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

SDK Contract Navigator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
SDK Contract Navigator this skillmicrosoft/terraform-provider-fabric128—~3kAutomated safety check: PassMPL-2.0
Datadog Data Source GeneratorDataDog/terraform-provider-datadog468—~2.7kAutomated safety check: PassMPL-2.0
CI CDEliasOulkadi/shokunin114—~3.4kAutomated safety check: NotesMIT
Avm Tf ClassificationsAzure/terraform-azurerm-avm-ptn-alz135—~2.9kAutomated safety check: PassMIT
Golang Samber Hotsamber/cc-skills-golang3.4k—~2kAutomated safety check: PassMIT
Admingrafana/skills281—~1.5kAutomated safety check: PassApache-2.0

Similar skills

  • Datadog Data Source Generator

    DataDog/terraform-provider-datadog

    Official

    Generates a Datadog Terraform provider data source from an OpenAPI operation with tfgen and opens a review-ready GitHub PR with a risk scan and testing guide.

    468 GitHub stars~2.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • CI CD

    EliasOulkadi/shokunin

    Design CI/CD pipelines for GitHub Actions, GitLab CI, and CircleCI with matrix builds, test sharding, caching, Docker layer caching, OIDC auth, deployment strategies (rolling, blue-green, canary)…

    114 GitHub stars~3.4k tokensUpdated 4 days ago
    DevOps & CloudAuto-check: notes
  • Avm Tf Classifications

    Azure/terraform-azurerm-avm-ptn-alz

    Official

    A skill your agent uses whenever a contributor is deciding what KIND of Azure Verified Module to build in Terraform — resource module, pattern module, or utility module — or is naming a module /…

    135 GitHub stars~2.9k tokensUpdated 3 days ago
    DevOps & CloudAuto-check passed
  • Golang Samber Hot

    samber/cc-skills-golang

    In-memory caching in Golang using samber/hot — eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate, missing…

    3.4k GitHub stars~2k tokensUpdated 7 days ago
    DevOps & CloudAuto-check passed
  • Admin

    grafana/skills

    Official

    Manage Grafana Cloud accounts — organizations, stacks, RBAC roles and assignments, SSO/SAML/OAuth/GitHub auth, service accounts for CI/CD, user invites, team membership, and API-driven provisioning.

    281 GitHub stars~1.5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Golang Samber Slog

    context-labs/whip

    Structured logging extensions for Golang using samber/slog- — multi-handler pipelines, sampling, attribute formatting, HTTP middleware (gin, echo, fiber, chi), backend routing (datadog, sentry…

    1.1k GitHub starsUsed in 2 repos~3k tokens
    DevOps & CloudAuto-check passed

More from microsoft/terraform-provider-fabric

  • Itemgen Command Builder

    microsoft/terraform-provider-fabric

    Official

    Given SDK analysis results, automatically determine the correct itemgen archetype and build the full go run tools/itemgen/main.go command.

    128 GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed
  • Schema Model Generator

    microsoft/terraform-provider-fabric

    Official

    Given a Go SDK contract (DTOs), generate the corresponding Terraform schema attributes and model structs with high fidelity.

    128 GitHub stars~2.5k tokensUpdated 3 days ago
    Auto-check passed
  • Wellknown Analyzer

    microsoft/terraform-provider-fabric

    Official

    Analyze dependencies and determine what infrastructure must be added to tools/scripts/Set-WellKnown.ps1 and internal/testhelp/wellknown.go so that acceptance tests for a new resource have all…

    128 GitHub stars~3.2k tokensUpdated 3 days ago
    Auto-check passed
  • Resource Designer

    microsoft/terraform-provider-fabric

    Official

    Research SDK contracts, design Terraform schema approach, and compose a GitHub issue for a new resource, data source, ephemeral resource, or enhancement to an existing resource.

    128 GitHub stars~6k tokensUpdated 3 days ago
    Auto-check passed

Categories

Questions about SDK Contract Navigator

What does SDK Contract Navigator do?

Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource. SDK Contract Navigator is an agent skill from microsoft/terraform-provider-fabric, published by the product's own GitHub organization. Navigate the fabric-sdk-go SDK source to find the correct client factory, DTOs, item type constants, and pager methods for a given Fabric Item or non-item resource.

When should I use SDK Contract Navigator?

SDK Contract Navigator fits situations like: : identifying SDK packages; client factories; item type constants; pager methods for any Fabric resource.

How do I install SDK Contract Navigator in Claude Code?

Run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a claude-code`. Or copy the skill folder (.github/skills/sdk-contract-navigator in microsoft/terraform-provider-fabric) into .claude/skills/sdk-contract-navigator in your project. Claude Code loads it when a task matches its description.

How do I install SDK Contract Navigator in Codex?

Run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a codex`. Or copy the skill folder (.github/skills/sdk-contract-navigator in microsoft/terraform-provider-fabric) into .agents/skills/sdk-contract-navigator in your project. Codex loads it when a task matches its description.

Can I use SDK Contract Navigator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/terraform-provider-fabric --skill sdk-contract-navigator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sdk-contract-navigator, .gemini/skills/sdk-contract-navigator, .github/skills/sdk-contract-navigator and .opencode/skills/sdk-contract-navigator in your project.

What does SDK Contract Navigator need to run?

Going by SKILL.md and its folder, SDK Contract Navigator needs the command-line tools its instructions call (go).

Does SDK Contract Navigator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is SDK Contract Navigator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does SDK Contract Navigator use?

SDK Contract Navigator is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does SDK Contract Navigator use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to SDK Contract Navigator?

Skills that share tags, products or a category with SDK Contract Navigator: Datadog Data Source Generator (DataDog/terraform-provider-datadog, 468 stars), CI CD (EliasOulkadi/shokunin, 114 stars), Avm Tf Classifications (Azure/terraform-azurerm-avm-ptn-alz, 135 stars) and Golang Samber Hot (samber/cc-skills-golang, 3.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains SDK Contract Navigator?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/terraform-provider-fabric, which has 128 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.

Source: microsoft/terraform-provider-fabric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.