---
name: uploadcheck
description: Use when a project needs pre-upload QC for videos, podcasts, clips, NTO/NPO media, or agent workflows. Runs UploadCheck.app through the installed uploadcheck MCP server or CLI, including cost preflight, hosted Render execution, timestamped reports, marker CSV, and repair-loop guidance.
---

# UploadCheck

Use this before calling a media asset ship-ready, upload-ready, or publish-ready.

## Canonical Names And Paths

- MCP server: `uploadcheck`
- Hosted API: `https://api.uploadcheck.app`
- CLI package: `@drantoniou/uploadcheck`
- MCP package: `@drantoniou/uploadcheck-mcp`
- Local CLI path: `node "/Applications/DrAntoniou Projects/UploadCheck/cli/index.mjs"`
- Repo docs: `/Applications/DrAntoniou Projects/UploadCheck/docs/PIPELINE-INTEGRATION.md`

## Default NTO Gate Set

For deterministic long-form NTO video builds, use this exact 20-gate set:

```text
canvas_fill,loop_freeze,repeat_fatigue,speaker_visual_binding,static_head_dominance,literal_subject_match,visual_narration_match,first_three_seconds,end_screen_tease,rehook_cadence,contact_sheet_evidence,text_crop_jitter,text_overlap,thumbnail_text_readability,hallucinated_plate_text,clean_segment_source_scrub,voiceover_music_balance,dead_air,text_contrast,text_safe_area
```

These are deterministic gates. They are the customer-safe source of truth for automated `PASS`, `WATCH`, and `BLOCK` decisions.

## Workflow

1. Identify the media path, duration estimate, intended checks, and any sidecars.
2. Estimate checked minutes before upload with MCP `qc_estimate_cost`.
3. Run QC with MCP `qc_run_local_file` or `qc_run_video`.
4. Fetch results with `qc_get_job`, `qc_get_report`, and `qc_get_marker_csv`.
5. Report `BLOCK`, `WATCH`, `PASS`, source hash, timestamps, and fixable spans clearly.
6. Rerun UploadCheck after fixes before calling the media publish-ready.

## NTO Approval Manifest

For intentional static cards, approved margins, or designed pillarbox/letterbox regions, pass a manifest with `t_start` and `t_end` rows. Supported approval fields include:

- `approved_canvas_fill`, `approved_canvas`, `approved_pillarbox`, `approved_letterbox`
- `approved_text_contrast`, `approved_contrast`
- `approved_text_safe_area`, `approved_safe_area`
- `approved_static`

Use approvals only for intentional design ranges. Do not use them to hide accidental frozen footage, crop errors, unreadable text, or repeated generated shots.

## Cost Rules

- Default guardrail is `downgrade`: margin-breaking model-backed checks are removed before hosted execution.
- `block` rejects unsafe paid AI-review requests.
- `off` is only for internal experiments or explicitly paid deep review.
- Deterministic-only is the public checked-minute baseline.
- Full-video AI/oracle review is internal product backtesting unless explicitly sold separately.
