dual-axis-skill-reviewer
About dual-axis-skill-reviewer
A command-line tool for reviewing Claude Code skills with deterministic checks and optional LLM content review, for one skill or an entire project. It combines weighted scores into reports and can review skills in another project.
Key features
- 01Select skills randomly or explicitly
- 02Auto-score with optional test execution
- 03Generate LLM review prompts
- 04Merge weighted auto and LLM scores
- 05Review skills across projects
Use cases
- 01Score skills reproducibly
- 02Identify improvements when scores are below 90
- 03Review skills in another project from the command line
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tradermonty/ claude-trading-skills --skill dual-axis-skill-reviewerAfter installing, type/dual-axis-skill-reviewerin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
requirements.txtreferences/llm_review_schema.mdscoring_rubric.mdscripts/run_dual_axis_review.pyscripts/tests/conftest.pytest_run_dual_axis_review.pyDetails
From the project READMEDual 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.yamlproduction 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-resolvespyyamldependency via inline metadata)- For tests:
uv sync --extra devor 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-weightfor stricter deterministic gating. - Increase
--llm-weightwhen qualitative/code-review depth is prioritized.
Output
reports/skill_review_<skill>_<timestamp>.jsonreports/skill_review_<skill>_<timestamp>.mdreports/skill_review_prompt_<skill>_<timestamp>.md(when--emit-llm-promptis 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_onlyskills 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