Skip to content
doraval
Esc
navigateopen⌘Jpreview
On this page

Review tiers

How dora review grades artifacts: structure, heuristics, LLM, sessions.

dora review runs every tier that can run. --quick is structure + heuristics. No Judge.

Tier 1: Structure

Parseable files, required fields, name/dir consistency, basic schema. Fast. Always available. --quick includes this tier.

Tier 2: Heuristics

Dead file references, duplicate rules, keyword-level violations of memory principles, packaging smells, and scripts/ security smells (outbound network calls, secret prompts). A violated principle weighted 7+ is an error, not a warning. Still no network / LLM. Included in --quick.

Tier 3: LLM

Judgment when a judge is available. Vague descriptions, missing guardrails, scenario coverage against scenarios.yaml.

A judge is either a CLI you already have (claude or grok on PATH, using the subscription you already pay for) or an API key for an LLM provider (dora config / env). CLI is preferred; API is the fallback.

  • Default: run if available, skip if not
  • --deep: require this tier; exit 2 if no judge

Tier 4: Sessions

Mines real agent session logs for mechanical evidence a skill was actually invoked. Adapters ship for Claude, Grok, Cursor, Codex, and Copilot. --sessions requires this tier and exits 2 if no recent sessions exist.

Session health

A full Review also prints Session health. It is not a Finding and not a fifth tier. It reports token pressure from Sessions in the Review window (default last 30 Sessions, 90 days): cache-read share ≥ 80%, call count ≥ 20, user turns ≥ 10. --quick omits it. Scan omits it.

JSON: sessionHealth on each Review result (window, sessionCount, signals). Quiet Sessions have an empty signals list.

Choosing a mode

dora review --all --quick --ci   # CI structural gate
dora review --quick .            # local, no Judge
dora review --deep <path>        # require LLM

Was this page helpful?