feat: add claude-config-audit plugin#62
Conversation
Bundle three configuration-audit skills as one cohesive plugin: settings-audit (config files vs upstream truth, with live plugin-drift detection), memory-health (CLAUDE.md / rules / auto-memory against official-doc criteria), and automation-deep-dive (evidence-gated verdicts on automation gaps). All three default to report-only; mutations require explicit opt-in plus per-item approval. Decoupled from the source repo per the migration playbook: scripts resolve the consumer project root (git toplevel, then CLAUDE_PROJECT_DIR, then cwd), state persists under CLAUDE_PLUGIN_DATA, sibling-skill references stay bare, adjacent capabilities degrade gracefully to inline guidance, and the required-permissions baseline carries only the cross-repo security floor with a consumer-rules extension seam.
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_eaf26048-abac-4e5c-930d-b0bcd14a427f) |
There was a problem hiding this comment.
Stale comment
Risk: medium. Not approving because Cursor Bugbot skipped (usage limit reached) and the required automated review did not complete successfully. Human review is needed; no reviewers were assigned because no other repository contributors are available besides the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
…onfig-audit # Conflicts: # .claude-plugin/marketplace.json # README.md
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_0388364b-3c47-4391-9ef2-e9dc827e13d2) |
|
Claude finished @kyle-sexton's task in 4m 9s —— View job PR Review: feat: add claude-config-audit pluginTasks
SummarySolid plugin overall. The structure, safety contracts, and decoupling story are well-executed. Three findings worth addressing before merge — one medium-risk jq filter injection, one low-risk regex metacharacter bug, and one trap-clobber edge case — plus a design note on the baseline permissions list. Findings1. jq filter injection in
|
There was a problem hiding this comment.
Stale comment
Risk: medium. Not approving because Cursor Bugbot skipped (usage limit reached), so the required automated review did not complete successfully. Human review is needed; no reviewers were assigned because no eligible repository contributors are available besides the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver
Parameterize the fix-plugin-drift jq edit via --argjson reduce so upstream plugin names are data, never filter code (with a hostile-name regression test); guard the EXIT trap against an unset temp path; make the orphan-rule self-exclusion grep a fixed-string whole-line match; document when the permission baseline may be narrowed with a consumer-rules exemption.
…onfig-audit # Conflicts: # .claude-plugin/marketplace.json # README.md
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_99281b71-1d4d-433d-a69e-fe32c16eb6f8) |
|
Claude finished @kyle-sexton's task in 3m 32s —— View job Tasks
Follow-up Review: feat: add claude-config-audit pluginThe Prior Findings — Status1. jq filter injection in
|
There was a problem hiding this comment.
Risk: medium. Not approving because Cursor Bugbot skipped, so the required automated review did not complete successfully. Human review is needed; no reviewers were assigned because no eligible repository contributors are available besides the PR author.
Sent by Cursor Approval Agent: Pull Request Router and Approver


Closes melodic-software/medley#1287 (EPIC melodic-software/medley#1273).
What
New
claude-config-auditplugin bundling three configuration-audit skills as one cohesive capability:/claude-config-audit:settings-auditsettings.json,settings.local.json,.mcp.json, hooks, plugins, permissions) correct against upstream truth? Includes live plugin-drift detection (ORPHAN/NEW/RENAME) with an asymmetric auto-fix policy/claude-config-audit:memory-health/claude-config-audit:automation-deep-diveMarketplace entry:
category: configuration, tagsmaintenance+ per-component. Explicit semver0.1.0inplugin.jsononly.Decoupling (playbook per-plugin gate)
CLAUDE_PROJECT_DIR→ cwd; never the plugin install dir. All bundled assets referenced via${CLAUDE_PLUGIN_ROOT}; no../reach-outs (grep-verified).${CLAUDE_PLUGIN_DATA}— contributor-local by design (reports cover personal auto-memory).CLAUDE.md/rules (REPOcheck-IDs); known-issues.md carries broadly-applicable upstream issues only.userConfig— the only variability that surfaced routes through consumer context (no speculative knobs).Gate evidence (speed-adjusted per issue)
claude plugin validate --strict ./plugins/claude-config-audit→ Validation passed;claude plugin validate --strict .(catalog manifest) → Validation passed.claude plugin detailsalways-on token cost: ~577 tok (automation-deep-dive ~230, settings-audit ~180, memory-health ~170; on-invoke ~3.9k / ~3.5k / ~1.5k).--plugin-dirsmoke test in a clean non-source fixture repo (headlessclaude -p): skill loaded under theclaude-config-audit:namespace,check-structure.shexecuted from the plugin root against the fixture's.claude/settings.json, Category B baseline correctly reported 1/17 patterns present. The smoke test caught (and this PR fixes) a real plugin-form failure:!pre-computed-context blocks failed permission preflight in a clean repo — preambles removed, facts collected in the workflow body instead.*.test.shsuites (92 checks) all pass locally; shellcheck clean against the repo.shellcheckrc; markdownlint + typos clean.Security review (playbook acceptance)
userConfigsecrets. Surface 1/2/3: N/A.../reach-outs, no absolute/machine paths.marketplace.jsonfromgithub.laiyagushi.com/ghraw; a failed fetch degrades to SKIP. No telemetry.fix-plugin-drift.sh --yesedits the consumer'ssettings.jsonbehind explicit opt-in + per-item approval, atomic jq write with post-edit validation (contract-tested).Note: the advisor consultation step was unavailable this session (tool errored); gates above stand on direct evidence.
Note
Low Risk
Greenfield plugin content only; the sole write path is opt-in
settings.jsonedits viafix-plugin-drift.sh --yes. No hooks, MCP servers, or secrets in the plugin manifest.Overview
Adds the
claude-config-auditplugin (0.1.0) to the marketplace and README catalog — three report-first skills for keeping a consumer repo’s Claude Code setup healthy.settings-auditauditssettings.json,.mcp.json, hooks, permissions, MCP, plugins, and env against official docs and a bundled checklist. It usescheck-structure.shfor secret-safesettings.local.jsonstats,check-plugin-drift.sh/fix-plugin-drift.shfor live marketplace drift (ORPHAN/NEW/RENAME) with asymmetric auto-fix (never drop user-enabled orphans).--fixis gated on per-finding approval.memory-healthruns a doc-derived criteria checklist onCLAUDE.md, rules, and auto-memory, with script-backed checks (resolve-memory-dir.sh, index integrity, orphan always-loaded rules). Reports go to${CLAUDE_PLUGIN_DATA}, not the repo; optionalfix/update/reportactions.automation-deep-diveinventories automation, proposes gap candidates, and scores them through eight evidence gates (default REJECT); optional--implementafter approval.Ships reference docs, phase checklists, skill evals, and six self-contained
*.test.shsuites for the bash helpers. Scripts resolve the consumer git root, not the plugin install path.Reviewed by Cursor Bugbot for commit aba9ba1. Bugbot is set up for automated code reviews on this repo. Configure here.