Reconcile README/CLAUDE.md/commands/agents to filesystem truth ahead of v5.0.0 release. Self-audit --check-readme now passes (counts: scanners 12, commands 18, tests 635, knowledge 8, agents 6, hooks 4). Self-audit (scanners/self-audit.mjs): - Exclude plugin-health-scanner.mjs from countScannerShape (it is a "standalone" scanner per README/CLAUDE.md taxonomy; orchestrated scanners stay at 12) - countTestCases: spawn `node --test` and parse the `tests N` line so the badge reflects test cases (635), not test files (36). countTestFiles kept as fallback when subprocess fails. README.md: - Badges: scanners 9→12, commands 17→18, tests 543→635 - Body counts updated: 8 quality scanners → 12 deterministic scanners; 8 quality areas → 10 (incl. Plugin Hygiene from N6); 9 Node.js scanners → 12 - Scanner table extended with CPS / DIS / COL rows; TOK row reflects the v5 Pattern E/F/N1 expansion (sonnet-era removed) - CLI table adds manifest, whats-active, --accurate-tokens, --with-telemetry-recipe - Knowledge table adds opus-4.7-patterns.md and cache-telemetry-recipe.md - Scanner Lib table notes WEIGHTS export, severity-weighted scoring, tokenizer-api - Action Engines table adds manifest.mjs, whats-active.mjs, token-hotspots-cli.mjs - Test count text 486→635, file count 27→36 (12 lib + 23 scanner + 1 hook) - Tokens command: 4-pattern phrasing → 6 patterns + --accurate-tokens - Adds /config-audit manifest and /config-audit whats-active to command tables CLAUDE.md: - Posture row: 8 → 10 quality areas - Tokens row: 4 patterns (incl. sonnet-era) → 6 patterns + --accurate-tokens - Adds /config-audit manifest entry - Scanner table: TOK description rewritten; CPS, DIS, COL rows added - Scanner Lib table: tokenizer-api.mjs added; v5 annotations on severity, output, scoring, active-config-reader - Action Engines table: manifest.mjs added; token-hotspots-cli.mjs flags expanded - Knowledge table: cache-telemetry-recipe.md added; configuration-best-practices notes Opus-4.7 cache-stability rewrite - Finding ID examples extended with CA-TOK-005, CA-CPS-001, CA-DIS-001, CA-COL-001 - Test count text 543→635, file count 31→36 commands/help.md: tokens/manifest added to Core commands/posture.md: 8 → 10 quality areas commands/config-audit.md: argument-hint adds tokens/manifest; router adds tokens and manifest; "Running 8 configuration scanners" → 12 agents/feature-gap-agent.md: 8 → 10 quality areas No production code paths changed beyond self-audit's badge-counting heuristic. All 635 tests still green. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
120 lines
3.7 KiB
Markdown
120 lines
3.7 KiB
Markdown
---
|
|
name: config-audit:posture
|
|
description: Quick configuration health assessment — scorecard with A-F grades
|
|
argument-hint: "[path] [--drift] [--plugin-health]"
|
|
allowed-tools: Read, Write, Glob, Grep, Bash
|
|
model: sonnet
|
|
---
|
|
|
|
# Config-Audit: Health Assessment
|
|
|
|
Quick, deterministic configuration health scorecard. No agents needed — runs all scanners + scoring in one pass.
|
|
|
|
## What the user gets
|
|
|
|
- Health grade (A-F) with plain-language explanation
|
|
- Per-area breakdown for 10 quality areas (incl. Token Efficiency, Plugin Hygiene) with grades and actionable notes
|
|
- Opportunity count — how many features could enhance their setup (not a grade)
|
|
- Grade-appropriate next steps
|
|
|
|
## Implementation
|
|
|
|
### Step 1: Determine target
|
|
|
|
Parse `$ARGUMENTS` for a path (default: current working directory). Resolve relative paths.
|
|
|
|
Tell the user:
|
|
|
|
```
|
|
## Configuration Health
|
|
|
|
Running quick assessment{if path != cwd: " on `{path}`"}...
|
|
```
|
|
|
|
### Step 2: Run posture scanner
|
|
|
|
Run silently — all output goes to a file:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/scanners/posture.mjs <target-path> --json --output-file /tmp/config-audit-posture-$$.json 2>/dev/null; echo $?
|
|
```
|
|
|
|
If exit code is non-zero, tell the user: "Assessment couldn't complete. Check that the path exists and contains Claude Code configuration files."
|
|
|
|
### Step 3: Read and interpret results
|
|
|
|
Read the JSON output file using the Read tool. Extract:
|
|
|
|
- `overallGrade`, `opportunityCount`
|
|
- `areas[]` — each with `name`, `grade`, `score`, `findingCount`
|
|
|
|
### Step 4: Present the scorecard
|
|
|
|
```markdown
|
|
**Health: {overallGrade}** | {qualityAreaCount} areas scanned
|
|
|
|
{grade-based context — pick ONE:}
|
|
- A: "Your configuration is correct and well-maintained."
|
|
- B: "Solid configuration with minor improvements available."
|
|
- C: "Working configuration with some issues worth addressing."
|
|
- D: "Configuration needs attention in several areas."
|
|
- F: "Significant issues found — addressing these will improve your experience."
|
|
|
|
### Area Scores
|
|
|
|
| Area | Grade | Score | Findings | |
|
|
|------|-------|-------|----------|-|
|
|
{for each area EXCEPT Feature Coverage:}
|
|
| {name} | {grade} | {score}/100 | {findingCount} | {plain-language note: A="Excellent", B="Good", C="Needs work", D/F="Issues found"} |
|
|
|
|
{if opportunityCount > 0:}
|
|
{opportunityCount} feature opportunities available — run `/config-audit feature-gap` for context-aware recommendations.
|
|
|
|
### What's next
|
|
```
|
|
|
|
**Grade A or B:**
|
|
```
|
|
Your configuration health is strong. Re-run after major changes to catch regressions.
|
|
For feature recommendations: `/config-audit feature-gap`
|
|
```
|
|
|
|
**Grade C:**
|
|
```
|
|
Run `/config-audit fix` to auto-fix what's possible, then `/config-audit plan` for a prioritized improvement path.
|
|
```
|
|
|
|
**Grade D or F:**
|
|
```
|
|
Start with `/config-audit fix` — it handles the most impactful issues automatically with backup and rollback.
|
|
Then run `/config-audit plan` for a step-by-step path to a better configuration.
|
|
```
|
|
|
|
### Step 5: Optional sections
|
|
|
|
**If `--drift` flag is present:**
|
|
|
|
Run drift comparison silently:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/scanners/drift-cli.mjs <target-path> 2>/dev/null
|
|
```
|
|
|
|
Read stdout output and append a "Configuration Drift" section showing what changed since the last baseline.
|
|
|
|
**If `--plugin-health` flag is present:**
|
|
|
|
Run plugin health scanner silently:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/scanners/plugin-health-scanner.mjs <target-path> 2>/dev/null
|
|
```
|
|
|
|
Read stdout output and append a "Plugin Health" section.
|
|
|
|
**If both flags:** Use `scanners/lib/report-generator.mjs` to produce a unified markdown report.
|
|
|
|
### Step 6: Save to session (if active)
|
|
|
|
If a config-audit session exists, save results:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/scanners/posture.mjs <target-path> --json --output-file ~/.claude/config-audit/sessions/<session-id>/posture.json 2>/dev/null
|
|
```
|