{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-commute-traffic",
    "name": "Commute Traffic",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/Xavjer/openclaw-commute-traffic",
    "canonicalUrl": "https://clawhub.ai/Xavjer/openclaw-commute-traffic",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-commute-traffic",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-commute-traffic",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "INSTALL.md",
      "SKILL.md",
      "references/tomtom-api-response.md",
      "scripts/check_traffic.py"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/openclaw-commute-traffic"
    },
    "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/openclaw-commute-traffic",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/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": "Purpose",
        "body": "Query real-time traffic data from TomTom for any route and provide the user with actionable travel advice. The script handles geocoding (resolving place names to coordinates) and routing (calculating travel time with live traffic) — all via the same TomTom API key."
      },
      {
        "title": "Determining Origin and Destination",
        "body": "The origin and destination are not static — you must determine them from what the user tells you. Examples:\n\n\"How's traffic from the office to home?\" → You must know (or ask) where their office and home are.\n\"Check traffic Basel to Zurich\" → origin=Basel, destination=Zurich.\n\"Should I leave now?\" → Use previously discussed or known origin/destination. If unknown, ask.\n\"What's the commute like?\" → If you know the user's regular commute, use that. Otherwise, ask.\n\nRules:\n\nIf both origin and destination are clear from context, proceed immediately.\nIf only one is clear, ask for the missing one.\nIf neither is clear and you have no prior context, ask the user for both.\nAccept any format: addresses, city names, landmarks, coordinates — the script geocodes automatically."
      },
      {
        "title": "Running the Traffic Check",
        "body": "Execute the script with origin and destination as arguments:\n\npython3 {baseDir}/scripts/check_traffic.py --origin \"<ORIGIN>\" --destination \"<DESTINATION>\"\n\nExamples:\n\npython3 {baseDir}/scripts/check_traffic.py --origin \"Basel, Switzerland\" --destination \"Zurich, Switzerland\"\npython3 {baseDir}/scripts/check_traffic.py --origin \"Basel SBB\" --destination \"Paradeplatz, Zürich\"\npython3 {baseDir}/scripts/check_traffic.py --origin \"Aeschenplatz, Basel\" --destination \"ETH Zürich\""
      },
      {
        "title": "Interpreting the Output",
        "body": "The script returns JSON with one or more route alternatives. For each route:\n\nFieldMeaningtravel_time_minTotal travel time with current live trafficno_traffic_time_minTravel time with zero traffic (free-flow)historic_traffic_time_minTypical travel time based on historical patternslive_traffic_time_minTime including live incident datatraffic_delay_minExtra delay caused by current traffictraffic_delay_pctDelay as percentage of free-flow timecongestionDerived level: light, moderate, or heavydistance_kmRoute distance in kilometersdeparture_time / arrival_timeDeparture and estimated arrival timestamps"
      },
      {
        "title": "Congestion classification:",
        "body": "Light: traffic delay adds less than 20% to free-flow time\nModerate: 20–50% above free-flow\nHeavy: more than 50% above free-flow"
      },
      {
        "title": "Presenting Results to the User",
        "body": "When presenting traffic data, always include:\n\nThe fastest route and its estimated travel time.\nTraffic delay in plain language (e.g., \"Currently 8 minutes delay due to traffic on the A2, adding about 15% to the normal drive time\").\nComparison of alternatives if multiple routes are returned.\nA recommendation: whether to leave now or wait, based on congestion level.\n\nKeep it concise and practical. The user wants to know: \"How long will it take and should I go now?\""
      },
      {
        "title": "Error Handling",
        "body": "If the script returns {\"status\": \"error\"}, relay the error message to the user.\nIf TOMTOM_API_KEY is not configured, tell the user to set it up in ~/.openclaw/openclaw.json.\nIf geocoding fails (no coordinates found), the location may be too vague — ask the user to be more specific.\nIf no routes are returned, suggest trying different location descriptions."
      }
    ],
    "body": "Commute Traffic Checker (TomTom)\nPurpose\n\nQuery real-time traffic data from TomTom for any route and provide the user with actionable travel advice. The script handles geocoding (resolving place names to coordinates) and routing (calculating travel time with live traffic) — all via the same TomTom API key.\n\nDetermining Origin and Destination\n\nThe origin and destination are not static — you must determine them from what the user tells you. Examples:\n\n\"How's traffic from the office to home?\" → You must know (or ask) where their office and home are.\n\"Check traffic Basel to Zurich\" → origin=Basel, destination=Zurich.\n\"Should I leave now?\" → Use previously discussed or known origin/destination. If unknown, ask.\n\"What's the commute like?\" → If you know the user's regular commute, use that. Otherwise, ask.\n\nRules:\n\nIf both origin and destination are clear from context, proceed immediately.\nIf only one is clear, ask for the missing one.\nIf neither is clear and you have no prior context, ask the user for both.\nAccept any format: addresses, city names, landmarks, coordinates — the script geocodes automatically.\nRunning the Traffic Check\n\nExecute the script with origin and destination as arguments:\n\npython3 {baseDir}/scripts/check_traffic.py --origin \"<ORIGIN>\" --destination \"<DESTINATION>\"\n\n\nExamples:\n\npython3 {baseDir}/scripts/check_traffic.py --origin \"Basel, Switzerland\" --destination \"Zurich, Switzerland\"\npython3 {baseDir}/scripts/check_traffic.py --origin \"Basel SBB\" --destination \"Paradeplatz, Zürich\"\npython3 {baseDir}/scripts/check_traffic.py --origin \"Aeschenplatz, Basel\" --destination \"ETH Zürich\"\n\nInterpreting the Output\n\nThe script returns JSON with one or more route alternatives. For each route:\n\nField\tMeaning\ntravel_time_min\tTotal travel time with current live traffic\nno_traffic_time_min\tTravel time with zero traffic (free-flow)\nhistoric_traffic_time_min\tTypical travel time based on historical patterns\nlive_traffic_time_min\tTime including live incident data\ntraffic_delay_min\tExtra delay caused by current traffic\ntraffic_delay_pct\tDelay as percentage of free-flow time\ncongestion\tDerived level: light, moderate, or heavy\ndistance_km\tRoute distance in kilometers\ndeparture_time / arrival_time\tDeparture and estimated arrival timestamps\nCongestion classification:\nLight: traffic delay adds less than 20% to free-flow time\nModerate: 20–50% above free-flow\nHeavy: more than 50% above free-flow\nPresenting Results to the User\n\nWhen presenting traffic data, always include:\n\nThe fastest route and its estimated travel time.\nTraffic delay in plain language (e.g., \"Currently 8 minutes delay due to traffic on the A2, adding about 15% to the normal drive time\").\nComparison of alternatives if multiple routes are returned.\nA recommendation: whether to leave now or wait, based on congestion level.\n\nKeep it concise and practical. The user wants to know: \"How long will it take and should I go now?\"\n\nError Handling\nIf the script returns {\"status\": \"error\"}, relay the error message to the user.\nIf TOMTOM_API_KEY is not configured, tell the user to set it up in ~/.openclaw/openclaw.json.\nIf geocoding fails (no coordinates found), the location may be too vague — ask the user to be more specific.\nIf no routes are returned, suggest trying different location descriptions."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Xavjer/openclaw-commute-traffic",
    "publisherUrl": "https://clawhub.ai/Xavjer/openclaw-commute-traffic",
    "owner": "Xavjer",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-commute-traffic",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-commute-traffic/agent.md"
  }
}