{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tper-hellobus-skill",
    "name": "tper-hellobus",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/lore2601/tper-hellobus-skill",
    "canonicalUrl": "https://clawhub.ai/lore2601/tper-hellobus-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tper-hellobus-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tper-hellobus-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "test-cases.json"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/tper-hellobus-skill"
    },
    "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/tper-hellobus-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "TPER Hellobus: Bologna & Ferrara Bus Times",
        "body": "This skill provides real-time and scheduled arrival information for TPER buses in Bologna and Ferrara by querying the official Hellobus API."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when the user:\n\nAsks about bus arrivals at a specific stop in Bologna or Ferrara\nMentions TPER, bus line numbers, or stop codes\nWants to know when the next bus is coming\nRequests scheduled arrival times for a specific time\nAsks about real-time bus tracking"
      },
      {
        "title": "How It Works",
        "body": "The skill queries the TPER Hellobus API with three parameters:\n\nfermata (required): Numeric stop code (e.g., \"4476\", \"8001\")\nlinea (required): Bus line number (e.g., \"11\", \"27\", \"101\")\noraHHMM (optional): Time in HHmm format (e.g., \"1830\" for 6:30 PM)\n\nCritical Logic:\n\nIf oraHHMM is omitted or empty, the API returns real-time GPS tracking data\nIf oraHHMM is provided, the API returns scheduled arrivals for that time"
      },
      {
        "title": "API Endpoint",
        "body": "GET https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus"
      },
      {
        "title": "Parameters:",
        "body": "fermata: Stop code (string, numeric)\nlinea: Line number (string, numeric)\noraHHMM: Time in HHmm format (string, optional - leave empty for real-time)"
      },
      {
        "title": "Example API Calls:",
        "body": "Real-time tracking (GPS):\n\nhttps://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata=4476&linea=11&oraHHMM=\n\nScheduled times:\n\nhttps://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata=4476&linea=11&oraHHMM=1830"
      },
      {
        "title": "Response Format",
        "body": "The API returns a response like:\n\nTperHellobus: 11B DaSatellite 18:02 (Bus1634 CON PEDANA), 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\nComponents:\n\n11B: Line number with variant\nDaSatellite: Real-time GPS data indicator (or scheduled time indicator)\n18:02: Arrival time\nBus1634: Bus identifier\nCON PEDANA: Wheelchair accessible platform indicator"
      },
      {
        "title": "1. Parse User Input",
        "body": "Extract from the user's query:\n\nStop code: Numeric identifier (e.g., 4476)\nLine number: Numeric line (e.g., 11)\nTime (optional): If user mentions a specific time like \"6:30 PM\", \"18:30\", \"at 3pm\""
      },
      {
        "title": "2. Convert Time Format",
        "body": "If the user provides a time:\n\nParse the time from natural language (e.g., \"6:30 PM\", \"18:30\", \"3pm\")\nConvert to HHmm format (e.g., \"1830\", \"1500\")\nUse Europe/Rome timezone for any timezone-related conversions\n\nTime conversion examples:\n\n\"6:30 PM\" → \"1830\"\n\"3:00 PM\" → \"1500\"\n\"9:15 AM\" → \"0915\"\n\"18:30\" → \"1830\""
      },
      {
        "title": "3. Make API Request",
        "body": "Use the bash_tool with curl to call the API (web_fetch has URL restrictions):\n\n# For real-time (no time specified):\ncurl \"https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata={stop_code}&linea={line_number}&oraHHMM=\"\n\n# For scheduled time:\ncurl \"https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata={stop_code}&linea={line_number}&oraHHMM={time_hhmm}\"\n\nImportant: Ensure proper URL encoding and handle the XML/text response from the API."
      },
      {
        "title": "4. Parse and Format Response",
        "body": "The API response is plain text. Parse it and format as a bullet list:\n\nInput: TperHellobus: 11B DaSatellite 18:02 (Bus1634 CON PEDANA), 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\nOutput format:\n\nBus arrivals for line 11 at stop 4476:\n• 11B DaSatellite 18:02 (Bus1634 CON PEDANA)\n• 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\nSplit on commas and present each arrival as a bullet point."
      },
      {
        "title": "5. Error Handling",
        "body": "If the API returns an error or unexpected response:\n\nReport the error clearly to the user\nInclude the original API response if helpful for debugging\nSuggest checking the stop code and line number\n\nCommon errors might include:\n\nInvalid stop code\nLine doesn't serve that stop\nNo buses found for the specified time\nAPI connection issues"
      },
      {
        "title": "User Interaction Examples",
        "body": "Example 1: Real-time tracking\n\nUser: \"When is the next bus 11 arriving at stop 4476?\"\nClaude: [Queries API with oraHHMM empty]\nResponse: \nBus arrivals for line 11 at stop 4476 (real-time):\n• 11B DaSatellite 18:02 (Bus1634 CON PEDANA)\n• 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\nExample 2: Scheduled time\n\nUser: \"Check the schedule for bus 27 at stop 8001 for 6:30 PM\"\nClaude: [Queries API with oraHHMM=1830]\nResponse:\nBus arrivals for line 27 at stop 8001 at 18:30:\n• 27 Orario 18:35 (Bus2045)\n• 27 Orario 18:50 (Bus3012)\n\nExample 3: Error handling\n\nUser: \"Bus 99 at stop 1234\"\nClaude: [Queries API, receives error]\nResponse: \"I couldn't find bus 99 at stop 1234. Please verify the stop code and line number are correct for the TPER network.\""
      },
      {
        "title": "Important Notes",
        "body": "Stop codes are numeric only (not stop names)\nLine numbers are numeric only (e.g., \"11\", not \"11B\" - the API adds variants)\nEmpty oraHHMM = real-time GPS tracking\nProvided oraHHMM = scheduled arrivals\nAlways use Europe/Rome timezone for time conversions\nFormat times as HHmm (24-hour format, no colon)"
      },
      {
        "title": "Testing",
        "body": "Test cases to verify the skill works:\n\nLine 11, Stop 4476 (real-time)\nLine 11, Stop 4476, Time 18:30 (scheduled)\nInvalid stop code (error handling)\nTime format conversion (various user inputs)"
      }
    ],
    "body": "TPER Hellobus: Bologna & Ferrara Bus Times\n\nThis skill provides real-time and scheduled arrival information for TPER buses in Bologna and Ferrara by querying the official Hellobus API.\n\nWhen to Use This Skill\n\nUse this skill when the user:\n\nAsks about bus arrivals at a specific stop in Bologna or Ferrara\nMentions TPER, bus line numbers, or stop codes\nWants to know when the next bus is coming\nRequests scheduled arrival times for a specific time\nAsks about real-time bus tracking\nHow It Works\n\nThe skill queries the TPER Hellobus API with three parameters:\n\nfermata (required): Numeric stop code (e.g., \"4476\", \"8001\")\nlinea (required): Bus line number (e.g., \"11\", \"27\", \"101\")\noraHHMM (optional): Time in HHmm format (e.g., \"1830\" for 6:30 PM)\n\nCritical Logic:\n\nIf oraHHMM is omitted or empty, the API returns real-time GPS tracking data\nIf oraHHMM is provided, the API returns scheduled arrivals for that time\nAPI Endpoint\nGET https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus\n\nParameters:\nfermata: Stop code (string, numeric)\nlinea: Line number (string, numeric)\noraHHMM: Time in HHmm format (string, optional - leave empty for real-time)\nExample API Calls:\n\nReal-time tracking (GPS):\n\nhttps://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata=4476&linea=11&oraHHMM=\n\n\nScheduled times:\n\nhttps://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata=4476&linea=11&oraHHMM=1830\n\nResponse Format\n\nThe API returns a response like:\n\nTperHellobus: 11B DaSatellite 18:02 (Bus1634 CON PEDANA), 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\n\nComponents:\n\n11B: Line number with variant\nDaSatellite: Real-time GPS data indicator (or scheduled time indicator)\n18:02: Arrival time\nBus1634: Bus identifier\nCON PEDANA: Wheelchair accessible platform indicator\nImplementation Steps\n1. Parse User Input\n\nExtract from the user's query:\n\nStop code: Numeric identifier (e.g., 4476)\nLine number: Numeric line (e.g., 11)\nTime (optional): If user mentions a specific time like \"6:30 PM\", \"18:30\", \"at 3pm\"\n2. Convert Time Format\n\nIf the user provides a time:\n\nParse the time from natural language (e.g., \"6:30 PM\", \"18:30\", \"3pm\")\nConvert to HHmm format (e.g., \"1830\", \"1500\")\nUse Europe/Rome timezone for any timezone-related conversions\n\nTime conversion examples:\n\n\"6:30 PM\" → \"1830\"\n\"3:00 PM\" → \"1500\"\n\"9:15 AM\" → \"0915\"\n\"18:30\" → \"1830\"\n3. Make API Request\n\nUse the bash_tool with curl to call the API (web_fetch has URL restrictions):\n\n# For real-time (no time specified):\ncurl \"https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata={stop_code}&linea={line_number}&oraHHMM=\"\n\n# For scheduled time:\ncurl \"https://hellobuswsweb.tper.it/web-services/hellobus.asmx/QueryHellobus?fermata={stop_code}&linea={line_number}&oraHHMM={time_hhmm}\"\n\n\nImportant: Ensure proper URL encoding and handle the XML/text response from the API.\n\n4. Parse and Format Response\n\nThe API response is plain text. Parse it and format as a bullet list:\n\nInput: TperHellobus: 11B DaSatellite 18:02 (Bus1634 CON PEDANA), 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\nOutput format:\n\nBus arrivals for line 11 at stop 4476:\n• 11B DaSatellite 18:02 (Bus1634 CON PEDANA)\n• 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\n\nSplit on commas and present each arrival as a bullet point.\n\n5. Error Handling\n\nIf the API returns an error or unexpected response:\n\nReport the error clearly to the user\nInclude the original API response if helpful for debugging\nSuggest checking the stop code and line number\n\nCommon errors might include:\n\nInvalid stop code\nLine doesn't serve that stop\nNo buses found for the specified time\nAPI connection issues\nUser Interaction Examples\n\nExample 1: Real-time tracking\n\nUser: \"When is the next bus 11 arriving at stop 4476?\"\nClaude: [Queries API with oraHHMM empty]\nResponse: \nBus arrivals for line 11 at stop 4476 (real-time):\n• 11B DaSatellite 18:02 (Bus1634 CON PEDANA)\n• 11B DaSatellite 18:18 (Bus5504 CON PEDANA)\n\n\nExample 2: Scheduled time\n\nUser: \"Check the schedule for bus 27 at stop 8001 for 6:30 PM\"\nClaude: [Queries API with oraHHMM=1830]\nResponse:\nBus arrivals for line 27 at stop 8001 at 18:30:\n• 27 Orario 18:35 (Bus2045)\n• 27 Orario 18:50 (Bus3012)\n\n\nExample 3: Error handling\n\nUser: \"Bus 99 at stop 1234\"\nClaude: [Queries API, receives error]\nResponse: \"I couldn't find bus 99 at stop 1234. Please verify the stop code and line number are correct for the TPER network.\"\n\nImportant Notes\nStop codes are numeric only (not stop names)\nLine numbers are numeric only (e.g., \"11\", not \"11B\" - the API adds variants)\nEmpty oraHHMM = real-time GPS tracking\nProvided oraHHMM = scheduled arrivals\nAlways use Europe/Rome timezone for time conversions\nFormat times as HHmm (24-hour format, no colon)\nTesting\n\nTest cases to verify the skill works:\n\nLine 11, Stop 4476 (real-time)\nLine 11, Stop 4476, Time 18:30 (scheduled)\nInvalid stop code (error handling)\nTime format conversion (various user inputs)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lore2601/tper-hellobus-skill",
    "publisherUrl": "https://clawhub.ai/lore2601/tper-hellobus-skill",
    "owner": "lore2601",
    "version": "0.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tper-hellobus-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/tper-hellobus-skill",
    "agentUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tper-hellobus-skill/agent.md"
  }
}