{
  "schemaVersion": "1.0",
  "item": {
    "slug": "orf",
    "name": "ORF",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/cpojer/orf",
    "canonicalUrl": "https://clawhub.ai/cpojer/orf",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/orf",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=orf",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/nano_banana_mood.py",
      "scripts/orf.py",
      "scripts/generate_zib_nano_banana.sh",
      "scripts/zib_prompt.mjs",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/orf"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/orf",
    "agentPageUrl": "https://openagent3.xyz/skills/orf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/orf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/orf/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Command format",
        "body": "Interpret a user message that starts with orf as a request for an ORF News digest.\n\nSupported forms:\n\norf → default 5 items\norf <n> → n items (max 15)\norf inland / orf ausland → bias selection\norf <n> inland|ausland → both"
      },
      {
        "title": "Source + scope",
        "body": "Primary source: news.orf.at (German)\nPrefer: Inland politics, Ausland / international politics, and major headlines.\nExclude: sports (Sport)."
      },
      {
        "title": "Output requirements",
        "body": "Do not send any extra commentary/preamble/epilogue.\nSend results as individual messages.\nEach item message must be exactly:\n\nfirst line: the headline (German)\nsecond line: <age> (e.g. 45m ago, 6h ago, 2d ago)\nthird line: the ORF link\n\n\nAfter the item messages, send one final message with the generated image.\n\nThe image must visually incorporate the pulled news on the wraparound studio video wall using 4–6 distinct story panels.\nPanel layout (must):\n\nTOP: big bold text (1–2 words, ALL CAPS). You must invent this.\nMIDDLE: smaller text (3–6 words) that describes the story. You must invent this.\n\nThe two lines must not form a connected sentence.\nAvoid repeating the same words between the two lines.\n\n\nBOTTOM: exactly 1–2 simple icons (no maps, no busy collages)\nIcon variety: make icons distinct across panels whenever possible.\n\nDo not reuse the same icon pair across multiple panels.\nAvoid overusing generic icons (e.g. globe + pin); only use them when no better match exists.\n\n\n\n\nReadability: keep text minimal and large enough to render cleanly.\nNo logos/watermarks.\nIf the chat provider requires non-empty text for media, use a minimal caption .."
      },
      {
        "title": "Procedure",
        "body": "Parse n and optional focus (inland|ausland) from the user message.\nRun python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json.\nSend each returned item as its own message (3-line format).\nGenerate the ZiB studio mood image via Nano Banana:\n\nBuild prompt from items: python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json | node skills/orf-digest/scripts/zib_prompt.mjs\nGenerate: skills/orf-digest/scripts/generate_zib_nano_banana.sh ./tmp/orf-zib/zib.png\nSend image as final message.\n\nIf fetching/parsing fails or returns 0 items:\n\nUse the browser tool to open https://news.orf.at/, pick N non-sport headlines by judgment, and send them in the same 3-line format.\nStill generate a ZiB studio image with a few generic political-news Easter eggs."
      }
    ],
    "body": "ORF Digest (news.orf.at)\nCommand format\n\nInterpret a user message that starts with orf as a request for an ORF News digest.\n\nSupported forms:\n\norf → default 5 items\norf <n> → n items (max 15)\norf inland / orf ausland → bias selection\norf <n> inland|ausland → both\nSource + scope\nPrimary source: news.orf.at (German)\nPrefer: Inland politics, Ausland / international politics, and major headlines.\nExclude: sports (Sport).\nOutput requirements\nDo not send any extra commentary/preamble/epilogue.\nSend results as individual messages.\nEach item message must be exactly:\nfirst line: the headline (German)\nsecond line: <age> (e.g. 45m ago, 6h ago, 2d ago)\nthird line: the ORF link\nAfter the item messages, send one final message with the generated image.\nThe image must visually incorporate the pulled news on the wraparound studio video wall using 4–6 distinct story panels.\nPanel layout (must):\nTOP: big bold text (1–2 words, ALL CAPS). You must invent this.\nMIDDLE: smaller text (3–6 words) that describes the story. You must invent this.\nThe two lines must not form a connected sentence.\nAvoid repeating the same words between the two lines.\nBOTTOM: exactly 1–2 simple icons (no maps, no busy collages)\nIcon variety: make icons distinct across panels whenever possible.\nDo not reuse the same icon pair across multiple panels.\nAvoid overusing generic icons (e.g. globe + pin); only use them when no better match exists.\nReadability: keep text minimal and large enough to render cleanly.\nNo logos/watermarks.\nIf the chat provider requires non-empty text for media, use a minimal caption ..\nProcedure\nParse n and optional focus (inland|ausland) from the user message.\nRun python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json.\nSend each returned item as its own message (3-line format).\nGenerate the ZiB studio mood image via Nano Banana:\nBuild prompt from items: python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json | node skills/orf-digest/scripts/zib_prompt.mjs\nGenerate: skills/orf-digest/scripts/generate_zib_nano_banana.sh ./tmp/orf-zib/zib.png\nSend image as final message.\n\nIf fetching/parsing fails or returns 0 items:\n\nUse the browser tool to open https://news.orf.at/, pick N non-sport headlines by judgment, and send them in the same 3-line format.\nStill generate a ZiB studio image with a few generic political-news Easter eggs."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cpojer/orf",
    "publisherUrl": "https://clawhub.ai/cpojer/orf",
    "owner": "cpojer",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/orf",
    "downloadUrl": "https://openagent3.xyz/downloads/orf",
    "agentUrl": "https://openagent3.xyz/skills/orf/agent",
    "manifestUrl": "https://openagent3.xyz/skills/orf/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/orf/agent.md"
  }
}