$npx -y skills add WrathZA/skillforge --skill skill-forge-judgeEvaluate any LLM prompt (SKILL.md, CLAUDE.md, system prompts, bash guidance) for quality: grouped dimensional scoring with letter grade and step-through-ready numbered improvements list. Triggers: judge/review/audit/score/evaluate this skill or prompt.
| 1 | # Skill Forge Judge |
| 2 | |
| 3 | Evaluate any LLM-consumed prompt against quality standards, focused on knowledge delta, instruction clarity, and practical usability. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## Core Philosophy |
| 8 | |
| 9 | > **Good Prompt = Expert-only Knowledge − What Claude Already Knows** |
| 10 | |
| 11 | Restating defaults is token waste. |
| 12 | |
| 13 | ### Three Types of Knowledge |
| 14 | |
| 15 | | Type | Definition | Treatment | |
| 16 | |------|------------|-----------| |
| 17 | | **Expert** | Claude genuinely doesn't know this | Must keep — this is the value | |
| 18 | | **Activation** | Claude knows but may not think of | Keep if brief — serves as reminder | |
| 19 | | **Redundant** | Claude definitely knows this | Delete — wastes tokens | |
| 20 | |
| 21 | Good prompt: >70% Expert, <20% Activation, <10% Redundant. |
| 22 | |
| 23 | |
| 24 | ## Evaluation Dimensions |
| 25 | |
| 26 | Dimensions are grouped. Universal dimensions always apply. Type-specific modules apply based on what the prompt is. Multiple groups can apply to a single prompt. |
| 27 | |
| 28 | **Final grade = total score / total applicable points (as %)** |
| 29 | |
| 30 | | Grade | % | Meaning | |
| 31 | |-------|---|---------| |
| 32 | | A | 90%+ | Excellent — production-ready | |
| 33 | | B | 80–89% | Good — minor improvements needed | |
| 34 | | C | 70–79% | Adequate — clear improvement path | |
| 35 | | D | 60–69% | Below average — significant issues | |
| 36 | | F | <60% | Poor — needs fundamental redesign | |
| 37 | |
| 38 | ### Group U: Universal (80 pts) — always scored |
| 39 | |
| 40 | **MANDATORY — READ [`references/universal-dimensions.md`](references/universal-dimensions.md)** |
| 41 | |
| 42 | | ID | Dimension | Pts | |
| 43 | |----|-----------|-----| |
| 44 | | U1 | Knowledge/Instruction Delta | 20 | |
| 45 | | U2 | Mindset + Procedures | 15 | |
| 46 | | U3 | Anti-Pattern Quality | 15 | |
| 47 | | U4 | Freedom Calibration | 15 | |
| 48 | | U5 | Practical Usability | 15 | |
| 49 | |
| 50 | ### Group S: Skill Module (40 pts) — SKILL.md targets only |
| 51 | |
| 52 | **MANDATORY — READ [`references/skill-dimensions.md`](references/skill-dimensions.md)** |
| 53 | |
| 54 | | ID | Dimension | Pts | |
| 55 | |----|-----------|-----| |
| 56 | | S1 | Specification Compliance | 15 | |
| 57 | | S2 | Progressive Disclosure | 15 | |
| 58 | | S3 | Pattern Recognition | 10 | |
| 59 | |
| 60 | ### Group C: CLAUDE.md / System Prompt Module (40 pts) — prompts that govern LLM behavior settings |
| 61 | |
| 62 | **MANDATORY — READ [`references/claude-md-dimensions.md`](references/claude-md-dimensions.md)** |
| 63 | |
| 64 | | ID | Dimension | Pts | |
| 65 | |----|-----------|-----| |
| 66 | | C1 | Behavioral Clarity | 15 | |
| 67 | | C2 | Scope Definition | 15 | |
| 68 | | C3 | Structural Organization | 10 | |
| 69 | |
| 70 | ### Group B: Bash/Shell Module (30 pts) — prompts that contain shell/CLI guidance |
| 71 | |
| 72 | **MANDATORY — READ [`references/bash-dimensions.md`](references/bash-dimensions.md)** |
| 73 | |
| 74 | | ID | Dimension | Pts | |
| 75 | |----|-----------|-----| |
| 76 | | B1 | Rule Specificity & WHY | 10 | |
| 77 | | B2 | Anti-Pattern Coverage | 10 | |
| 78 | | B3 | Scope & Exceptions | 10 | |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## Evaluation Protocol |
| 83 | |
| 84 | > **Evaluator's Lens:** Before reading the target, adopt this question: "Does Claude already know this?" — every section gets marked [E], [A], or [R] before scoring begins. |
| 85 | |
| 86 | ### Step 0: Detect Prompt Type |
| 87 | |
| 88 | Read the target and identify which groups apply: |
| 89 | |
| 90 | ``` |
| 91 | [ ] Is it a SKILL.md file? → Score U + S. Do NOT load claude-md-dimensions.md or bash-dimensions.md. |
| 92 | MANDATORY: Load agentskills spec via Spec Cache (below) before scoring S1. |
| 93 | [ ] Is it a CLAUDE.md / system prompt? → Score U + C. Do NOT load skill-dimensions.md. |
| 94 | [ ] Does it contain bash/shell rules? → Also score B. Load bash-dimensions.md. |
| 95 | [ ] Is it something else? → Score U only. Do NOT load any type-specific reference. |
| 96 | ``` |
| 97 | |
| 98 | Multiple groups can apply (e.g. a CLAUDE.md with bash guidance → U + C + B). |
| 99 | |
| 100 | **Edge cases**: |
| 101 | - SKILL.md that also contains bash guidance → U + S + B |
| 102 | - A referenced sub-file (e.g. `references/bash.md`, not a root prompt) → U only; note "sub-file, not root prompt" in report |
| 103 | - Ambiguous type (could be CLAUDE.md or skill) → score both C and S groups; note the ambiguity in the Summary |
| 104 | |
| 105 | ### Spec Cache |
| 106 | |
| 107 | The agentskills.io specification is cached daily so evaluations don't pay a network fetch on every run. |
| 108 | |
| 109 | ``` |
| 110 | Cache dir: ~/.claude/tmp/ |
| 111 | Filename: agentskills-spec-YYYY-MM-DD.md (today's date, e.g. agentskills-spec-2026-04-14.md) |
| 112 | |
| 113 | 1. Glob ~/.claude/tmp/agentskills-spec-<today>.md |
| 114 | 2. If found → Read it — done. |
| 115 | 3. If not → Bash: mkdir -p ~/.claude/tmp |
| 116 | WebFetch https://agentskills.io/specification |
| 117 | If WebFetch fails → score S1 from training knowledge; note "spec unavailable" in S1 Notes cell — done. |
| 118 | Write result to ~/.claude/tmp/agentskills-spec-<today>.md |
| 119 | Read the file — done. |
| 120 | ``` |
| 121 | |
| 122 | Only fetch when the target is a SKILL.md (S1 scoring). Skip entirely for CLAUDE.md / system prompt / other evaluations. |
| 123 | |
| 124 | ### Step 1: First Pass — Knowledge Delta Scan |
| 125 | |
| 126 | Read completely. Mark each section **[E] Expert** |