Skip to content

feat!: consolidate 9 teaching skills into single plugin-dev skill#224

Closed
kylesnowschwartz wants to merge 39 commits intosjnims:mainfrom
kylesnowschwartz:feat/single-skill-consolidation
Closed

feat!: consolidate 9 teaching skills into single plugin-dev skill#224
kylesnowschwartz wants to merge 39 commits intosjnims:mainfrom
kylesnowschwartz:feat/single-skill-consolidation

Conversation

@kylesnowschwartz
Copy link
Copy Markdown
Contributor

Summary

  • Consolidates 9 teaching skills + plugin-dev-guide router into a single plugin-dev skill with a routing index table
  • Interactive eval showed 57.9% vs 47.4% trigger rate (strict superset, zero false positives)
  • Root cause: 11-skill descriptions competing in the system prompt caused discrimination failures, with ~50% of real activations requiring explicit /plugin-dev invocation

What changed

  • New: skills/plugin-dev/SKILL.md with topic index routing to references/<topic>/overview.md
  • Migrated: 9 topic directories into plugin-dev/references/ (content identical, just reorganized)
  • Removed: plugin-dev-guide agent (replaced by routing index in SKILL.md)
  • Updated: plugin-validator, agent-creator, skill-reviewer agent frontmatter → skills: plugin-dev
  • Kept separate: update-from-upstream (workflow skill, not reference)
  • Added: plugin-dev-workspace/ with eval methodology, scripts, and data

Test plan

  • Install locally with claude --plugin-dir plugins/plugin-dev
  • Ask plugin development questions and verify skill triggers
  • Verify routing index loads correct reference files for different topics
  • Test that commands (/plugin-dev:start, /plugin-dev:create-plugin) still work
  • Verify agents (plugin-validator, agent-creator, skill-reviewer) function with skills: plugin-dev

kylesnowschwartz and others added 30 commits January 26, 2026 13:00
Adds a guide skill that helps users navigate the 9 specialized plugin-dev
skills. Routes users to the appropriate skill based on their task.

- New skill: plugin-dev-guide with decision tree and workflows
- New command: plugin-dev-guide for autocomplete discoverability
- Update skill count to 10 in plugin.json and marketplace.json

Closes sjnims#184
- Bump plugin version to 0.3.3 in plugin.json and marketplace.json
- Update CLAUDE.md version reference and component counts (10 skills, 3 agents, 4 slash commands)
- Add command frontmatter (allowed-tools, model) to plugin-dev-guide
- Clarify skill count statement in plugin-dev-guide SKILL.md
- Rewrite SKILL.md to cover all 22 hook events organized by category
  (was 13 events). Remove nonexistent "Setup" event.
- Add references/event-schemas.md with complete input/output JSON
  schemas for every event, including SDK parity notes
- Add 8 new patterns (11-18) for StopFailure, TaskCompleted,
  TeammateIdle, WorktreeCreate/Remove, ConfigChange, Elicitation,
  PreCompact/PostCompact, and InstructionsLoaded
- Add HTTP and Agent hook types (was only prompt and command)
- Fix deprecated PreToolUse output fields (permissionDecision replaces
  decision approve/block)
- Update validate-hook-schema.sh: recognize all 22 events, validate
  all 4 hook types, check event-specific type restrictions
- Add version field to all 9 skill frontmatters
- Use YAML block scalars (|) for multi-line agent descriptions
  to fix YAML parsing errors (matches official repo fix)
- Add commands/ deprecation notice to command-development and
  plugin-structure skills, pointing to skills/<name>/SKILL.md format
- Update command-development overview wording for consistency
- stop-failure-alert.sh: StopFailure API error alerting with desktop
  notifications
- validate-task.sh: TaskCompleted test verification gate
- teammate-quality-gate.sh: TeammateIdle quality checks
- create-worktree.sh: WorktreeCreate custom setup with dependency
  install (demonstrates stdout-as-return-value pattern)
- cleanup-worktree.sh: WorktreeRemove resource cleanup
- audit-config-change.sh: ConfigChange security monitoring
- handle-elicitation.sh: Elicitation auto-response for MCP servers
- log-observability.sh: Unified logging for InstructionsLoaded,
  PreCompact, PostCompact, and Notification events
- Update SKILL.md examples section to list all 11 scripts
- validate-hook-schema.sh: don't reject configs missing matcher for
  events that don't support matchers (UserPromptSubmit, Stop,
  TeammateIdle, TaskCompleted, WorktreeCreate, WorktreeRemove).
  Downgrade from error to warning for other events.
