{
  "status": "modal_content_factory_cpu_only_closed_until_human_yes",
  "canonical_namespace": "Sonic-Forage",
  "review_only": true,
  "requires_human_approval": true,
  "cpu_only_default": true,
  "modal_app_name": "sonic-forage-modal-content-factory",
  "modal_script": "modal/sonic_forage_modal_content_factory.py",
  "safe_run_commands": [
    "cd /opt/data/workspace/projects/afterparty-forge-explainer-site",
    "cd /opt/data/hermes-agent && source venv/bin/activate && set -a; source /opt/data/.env >/dev/null 2>&1; set +a; modal run /opt/data/workspace/projects/afterparty-forge-explainer-site/modal/sonic_forage_modal_content_factory.py --theme 'intergalactic afterparty proof hub'",
    "cd /opt/data/hermes-agent && source venv/bin/activate && set -a; source /opt/data/.env >/dev/null 2>&1; set +a; modal deploy /opt/data/workspace/projects/afterparty-forge-explainer-site/modal/sonic_forage_modal_content_factory.py"
  ],
  "overnight_use": [
    "Seed review-only segment copy for station IDs, proof-hub cards, and Codex-rate-limit launch interludes.",
    "Store Modal output in the private outputs volume; never commit secret-bearing runtime output.",
    "Use generated seed copy as input to local bumper builders; do not start paid/GPU generation without exact approval.",
    "Check Modal tasks return to 0 and billing after probes."
  ],
  "proof_paths": [
    "modal/sonic_forage_modal_content_factory.py",
    "docs/modal/MODAL_CONTENT_FACTORY_RUNBOOK.md",
    "docs/data/modal-content-factory.json",
    "docs/data/site-manifest.json"
  ],
  "human_approval_question": "Do you approve a specific bounded Modal GPU/media generation run? If yes, name GPU/model/duration/cost cap/output target.",
  "blocked_without_approval": [
    "No GPU inference or model downloads.",
    "No paid API media generation.",
    "No public posting or scheduling.",
    "No Twitch/Kick/RTMP/Spaces start.",
    "No Hugging Face dataset publication.",
    "No private media upload.",
    "No secret printing or committing.",
    "No cron mutation from inside Modal runs."
  ],
  "closed_gates": {
    "starts_gpu": false,
    "starts_paid_api": false,
    "publishes_stream": false,
    "public_posting": false,
    "social_scheduling": false,
    "uploads_private_media": false,
    "makes_dataset_public": false,
    "prints_secrets": false,
    "mutates_cron": false
  },
  "verifier_commands": [
    "PYTHONDONTWRITEBYTECODE=1 python3 scripts/verify_site.py",
    "python3 -m py_compile modal/sonic_forage_modal_content_factory.py"
  ]
}
