$npx -y skills add agent-ecosystem/skill-validator --skill review-skillReview a proposed Agent Skill for structural validity and content quality before publishing. Runs the skill-validator CLI to check for structural issues, scores the skill with an LLM judge, and interprets results to advise authors on what to address. Use when a user wants to revi
| 1 | # Review Skill Workflow |
| 2 | |
| 3 | You are helping a skill author review an Agent Skill before publishing. This is |
| 4 | a multi-step process: determine environment, verify prerequisites, run |
| 5 | structural validation, review content, optionally run LLM scoring, and |
| 6 | interpret results. Follow every step in order. |
| 7 | |
| 8 | ## Step 0: Determine Environment |
| 9 | |
| 10 | Check for saved configuration: |
| 11 | |
| 12 | ```bash |
| 13 | cat ~/.config/skill-validator/review-state.yaml 2>/dev/null |
| 14 | ``` |
| 15 | |
| 16 | **If the state file exists** with `prereqs_passed: true`, offer: |
| 17 | |
| 18 | > Found saved settings — configured for **[provider/structural-only]** reviews. |
| 19 | > |
| 20 | > 1. **Continue with saved settings** — skip to Step 2 |
| 21 | > 2. **Re-run prerequisite checks** |
| 22 | > 3. **Change environment** — switch provider or between LLM and structural-only |
| 23 | |
| 24 | Option 1: read `llm_scoring`, `provider`, and `cross_model` from the file and |
| 25 | skip to Step 2. |
| 26 | Options 2-3: continue below. |
| 27 | |
| 28 | **If no state file exists**, or the user chose to re-check/change, ask: |
| 29 | |
| 30 | > LLM scoring uses an Anthropic or OpenAI-compatible API, or the Claude CLI. |
| 31 | > Without an API key or CLI, we run structural validation only. |
| 32 | > |
| 33 | > 1. **Anthropic** — use Claude via the Anthropic API (requires `ANTHROPIC_API_KEY`) |
| 34 | > 2. **OpenAI** — use GPT via the OpenAI API (requires `OPENAI_API_KEY`) |
| 35 | > 3. **OpenAI-compatible** — use a custom endpoint (Ollama, Groq, Azure, Together, etc.) |
| 36 | > 4. **Claude CLI** — use the locally authenticated `claude` binary (no API key needed) |
| 37 | > 5. **Skip LLM scoring** — structural validation only |
| 38 | |
| 39 | Options 1-4: set `LLM_SCORING=true` and record the provider choice. |
| 40 | Option 5: set `LLM_SCORING=false`. Run Step 1a only, then jump to Step 2. |
| 41 | |
| 42 | **If the user chose option 1 or 2**, ask about cross-model comparison: |
| 43 | |
| 44 | > Scoring with a second model family gives more robust novelty scores, since |
| 45 | > each model has different training data. This requires API keys for both |
| 46 | > Anthropic and OpenAI. |
| 47 | > |
| 48 | > 1. **Yes, compare across model families** — score with both Anthropic and OpenAI |
| 49 | > 2. **No, single provider is fine** |
| 50 | |
| 51 | Option 1: set `CROSS_MODEL=true`. Option 2: set `CROSS_MODEL=false`. |
| 52 | |
| 53 | Do not offer cross-model comparison for option 3 (OpenAI-compatible) or option 4 |
| 54 | (Claude CLI), since the second provider would need a standard Anthropic or |
| 55 | OpenAI key. |
| 56 | |
| 57 | After Step 1a, follow |
| 58 | [references/llm-scoring.md](references/llm-scoring.md) for API key checks |
| 59 | before Step 2. |
| 60 | |
| 61 | ## Step 1: Verify Prerequisites |
| 62 | |
| 63 | ### 1a. Check for `skill-validator` binary |
| 64 | |
| 65 | ```bash |
| 66 | skill-validator --version |
| 67 | ``` |
| 68 | |
| 69 | If not found, search common locations (`/usr/local/bin`, `/opt/homebrew/bin`, |
| 70 | `~/go/bin`). If found but not on PATH, tell the user. If not found anywhere, |
| 71 | follow [references/install-skill-validator.md](references/install-skill-validator.md). |
| 72 | |
| 73 | Do NOT proceed until this succeeds. |
| 74 | |
| 75 | If `LLM_SCORING=true`, complete the provider checks in |
| 76 | [references/llm-scoring.md](references/llm-scoring.md) before continuing. |
| 77 | |
| 78 | ### Save state after prerequisites pass |
| 79 | |
| 80 | Persist state so future runs skip this step. Replace placeholders with actual |
| 81 | values: |
| 82 | |
| 83 | ```bash |
| 84 | mkdir -p ~/.config/skill-validator |
| 85 | cat > ~/.config/skill-validator/review-state.yaml << 'EOF' |
| 86 | prereqs_passed: true |
| 87 | llm_scoring: <true or false> |
| 88 | provider: <anthropic, openai, openai-compatible, or claude-cli> |
| 89 | model: <model name if specified, or "default"> |
| 90 | base_url: <custom base URL if openai-compatible, or omit> |
| 91 | cross_model: <true or false> |
| 92 | EOF |
| 93 | ``` |
| 94 | |
| 95 | ## Step 2: Locate the Skill |
| 96 | |
| 97 | Ask the user for the path to the skill they want to review, unless they have |
| 98 | already provided it. Verify the path contains a `SKILL.md` file: |
| 99 | |
| 100 | ```bash |
| 101 | ls <path>/SKILL.md |
| 102 | ``` |
| 103 | |
| 104 | If `SKILL.md` does not exist at the given path, tell the user this is not a |
| 105 | valid skill directory and ask them to provide the correct path. |
| 106 | |
| 107 | ## Step 3: Run Structural Validation |
| 108 | |
| 109 | Run the full check suite: |
| 110 | |
| 111 | ```bash |
| 112 | skill-validator check <path> |
| 113 | ``` |
| 114 | |
| 115 | Capture the exit code: |
| 116 | |
| 117 | | Exit code | Meaning | |
| 118 | |-----------|---------| |
| 119 | | 0 | Clean — no errors or warnings | |
| 120 | | 1 | Errors found — must fix before publishing | |
| 121 | | 2 | Warnings only — review but not blocking | |
| 122 | | 3 | CLI/usage error — check the command | |
| 123 | |
| 124 | Exit 0: proceed. Exit 2: note warnings, proceed. Exit 1: list errors — these |
| 125 | are blocking. The user must fix them before the skill can be published. Do NOT |
| 126 | proceed to LLM scoring if exit code is 1. |
| 127 | |
| 128 | ## Step 4: Content Review |
| 129 | |
| 130 | Read the SKILL.md and any reference files, then evaluate each check below. |
| 131 | Report which checks pass and which do |