{
  "run_id": "oscarlora--ad-production-kit-claude-haiku-5-5-1792807197520060724",
  "checker": {
    "claims": [
      {
        "claim": "Media tab searches the library",
        "command": "<guest-path> tools/search-media.mjs --media workspaces/Shared/Library/inputs/media --query 'sci-fi whoosh' --type audio --keywords-only --limit 3",
        "evidence": "00012_fast-sci-fi-metallic-whoosh-sting.mp3\n        A fast sci-fi digital whoosh sound effect featuring a quick pitch-rising sweep followed by\u2026\n  00005  [audio/?]  00005_sci-fi-digital-ui-transition-sound.mp3\n        Sound: Fast digital UI sound featuring a high-pitched synth laser chirp, swift whoosh, and\u2026\n",
        "expected": "returns the sci-fi whoosh sound effect from the shared library catalog",
        "input": "sci-fi whoosh, audio only, keywords",
        "kind": "claim",
        "outcome": "Real input produced the expected result: 00012_fast-sci-fi-metallic-whoosh-sting.mp3",
        "returncode": 0,
        "source": "**Media** (search the library)",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: README.md, tools/setup.sh, tools/*.mjs, studio/dev.mjs and studio/app (grep for cron, setInterval, --once, --now, webhook, schedule). The only timers are SSE heartbeat intervals (keep-alive pings in studio/app/api/[ws]/[brand]/watch and agent routes), which are not product cycles. The product runs on demand: the agent or the user runs a tool or opens the studio.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: README.md, tools/setup.sh, tools/*.mjs, studio/dev.mjs and studio/app (grep for cron, setInterval, --once, --now, webhook, schedule). The only timers are SSE heartbeat intervals (keep-alive pings in studio/app/api/[ws]/[brand]/watch and agent routes), which are not product cycles. The product runs on demand: the agent or the user runs a tool or opens the studio.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "studio/dev.mjs"
      ],
      "bytes": 20513,
      "kind": "http",
      "response_checked": true,
      "response_excerpt": "00001_loud-vocal-scream-sound-effect.mp3\",\"type\":\"audio\",\"mime\":\"audio/mpeg\",\"bytes\":28890,\"duration\":1.7},\"source\":{\"kind\":\"upload\"},\"products\":[],\"people\":[],\"unknown_people\":[],\"text_in_media\":\"\",\"status\":\"cataloged\",\"analysis\":\"Sound: Loud, high-pitched vocal scream or screech with heavy distortion and chorus effects.\\n\\nSource: A human voice screaming, heavily processed with audio effects.\\n\\nShape: Sharp attack <email>, peaking instantly and sustaining before a quick <email>.\\n\\nMarks: Highlights a shock, jump scare, dramatic fail, or comedic reaction moment.\",\"analyzed_by\"",
      "scope": "product operation",
      "status": 200,
      "url": "http://127.0.0.1:4179/api/Shared/Library/media",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "search a brand's media catalog from the command line (tools/ scripts, search-media --help)",
        "command": "<guest-path> tools/search-media.mjs --media workspaces/Shared/Library/inputs/media --query 'glass breaking' --keywords-only --limit 3",
        "deferred": false,
        "evidence": "1 result for \"glass breaking\" [keywords]:\n  00018  [audio/?]  00018_glass-breaking-shatter.mp3\n        A glass breaking: a sharp shatter right at the start (<email> s), then a short scat\u2026",
        "expected": "finds the glass breaking shatter sound effect in the shared library",
        "input": "--query glass breaking, keywords only, limit 3",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "tools/search-media.mjs (HELP text) and README.md How it's organized",
        "verdict": "yes"
      },
      {
        "claim": "check that a workspace's kie.ai key works before generating ads",
        "command": "",
        "deferred": false,
        "evidence": "Not tested: no kie.ai key is available in this guest, and the key is required for ad generation (images, video, voices, music). Only the key-free parts (studio and media search) were exercised.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Not tested: no kie.ai key is available in this guest, and the key is required for ad generation (images, video, voices, music). Only the key-free parts (studio and media search) were exercised.",
        "source": "README.md How to set it up, step 3 (kie.ai key) and tools/check-keys.mjs HELP",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
