Skip to content

Latest commit

 

History

History
140 lines (100 loc) · 3.36 KB

File metadata and controls

140 lines (100 loc) · 3.36 KB

CLI Usage

The CLI entrypoint is case-study. With Docker, run commands through the validator service:

docker compose run --rm validator <command>

With local development dependencies installed:

uv run case-study <command>

Extract PPTX Facts

uv run case-study extract "references/Plutos-Assessment.pptx" --summary

Use without --summary to print the full extracted fact model as JSON.

Deterministic Analysis Only

uv run case-study analyze "references/Plutos-Assessment.pptx" --summary

This runs PPTX/OOXML deterministic checks without the full render/report pipeline.

Full Validation

uv run case-study validate "references/Plutos-Assessment.pptx" \
  --out .tmp/validation/plutos \
  --summary

Output artifacts when --out is set:

  • validation-report.json
  • validation-report.md
  • validation-report-thin.md
  • rendered PDF/PNG evidence assets

Print the compact Markdown report:

uv run case-study validate "references/Plutos-Assessment.pptx" \
  --out .tmp/validation/plutos \
  --thin

Render options:

  • --dpi: PNG rasterization DPI, default 144.
  • --timeout: LibreOffice render timeout in seconds, default 90.

Apply Existing AI Decisions

uv run case-study validate "references/Plutos-Assessment.pptx" \
  --out .tmp/validation/plutos-applied \
  --ai-decisions .tmp/judge/plutos/judge-decisions.jsonl \
  --summary

This preserves raw deterministic findings and applies model decisions into ai_review.applied_reviewer_issues.

Run AI Judge Batch

Generate a validation report first, then run the judge:

uv run case-study judge \
  --validation-report .tmp/validation/plutos/validation-report.json \
  --output-dir .tmp/judge/plutos \
  --deck-name plutos \
  --model-name openrouter:google/gemini-3.1-flash-lite-preview \
  --concurrency 4 \
  --force

Useful options:

  • --limit: run only the first N selected candidates.
  • --resume: skip successful decisions already present in the output JSONL.
  • --force: rerun even if outputs already exist.
  • --include-image-bytes: include image bytes in debug trace exports.
  • --logfire-httpx-capture-all: enable full HTTPX capture for this run.
  • --sleep-seconds: pause between sequential chunks.

The judge writes decision JSONL and trace/debug artifacts into the output directory.

Render Only

uv run case-study render "references/Plutos-Assessment.pptx" \
  --out .tmp/render/plutos \
  --summary

This is useful when debugging LibreOffice/PyMuPDF rendering independently from rule evaluation.

Calibration

Static calibration against the annotated Goofy deck:

uv run case-study calibrate "references/Goofy-Assessment-ANNOTATED.pptx" --summary

Full validation calibration with render-derived findings:

uv run case-study calibrate "references/Goofy-Assessment-ANNOTATED.pptx" \
  --full-validation \
  --out .tmp/calibration/goofy \
  --summary

Calibration is for evaluating coverage against annotated examples, not for hardcoding deck-specific logic.

Serve the App from CLI

uv run case-study app \
  --workspace .deck-validation-traces \
  --state-dir .deck-validation-traces/review-state \
  --host 0.0.0.0 \
  --port 8765

You can also serve one fixed validation report:

uv run case-study app --validation-report .tmp/validation/plutos/validation-report.json