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.
npx agentmods add skills/azure/azure-sdk-for-java/dup-classesnpx skills add Azure/azure-sdk-for-java --skill dup-classesgit clone --depth 1 https://github.com/Azure/azure-sdk-for-javaWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/azure/azure-sdk-for-java/dup-classes)<a href="https://agentmods.dev/skills/azure/azure-sdk-for-java/dup-classes"><img src="https://agentmods.dev/badge/skills/azure/azure-sdk-for-java/dup-classes.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00031 | $0.01164 |
| Opus 5 | $0.00015 | $0.00582 |
| Sonnet 5 | $0.00006 | $0.00233 |
| Haiku 4.5 | $0.00003 | $0.00116 |
Grade A, and why
dup-classes scanned grade A with 0 findings 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 4d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Duplicate Class Verification (Generated vs openai-java)
Use this skill to compare generated Java models against the openai-java dependency. The goal is field-by-field comparison of model shapes, even when class or field names differ.
Inputs to confirm
- Generated source root (e.g.,
src/main/java/...) - The relevant
pom.xml(module) to resolve theopenai-javadependency version - Optional: package or class name hints to narrow the search
Steps
- Locate the pom.xml in the current directory tree (
find . -name pom.xml). If multiple, ask which module to use. - Resolve openai-java:
- Search the chosen pom for
openai-java(or an explicit group/artifact provided by the user). - Resolve the version (including properties) and locate the JAR in
~/.m2/repository. - The model classes live in
openai-java-core, not the top-levelopenai-javaartifact.
- Search the chosen pom for
- List candidate classes:
- Generated classes: scan the source root for
classandrecorddeclarations. - openai-java classes:
jar tf <jar> | grep '\.class$'(filter by package hints if provided).
- Generated classes: scan the source root for
- Extract field signatures (names may differ; compare shape):
- Generated source:
- For
record, use the component list in therecorddeclaration. - For
class, extract non-static field declarations (type + count) and note any@JsonPropertynames. - Check
toJson/fromJsonmethods for the actual JSON keys used in serialization.
- For
- openai-java JAR:
- Use
javap -classpath <jar> -p <FQCN>to list fields (ignorestatic,validated,hashCode$delegate,additionalProperties). - Extract
@JsonPropertykeys from the sources JAR (*-sources.jar) for JSON key comparison.
- Use
- Generated source:
- Compare shapes:
- Compare field count and field types (order-independent).
- Compare JSON keys from
@JsonProperty(openai-java) vstoJson/fromJsonstring literals (generated). - Compare enum/union values when field types are enums or string unions.
- Follow type hierarchy:
BinaryData↔JsonValue(both represent untyped JSON),Map<String,BinaryData>↔Map<String,JsonValue>, Java enum ↔ Kotlin string enum.
- Categorize results (do NOT treat all matches the same):
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.
- 4d ago First seen · 87 lines · 31 tokens per session scan A 69cc6c809fe8
dup-classes is a skill published in the GitHub repository Azure/azure-sdk-for-java (2,566 stars, last pushed today), licensed MIT. It adds 31 tokens to every session and 1,164 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dpg-migration
Migration logic for Azure SDK for .NET data-plane libraries migrating from AutoRest/Swagger to TypeSpec-based generation. Uses MCP tools from the generator-agent server for automated deterministic fixes.
csharp-azure-spector-coverage-gaps
Discovers and implements gaps in Spector test coverage for the Azure C# HTTP client emitter. Use when asked to find missing Spector scenarios, add Spector test coverage, or implement a specific Spector spec for the Azure C# emitter. Can also compare coverage between the Azure dashboard and the Standard (TypeSpec core)…
auto-build-repair
Headless, bounded repair of custom-code build failures in an already-generated Azure SDK PR. Thin wrapper over the shared azure-sdk-mcp:azsdkcustomizedcodeupdate engine in custom-code-only scope (editScope: CustomCode); the skill owns the iterate-until-green loop, capped by a per-language maxIterations read from…
azure-sdk-mgmt-pr-review
Review Azure SDK management-plane pull requests, check naming conventions, API compatibility, and code quality.
mgmt-review-comment-resolution
Resolve review comments on Azure management-plane .NET SDK PRs. Handles renaming types/properties, changing property types, and other API surface adjustments by updating TypeSpec client.tsp and regenerating.
mitigate-breaking-changes
Patterns and techniques for mitigating breaking changes in Azure management-plane SDKs. Covers SDK-side customizations (partial classes, CodeGenType, CodeGenSuppress) and TypeSpec decorator customizations (clientName, access, markAsPageable, alternateType, hierarchyBuilding).