- validate-hook-schema.sh: replace ${hook_type^} bash 4+ syntax with
  awk for macOS stock bash compatibility
- create-worktree.sh: sanitize name input to prevent path traversal,
  surface git and dependency install errors instead of swallowing them
- teammate-quality-gate.sh: case-insensitive TODO/FIXME matching
- handle-elicitation.sh: only open https:// URLs to prevent
  file://, javascript:, or other dangerous schemes from MCP servers
- log-observability.sh: flatten newlines in notification messages
  to prevent breaking single-line log format
Adds plugin-dev-guide meta-skill for navigating plugin components,
new slash command, version bump to 0.3.3, and updated component counts.
- Point marketplace.json at kylesnowschwartz fork
- Merge commands section into skill quick reference table
- Remove redundant decision tree and command file
- Use explicit Skill tool invocation language throughout
Incorporate upstream documentation audit across all 10 skills. Add 10
new reference files covering agent fields, permission modes, hook input
schemas, memory/rules system, headless CI, GitHub Actions, output
styles, advanced topics, and frontmatter. Expand existing references
for hooks, marketplace, MCP, and plugin structure.

Fix critical prompt hook support claim (4 events → 19), add missing
SessionEnd "resume" matcher, and update project docs with lint command
corrections and component-patterns agent fields.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…0.5.0

Add initialPrompt agent frontmatter, CwdChanged/FileChanged hook events,
userConfig plugin manifest field, paths: YAML list for skills, MCP 2KB
description cap, and WorktreeCreate HTTP hook support.
No GitHub releases or tags needed. Push to main and users get updates
on next plugin refresh.
Add a Haiku-powered triage agent that matches plugin development
questions to the right specialized skill. The guide skill becomes
a thin dispatch shim, keeping the main context window clean.
…tring and release v0.6.1

The agent-development and skill-development skills documented the skills
frontmatter field as a YAML array, but Claude Code parses it as a
comma-separated string (same as tools and disallowedTools).
- Replace all sjnims/plugin-dev references with kylesnowschwartz/plugin-dev
- Update CODEOWNERS, dependabot assignees/reviewers, maintainer contact
- Update Anthropic doc URLs to current code.claude.com and platform.claude.com
- Remove scheduled trigger from link checker (keep PR + manual dispatch)
- Remove fork guard from stale workflow
Design for a skill + agent pipeline that keeps plugin-dev current
with Claude Code upstream changes. Four-stage pipeline with three
dedicated verification agents and source triangulation.
- Specify exact CC changelog URL with fetch validation
- Use full paths in modified files table
- Remove plugin.json registration (auto-discovery handles it)
- Add conventional commit format for release commits
- Add bootstrap behavior for first run
- Clarify Stage 4 retry mechanics
- Add SKILL.md frontmatter sketch with trigger phrases
- Add agent tool allowlists
- Add fallback column to external dependencies
- Update CLAUDE.md component count note
- Fix plugin-dev-guide routing table (use SKILL.md listing, not agent routing)
Four-stage pipeline for syncing plugin-dev docs with Claude Code
upstream releases. Uses source triangulation (CC changelog, system-prompts
repo, claude-code-guide agent) and independent verification agents to
ensure accuracy without human gates.
The last actual upstream audit was v0.5.0 against CC 2.1.83-84.
Versions 0.6.0 and 0.6.1 were internal changes, not upstream syncs.
Agent couldn't write the manifest file because Write wasn't in its
tool allowlist and .agent-history/ may not exist yet.
Upstream sync via update-from-upstream pipeline (4-stage verified).

Added:
- hook-development: conditional `if` field, AskUserQuestion via updatedInput
- skill-development: 250-char description cap, alphabetical /skills sorting
- plugin-structure: org plugin blocking, Permission denied fix
- mcp-integration: CLAUDE_CODE_MCP_SERVER_NAME/URL env vars
- agent-development: prompt change, fork naming, Production Reads
- marketplace-structure: org plugin blocking

Fixed:
- event-schemas: event count 22 → 24
- skill-development: noted resolved paths: frontmatter bug

