azure/fix-sphinx
Automatically fix Sphinx documentation issues in any Azure SDK for Python package following Azure SDK Python documentation standards.
npx skills add https://github.com/Azure/azure-sdk-for-python --skill fix-sphinx
This skill automatically fixes Sphinx documentation warnings and errors in any Azure SDK for Python package by analyzing existing documentation patterns and applying fixes with 100% confidence.
Intelligently fixes Sphinx documentation issues by:
10. Creating a pull request
11. Providing a summary of what was fixed
Command:
cd <package-path>
azpysdk --isolate sphinx .
> Note: azpysdk sphinx runs Sphinx documentation build for the package. This checks for documentation warnings and errors.
Using Latest Sphinx:
azpysdk --isolate next-sphinx .
> Use azpysdk next-sphinx to run with the latest version of Sphinx. This is useful for catching issues that may be flagged by newer Sphinx versions.
Check if user provided in their request:
https://github.com/Azure/azure-sdk-for-python/issues/... in user's message)sdk/storage/azure-storage-blob or azure-storage-blob)If both GitHub issue URL and package path are missing:
Ask: "Please provide either the GitHub issue URL or the package path (e.g. sdk/storage/azure-storage-blob) for the Sphinx documentation problems you want to fix."
If a GitHub issue URL is provided:
Read the issue to understand which package and documentation files/modules are affected, and the specific warnings to fix.
If only a package path is provided:
Run Sphinx checks directly on the package.
If virtual environment is missing:
Ask: "Do you have an existing virtual environment path, or should I create 'env'?"
IMMEDIATELY activate the virtual environment before ANY other command:
# Activate the provided virtual environment (e.g., env, venv)
.\<venv-name>\Scripts\Activate.ps1
# If creating new virtual environment:
python -m venv env
.\env\Scripts\Activate.ps1
⚠️ IMPORTANT: ALL subsequent commands MUST run within the activated virtual environment. Never run commands outside the venv.
# Navigate to the package directory (within activated venv)
cd <package-path>
# Install dev dependencies from dev_requirements.txt (within activated venv)
pip install -r dev_requirements.txt
# Install the package in editable mode (within activated venv)
pip install -e .
Based on the GitHub issue details, determine which documentation files to check:
Option A - Run Sphinx on the package and review output:
# Ensure you're in the package directory (within activated venv)
cd <package-path>
# Run Sphinx build on the package
azpysdk --isolate sphinx .
# Review output for warnings/errors in the specific files/modules mentioned in the issue
Option B - Check modified documentation files (if no specific target):
git diff --name-only HEAD | Select-String "\.py$|\.rst$|\.md$" | Select-String "<package-path>"
git diff --cached --name-only | Select-String "\.py$|\.rst$|\.md$" | Select-String "<package-path>"
⚠️ Ensure virtual environment is still activated before running:
# Navigate to the package directory
cd <package-path>
# Run Sphinx build on the package (within activated venv)
azpysdk --isolate sphinx .
# Review output for the specific files/modules from the issue
Parse the Sphinx output to identify:
Before fixing, search the codebase for how similar documentation is handled:
# Example: Search for similar docstring patterns
grep -r "docstring_pattern" <package-path>/
grep -r ":param" <package-path>/
grep -r ":return:" <package-path>/
Use the existing documentation patterns to ensure consistency.
ALLOWED ACTIONS:
✅ Fix documentation warnings/errors with 100% confidence
✅ Use existing documentation patterns as reference
✅ Follow Azure SDK Python documentation guidelines
✅ Make minimal, targeted changes to docstrings
✅ Add missing docstrings following existing patterns
✅ Fix malformed docstring syntax
✅ Correct parameter and return type documentation
FORBIDDEN ACTIONS:
❌ Fix warnings without complete confidence
❌ Create new documentation files for solutions
❌ Import non-existent modules in documentation
❌ Add new dependencies or imports
❌ Make unnecessary large changes
❌ Change code logic without clear reason
❌ Delete documentation without clear justification
Re-run Sphinx to ensure:
Provide a summary:
> ⚠️ REQUIRED when a GitHub issue URL was provided: You MUST create a pull request after validating fixes. This is not optional.
Create a pull request with a descriptive title and body referencing the issue. Include what was fixed and confirm all Sphinx documentation checks pass. The PR title should follow the format: "fix(<package-name>): Resolve sphinx errors (#<issue-number>)".
Take azure/fix-sphinx from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.