PluginBench
Skill
Review
Audit score 70

dual-axis-skill-reviewer

tradermonty/claude-trading-skills

Review skills with dual-axis scoring: deterministic code checks + LLM deep review.

What is dual-axis-skill-reviewer?

A reproducible quality-scoring system for AI agent skills that combines automated code-based checks (structure, tests, safety) with LLM-driven content review. Use it to gate skill merges at a score threshold, identify concrete improvements for low-scoring skills, or audit skills across projects.

  • Runs deterministic checks on skill structure, scripts, tests, and execution safety
  • Generates LLM review prompts for qualitative code and content assessment
  • Merges auto-axis and LLM-axis scores with configurable weights for a final quality score
  • Supports cross-project skill review via --project-root flag
  • Detects knowledge-only skills and adjusts scoring expectations accordingly
  • Displays skills-index.yaml verification declarations as informational context

How to install dual-axis-skill-reviewer

npx skills add https://github.com/tradermonty/claude-trading-skills --skill dual-axis-skill-reviewer
Prerequisites
  • Python 3.9+
  • uv package manager (recommended for auto-resolving pyyaml)
  • For test execution: uv sync --extra dev in the target project
  • For LLM-axis merge: JSON file matching the LLM review schema
Claude Code
Cursor
Windsurf
Cline

How to use dual-axis-skill-reviewer

  1. 1.Set REVIEWER variable to the script path (same project or global install)
  2. 2.Run auto-axis checks and generate LLM prompt: uv run "$REVIEWER" --project-root . --emit-llm-prompt --output-dir reports/
  3. 3.Use the generated prompt file to request LLM review (Claude Code can orchestrate this)
  4. 4.Merge axes with weights: uv run "$REVIEWER" --project-root . --skill <name> --llm-review-json <path> --auto-weight 0.5 --llm-weight 0.5 --output-dir reports/
  5. 5.Review the JSON and Markdown reports in reports/ for score, improvement items, and verification status

Use cases

Good for
  • Gate pull requests by requiring skills to score 90+ before merge
  • Audit a skill library across multiple projects from a single command
  • Generate improvement items when a skill scores below 90
  • Combine deterministic safety checks with human-like code-review depth
  • Reproduce scoring consistently using fixed skill selection or seed values
Who it's for
  • Skill library maintainers
  • CI/CD pipeline operators gating skill quality
  • AI agent platform teams managing multi-project skill catalogs
  • Developers reviewing skills for correctness and safety

dual-axis-skill-reviewer FAQ

What's the difference between auto-axis and LLM-axis scoring?

Auto-axis runs deterministic checks on skill structure, scripts, tests, and execution safety. LLM-axis provides qualitative assessment of content correctness, risk, logic gaps, and maintainability. The final score is a weighted average of both.

Can I use this to review skills in a different project?

Yes. Use the --project-root flag to point to any project directory, and the script will discover and review skills in that project's skills/ folder.

What happens if a skill scores below 90?

The markdown report lists concrete improvement items. You can use these to prioritize fixes before gating a merge or deployment.

Do I need to run tests every time?

No. Use --skip-tests for quick triage. Tests are useful for validating execution safety but can be skipped if you're only reviewing code or content.

How do I install this globally so Claude Code finds it in all projects?

Symlink the skill into ~/.claude/skills/: ln -sfn /path/to/claude-trading-skills/skills/dual-axis-skill-reviewer ~/.claude/skills/dual-axis-skill-reviewer

Full instructions (SKILL.md)

Source of truth, from tradermonty/claude-trading-skills.


name: dual-axis-skill-reviewer description: "Review skills in any project using a dual-axis method: (1) deterministic code-based checks (structure, scripts, tests, execution safety) and (2) LLM deep review findings. Use when you need reproducible quality scoring for skills/*/SKILL.md, want to gate merges with a score threshold (for example 90+), or need concrete improvement items for low-scoring skills. Works across projects via --project-root."

