Diagnose, generate, and maintain the AI agent setup of your projects — CLAUDE.md, skills, subagents, rules, and supporting docs.
Project description
opsward
Diagnose, generate, and maintain the AI agent setup of your projects — CLAUDE.md, skills, subagents, rules, and supporting docs.
Install
pip install opsward
Quick Start
Diagnose
Score your project's AI setup health:
opsward diagnose-cmd .
Diagnosis Report: myproject
Project type: python
Overall score: 72/100 (Grade: C)
Components:
CLAUDE.md quality [################....] 81/100
Documentation [##############......] 70/100
Skills [############........] 60/100
Setup (rules/agents/hooks) [##########..........] 50/100
Cross-references [####################] 100/100
Missing:
[ ] docs_guide.md
[ ] docs/known_issues.md
Suggestions:
1. Create a docs_guide.md to index your documentation
2. Consider adding hooks in .claude/hooks.json
Generate
Create missing artifacts (dry run by default):
opsward generate-cmd .
opsward generate-cmd . --write # actually create files
Generates CLAUDE.md, docs (architecture, conventions, known_issues, etc.), AI-enhanced skills (opsward, opsward-diagnose, opsward-generate, opsward-maintain), and agents (setup-auditor) — only what's missing, never overwrites existing files.
Install Skills
Install opsward's Claude Code skills into a project (or globally):
opsward install-skills-cmd # dry run for current project
opsward install-skills-cmd --write # install into ./.claude/
opsward install-skills-cmd --global-install --write # install into ~/.claude/
The installed skills let Claude Code run opsward's deterministic tools, interpret the results intelligently, and act on suggestions — no API keys needed, Claude Code is the AI engine.
| Skill | Trigger | What it does |
|---|---|---|
opsward |
"check my setup" | Diagnose → decide next step → generate or maintain → re-diagnose |
opsward-diagnose |
"audit my AI config" | Run opsward diagnose, interpret scores, offer fixes |
opsward-generate |
"scaffold AI setup" | Run opsward generate, review, customize with real content |
opsward-maintain |
"check for staleness" | Run opsward maintain, prioritize issues, apply fixes |
Maintain
Find stale references and drift:
opsward maintain-cmd .
myproject: 3 issue(s)
[stale_path] CLAUDE.md references `src/old_module.py` but it does not exist
[sync_issue] `new_doc.md` exists in docs/ but is not listed in docs_guide.md
[empty_doc] `conventions.md` appears to be an empty stub (12 bytes)
What It Checks
CLAUDE.md quality (6 dimensions):
- Commands & workflows — are build/test/lint commands documented?
- Architecture clarity — is there a module map with role descriptions?
- Conventions — are project-specific style rules present?
- Conciseness — is the file scannable, not bloated?
- Currency — do referenced paths actually exist?
- Actionability — are instructions specific enough to act on?
Documentation completeness: docs_guide.md, architecture.md, conventions.md, known_issues.md, and content quality.
Skills & agents: SKILL.md presence, descriptions, setup-auditor agent.
Cross-references: paths in CLAUDE.md validated against the filesystem.
Overall health: weighted score (A–F grade) combining all components.
Output Formats
All commands support --format json for machine-parseable output:
opsward diagnose-cmd . --format json
opsward generate-cmd . --format json
opsward maintain-cmd . --format json
Python API
from pathlib import Path
from opsward import scan, diagnose, generate, generate_skills, maintain
sr = scan('.')
report = diagnose(sr)
print(report) # human-readable report card
print(report.grade) # 'A', 'B', 'C', 'D', or 'F'
files = generate(sr) # list[GeneratedFile]
issues = maintain(sr) # list[MaintenanceSuggestion]
# Install skills programmatically
skill_files = generate_skills(Path.home() / '.claude')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opsward-0.0.3.tar.gz.
File metadata
- Download URL: opsward-0.0.3.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
399715cf3670520e010fce674a3be627915df80f9f260f5419f3ecac413e7a51
|
|
| MD5 |
b8625c62348bc778ebe33e1c479f0c9d
|
|
| BLAKE2b-256 |
d135cae8bd162a1d8c8a4579dd74ad27cfdf4375be8737369c690ea80101918a
|
File details
Details for the file opsward-0.0.3-py3-none-any.whl.
File metadata
- Download URL: opsward-0.0.3-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab4d2ffa3b7366dba58b1b5b292ae696e1abc3b9f9c96ffdb0f736d92732c1a0
|
|
| MD5 |
5ae334ba7692904b67bd4bc022540002
|
|
| BLAKE2b-256 |
1232631072dada6a4193ca1caa01ff2893349026eeccf282940fdcad5649999c
|