Follow-up to v2.6.0. Uses the audit_skills.py tool (shipped in #646) to identify
real bugs vs validator false-positives across 298 repo skills, then fixes both.
Three coordinated changes:
1. Validator trigger pattern expansion (write-a-skill internal tools)
- Old: only "Use when", "Use for", "Invoke when", "Trigger when" recognized
- New: + "Use before/during/after/while", "Invoke before/after", "Apply when",
"Run when/before"
- Why: 11 legacy skills had semantically-valid triggers (e.g., gdpr-audit-prep
says "Use before annual GDPR review") that the v2.6.0 validator wrongly
flagged as missing. Natural English variants now accepted.
- Impact: 30 skills reclassified from FAIL → WARN/PASS automatically.
- Karpathy complexity: 100/100 (PASS) on both modified validators.
2. Ten placeholder descriptions fixed in engineering/skills/
The audit revealed 21 skills (~7% of repo) with broken descriptions that
were literally just the skill name (e.g., description: "Migration Architect").
These were real bugs from a v2.0.0 batch import where the description field
was never filled in. Top-10 fixed in this PR (POWERFUL-tier, high-visibility):
- migration-architect: zero-downtime migration planning + rollback strategy
- dependency-auditor: vulnerabilities + license + safe-upgrade audit
- codebase-onboarding: codebase analysis + onboarding doc generation
- ci-cd-pipeline-builder: pragmatic CI/CD from project stack signals
- mcp-server-builder: MCP servers from OpenAPI contracts (Python + TS)
- observability-designer: metrics + logs + traces + SLI/SLO design
- api-design-reviewer: REST design review + breaking-change detection
- performance-profiler: Node/Python/Go profiling + flamegraphs + load tests
- changelog-generator: Conventional Commits → release notes automation
- runbook-generator: operational runbooks from service name + templates
Each new description: ≤1024 chars, third person, action verb in first
sentence, "Use when ..." trigger in second sentence per Matt Pocock's rule.
Remaining 11 placeholder descriptions tracked for v2.6.2.
3. Quality-gates reference updated (Option C: legacy advisory)
quality_gates_for_skills.md now explicitly documents the binding-for-new
vs advisory-for-legacy split. The 6-item checklist remains BLOCKING for
post-v2.6.0 skills and ADVISORY for the 298 legacy SKILL.md files. Audit
report drift is tracked separately; PASS count is the metric to grow, not
a force-march-to-Friday deadline.
Aggregate audit improvement (against the 298 real-skill cohort):
- PASS: 4 (1%) → 7 (2%)
- WARN: 111 (37%) → 134 (45%)
- FAIL: 183 (61%) → 157 (53%)
- "Missing trigger" failures: 119 (39%) → 79 (26%)
26 skills total lifted from FAIL → WARN/PASS in this PR. Highest-leverage
fix per hour of any v2.6.x cleanup since the v2.6.0 release.
https://claude.ai/code/session_01VFreMf7XLBqMgjsrG4wSYe
Same root cause as #587/#591 — Claude Code's runtime loader rejects
array-form skills paths like ["./content-production", "./ai-seo", ...]
even when each entry is a valid subdirectory containing SKILL.md.
`claude plugin validate` accepts them but the loader does not.
The proven canonical layout (used by self-improving-agent in #536):
<plugin>/
├── .claude-plugin/plugin.json skills: "./skills"
└── skills/
├── <skill-1>/SKILL.md
├── <skill-2>/SKILL.md
└── ...
Restructured 9 multi-skill domain plugins:
- business-growth (4 skills moved)
- c-level-advisor (28)
- engineering (36)
- engineering-team (32)
- finance (2)
- marketing-skill (43)
- product-team (12)
- project-management (8)
- ra-qm-team (13)
Also fixed standalone plugins that had root SKILL.md + ./skills/ subdir
(agenthub, autoresearch-agent, executive-mentor, playwright-pro). The
loader rejected them despite skills="./skills" because of the conflicting
root SKILL.md (compare self-improving-agent which works because PR #536
moved its root SKILL.md). Moved each root SKILL.md into ./skills/<name>/.
Restored standalone plugin folders to their original paths after the
multi-skill restructure swept them into parent skills/ directories
(marketplace.json source paths require original locations).
Removed 7 orphaned marketplace entries that pointed to skill folders
without their own plugin.json (content-creator, demand-gen,
fullstack-engineer, aws-architect, product-manager, scrum-master,
skill-security-auditor) — these were already non-functional.
Bumped patch versions on every changed plugin and synced
marketplace.json. Marketplace now lists 29 working plugins (down
from 36).
After merge: users run `/plugin marketplace update claude-code-skills`
followed by `/plugin update --all` to pick up the working layout.