# AutoShorts Safe Status Contract

AutoShorts status in JARVIS is read-only production-status metadata. It is not a production, render, upload, media, or publishing integration.

## Allowed ModuleSnapshot

- `module_id=autoshorts`
- `title=AutoShorts`
- `status=ok|attention|degraded|offline`
- `source_health`:
  - `reachable`
  - `stale`
  - `source_type=mock|local_probe|http_api|static_config`
  - `contract_version=autoshorts.safe_status.v1`
  - `last_success_at`
  - `last_attempt_at`
  - `last_error_redacted`
- KPIs, maximum three:
  - `Candidates pending review`
  - `Ready previews`
  - `Last pipeline status`
- attention items:
  - `Review pending`
  - `Upload check needed`
  - `Pipeline stale`
  - `Render failed` as generic status only
- `primary_action.href=/autoshorts`
- `primary_action.mode=link_only`

## Forbidden output

The snapshot must never contain local paths, media filenames, media URLs, full scripts, prompts, captions/descriptions, voiceovers, thumbnails, frame paths, render manifests with paths, full logs, platform tokens, OAuth paths, upload actions, publish actions, render actions, or concrete API secrets.

## Runtime rules

Default mode is `AUTOSHORTS_ADAPTER_MODE=mock`. `live_readonly` must be localhost-only and GET-only. `local_probe` must use filesystem metadata only and must not open/read media, subtitles, scripts, prompts, manifests, or logs.

If the live API has no explicit safe freshness timestamp/status, the adapter emits `pipeline_freshness=unknown` instead of assuming fresh.
