.claude/skills/skill-conductor/SKILL.md
Create, edit, evaluate, and package agent skills. Use when building a new skill from scratch, improving an existing skill, running evals to test a skill, benchmarking skill performance, optimizing a skill's description for better triggering, reviewing third-party skills for quality, or packaging skills for distribution. Not for using skills or general coding tasks.
npx skillsauth add softmg/product-tracker skill-conductorInstall 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.
Full lifecycle management for agent skills: draft → test → review → improve → repeat.
One skill to rule them all — from architecture to packaging. The core loop is always the same: write something, test it, see what fails, fix it, test again.
Read context cues. If the user is a skill author iterating on their own work, be direct and technical. If they're new to skills, explain the why behind each step — not just what to do, but why it matters. Default to conversational, not robotic.
Detect mode from context. If ambiguous, ask.
| Mode | When | What happens | |------|------|-------------| | 1. CREATE | "build a skill", "new skill for..." | Full lifecycle: intent → architecture → scaffold → write → test | | 2. IMPROVE | "fix this skill", "it doesn't trigger" | Diagnose → eval loop → blind comparison → iterate | | 3. VALIDATE | "test this skill", "run evals" | Structural checks + trigger testing + 5-axis scoring | | 4. REVIEW | "review this skill", third-party assessment | 11-point quality gate, quick and focused | | 5. OPTIMIZE | "improve triggering", "description optimization" | Automated description optimization with train/test split | | 6. PACKAGE | "package for distribution" | Validate + bundle into .skill file |
Before writing anything, extract 2–3 concrete scenarios.
Ask:
Don't move on until you have a clear picture of what the skill does, for whom, and when. This prevents the most common failure: a skill that does something but triggers for the wrong things.
Before writing the skill, verify the agent fails without it:
If the agent already handles it perfectly, the skill is unnecessary. This sounds obvious, but it's the most skipped step and the most valuable one.
Choose a primary pattern from references/patterns.md (can combine):
| Pattern | Use when | |---------|----------| | Sequential workflow | clear step-by-step process | | Iterative refinement | output improves with cycles | | Context-aware selection | same goal, different tools by context | | Domain intelligence | specialized knowledge beyond tool access | | Multi-MCP coordination | workflow spans multiple services |
Choose degrees of freedom — this determines how much control vs. flexibility the skill gives the agent:
| Freedom | When | Example | |---------|------|---------| | Low (scripts) | fragile, error-prone, must be exact | PDF rotation, API calls | | Medium (pseudocode) | preferred pattern exists, some variation ok | data processing | | High (text) | multiple valid approaches, judgment needed | design decisions |
uv run scripts/init_skill.py <skill-name> --path <output-dir> [--resources scripts,references,assets]
Or create manually:
skill-name/
├── SKILL.md # required — the brain
├── scripts/ # deterministic operations (executed, not loaded)
├── references/ # detailed docs (loaded on demand)
└── assets/ # templates, images for output (never loaded)
---
name: kebab-case-name
description: >
[Purpose in one sentence]. Use when [triggers].
Do NOT use for [negative triggers].
---
The description is the single most important line. It determines whether the skill gets triggered at all. Rules:
name: lowercase, digits, hyphens only. No consecutive hyphens. Matches folder name. Max 64 charsdescription: max 1024 chars. No angle brackets. No process/workflow steps# GOOD: purpose + triggers, no process
description: Analyze Figma design files for developer handoff. Use when user uploads .fig files or asks for "design specs". Do NOT use for Sketch or Adobe XD.
# BAD: process in description (agent skips body)
description: Exports Figma assets, generates specs, creates Linear tasks, posts to Slack.
# Skill Name
## Overview
What this enables. 1-2 sentences. Core principle.
## [Main sections]
Step-by-step with numbered sequences.
Concrete templates over prose.
Imperative voice throughout.
## Common Mistakes
What goes wrong + how to fix.
## Troubleshooting (if applicable)
Error: [message] → Cause: [why] → Fix: [how]
Create test cases in evals/evals.json (see references/schemas.md for format):
To run the eval loop:
agents/grader.mduv run eval-viewer/generate_review.py <workspace>
--static <output.html> instead of live server. ALWAYS show viewer to user BEFORE editing skill yourselfIf any fail → iterate. Find how the agent rationalizes around the skill, plug loopholes, re-verify.
Read the existing SKILL.md completely. Identify the problem class:
| Problem | Signal | Fix | |---------|--------|-----| | Undertriggering | skill doesn't load | add keywords, trigger phrases, file types to description | | Overtriggering | loads for unrelated queries | add negative triggers, be more specific | | Skips body | follows description only | remove process/workflow from description | | Inconsistent output | varies across sessions | add explicit templates, reduce freedom, add scripts | | Too slow | large context | move detail to references/, cut body to <500 lines |
scripts/. Saves every future invocation from reinventing the wheelThe improvement cycle mirrors CREATE Step 6, but focused on the broken behavior:
agents/grader.mduv run eval-viewer/generate_review.py <workspace>
--static <output.html> instead of live serverWhen you have two meaningfully different versions:
agents/comparator.md — receives outputs A and B without knowing which skill produced whichagents/analyzer.md — unblinds results, analyzes WHY the winner wonThis prevents bias. The comparator judges output quality, not skill design.
Three stages, run in order.
uv run scripts/eval_skill.py <skill-folder>
Checks: frontmatter, naming, description quality, process leak detection, body size, structure, scripts. Target: 10/10, no warnings.
Generate 6 test prompts:
Run each in clean session. Target: 6/6 correct.
For automated trigger testing at scale, use:
uv run scripts/run_eval.py --eval-set <path> --skill-path <path> --runs-per-query 3
Rate on 5 axes (1–10 each):
| Axis | What it measures | |------|-----------------| | Discovery | triggers correctly, doesn't false-trigger | | Clarity | instructions unambiguous, no guessing needed | | Efficiency | token budget respected, progressive disclosure used | | Robustness | handles edge cases, scripts have error handling | | Completeness | covers the stated use cases fully |
Interpretation: 45–50 production ready · 35–44 solid · 25–34 needs work · <25 rewrite
Quick quality gate for third-party skills.
[ ] SKILL.md exists, exact case
[ ] Valid YAML frontmatter (name + description)
[ ] name: kebab-case, matches folder, ≤64 chars
[ ] description: ≤1024 chars, no angle brackets
[ ] description has triggers ("Use when...")
[ ] description has NO workflow/process steps
[ ] No README.md inside skill folder
[ ] SKILL.md < 500 lines
[ ] References max 1 level deep
[ ] Scripts tested and executable
[ ] No hardcoded paths/tokens/secrets
Then run VALIDATE Stage 2 (discovery) on the description. Report score + checklist.
The checklist exists because these are the failure modes that actually happen in practice — especially process-in-description, which causes the agent to skip the body entirely.
Automated description optimization. The description competes with other skills for Claude's attention — optimization finds the wording that triggers most accurately.
Queries must be realistic — concrete, detailed, with file paths, context, abbreviations, typos. Not "Format this data" but "my boss sent Q4 sales final FINAL v2.xlsx, add profit margin % column, revenue is col C costs col D".
Should-trigger (10): Different phrasings of the same intent — formal, casual, implicit. Include cases where user doesn't name the skill but clearly needs it. Add competing-skill edge cases.
Should-NOT-trigger (10): Near-misses that share keywords but need something different. Adjacent domains, ambiguous phrasing. "Write fibonacci" as negative for PDF skill = useless — too easy. Make negatives genuinely tricky.
Triggering mechanics: Claude only consults skills for tasks it can't handle directly. Simple queries ("read this PDF") won't trigger skills regardless of description — Claude handles them with basic tools. Eval queries must be substantive enough that consulting a skill would help.
assets/eval_review.htmluv run scripts/run_loop.py \
--eval-set evals/eval_set.json \
--skill-path <skill-dir> \
--model claude-sonnet-4-20250514 \
--max-iterations 5 \
--holdout 0.4 \
--verbose
The loop:
| Script | Purpose |
|--------|---------|
| scripts/run_eval.py | Run trigger evaluation on a description |
| scripts/improve_description.py | Claude proposes improved description |
| scripts/generate_report.py | HTML visualization of optimization history |
| scripts/aggregate_benchmark.py | Statistical aggregation of benchmark runs |
uv run scripts/quick_validate.py <skill-folder>
uv run scripts/package_skill.py <skill-folder> [output-dir]
Creates skill-name.skill (zip with .skill extension). Verify: unzip in temp dir, check structure intact.
| Directory | Loaded? | Purpose | |-----------|---------|---------| | SKILL.md | on trigger | brain — instructions | | references/ | on demand | detailed docs, schemas | | scripts/ | executed, not loaded | deterministic operations | | assets/ | never loaded | templates, images |
| Level | When loaded | Budget | |-------|-------------|--------| | Frontmatter | always (system prompt) | ~100 words | | SKILL.md body | on trigger | <500 lines | | Bundled resources | on demand | unlimited |
[What it does] + Use when [triggers, file types, symptoms]. + Do NOT use for [negatives].
| Path | What's inside |
|------|--------------|
| agents/grader.md | Evidence-based assertion grading |
| agents/comparator.md | Blind A/B output comparison |
| agents/analyzer.md | Post-hoc analysis + benchmark notes |
| references/patterns.md | 5 architectural patterns + anti-patterns |
| references/schemas.md | JSON schemas for evals, grading, benchmark |
| eval-viewer/ | Interactive HTML viewer for eval results |
| assets/eval_review.html | Trigger eval set editor |
| scripts/eval_skill.py | Structural validation (10-point scoring) |
| scripts/init_skill.py | Skill scaffolder |
| scripts/run_eval.py | Trigger evaluation runner |
| scripts/run_loop.py | Eval + improve optimization loop |
| scripts/improve_description.py | Claude-powered description improvement |
| scripts/aggregate_benchmark.py | Benchmark statistics aggregator |
| scripts/generate_report.py | HTML report generator |
| scripts/quick_validate.py | Quick validation for packager |
| scripts/package_skill.py | Skill → .skill packager |
| scripts/utils.py | Shared utilities (parse_skill_md) |
documentation
Task tracking and plan management. Used by planner to create plans and persist tasks, by orchestrator to read tasks and update progress, by documenter to create completion reports, and by any agent to log non-critical issues.
development
Create, edit, evaluate, and package agent skills. Use when building a new skill from scratch, improving an existing skill, running evals to test a skill, benchmarking skill performance, optimizing a skill's description for better triggering, reviewing third-party skills for quality, or packaging skills for distribution. Not for using skills or general coding tasks.
development
Simple implementation workflow - code, test, document. Use when user invokes /implement, wants to create code with automatic testing and documentation, or for simple single-purpose tasks that don't need planning.
development
Security best practices covering authentication, input validation, API security, secrets management, data protection, and OWASP Top 10. Use when implementing auth flows, API endpoints, file uploads, or any feature touching passwords, tokens, PII, or sensitive data. Do NOT use for code style reviews or architecture decisions.