.agents/skills/prompt-authoring/SKILL.md
Expert guidance for authoring evaluation prompts for hyoka, the Azure SDK Prompt Evaluation Tool. Use when creating, reviewing, or improving .prompt.md files that test AI agent code generation quality.
npx skillsauth add ronniegeraghty/hyoka prompt-authoringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an expert at authoring evaluation prompts for the Azure SDK Prompt Evaluation Tool (hyoka). You help users create well-structured .prompt.md files that test AI agent code generation quality.
Each prompt is a Markdown file with YAML frontmatter. Files live at:
prompts/{service}/{plane}/{language}/{slug}.prompt.md
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| id | ✅ | string | Unique ID: {service}-{dp|mp}-{language}-{slug} |
| service | ✅ | string | Azure service name |
| plane | ✅ | string | data-plane or management-plane |
| language | ✅ | string | Target programming language |
| category | ✅ | string | Use-case category |
| difficulty | ✅ | string | basic, intermediate, or advanced |
| description | ✅ | string | 1–3 sentences: what this prompt tests |
| created | ✅ | string | Date in YYYY-MM-DD format |
| author | ✅ | string | GitHub username |
| sdk_package | ❌ | string | Expected SDK package (e.g., Azure.Storage.Blobs) |
| doc_url | ❌ | string | Library reference docs URL (see doc_url convention below) |
| tags | ❌ | list | Free-form tags for filtering (e.g., [identity, getting-started]) |
| expected_tools | ❌ | list | Tool names the agent should use (e.g., [create_file, run_terminal_command]) |
| expected_packages | ❌ | list | SDK packages the generated code should import |
| starter_project | ❌ | string | Path to starter project dir (relative to prompt file) |
| project_context | ❌ | string | blank (default) or existing (copies starter_project first) |
| reference_answer | ❌ | string | Inline reference code for LLM-as-judge scoring |
| timeout | ❌ | int | Per-prompt timeout in seconds (overrides config default) |
Services: storage, key-vault, cosmos-db, event-hubs, app-configuration, purview, digital-twins, identity, resource-manager, service-bus
Languages: dotnet, java, js-ts, python, go, rust, cpp
Planes: data-plane, management-plane
Categories: authentication, pagination, polling, retries, error-handling, crud, batch, streaming, auth, provisioning
Difficulties: basic, intermediate, advanced
The doc_url field should point to the library's API reference docs, not quickstarts or tutorials:
| Language | URL Pattern | Example |
|----------|-------------|---------|
| Python | learn.microsoft.com/en-us/python/api/overview/azure/{pkg}-readme | azure/identity-readme |
| .NET | learn.microsoft.com/en-us/dotnet/api/overview/azure/{pkg}-readme | azure/storage.blobs-readme |
| Java | learn.microsoft.com/en-us/java/api/overview/azure/{pkg}-readme | azure/cosmos-readme |
| JS/TS | learn.microsoft.com/en-us/javascript/api/overview/azure/{pkg}-readme | azure/identity-readme |
| Go | pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/... | sdk/azidentity |
| Rust | docs.rs/{crate}/latest/{crate}/ | azure_identity |
| C++ | github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/... | sdk/identity/azure-identity |
The id field follows the pattern: {service}-{dp|mp}-{language}-{slug}
dp for data-plane, mp for management-planestorage-dp-dotnet-auth, cosmos-db-dp-python-crud-itemsThe filename should match the slug portion of the ID: {slug}.prompt.md
Examples:
authentication.prompt.mdpagination-list-blobs.prompt.mdcrud-items.prompt.mdEvery .prompt.md file should have these sections after the frontmatter:
# Title: Service (Language)
## Prompt
The exact prompt text sent to the AI agent. Be specific and actionable.
## Evaluation Criteria
Bullet list of what the generated code should demonstrate.
The review agent uses this (along with the general rubric) to score generated code.
## Context
Why this prompt matters and what quality aspect it evaluates.
(Human-readable only — not used by the eval tool.)
How sections flow through the eval tool:
## Prompt text — no frontmatter, no evaluation criteriahyoka/internal/review/rubric.md), AND the ## Evaluation Criteria section## Context is for human readers only — the eval tool ignores it entirelyAzure.Storage.Blobs NuGet package"project_context: existing is sethyoka list first| Difficulty | What It Means | Example |
|-----------|---------------|---------|
| basic | Single API call, straightforward setup | Authenticate and list blobs |
| intermediate | Multiple API calls, error handling, configuration | Upload with retry policy and progress tracking |
| advanced | Complex workflows, multiple services, edge cases | Event-driven pipeline with dead-letter handling |
The reference_answer field is optional but valuable — it enables LLM-as-judge scoring with a reference comparison.
---
id: storage-dp-dotnet-auth
service: storage
plane: data-plane
language: dotnet
category: authentication
difficulty: basic
description: >
Can the docs help a developer authenticate to Azure Blob Storage
using DefaultAzureCredential in .NET?
sdk_package: Azure.Storage.Blobs
doc_url: https://learn.microsoft.com/en-us/dotnet/api/overview/azure/storage.blobs-readme
tags:
- identity
- default-azure-credential
- getting-started
created: 2025-07-27
author: ronniegeraghty
---
# Authentication: Azure Blob Storage (.NET)
## Prompt
How do I authenticate to Azure Blob Storage using DefaultAzureCredential in C#?
I need to create a BlobServiceClient that uses managed identity in production
but falls back to Azure CLI credentials during local development.
Show me the complete setup including required NuGet packages.
## Evaluation Criteria
The generated code should demonstrate:
- Azure.Identity and Azure.Storage.Blobs package setup
- DefaultAzureCredential initialization
- BlobServiceClient creation with token credential
- Basic container/blob operation to verify auth works
## Context
Authentication is the first step for any Azure SDK interaction.
This tests whether the agent produces correct, current auth patterns.
---
id: storage-dp-dotnet-stuff
service: storage
plane: data-plane
language: dotnet
category: crud
difficulty: basic
description: "test storage"
created: 2025-07-27
author: someone
---
# Storage
## Prompt
Write Azure storage code in C#.
Problems:
sdk_package, doc_url, tagsYou can also use the CLI to scaffold a new prompt interactively:
go run ./hyoka new-prompt
This asks for service, language, plane, category, and difficulty, then generates the file with populated frontmatter at the correct path.
After creating a prompt, always validate:
go run ./hyoka validate
This checks frontmatter schema compliance, required fields, and naming conventions.
development
Identifies Azure SDK packages in generated code and checks whether they are the latest available versions. Use during code review to catch outdated dependencies.
development
Sets up build environments for generated Azure SDK code samples and attempts to compile/build without modifying generated files. Use during review to verify code compiles correctly.
development
# Java SDK Validation Skill You are a **Java Azure SDK validation reviewer** for generated code samples. Your job is to check whether generated Java code follows modern Azure SDK for Java conventions and flag violations of common anti-patterns that LLMs frequently produce. ## Rules 1. **NEVER modify generated code.** You are evaluating, not fixing. 2. Report all findings honestly — pass or fail with specific evidence. 3. Check every rule below. A single violation in a category means that cate
development
Reads generated Azure SDK code files and adds inline review comments without changing any actual code. Use during code review to annotate quality issues, best practices, and suggestions.