From develop
ALWAYS invoke this skill when auditing, reviewing, or evaluating subagent configuration files. NEVER audit subagents without this skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/develop:auditing-subagents <subagent-path><subagent-path>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Invoke the `develop:standardizing-agent-prompts` skill before proceeding. If that skill is unavailable, report the missing skill and continue with the closest available workflow.
Invoke the develop:standardizing-agent-prompts skill before proceeding. If that skill is unavailable, report the missing skill and continue with the closest available workflow.
Invoke the develop:creating-subagents skill before proceeding. If that skill is unavailable, report the missing skill and continue with the closest available workflow.
This ensures subagents follow proper structure, configuration, pure XML formatting, and implementation patterns.
<quick_start>
$ARGUMENTS</quick_start>
- MUST check for markdown headings (##, ###) in subagent body and flag as critical - MUST verify all XML tags are properly closed - MUST distinguish between functional deficiencies and style preferences - NEVER flag missing tag names if the content/function is present under a different name (e.g., `` vs ``) - ALWAYS verify information isn't present under a different tag name or format before flagging - DO NOT flag formatting preferences that don't impact effectiveness - MUST flag missing functionality, not missing exact tag names - ONLY flag issues that reduce actual effectiveness - ALWAYS apply contextual judgment based on subagent purpose and complexity<critical_workflow> MANDATORY: Read best practices FIRST, before auditing:
${CLAUDE_SKILL_DIR}/../creating-subagents/references/subagents.md${CLAUDE_SKILL_DIR}/../creating-subagents/references/writing-subagent-prompts.md$ARGUMENTSUse ACTUAL patterns from references, not memory. </critical_workflow>
<evaluation_areas> These issues significantly hurt effectiveness - flag as critical:
yaml_frontmatter:
role_definition:
<role> section clearly define specialized expertise?workflow_specification:
<workflow>, <approach>, <critical_workflow>, etc.)?constraints_definition:
tool_access:
xml_structure:
focus_areas:
output_format:
<output_format> section with clear structuremodel_selection:
success_criteria:
error_handling:
examples:
context_management: For long-running agents, context/memory strategy extended_thinking: For complex reasoning tasks, thinking approach guidance prompt_caching: For frequently invoked agents, cache-friendly structure testing_strategy: Test cases, validation criteria, edge cases observability: Logging/tracing guidance evaluation_metrics: Measurable success metrics
<contextual_judgment> Apply judgment based on subagent purpose and complexity:
Simple subagents (single task, minimal tools):
Complex subagents (multi-step, external systems, security concerns):
Delegation subagents (coordinate other subagents):
Always explain WHY something matters for this specific subagent, not just that it violates a rule. </contextual_judgment>
<anti_patterns> Flag these structural violations:
Using markdown headings (##, ###) for structure instead of XML tags.Why this matters: Subagent.md files are consumed only by Claude, never read by humans. Pure XML structure provides ~25% better token efficiency and consistent parsing.
How to detect: Search file for ## or ### symbols outside code blocks/examples.
Fix: Convert to semantic XML tags (e.g., ## Workflow → <workflow>)
Why this matters: Breaks parsing, creates ambiguous boundaries, harder for Claude to parse structure.
How to detect: Count opening/closing tags, verify each <tag> has </tag>.
Fix: Add missing closing tags, fix nesting order.
Mixing XML tags with markdown headings inconsistently.Why this matters: Inconsistent structure makes parsing unpredictable, reduces token efficiency benefits.
How to detect: File has both XML tags (<role>) and markdown headings (## Workflow).
Fix: Convert all structural headings to pure XML.
Generic tag names like ``, ``, ``.Why this matters: Tags should convey meaning, not just structure. Semantic tags improve readability and parsing.
How to detect: Tags with generic names instead of purpose-based names.
Fix: Use semantic tags (<workflow>, <constraints>, <validation>).
</anti_patterns>
<output_format>
Emit the verdict as JSON conforming to the canonical schema in plugins/spec-tree/skills/auditing/scripts/verdict.py. The skill's entire output is the JSON verdict. The caller captures the JSON and routes it through emit_verdict.py with the requested --format (defaulting to markdown+json for PR-comment delivery).
The skill's overall is PASS iff the critical-issues row has no findings with severity REJECT; FAIL if any critical finding is REJECT; UNKNOWN if the subagent file cannot be read or the audit cannot complete. Recommendations land as WARNING findings; strengths and quick fixes land as INFO findings.
{
"schema_version": 1,
"skill": "auditing-subagents",
"target": "<subagent-path>",
"overall": "PASS | FAIL | UNKNOWN",
"rows": [
{
"name": "critical-issues",
"status": "PASS | FAIL | UNKNOWN",
"findings": [
{
"id": "f-001",
"file": "<subagent-file>",
"line": null,
"rule": "<issue-category>",
"severity": "REJECT",
"message": "Current: <…>. Should be: <…>. Why it matters: <…>. Fix: <…>."
}
]
},
{ "name": "recommendations", "status": "PASS", "findings": [] },
{ "name": "strengths", "status": "PASS", "findings": [] },
{ "name": "quick-fixes", "status": "PASS", "findings": [] }
],
"metadata": {
"subagent_type": "simple | complex | delegation",
"tool_access": "appropriate | over-permissioned | under-specified",
"model_selection": "appropriate | reconsider"
}
}
</output_format>
Before completing the audit, verify:<final_step> After presenting findings, offer:
</final_step>
<success_criteria> A complete subagent audit includes:
</success_criteria>
npx claudepluginhub outcomeeng/plugins --plugin developProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.