Agent skill
devops-audit
This skill should be used when the user asks to "run a devops audit", "check release readiness", "audit CI/CD", "review DevOps setup", "check workflows", "validate packaging", "audit documentation accuracy", "check version synchronization", "validate release artifacts", "verify documentation accuracy", or mentions "devops findings", "release checklist", or "pre-publish review". Provides a systematic DevOps audit checklist derived from two rounds of real audit findings on this project.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/devops-audit
SKILL.md
DevOps Audit Skill
Systematic DevOps audit for Python Claude Code plugins distributed via GitHub. Derived from two real audit rounds that found 1 blocker, 10 warnings, and 4 suggestions — several of which were missed in the first pass.
When to Invoke
- Before any version release or tag creation
- After significant infrastructure changes (new hooks, new migrations, CI edits)
- When preparing for marketplace or PyPI publishing
- On request for "devops audit" or "release readiness check"
Audit Workflow
Execute in this order. Read references/full-checklist.md before starting
to understand all 51 verification criteria across these phases.
Phase 1: Version Synchronization
Check that the version string is identical across all authoritative files. This project has three:
pyproject.toml→[project] version.claude-plugin/plugin.json→version.claude-plugin/marketplace.json→version
Also verify CHANGELOG.md has a section header ## [X.Y.Z] matching that version.
Phase 2: CI Pipeline Integrity
Audit .github/workflows/ci.yml:
- Dependency pinning: All
pip installcommands pin upper bounds (e.g."ruff>=0.9.0,<1.0"), not open-ended ranges. Bare>=without<is a finding. - Shell quoting:
pip install foo>=1.0without quotes is a shell redirect hazard on some runners. Must be quoted. - Matrix coverage: Python versions in CI matrix match
requires-pythonfloor from pyproject.toml. - Build verification: CI runs
python -m buildto prove the package builds. - Coverage upload: Coverage artifact uploaded from a single canonical matrix cell.
Phase 3: Release Workflow Integrity
Audit .github/workflows/release.yml:
- Artifact attachment: The release step MUST build (
python -m build) and attach sdist + wheel viafiles:parameter. A release without downloadable artifacts is a blocker. - Changelog extraction: The awk/grep that extracts release notes must use exact match (bracket-anchored), not substring match.
index($0, ver)matches2.1.0inside12.1.0. - Test gate: Tests run before release creation.
- ODBC headers: Linux runners need
unixodbc-devfor pyodbc compilation.
Phase 4: Dependency Management
- Single source of truth: Dependencies declared in
pyproject.tomlonly. No parallelrequirements.txtorrequirements-dev.txt— these cause duplicate Dependabot PRs and version drift. - Dependabot config:
.github/dependabot.ymlcovers bothgithub-actionsandpipecosystems. - Dev extras:
[project.optional-dependencies] dev = [...]contains test and lint tools.
Phase 5: Documentation Accuracy
Cross-reference every claim in docs against actual code/config:
- README install instructions: Must list ALL migration files, not just the first one.
- README tracking table: Every hook type that exists in
plugin.jsonmust appear in the "What Gets Tracked" table. Compare hook keys in plugin.json against table rows. - README architecture diagram: Must list every hook handler file. Compare against
hooks/db_*.pyfiles on disk. - README dev setup: Must show
pip install -e ".[dev]", not reference deleted requirements files. Include cross-platform instructions, not just Windows PowerShell. - CONTRIBUTING.md install command: Must match actual install method (
pip install -e ".[dev]"). - CONTRIBUTING.md coverage figure: Must match actual test output. Run
pytest --covand compare. - Migration section: Must reference the full range of migration files, not a single example.
Phase 6: Packaging & Build
- Build succeeds:
python -m buildproduces both.tar.gzand.whlwithout errors. - Package name: Verify
[tool.hatch.build.targets.wheel] packagesmatches actual source directory. - Python floor:
requires-pythonin pyproject.toml matches CI matrix minimum and rufftarget-version.
Phase 7: Community & Security Files
Verify presence and accuracy of:
CHANGELOG.md— current version documentedCONTRIBUTING.md— install/test/lint commands accurateSECURITY.md— exists with contact infoLICENSEor license field in pyproject.toml
Lessons Learned (Anti-Patterns)
These are patterns that were missed in the first audit and only caught in round 2. Pay special attention to these:
-
Artifact-less releases: A GitHub Release without
files:looks complete but has nothing to download. Always verify the release action attaches built artifacts. -
Substring version matching in awk:
index($0, "2.1.0")matches inside12.1.0or2.11.0. Always anchor with brackets:$0 ~ "\\[" ver "\\]". -
Orphaned requirements files: After migrating to pyproject.toml extras, the old requirements*.txt files linger. They cause double Dependabot PRs and mislead contributors.
-
Stale doc figures: Coverage percentage, test count, migration file lists — these go stale silently. Always re-derive from actual command output during audit.
-
New hooks missing from docs: Adding a hook to plugin.json without updating README's tracking table and architecture diagram. Diff plugin.json hook keys against doc references.
-
Platform-biased dev instructions: README showing only Windows PowerShell for dev setup, despite CI testing on Ubuntu. Include cross-platform
pip install -e ".[dev]"first. -
Unquoted pip specifiers in YAML:
pip install ruff>=0.9.0without quotes — works on most shells but is technically a redirect hazard and lacks an upper bound.
Output Format
Present findings as a table:
| ID | Severity | Finding | Recommendation |
|----|----------|---------|----------------|
| B1 | Blocker | ... | ... |
| W1 | Warning | ... | ... |
| S1 | Suggest | ... | ... |
Severity levels:
- Blocker: Broken functionality or release-blocking issue
- Warning: Correctness or maintainability problem
- Suggestion: Nice-to-have improvement
After presenting findings, propose a disposition for each (FIX / SKIP with rationale) and ask the user to confirm before implementing.
Additional Resources
Reference Files
references/full-checklist.md— Complete 45-item checklist with pass/fail criteria, organized by phase. Use for systematic audit execution.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?