.claude/skills/hone/SKILL.md
Audit and improve an existing Quickstop plugin's quality against Claude Code plugin spec
npx skillsauth add acostanzo/quickstop honeInstall 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 the Hone orchestrator. When the user runs /hone <plugin-name>, execute this 5-phase audit workflow. Follow each phase in order. Do not skip phases.
Extract the plugin name from $ARGUMENTS. If empty or missing, list available plugins by globbing plugins/*/ and use AskUserQuestion to ask which to audit.
Glob for plugins/$ARGUMENTS/.claude-plugin/plugin.json. If not found, tell the user the plugin doesn't exist and abort.
Run parallel Glob calls to discover all files under plugins/<name>/:
| Category | Glob Pattern |
|----------|-------------|
| Metadata | plugins/<name>/.claude-plugin/*.json |
| Skills | plugins/<name>/skills/*/SKILL.md |
| Skill references | plugins/<name>/skills/*/references/*.md |
| Agents | plugins/<name>/agents/*.md |
| Hooks | plugins/<name>/hooks/*.json |
| MCP | plugins/<name>/.mcp.json |
| Docs | plugins/<name>/README.md |
| Legacy | plugins/<name>/commands/*.md |
| All files | plugins/<name>/**/* |
Get line counts for all discovered files via a single Bash call: wc -l <file1> <file2> ...
=== PLUGIN MAP ===
Plugin: <name> v<version>
Skills (N):
skills/<skill>/SKILL.md XX lines
skills/<skill>/references/foo.md XX lines
Agents (N):
agents/<agent>.md XX lines
Hooks:
hooks/hooks.json XX lines
Metadata:
.claude-plugin/plugin.json XX lines
README.md XX lines
Legacy:
[commands/ if found]
Total: N files, ~N lines
=== END MAP ===
Tell the user:
Phase 1: Building expert context from official plugin documentation...
Invoke /claudit:knowledge ecosystem to retrieve ecosystem knowledge.
If the skill runs successfully (outputs === CLAUDIT KNOWLEDGE: ecosystem === block):
.claude/skills/smith/references/plugin-spec.md for plugin-authoring-specific detail (plugin.json schema, directory conventions) that the ecosystem cache may not cover at full depthIf the skill is not available (claudit not installed — the invocation produces an error, is not recognized as a command, or produces no knowledge output):
Dispatch 2 research subagents in parallel using the Task tool. Both must be foreground.
In a single message, dispatch both Task tool calls:
Research Plugin Spec:
description: "Research plugin spec docs"subagent_type: "research-plugin-spec"prompt: "Build expert knowledge on Claude Code plugin, skill, and sub-agent authoring. Read the baseline from .claude/skills/smith/references/plugin-spec.md first, then fetch official Anthropic documentation. Return structured expert knowledge."Research Hooks & MCP:
description: "Research hooks/MCP docs"subagent_type: "research-hooks-mcp"prompt: "Build expert knowledge on Claude Code hooks and MCP server configuration. Fetch official Anthropic documentation. Return structured expert knowledge."Once both return, combine results:
=== EXPERT CONTEXT ===
## Plugin System Knowledge
[Results from research-plugin-spec]
## Hooks & MCP Knowledge
[Results from research-hooks-mcp]
=== END EXPERT CONTEXT ===
Tell the user:
Expert context assembled. Dispatching audit agents...
Phase 2: Analyzing plugin against expert knowledge...
Dispatch 4 audit agents in parallel using the Task tool. Each receives Expert Context plus its relevant file slice.
Read all plugin files before dispatching. Each agent needs:
audit-structure:
description: "Audit plugin structure"subagent_type: "audit-structure"prompt: Include Expert Context + the full plugin manifest with paths and line counts. The agent checks directory layout, required files, naming conventions.audit-skills-agents:
description: "Audit skills and agents"subagent_type: "audit-skills-agents"prompt: Include Expert Context + full contents of all SKILL.md and agent .md files. The agent validates frontmatter, instruction quality, and cross-references.audit-metadata-docs:
description: "Audit metadata and docs"subagent_type: "audit-metadata-docs"prompt: Include Expert Context + contents of plugin.json, marketplace.json entry, plugin README.md, and root README.md entry. Also include the plugin directory path for the security scan. The agent checks version consistency, docs quality, and secrets.audit-design:
description: "Audit design quality"subagent_type: "audit-design"prompt: Include Expert Context + contents of all plugin files (skills, agents, hooks). The agent assesses over-engineering, hook quality, and design patterns.Once all 4 audit agents return, read the scoring rubric:
${SKILL_ROOT}/references/scoring-rubric.mdApply the rubric to audit findings. For each of the 8 categories:
Categories, weights, and audit sources:
| Category | Weight | Audit Source | |----------|--------|-------------| | Skill Quality | 20% | audit-skills-agents | | Structure Compliance | 15% | audit-structure | | Agent Quality | 15% | audit-skills-agents | | Metadata Quality | 10% | audit-metadata-docs | | Hook Quality | 10% | audit-design | | Documentation | 10% | audit-metadata-docs | | Over-Engineering | 10% | audit-design | | Security | 10% | audit-metadata-docs |
Scope-aware scoring: If a plugin has no component for a category (e.g., no hooks), that category scores 100 (neutral) unless the plugin clearly needs it.
overall = sum(category_score * category_weight for all categories)
Look up letter grade from rubric's grade threshold table.
Compile ranked recommendations from all audit findings:
╔══════════════════════════════════════════════════════════╗
║ HONE QUALITY REPORT ║
║ Plugin: <name> v<version> | Overall: XX/100 Grade: X ║
╚══════════════════════════════════════════════════════════╝
Skill Quality ████████████████████░░░░░ XX/100 X
Structure Compliance ████████████████████░░░░░ XX/100 X
Agent Quality ████████████████████░░░░░ XX/100 X
Metadata Quality ████████████████████░░░░░ XX/100 X
Hook Quality ████████████████████░░░░░ XX/100 X
Documentation ████████████████████░░░░░ XX/100 X
Over-Engineering ████████████████████░░░░░ XX/100 X
Security ████████████████████░░░░░ XX/100 X
For visual bars: █ for filled (score/100 * 25 chars), ░ for remaining. Append numeric score and letter grade.
After the scorecard, present:
Use AskUserQuestion with multiSelect: true to let the user choose which recommendations to apply. Group by priority (Critical, High, Medium, Low). Include estimated score impact.
Format each option as:
Include a "Skip — no changes" option.
For each selected recommendation:
Common fix types:
After implementing fixes, re-score affected categories and show before/after:
Score Delta:
Skill Quality 65 → 85 (+20)
Metadata Quality 70 → 95 (+25)
Overall 72 → 84 (+12) Grade: C → B
Check if any files were modified in Phase 4. If no changes were made, skip this phase.
Use AskUserQuestion (single-select):
command -v gh — verify gh CLI availablegh auth status — verify authenticatedIf PR delivery is selected:
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)git checkout -b hone/<plugin>-improvements-$(date +%Y-%m-%d-%H%M)plugins/<name>/, .claude-plugin/marketplace.json, and README.md<Plugin> v<version>: hone quality improvements (score XX → YY)
- [List key changes]
git push -u origin <branch-name>gh pr create --base $CURRENT_BRANCH:
<Plugin> v<version>: hone quality improvementsgh api for each changed file (educational comments explaining what changed and why)If gh is not available or PR creation fails, show git diff --stat and explain what was changed.
.claude/skills/smith/references/plugin-spec.mddocumentation
Surface (and optionally fix) doc-tree drift — duplicates, dead links, stale docs, template non-compliance, missing `## Related` blocks. Read-only by default; `--apply` does mechanical fixes; `--apply-semantic` emits diffs for human review.
documentation
Full-text search over the repo's `docs/` tree (FTS5-backed). Returns ranked hits with file paths, tags, and matching snippets.
testing
Retrieval-augmented Q&A over the repo's `docs/` tree. Returns a one-paragraph synthesis plus citations (doc path + heading anchor) and per-citation corroboration verdicts. Field shape and ordering are locked at M3; M5 populates the verdicts.
documentation
Scaffold a new doc under `docs/` from a Diátaxis template, or update an existing one and bump its `updated:` date. Suggests `## Related` candidates and refreshes the FTS5 index on write.