AgentStack
SKILL verified MIT Self-run

Skill Conductor

skill-andriykalashnykov-flight-path-skill-conductor · by AndriyKalashnykov

>

No reviews yet
0 installs
4 views
0.0% view→install

Install

$ agentstack add skill-andriykalashnykov-flight-path-skill-conductor

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Skill Conductor? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Skill Conductor

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.

How to communicate

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.

  • Explain trade-offs when there's a real choice to make
  • Use concrete examples over abstract rules
  • When something fails, explain the root cause, not just the fix
  • Imperative voice in instructions: "Extract the data", not "You should extract"

Modes

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 |


Mode 1: CREATE

Step 1: Capture Intent

Before writing anything, extract 2–3 concrete scenarios.

Ask:

  • "What specific task should this skill handle?"
  • "What would a user say to trigger it?"
  • "What should NOT trigger it?"

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.

Step 2: Baseline (TDD RED)

Before writing the skill, verify the agent fails without it:

  1. Take one scenario from Step 1
  2. Run it in a clean session without the skill
  3. Document what went wrong — what the agent guessed, what it missed

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.

Step 3: Architecture

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 |

Step 4: Scaffold

uv run scripts/init_skill.py  --path  [--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)

Step 5: Write SKILL.md

Frontmatter
---
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 chars
  • description: max 1024 chars. No angle brackets. No process/workflow steps
  • Start with purpose, then "Use when...", then "Do NOT use for..."
  • NEVER put workflow in description — tested: agent follows description instead of reading body
# 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.
Body structure
# 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]
Writing rules
  • One term per concept. Pick "template" and stick with it — not template/boilerplate/scaffold
  • Progressive disclosure. SKILL.md = brain (`
  • Headless/Cowork: use --static instead of live server. ALWAYS show viewer to user BEFORE editing skill yourself
  1. Review outputs, write feedback, iterate on the skill

Step 7: Verify & Refactor

  1. Does the skill trigger automatically for the right queries?
  2. Does the agent follow body instructions (not just description)?
  3. Does the output meet use case requirements?
  4. Does it NOT trigger on unrelated queries?

If any fail → iterate. Find how the agent rationalizes around the skill, plug loopholes, re-verify.


Mode 2: IMPROVE

Step 1: Diagnose

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 `

  • Headless/Cowork: use --static instead of live server
  1. Review, provide feedback, iterate

Step 3: Blind Comparison (optional, for major changes)

When you have two meaningfully different versions:

  1. Run both versions on the same evals
  2. Spawn agents/comparator.md — receives outputs A and B without knowing which skill produced which
  3. Comparator scores on rubric (content + structure, 1–5 each) and picks a winner
  4. Spawn agents/analyzer.md — unblinds results, analyzes WHY the winner won
  5. Apply insights to improve the losing version

This prevents bias. The comparator judges output quality, not skill design.


Mode 3: VALIDATE

Three stages, run in order.

Stage 1: Structural Validation

uv run scripts/eval_skill.py 

Checks: frontmatter, naming, description quality, process leak detection, body size, structure, scripts. Target: 10/10, no warnings.

Stage 2: Discovery (trigger testing)

Generate 6 test prompts:

  • 3 that SHOULD trigger the skill
  • 3 that should NOT (similar-sounding but wrong domain)

Run each in clean session. Target: 6/6 correct.

For automated trigger testing at scale, use:

uv run scripts/run_eval.py --eval-set  --skill-path  --runs-per-query 3

Stage 3: 5-Axis Scoring

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 · \ --model claude-sonnet-4-20250514 \ --max-iterations 5 \ --holdout 0.4 \ --verbose


The loop:
- Splits queries into train (60%) and test (40%) to prevent overfitting
- Each iteration: evaluates current description → Claude proposes improvement → re-evaluates
- Improvement model sees only train results (blinded to test)
- Selects the best description by test score
- Opens live HTML report automatically

### Supporting scripts

| 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 |

---

## Mode 6: PACKAGE

1. Run REVIEW checklist (Mode 4)
2. Validate:

```bash
uv run scripts/quick_validate.py 
  1. Package:
uv run scripts/package_skill.py  [output-dir]

Creates skill-name.skill (zip with .skill extension). Verify: unzip in temp dir, check structure intact.


Quick Reference

Skill categories

  1. Document/Asset Creation — consistent output (docs, designs, code)
  2. Workflow Automation — multi-step processes with methodology
  3. MCP Enhancement — workflow guidance on top of tool access

File purposes

| 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 |

Progressive disclosure budget

| Level | When loaded | Budget | |-------|-------------|--------| | Frontmatter | always (system prompt) | ~100 words | | SKILL.md body | on trigger | <500 lines | | Bundled resources | on demand | unlimited |

Description formula

[What it does] + Use when [triggers, file types, symptoms]. + Do NOT use for [negatives].

Reference Files

| 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 (parseskillmd) |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.