Dual Axis Skill Reviewer

Run the dual-axis reviewer script and save reports to reports/.

The script supports:

  • Random or fixed skill selection
  • Auto-axis scoring with optional test execution
  • LLM prompt generation
  • LLM JSON review merge with weighted final score
  • Cross-project review via --project-root
  • Non-scoring display of skills-index.yaml production verification declarations

When to Use

  • Need reproducible scoring for one skill in skills/*/SKILL.md.
  • Need improvement items when final score is below 90.
  • Need both deterministic checks and qualitative LLM code/content review.
  • Need to review skills in a different project from the command line.

Prerequisites

  • Python 3.9+
  • uv (recommended — auto-resolves pyyaml dependency via inline metadata)
  • For tests: uv sync --extra dev or equivalent in the target project
  • For LLM-axis merge: JSON file that follows the LLM review schema (see Resources)

Workflow

Determine the correct script path based on your context:

  • Same project: skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py
  • Global install: ~/.claude/skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py

The examples below use REVIEWER as a placeholder. Set it once:

# If reviewing from the same project:
REVIEWER=skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py

# If reviewing another project (global install):
REVIEWER=~/.claude/skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py

Step 1: Run Auto Axis + Generate LLM Prompt

uv run "$REVIEWER" \
  --project-root . \
  --emit-llm-prompt \
  --output-dir reports/

When reviewing a different project, point --project-root to it:

uv run "$REVIEWER" \
  --project-root /path/to/other/project \
  --emit-llm-prompt \
  --output-dir reports/

Step 2: Run LLM Review

  • Use the generated prompt file in reports/skill_review_prompt_<skill>_<timestamp>.md.
  • Ask the LLM to return strict JSON output.
  • When running inside Claude Code, let Claude act as orchestrator: read the generated prompt, produce the LLM review JSON, and save it for the merge step.

Step 3: Merge Auto + LLM Axes

uv run "$REVIEWER" \
  --project-root . \
  --skill <skill-name> \
  --llm-review-json <path-to-llm-review.json> \
  --auto-weight 0.5 \
  --llm-weight 0.5 \
  --output-dir reports/

Step 4: Optional Controls

  • Fix selection for reproducibility: --skill <name> or --seed <int>
  • Review all skills at once: --all
  • Skip tests for quick triage: --skip-tests
  • Change report location: --output-dir <dir>
  • Increase --auto-weight for stricter deterministic gating.
  • Increase --llm-weight when qualitative/code-review depth is prioritized.

Output

  • reports/skill_review_<skill>_<timestamp>.json
  • reports/skill_review_<skill>_<timestamp>.md
  • reports/skill_review_prompt_<skill>_<timestamp>.md (when --emit-llm-prompt is enabled)

When the target project has a skills-index.yaml entry with a complete verification block, JSON and Markdown reports also show its declared axes, not_verified gaps, non-applicable axes, and all_applicable_axes_passed. This section is informational only. It is excluded from auto/LLM/final scores and does not replace a live high-severity issue check.

Installation (Global)

To use this skill from any project, symlink it into ~/.claude/skills/:

ln -sfn /path/to/claude-trading-skills/skills/dual-axis-skill-reviewer \
  ~/.claude/skills/dual-axis-skill-reviewer

After this, Claude Code will discover the skill in all projects, and the script is accessible at ~/.claude/skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py.

Resources

  • Auto axis scores metadata, workflow coverage, execution safety, artifact presence, and test health.
  • Auto axis detects knowledge_only skills and adjusts script/test expectations to avoid unfair penalties.
  • LLM axis scores deep content quality (correctness, risk, missing logic, maintainability).
  • Final score is weighted average.
  • If final score is below 90, improvement items are required and listed in the markdown report.
  • Script: skills/dual-axis-skill-reviewer/scripts/run_dual_axis_review.py
  • LLM schema: references/llm_review_schema.md
  • Rubric detail: references/scoring_rubric.md