Skip to main content
skill CX Codex

dual-axis-skill-reviewer — Claude Code skill: what it does, install

Reviews skills with deterministic checks and an LLM axis, then combines both into one score. Use it to inspect quality before a merge or find concrete fixes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add tradermonty/claude-trading-skills --skill dual-axis-skill-reviewer -a claude-code
Open on GitHub

What dual-axis-skill-reviewer does

dual-axis-skill-reviewer checks skill structure, scripts, tests, execution safety, artifact presence, workflow coverage, and test health. It can emit a prompt for an LLM, merge a strict JSON review, and calculate a weighted final score from both axes.

You can select one skill, review all skills with --all, fix selection with --skill or --seed, skip tests, and target another project through --project-root. JSON, Markdown, and optional LLM prompt files go to reports/. A final score below 90 adds improvement items to the Markdown report.

Python 3.9+ is required, and uv is recommended because it resolves the pyyaml dependency through inline metadata. Tests in the target project need uv sync --extra dev or an equivalent command. Check that setup first: the main review flow depends on Python and uv.

What it helps with

  • inspect a skill’s structure and scripts
  • combine deterministic checks with LLM findings
  • calculate a weighted review score
  • save JSON, Markdown, and prompt reports
  • surface fixes for skills scoring below 90

Example prompts for the agent

  • Run dual-axis-skill-reviewer on skills/example/SKILL.md, execute the auto axis, and write the prompt to reports/.
  • Review every skill in the current project with --all and skip tests with --skip-tests.
  • Merge the auto score with the JSON review in llm-review.json for skill example, using weights 0.5 and 0.5.

How to install dual-axis-skill-reviewer

1Skills CLI (Vercel)

npx skills add tradermonty/claude-trading-skills --skill dual-axis-skill-reviewer -a claude-code

2Manually: put the files in place

~/.claude/skills/dual-axis-skill-reviewer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dual-axis-skill-reviewer/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about dual-axis-skill-reviewer

How do I install dual-axis-skill-reviewer in Claude Code?

Run npx skills add tradermonty/claude-trading-skills --skill dual-axis-skill-reviewer -a claude-code, then run npx skills add tradermonty/claude-trading-skills --skill dual-axis-skill-reviewer -a claude-code again. The skill file is located at ~/.claude/skills/dual-axis-skill-reviewer/SKILL.md.

What does dual-axis-skill-reviewer do?

It checks structure, scripts, tests, and execution safety, then combines the automated score with LLM review findings. Reports include improvement items when the final score is below 90.

What does dual-axis-skill-reviewer need to run?

It requires Python 3.9+ and recommends uv, which resolves the pyyaml dependency. Tests in the target project use uv sync --extra dev or an equivalent command.

Source text

SKILL.md · MIT
---
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:

```bash
# 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

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

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

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

```bash
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/`:

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

© tradermonty · MIT · tradermonty/claude-trading-skills

Similar skills

Everything for Testing and QA →

From the same set73

edge-strategy-designer Translates edge concepts from edge_concepts.yaml into trading strategy drafts and exportable tickets. It generates risk-calibrated variants before pipeline validation. CX Codex +1 3,400installs pair-trade-screener This skill screens stocks for cointegrated pairs inside a sector, computes spread z-scores and returns entry and exit signals. CX Codex +1 3,400installs finviz-screener Turns a plain-language request into a FinViz screener URL and opens it in Chrome. Handy when you need to filter stocks by fundamentals or technicals fast. CX Codex +1 3,400installs market-breadth-analyzer Quantifies market breadth health on a 0–100 scale using TraderMonty's public CSV data. Useful when deciding equity exposure based on market participation. CX Codex +1 3,500installs edge-hint-extractor Turns daily market observations and news reactions into structured edge hints, written out as hints.yaml. CX Codex +1 3,300installs edge-concept-synthesizer Abstracts raw detector tickets and hints into reusable edge concepts before drafting strategies. Helps prevent overfitting by grouping repeating market conditions. CX Codex +1 3,300installs trader-memory-core This skill keeps investment theses from a screener idea through a closed position with a postmortem. Useful when trade decisions get lost between chats. CX Codex +1 3,300installs pead-screener Screens gap-up stocks after earnings for PEAD follow-through, reading weekly candles for red-candle pullbacks and breakouts. Handy for post-report drift setups. CX Codex +1 3,300installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor