plugins/meta/skills/audit-references/SKILL.md
Audit plugin health and find broken references in manifests, commands, agents, and skills
npx skillsauth add coalesce-labs/catalyst audit-referencesInstall 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 are tasked with auditing plugin health by finding broken references across all plugin manifests, commands, agents, skills, and documentation.
When invoked, immediately run the backing script to gather results:
SCRIPT_DIR="${CLAUDE_PLUGIN_ROOT}/scripts"
"${SCRIPT_DIR}/audit-references.sh" --json --all
Parse the JSON output to understand the full picture.
Run the script with --json to get machine-readable output. The script checks three severity
levels:
plugin.json) pointing to files that don't exist on diskPresent findings grouped by severity:
## Plugin Reference Audit
### CRITICAL ({count})
These manifest entries declare files that don't exist. Plugins will fail to load these.
| Plugin | Manifest | Reference | Detail |
|--------|----------|-----------|--------|
| {plugin} | {manifest} | {ref} | {detail} |
### WARNING ({count})
Path references in plugin source files that don't resolve.
| Source File | Line | Reference | Detail |
|-------------|------|-----------|--------|
| {file} | {line} | {ref} | {detail} |
### INFO ({count})
Stale documentation references (cosmetic only).
| Source File | Line | Reference |
|-------------|------|-----------|
| {file} | {line} | {ref} |
For each broken reference at CRITICAL or WARNING level, try to find the actual file:
For CRITICAL (manifest entries):
commands/deep_research.md)For WARNING (source references):
## Resolution Plan
### Auto-fixable ({count})
These broken references have clear fixes:
| # | File | Line | Current Reference | Suggested Fix | Confidence |
|---|------|------|-------------------|---------------|------------|
| 1 | {file} | {line} | {old_ref} | {new_ref} | High |
| 2 | {file} | {line} | {old_ref} | {new_ref} | Medium |
### Needs Manual Review ({count})
These references couldn't be auto-resolved:
| File | Line | Reference | Reason |
|------|------|-----------|--------|
| {file} | {line} | {ref} | File not found anywhere in repo |
### Safe to Ignore ({count})
These are documentation examples, templates, or prose references:
| File | Line | Reference | Why Safe |
|------|------|-----------|----------|
| {file} | {line} | {ref} | Example path in documentation |
Would you like me to:
1. Apply all auto-fixes
2. Apply fixes selectively (I'll ask about each)
3. Just show the report (no changes)
Wait for user response.
For each approved fix:
plugin.jsonAfter applying fixes, re-run the audit to verify:
"${SCRIPT_DIR}/audit-references.sh" --json
Present the before/after comparison:
## Audit Results After Fix
| Severity | Before | After |
|----------|--------|-------|
| CRITICAL | {before} | {after} |
| WARNING | {before} | {after} |
| INFO | {before} | {after} |
{remaining issues if any}
${CLAUDE_PLUGIN_ROOT} paths are excluded: These resolve at runtime and are always validplugins/meta/scripts/audit-references.sh--json and check the critical count in the outputjq is not installed, the script will report this as a CRITICAL issuetesting
Phase-agent that fixes a failing verify verdict so the pipeline self-heals instead of stalling to needs-human (CTL-653). Reads `${ORCH_DIR}/workers/<ticket>/verify.json`, fixes the `findings[]` (every severity:"high" plus the regression_risk drivers) directly via Edit/Write, commits the remediation, and emits `phase.remediate.complete.<ticket>`. The scheduler's router then re-dispatches `verify` to re-check (the verify⇄remediate cycle, cap 3). Dispatched as a `claude --bg` job by `phase-agent-dispatch`, which invokes it via slash command — hence `user-invocable: true`.
tools
--- name: phase-triage description: Phase agent that triages a Linear ticket — expands acronyms, classifies (feature/bug/docs/refactor/chore), identifies genuine blockers (a semantic second-pass over the backlog — NOT a prose scrape; CTL-838), estimates scope, writes triage.json, and posts a triage analysis comment to Linear. Triage completion is signaled by that comment plus the local triage.json — there is no `triaged` label. Emits phase.triage.complete.<TICKET> on success and phase.triage.fai
tools
Phase agent for the research step of the 9-phase orchestrator pipeline (CTL-450). Wraps /catalyst-dev:research-codebase and produces thoughts/shared/research/<date>-<ticket>.md, then emits phase.research.complete.<ticket>. Reads triage.json from the worker dir as its prior-phase artifact. Spawned via plugins/dev/scripts/phase-agent-dispatch, which invokes it via slash command — hence `user-invocable: true`.
development
Phase-agent wrapper that opens the pull request after implementation completes (CTL-449 Initiative 1 Phase 3). Delegates to `/catalyst-dev:create-pr` (which already auto-runs `describe-pr` and transitions Linear to `inReview`), then writes the PR number + URL into the phase signal file so the downstream `phase-monitor-merge` agent can read it without re-querying GitHub. Dispatched as a `claude --bg` job by `phase-agent-dispatch`, which invokes it via slash command — hence `user-invocable: true`.