Dataverse-skills CLAUDE.md

Repository instructions for a plugin that helps AI assistants develop with Microsoft Dataverse and Power Platform. Dataverse is Microsoft's cloud data platform, and the instructions describe its Python SDK, command-line tools, MCP server, and web API.

In plain words
What is it for?
Use them when editing Dataverse skill files, especially when checking them with the static evaluation script or adding Python-only examples.
Why use it?
They set rules for writing skills and provide a quick check that catches incorrect code examples, authentication patterns, and routing before changes are committed.

Instructions file

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 instructions/microsoft/dataverse-skills/claude-md
Clone the repo
git clone --depth 1 https://github.com/microsoft/Dataverse-skills
Per session 2,869 This file is loaded in full into every session.
When invoked 2,869 The same file — it is already loaded in full.
Security scan A 1 finding. 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.02869 $0.02869
Opus 5 $0.01435 $0.01435
Sonnet 5 $0.00574 $0.00574
Haiku 4.5 $0.00287 $0.00287

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

Security

Grade A, and why

Dataverse-skills CLAUDE.md scanned grade A with 1 finding 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 3d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

`get_client(skill)` is the preferred entry point — it handles auth, environment URL, and plugin attribution (User-Agent tagging) in one call. `get_token()` is only for raw Web API calls that no managed surface covers (e.
CLAUDE.md · 198 lines

How it starts

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

CLAUDE.md — Dataverse Skills Plugin

What This Repo Is

This repo ships a plugin for Claude Code and GitHub Copilot that provides AI-assisted Dataverse / Power Platform development. The plugin consists of skill files (SKILL.md) that teach the agent how to use the Python SDK, PAC CLI, MCP server, and Dataverse Web API.

The plugin is loaded via:

claude --plugin-dir .github/plugins/dataverse

Skill files live under .github/plugins/dataverse/skills/<skill-name>/SKILL.md.


Before Committing

Run the static eval suite. It checks every skill file for code correctness, auth pattern compliance, and routing consistency:

python .github/evals/static_checks.py

Exit code 0 = all checks pass. Fix any failures before committing. The checks run in under a second and have no external dependencies.


Skill Authoring Rules

Python only

All code examples in skill files must be Python. No JavaScript, TypeScript, PowerShell, or shell one-liners that substitute for Python logic.

Auth pattern

Every standalone Python block that imports from auth must use one of these patterns:

import os, sys
sys.path.insert(0, os.path.join(os.getcwd(), "scripts"))
from auth import get_client                       # PREFERRED — SDK with plugin attribution
# OR
from auth import get_plugin_headers, get_token    # Raw Web API WITH skill attribution
# OR
from auth import get_token, load_env              # Raw Web API, no attribution (last resort)

get_client(skill) is the preferred entry point — it handles auth, environment URL, and plugin attribution (User-Agent tagging) in one call. get_token() is only for raw Web API calls that no managed surface covers (e.g., an in-process Python loop issuing many attributed requests in one session) — and for those, prefer get_plugin_headers(skill, get_token()), which stamps the same skill attribution the SDK path carries (a bare get_token() does not). Forms, views, and settings are ordinary entities served by the SDK (client.records.*), not urllib. Never use get_token() in a block containing DataverseClient(.

Read the full file on GitHub · 198 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. 3d ago First seen · 198 lines · 2,869 tokens per session scan A 544bd1d9ede1

Subscribe to this mod's changes

Dataverse-skills CLAUDE.md is an instructions file published in the GitHub repository microsoft/Dataverse-skills (213 stars, last pushed 3d ago), licensed MIT. It adds 2,869 tokens to every session, about $0.0143 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.