Comprehensive plugin review workflow with state tracking, best practice validation, and improvement recommendations
Conducts comprehensive plugin review with state tracking and best practice validation.
/plugin marketplace add basher83/lunar-claude/plugin install hookify@lunar-claude<plugin-path>Systematically review a Claude Code plugin against best practices from plugin-dev skills. Creates a state file to track progress and enables resumable reviews.
Target plugin: $ARGUMENTS
.claude/<plugin-name>-review.local.md to track all progressGoal: Validate plugin path and create state file
Actions:
.claude-plugin/plugin.json# Commands
ls <plugin-path>/commands/*.md 2>/dev/null | wc -l
# Agents
ls <plugin-path>/agents/*.md 2>/dev/null | wc -l
# Skills
find <plugin-path>/skills -name "SKILL.md" 2>/dev/null | wc -l
# Hooks
test -f <plugin-path>/hooks/hooks.json && echo "yes" || echo "no"
.claude/<plugin-name>-review.local.md:---
workflow: plugin-review
plugin: <plugin-name>
plugin_path: <plugin-path>
status: in_progress
started: <date>
last_updated: <date>
phase: discovery
plugin_version: <version>
---
# <Plugin-Name> Plugin Review
Comprehensive review against plugin-dev best practices.
## Component Inventory
| Component | Path | Count | Status |
|-----------|------|-------|--------|
| plugin.json | `.claude-plugin/plugin.json` | 1 | pending |
| README.md | `README.md` | 1 | pending |
| Commands | `commands/` | <n> | pending |
| Agents | `agents/` | <n> | pending |
| Skills | `skills/` | <n> | pending |
| Hooks | `hooks/` | <yes/no> | pending |
## Review Progress
### Phase 1: Commands
(to be filled during review)
### Phase 2: Agents
(to be filled during review)
### Phase 3: Skills
(to be filled during review)
### Phase 4: Metadata
(to be filled during review)
### Phase 5: Advanced Patterns
(to be filled during review)
## Commits
(to be filled as changes are committed)
## Next Steps
1. [ ] Phase 1: Review commands
2. [ ] Phase 2: Review agents
3. [ ] Phase 3: Review skills
4. [ ] Phase 4: Review metadata
5. [ ] Phase 5: Advanced patterns analysis
6. [ ] Commit changes
7. [ ] Version bump
8. [ ] Push to remote
Output: State file created, components discovered
Goal: Review each command against command-development skill
Skip if: Plugin has no commands
Actions:
phase: commands-reviewOutput: All commands reviewed, issues fixed, state file updated
Goal: Review each agent against agent-development skill
Skip if: Plugin has no agents
Actions:
phase: agents-review<example> blocksOutput: All agents reviewed, issues fixed, state file updated
Goal: Review each skill against skill-development skill
Skip if: Plugin has no skills
Actions:
phase: skills-reviewOutput: All skills reviewed, issues fixed, state file updated
Goal: Review plugin.json and README against standards
Actions:
phase: metadata-reviewplugin.json check:
README.md check:
Output: Metadata reviewed, README improved, state file updated
Goal: Determine if plugin would benefit from additional patterns
Actions:
phase: advanced-patternsplugin-settings analysis:
.local.md configuration:
plugin-structure analysis:
.claude-plugin/plugin.jsonOutput: Advanced patterns analyzed, recommendations documented
Goal: Commit remaining changes, version bump, push
Actions:
phase: finalizationstatus: completeOutput: Plugin review complete, changes committed and pushed
Throughout all phases:
last_updated date when making changesphase field when moving between phasesIf resuming a review:
phase fieldNext Steps for uncompleted itemsEvery recommendation must:
CRITICAL: Before proposing ANY change, you MUST use this exact format. Do NOT make changes without following this structure.
**Issue:** [Brief description of the problem]
**Criterion:** [Which checklist item failed]
**Skill:** [skill-name] (e.g., agent-development, skill-development)
**Proof from skill:**
> "[Exact quote from the skill that defines this requirement]"
**Current state:**
[Show what the plugin currently has]
**Proposed fix:**
[Show what it should be changed to]
**Rationale:** [Why this change improves the plugin based on the proof]
When recommending to NOT make a change:
**Considered:** [What was evaluated]
**Skill:** [skill-name]
**Proof from skill:**
> "[Exact quote that justifies skipping]"
**Decision:** Skip - [brief explanation]
Question: Are naming conventions followed?
From skill (plugin-structure):
"Commands: Use kebab-case .md files" "Agents: Use kebab-case .md files describing role" "Skills: Use kebab-case directory names"
| Component | Name | Convention | Status |
|---|---|---|---|
| Commands | git-status.md | kebab-case ✅ | PASS |
| Commands | git-commit.md | kebab-case ✅ | PASS |
| Commands | generate-changelog.md | kebab-case ✅ | PASS |
| Commands | branch-cleanup.md | kebab-case ✅ | PASS |
| Agents | commit-craft.md | kebab-case, describes role ✅ | PASS |
| Skills | git-workflow/ | kebab-case ✅ | PASS |
Result: PASS - All naming conventions followed.
Question: Could plugin benefit from a scripts/ directory?
From skill (plugin-structure):
"Scripts: Use descriptive kebab-case names with appropriate extensions" Example:
validate-input.sh,generate-report.py
Analysis:
| Potential Script | Purpose | Justified? |
|---|---|---|
| validate-commit-msg.sh | Validate conventional commit format | No - git hooks handle this |
| check-branch-name.sh | Validate branch naming | No - simple pattern matching |
| parse-changelog.py | Parse git-cliff output | No - git-cliff handles this |
Assessment: All functionality is either:
From skill - Best Practice:
"Minimal manifest: Keep plugin.json lean" "Only create directories for components the plugin actually uses"
Result: NO BENEFIT - Adding scripts/ would add complexity without value. Plugin appropriately delegates to external tools.
Issue: Agent examples don't show proactive triggering
Criterion: Description has proactive triggering example (if applicable)
Skill: agent-development
Proof from skill:
"Include 2-4 concrete examples" "Show proactive and reactive triggering" "Cover different phrasings of same intent"
Current state:
<example>
Context: User explicitly requests commit creation.
user: "create commits for these changes"
assistant: "I'll use the commit-craft agent..."
</example>
All 3 examples are reactive (explicit user requests).
Proposed fix: Add proactive example as first example:
<example>
Context: User just finished implementing a feature across multiple files.
user: "I've finished adding the authentication module"
assistant: "Great! You have changes across several files."
<commentary>
User completed coding task with multiple modified files. Proactively trigger commit-craft.
</commentary>
assistant: "I'll use the commit-craft agent to organize these changes into logical, atomic commits."
</example>
Rationale: The skill explicitly requires showing "proactive and reactive triggering." Current examples only show reactive patterns, missing the proactive case where agent triggers after user completes work.
Question: Does plugin benefit from plugin-settings pattern?
From skill (plugin-settings):
"Plugins can store user-configurable settings... for Per-project plugin configuration" "Use case: Enable/disable hooks without editing hooks.json" "Focus on keeping settings simple and providing good defaults when settings file doesn't exist"
Analysis:
| Pattern | Applicable? | Reasoning |
|---|---|---|
| Configuration-driven behavior | No | CLAUDE.md handles project conventions |
| Temporarily active hooks | No | Plugin has no hooks |
| Agent state management | No | commit-craft is stateless by design |
One potential use case: Protected branch patterns for branch-cleanup.
However, from skill:
"Focus on keeping settings simple and providing good defaults when settings file doesn't exist"
Plugin already provides good defaults. Adding settings would add complexity for minor benefit.
Result: NO - Limited benefit, skip implementation. CLAUDE.md handles configuration needs.