src/dot-agents/skills/sdk-module-investigation/SKILL.md
Investigate and integrate weakly documented SDK/library modules (especially Azure SDKs) into code. Use when asked to "investigate module", "SDK", "client class", or when docs are missing/weak and you need to discover APIs, models, or usage patterns to implement integration.
npx skillsauth add jjjermiah/dotagents sdk-module-investigationInstall 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.
Rapidly discover SDK/module behavior from official docs, examples, and source, then integrate with minimal reimplementation and a runnable main example.
YOU WILL ALWAYS look through SDK codebases to find the right classes/methods/functionalities.
YOU WILL NEVER guess or assume SDK behavior without confirming through official docs or source code.
ALWAYS take note of any utility functions/classes that we can reuse instead of reimplementing functionality. This includes credential handling, client construction patterns, and common models.
For example, you might think to implement kubernetes data parsing yourself, but the python-kubernetes library already has kubernetes.utils functions like
format_quantity, parse_quantity, parse_duration, format_duration that we can reuse. Always check for existing utilities before implementing new ones or.
azure.mgmt.resource + ResourceManagementClient).Use Context7 to gather at least one authoritative SDK example.
Use fetch to capture authoritative docs/README for cross-checking.
Prefer official docs and README examples over your pretrained knowledge. Look through blogs or StackOverflow for community examples. If examples are outdated, extract patterns (credential setup, client construction, key operations) and confirm against the installed SDK.
Use pixi for any Python execution and keep commands small.
# Locate module file path
pixi run python -c "import azure.mgmt.resource as m; print(m.__file__)"
# Quick surface scan
pixi run python -c "import inspect, azure.mgmt.resource as m; print([n for n in dir(m) if 'Client' in n])"
# Inspect a client class signature and methods
pixi run python -c "import inspect; from azure.mgmt.resource import ResourceManagementClient; print(inspect.signature(ResourceManagementClient.__init__)); print([m for m in dir(ResourceManagementClient) if 'resource_groups' in m])"
Use repo tools for deeper inspection:
Read the module file returned by __file__ for imports, models, and client wiring.Grep for class names, operation groups, or method names to find usage patterns and versioned API modules.Only reimplement behavior if the SDK does not expose it and you verified via source that no suitable client/model exists.
AzureCliCredential, DefaultAzureCredential).resource_client.resource_groups).if __name__ == "__main__": example to validate integration.development
Guides creation, validation, and packaging of AI agent skills with token-efficient design, progressive disclosure patterns, and YAML frontmatter best practices. Use when building new skills, updating existing skills, validating skill structure against standards, or packaging for distribution—e.g., "create skill", "validate SKILL.md", "package skill for sharing", "check description format".
tools
Write production-ready one-off scripts and automation utilities with proper error handling and safety patterns. Use when developing bash automation, Python CLI tools, shell scripts, system administration scripts, or command-line batch processing—e.g., "write a script to process files", "python one-liner for data conversion", "bash automation for backups", "shell script with error handling".
development
R package testing with testthat 3rd edition. Use when writing R tests, fixing failing tests, debugging errors, or reviewing coverage—e.g., "write testthat tests", "fix failing R tests", "snapshot testing", "test coverage".
tools
rlang metaprogramming for tidy evaluation and non-standard evaluation (NSE) in R. Use when building data-masking APIs, wrapping dplyr/ggplot2/tidyr functions with {{ !! !!! operators, implementing quosures and dynamic dots, or designing tidyverse-style DSLs—e.g., "tidy eval wrapper function", "embrace operator usage", "NSE programming patterns", "custom select helpers".