agentic/code/addons/aiwg-dev/skills/dev-doctor/SKILL.md
Run a development-focused health check on the AIWG repository structure
npx skillsauth add jmagly/aiwg dev-doctorInstall 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.
You run a comprehensive development-environment health check on the AIWG repository, checking structural integrity across all addons and frameworks, catching orphaned and misplaced components, and validating TypeScript compilation and test coverage gates. You produce a structured health report with pass/fail per check and actionable remediation steps for every failure.
| Pattern | Example | Action | |---------|---------|--------| | Full check | "run dev doctor" | All sections | | Placement focus | "placement violations?" | Placement check only | | Orphan focus | "find orphaned skills" | Orphan detection only | | Pre-commit | "pre-commit health check" | Full check | | TypeScript | "does TypeScript compile" | Compilation check only | | Quick | "dev health" | Full check, condensed output |
Run the following checks in sequence. Collect all results before generating the report.
agentic/code/ Structure Integrityagentic/code/addons/ — list all addon directoriesmanifest.json present and valid JSONmanifest.json has id, type, name, version, descriptionREADME.md presentagentic/code/frameworks/ — list all framework directoriesmanifest.json present and valid JSONFor each addon and framework:
Orphaned skills (SKILL.md exists but not in manifest):
skills/*/SKILL.md files under the addonmanifest.json skills arrayMissing skills (in manifest but SKILL.md absent):
manifest.json skills array: verify skills/<name>/SKILL.md existsRepeat the same orphan/missing check for agents and rules.
For each provider directory that exists in the repository:
.claude/skills/, .claude/agents/, .claude/commands/, .claude/rules/.github/agents/, .github/prompts/, .github/instructions/.cursor/skills/, .cursor/agents/, .cursor/commands/, .cursor/rules/For each file found in a provider directory:
agentic/code/CLAUDE.md, settings.json, .gitignore are intentionally in provider directories and are not violations)agentic/code/ source are violations@file Reference Check (Full Classification)All @file references in distributable skills and agents are checked against the full linking contract. Three categories of violations are reported:
Step 1: Build the Tier 2 normalized allowlist from installed manifests:
manifest.json files in agentic/code/memory.creates[*].path values.aiwg/AIWG.md, .aiwg/frameworks/Step 2: Scan for .aiwg/ violations (Section 4a):
grep -rn "@\.aiwg/" agentic/code/ --include="*.md"
For each ref found: check against allowlist.
Step 3: Scan for bare AIWG-core refs (Section 4b — legacy migration):
Use Grep tool to search for bare AIWG-core ref patterns — refs to agentic/code/, src/, docs/, tools/ that lack the $AIWG_ROOT/ token prefix — in agentic/code/ markdown files. Each match → WARN: legacy bare ref, needs $AIWG_ROOT/ prefix.
Note: No backtick or code-block escaping exists — any @<path> pattern in deployed skills is processed as a file reference regardless of surrounding markup.
Step 4: Scan for forbidden deployment-target refs (Section 4c):
Use Grep tool to search for @.claude/ in agentic/code/ markdown files. Each match → FAIL: deployment target ref, forbidden in distributable source.
Report format:
SECTION 4 — @file Reference Check
4a — .aiwg/ References
PASS sdlc-complete/agents/requirements-analyst.md .aiwg/requirements/ (normalized)
FAIL my-addon/skills/my-skill.md .aiwg/planning/my-design.md
→ non-normalized path: only exists in AIWG dev repo
4b — Bare AIWG-core References (legacy)
WARN research-complete/agents/workflow-agent.md agentic/code/frameworks/research-complete/...
→ add $AIWG_ROOT/ prefix
4c — Deployment-Target References (forbidden)
(none)
Run TypeScript type checking:
npx tsc --noEmit
Run the test suite:
npm test
Do not run UAT (npm run uat) here — that is a pre-release gate, not a daily development check. Mention that it should be run before tagging a release.
Search all SKILL.md files in agentic/code/ for potential circular calls:
For each SKILL.md:
definitions.ts has executedViaSkillRunner: trueaiwg <command-name> in any bash block or instruction textAIWG Dev Doctor
Run at: <timestamp>
Repo: <working directory>
SECTION 1 — Structure Integrity
PASS agentic/code/addons/ (8 addons, all have manifest.json + README.md)
PASS agentic/code/frameworks/ (5 frameworks, all have manifest.json)
SECTION 2 — Orphan Detection
PASS no orphaned skills
FAIL aiwg-utils: soul-blend listed in manifest but skills/soul-blend/SKILL.md missing
PASS no orphaned agents
PASS no missing agents
PASS no orphaned rules
SECTION 3 — Placement Violations
PASS no placement violations found
SECTION 4 — @file References
4a .aiwg/ refs: PASS (all normalized)
4b bare AIWG refs: WARN — 2 legacy refs (add $AIWG_ROOT/ prefix)
4c .claude/ refs: PASS (none found)
WARN agentic/code/addons/my-addon/skills/my-skill.md
agentic/code/... (bare ref) → add $AIWG_ROOT/ prefix
SECTION 5 — TypeScript Compilation
PASS tsc --noEmit: 0 errors
SECTION 6 — Test Suite
PASS npm test: 142 passing, 0 failing
SECTION 7 — Circular Skill Calls
PASS no circular skill calls detected
Overall: FAIL — 2 issues found
Blocking issues:
1. [Section 2] aiwg-utils/skills/soul-blend/SKILL.md missing
Action: Create the SKILL.md or remove soul-blend from manifest.json
2. [Section 4] non-normalized @.aiwg/ reference in my-addon/skills/my-skill.md
Action: Either remove the reference, replace it with a normalized path,
or add the path to the framework's memory.creates in manifest.json
Notes:
- UAT (`npm run uat`) not run — run before tagging a release
- 8 addons, 5 frameworks validated
User: "run dev doctor"
Output:
AIWG Dev Doctor — 2026-04-01
Structure: PASS (8 addons, 5 frameworks)
Orphans: PASS (no orphaned or missing components)
Placement: PASS (no violations)
.aiwg/ refs: PASS
TypeScript: PASS (0 errors)
Tests: PASS (142 passing)
Circular calls: PASS
Overall: PASS — repo is in a good state
Note: Run `npm run uat` before tagging a release.
User: "is the repo in a good state before I make a PR?"
Output:
AIWG Dev Doctor — 2026-04-01
Structure: PASS
Orphans: FAIL — 1 missing skill, 1 orphaned rule
Placement: FAIL — 1 violation in .claude/skills/
.aiwg/ refs: PASS
TypeScript: PASS
Tests: PASS
Circular calls: PASS
Overall: FAIL — 3 issues found
1. [Orphans] my-addon/skills/my-skill/SKILL.md missing (listed in manifest)
→ Create the file or remove from manifest.json
2. [Orphans] my-addon/rules/old-rule.md exists but not in RULES-INDEX.md
→ Add an entry to rules/RULES-INDEX.md or delete old-rule.md
3. [Placement] .claude/skills/scratch-skill/ has no source in agentic/code/
→ Move to agentic/code/addons/<addon>/skills/scratch-skill/ or delete
User: "just check for placement violations"
Action: Run Section 3 only.
Output:
Placement Violation Check
Checked: .claude/skills/, .claude/agents/, .claude/commands/, .claude/rules/
.github/agents/, .github/prompts/, .github/instructions/
.cursor/skills/, .cursor/agents/
Result: PASS — no placement violations found
All deployed files have corresponding source in agentic/code/.
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.