Bumps plugin-dev to v0.8.0.
Runs the update-from-upstream skill every 3 days via claude-code-action.
Creates a PR for review instead of committing directly to main. Clones
Piebald-AI/claude-code-system-prompts for three-source triangulation.
The file is 30k+ tokens. Versions are newest-first, so the first 200
lines cover the most recent ~10 versions. Prevents token limit errors
in both changelog-differ and update-manifest-verifier agents.
First production run hit error_max_turns at 51 turns ($5.73). The
four-stage pipeline with three subagents needs more headroom.
Updates plugin-dev documentation to reflect Claude Code changes from
versions 2.1.87 through 2.1.88.

Key changes:
- Add PermissionDenied hook event (25th hook event)
- Document file_path absolute path behavior for Write/Edit/Read tools
- Document hook `if` field fix for compound commands
- Document partial compaction capability
- Add Config tool reference in agent-development

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The agent was preemptively skipping the third triangulation source
without attempting the dispatch. claude-code-guide is a built-in
Claude Code agent type and was registered in the CI session.
…-03-31

docs: sync plugin-dev with Claude Code v2.1.87-v2.1.88
Solo-maintained repo doesn't need greet, stale, semantic-labeler,
ci-failure-analysis, claude-pr-review, or markdownlint workflows.
Simplify links.yml (drop auto-issue creation), clean up markdownlint
references from docs and remaining workflows.
claude and others added 9 commits April 4, 2026 06:43
Document new Claude Code features from versions 2.1.89 through 2.1.92:

- hook-development: PreToolUse `defer` permission decision for pausing
  tool execution in headless sessions (CC 2.1.89)
- mcp-integration: `_meta["anthropic/maxResultSizeChars"]` annotation
  for large MCP tool results up to 500K characters (CC 2.1.91)
- skill-development/command-development: `disableSkillShellExecution`
  setting for organizations to disable inline shell execution (CC 2.1.91)
- plugin-structure: Plugin `bin/` directory for shipping executables
  that can be invoked as bare commands (CC 2.1.91)

Verified via four-stage update-from-upstream pipeline with independent
verification agents.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…-04-04

docs: sync plugin-dev with Claude Code v2.1.89-v2.1.92
Fix YAML frontmatter parse error in plugin-dev-guide agent by adding
missing block scalar indicator on description field.
Sync plugin-dev documentation with upstream Claude Code changes:

- agent-development: Document Monitor tool for streaming background events (CC 2.1.98)
- agent-development: Document agent absolute file path requirement (CC 2.1.97)
- skill-development: Document skill invocation name change (CC 2.1.94)
- claude-code-compatibility: Update audit log with CC 2.1.94-2.1.98 changes

Version bump: 0.10.1 → 0.10.2

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…-04-10

docs: sync plugin-dev with Claude Code v2.1.94-v2.1.98
Clarify that when a skill uses `context: fork` with `agent:`, the agent
definition provides the system prompt and the skill body provides the
task prompt. Add comparison table for declarative skill+agent vs direct
Agent tool calls. Cross-reference between both skill-development and
agent-development docs.
BREAKING: Update allowed-tools syntax from colon-separated to space-separated

- Update all `Bash(X:*)` patterns to `Bash(X *)` per CC 2.1.108
- Add PreCompact hook blocking capability (exit 2, CC 2.1.105)
- Add monitors manifest key documentation (CC 2.1.105)
- Version bump: 0.10.2 → 0.10.3

Files updated:
- command-development skill and references
- plugin-structure references (github-actions, headless-ci-mode, manifest-reference)
- hook-development SKILL.md and event-schemas
- /create-plugin and /create-marketplace commands
- docs (workflow-security.md, CONTRIBUTING.md)

Note: CI workflow files excluded (require workflows permission to update)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…-04-16

docs: sync plugin-dev with Claude Code v2.1.99-v2.1.110
Eval showed consolidated skill triggers 57.9% vs 47.4% (strict superset,
zero false positives). 11-way discrimination in skill descriptions was
causing ~50% of real activations to require explicit /plugin-dev invocation.

The single skill uses a routing index table that points to
references/<topic>/overview.md files. Content is identical, just
reorganized under one skill with progressive disclosure.

Changes:
- Migrate 9 topic skills into plugin-dev/references/<topic>/
- Remove plugin-dev-guide agent (replaced by routing index)
- Update plugin-validator, agent-creator, skill-reviewer frontmatter
- Add eval workspace with trigger-eval methodology and data
- Bump to v0.11.0

BREAKING CHANGE: Individual skill names (hook-development,
skill-development, etc.) no longer exist. Use plugin-dev instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants