{"id":"42353471-4e2a-4c19-8103-316380947c6d","entityType":"agent","slug":"clawhub-yangzhe1991-robotaxi-briefing","name":"Robotaxi Briefing","canonicalUrl":"https://www.xpersona.co/agent/clawhub-yangzhe1991-robotaxi-briefing","canonicalPath":"/agent/clawhub-yangzhe1991-robotaxi-briefing","generatedAt":"2026-10-10T17:36:54.663Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":null},"description":"Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm... Skill: Robotaxi Briefing Owner: yangzhe1991 Summary: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm... Tags: latest:6.1.0 Version history: v6.1.0 | 2026-07-20T15:58:38.869Z | user Fix: Add shell safety rules to Step 3 URL Resolution — forbid for/while loops which caused cron exec failures v6.0.1 | 2026-05-17","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1708qg6h23dd2tajyc1egf2m185vvej:robotaxi-briefing","sourceUrl":"https://clawhub.ai/yangzhe1991/robotaxi-briefing","homepage":"https://clawhub.ai/yangzhe1991/skills/robotaxi-briefing","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/yangzhe1991/robotaxi-briefing","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/yangzhe1991/skills/robotaxi-briefing","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":null},"stars":null,"forks":null,"downloads":1396,"packageName":null,"latestVersion":"6.1.0","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:07:39.195Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T14:07:39.265Z","lastCrawledAt":"2026-10-10T14:07:39.195Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T14:07:39.195Z","lastVerifiedAt":null,"highlights":[{"version":"6.1.0","createdAt":"2026-07-20T15:58:38.869Z","changelog":"Fix: Add shell safety rules to Step 3 URL Resolution — forbid for/while loops which caused cron exec failures","fileCount":3,"zipByteSize":7193},{"version":"6.0.1","createdAt":"2026-05-17T08:54:54.271Z","changelog":"Version bump to 6.0.1 (already has Step 5 forced save)","fileCount":3,"zipByteSize":6853},{"version":"6.0.0","createdAt":"2026-05-17T08:52:07.824Z","changelog":"Rollback to v4.0.16 baseline as v6.0.0","fileCount":2,"zipByteSize":5364},{"version":"5.0.0","createdAt":"2026-05-16T19:53:47.596Z","changelog":"回退至简洁管道: RSS+Reddit+web_search。移除Brave/Google News所有实验性代码。","fileCount":2,"zipByteSize":4875},{"version":"4.0.17","createdAt":"2026-05-16T19:50:09.870Z","changelog":"回退至Pre-Brave版本。仅保留RSS+Reddit+web_search搜索管道。","fileCount":2,"zipByteSize":4875},{"version":"4.2.3","createdAt":"2026-05-16T19:36:12.586Z","changelog":"移除36kr可信源(无法提取发布时间)。时间验证升级为强制web_fetch逐条确认真实日期。","fileCount":2,"zipByteSize":6360},{"version":"4.2.2","createdAt":"2026-05-16T19:24:08.077Z","changelog":"RSS直抓新增24h时间过滤(按pubDate)。","fileCount":2,"zipByteSize":6361},{"version":"4.2.1","createdAt":"2026-05-16T19:22:53.771Z","changelog":"Google News RSS拆为4次(中英各2)。Brave删除Cruise关键词。","fileCount":2,"zipByteSize":6299}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1708qg6h23dd2tajyc1egf2m185vvej:robotaxi-briefing","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T17:36:54.660Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yangzhe1991-robotaxi-briefing/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":null},"readme":"Skill: Robotaxi Briefing\n\nOwner: yangzhe1991\n\nSummary: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm...\n\nTags: latest:6.1.0\n\nVersion history:\n\nv6.1.0 | 2026-07-20T15:58:38.869Z | user\n\nFix: Add shell safety rules to Step 3 URL Resolution — forbid for/while loops which caused cron exec failures\n\nv6.0.1 | 2026-05-17T08:54:54.271Z | user\n\nVersion bump to 6.0.1 (already has Step 5 forced save)\n\nv6.0.0 | 2026-05-17T08:52:07.824Z | user\n\nRollback to v4.0.16 baseline as v6.0.0\n\nv5.0.0 | 2026-05-16T19:53:47.596Z | user\n\n回退至简洁管道: RSS+Reddit+web_search。移除Brave/Google News所有实验性代码。\n\nv4.0.17 | 2026-05-16T19:50:09.870Z | user\n\n回退至Pre-Brave版本。仅保留RSS+Reddit+web_search搜索管道。\n\nv4.2.3 | 2026-05-16T19:36:12.586Z | user\n\n移除36kr可信源(无法提取发布时间)。时间验证升级为强制web_fetch逐条确认真实日期。\n\nv4.2.2 | 2026-05-16T19:24:08.077Z | user\n\nRSS直抓新增24h时间过滤(按pubDate)。\n\nv4.2.1 | 2026-05-16T19:22:53.771Z | user\n\nGoogle News RSS拆为4次(中英各2)。Brave删除Cruise关键词。\n\nv4.2.0 | 2026-05-16T19:04:34.231Z | user\n\n新增Google News RSS快讯扫描(中英文各1条)。分钟级跨源聚合, 零API key。Step 0a在Brave之前执行。\n\nv4.1.1 | 2026-05-16T18:52:11.641Z | user\n\n新增Brave时间验证强制规则: published字段不可信, 必须确认真实发布时间。\n\nv4.1.0 | 2026-05-16T17:59:13.134Z | user\n\n搜索升级为Brave: freshness:day+site:限定域名。2次精准搜索(中文9源+英文10源含X/Twitter)。删除web_fetch降级方案。\n\nv4.0.16 | 2026-05-16T04:31:33.978Z | user\n\n新增多渠道搜索：RSS直抓(5家英文科技媒体)、web_fetch降级方案、X/Twitter补充。web_search不可用时不再仅依赖Reddit。\n\nv1.0.1 | 2026-05-13T07:29:50.677Z | user\n\nDelta去重升级：从单文件覆盖改为24小时全量报告对比，避免旧消息重复出现。\n\nv1.0.0 | 2026-05-06T04:36:05.556Z | user\n\nInitial release: twice-daily autonomous driving intelligence briefings covering Pony.ai, Waymo, Tesla, and Baidu Apollo with delta extraction, URL resolution, and competitive analysis\n\nArchive index:\n\nArchive v6.1.0: 3 files, 7193 bytes\n\nFiles: skill-card.md (2999b), SKILL.md (10586b), _meta.json (136b)\n\nFile v6.1.0:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Media Deep Scan (Multi-Channel with Fallback)\n\n**Priority chain**: `web_search` → `web_fetch` direct → RSS (already done in Step 0)\n\n**Channel A — web_search (best coverage, use first)**:\nSearch for:\n- Pony.ai / 小马智行\n- Waymo\n- Tesla Robotaxi / Cybercab / FSD\n- Zoox / Cruise / Aurora / WeRide\n\nMust cover:\n- **English media**: Bloomberg, CNBC, Reuters, TechCrunch, WSJ, The Verge\n- **Chinese media**: 财联社, 36氪, 晚点LatePost, 华尔街见闻, 新浪财经\n- Also search X/Twitter: `site:x.com robotaxi`, `site:x.com waymo`\n\n**Channel B — web_fetch direct (fallback when web_search fails)**:\nIf `web_search` returns error or empty results, switch to direct page fetching:\n\n```bash\n# English sources — direct page pulls (no search API needed)\nweb_fetch https://techcrunch.com/category/transportation/\nweb_fetch https://www.theverge.com/transportation\nweb_fetch https://arstechnica.com/cars/\nweb_fetch https://www.reuters.com/technology/autos-transportation/\n\n# Chinese sources — direct page pulls\nweb_fetch https://36kr.com/search/articles/robotaxi\nweb_fetch https://www.cls.cn/searchPage?keyword=robotaxi\n```\n\nExtract article titles and links from returned markdown. Filter by 24h freshness and robotaxi relevance.\n\n**Channel C — X/Twitter search (supplementary)**:\nUse `web_search site:x.com` to search for breaking robotaxi discussions on X/Twitter.\n\n**Data source status reporting**: After all channels run, report each channel's status:\n```\n数据源状态：\n- web_search: ✅ 可用 / ❌ 不可用 (reason)\n- RSS 直抓: ✅ X篇 / ❌ 失败\n- web_fetch 直拉: ✅ X篇 / ❌ 跳过\n- Reddit: ✅ X篇 / ❌ 失败\n- X/Twitter: ✅ X条 / ❌ 跳过\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved.\n\n**Preferred method**: Use `web_fetch` on each URL and extract the final domain from the result.\n\n**Alternative**: Single `curl` command per URL:\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"SINGLE_URL_HERE\"\n```\n\n⛔ **Shell Safety Rules (CRITICAL)**:\n- ✅ **Allowed**: Single `curl` commands, one URL at a time\n- ❌ **Absolutely FORBIDDEN**: `for`/`while` loops (`for url in ...; do ...; done` — THIS IS WHAT BREAKS THE CRON JOB)\n- ❌ **FORBIDDEN**: Variable assignment/substitution, `awk`/`sed`/`grep` pipelines, command nesting, multi-line shell scripts\n- Resolve URLs one at a time using `web_fetch` or a single `curl` command per URL\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v6.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"6.1.0\",\n  \"publishedAt\": 1784563118869\n}\n\nFile v6.1.0:skill-card.md\n\n## Description:\n\nTrack autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yangzhe1991](https://clawhub.ai/user/yangzhe1991)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees and external analysts use this skill to produce twice-daily incremental briefings on autonomous driving and robotaxi market developments. It focuses on fresh public-source reporting, prior-report delta comparison, source URL resolution, and competitive context.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Briefings depend on public web, RSS, Reddit, and social-search sources that can be incomplete, stale, or misleading.\n\nMitigation: Require 24-hour freshness, resolved source URLs, source status reporting, and cross-verification for financial, licensing, permit, and safety-sensitive claims.\n\nRisk: The workflow writes report files and removes old matching robotaxi report files in the OpenClaw memory directory.\n\nMitigation: Review the configured memory path and cleanup pattern before deployment, especially in shared or restricted environments.\n\nRisk: The skill includes shell examples for direct public-source fetching and URL resolution.\n\nMitigation: Review shell execution policy before installation and follow the skill's single-command URL-resolution guidance in environments that restrict shell access.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/yangzhe1991/skills/robotaxi-briefing)\n- [Publisher profile](https://clawhub.ai/user/yangzhe1991)\n- [TechCrunch RSS feed](https://techcrunch.com/feed/)\n- [The Verge RSS feed](https://www.theverge.com/rss/index.xml)\n- [Wired RSS feed](https://www.wired.com/feed/rss)\n- [Ars Technica RSS feed](https://arstechnica.com/feed/)\n- [Reuters technology feed](https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech)\n- [SelfDrivingCars Reddit feed](https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15)\n- [Reuters autos and transportation](https://www.reuters.com/technology/autos-transportation/)\n- [36Kr robotaxi search](https://36kr.com/search/articles/robotaxi)\n- [CLS robotaxi search](https://www.cls.cn/searchPage?keyword=robotaxi)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, guidance]\n\n**Output Format:** [Chinese Markdown briefing with bare source URLs]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes 24-hour delta comparison, source status reporting, resolved final-domain URLs, and scoped local report retention guidance.]\n\n## Skill Version(s):\n\n6.1.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v6.0.1: 3 files, 6853 bytes\n\nFiles: skill-card.md (2814b), SKILL.md (9997b), _meta.json (136b)\n\nFile v6.0.1:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Media Deep Scan (Multi-Channel with Fallback)\n\n**Priority chain**: `web_search` → `web_fetch` direct → RSS (already done in Step 0)\n\n**Channel A — web_search (best coverage, use first)**:\nSearch for:\n- Pony.ai / 小马智行\n- Waymo\n- Tesla Robotaxi / Cybercab / FSD\n- Zoox / Cruise / Aurora / WeRide\n\nMust cover:\n- **English media**: Bloomberg, CNBC, Reuters, TechCrunch, WSJ, The Verge\n- **Chinese media**: 财联社, 36氪, 晚点LatePost, 华尔街见闻, 新浪财经\n- Also search X/Twitter: `site:x.com robotaxi`, `site:x.com waymo`\n\n**Channel B — web_fetch direct (fallback when web_search fails)**:\nIf `web_search` returns error or empty results, switch to direct page fetching:\n\n```bash\n# English sources — direct page pulls (no search API needed)\nweb_fetch https://techcrunch.com/category/transportation/\nweb_fetch https://www.theverge.com/transportation\nweb_fetch https://arstechnica.com/cars/\nweb_fetch https://www.reuters.com/technology/autos-transportation/\n\n# Chinese sources — direct page pulls\nweb_fetch https://36kr.com/search/articles/robotaxi\nweb_fetch https://www.cls.cn/searchPage?keyword=robotaxi\n```\n\nExtract article titles and links from returned markdown. Filter by 24h freshness and robotaxi relevance.\n\n**Channel C — X/Twitter search (supplementary)**:\nUse `web_search site:x.com` to search for breaking robotaxi discussions on X/Twitter.\n\n**Data source status reporting**: After all channels run, report each channel's status:\n```\n数据源状态：\n- web_search: ✅ 可用 / ❌ 不可用 (reason)\n- RSS 直抓: ✅ X篇 / ❌ 失败\n- web_fetch 直拉: ✅ X篇 / ❌ 跳过\n- Reddit: ✅ X篇 / ❌ 失败\n- X/Twitter: ✅ X条 / ❌ 跳过\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v6.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"6.0.1\",\n  \"publishedAt\": 1779008094271\n}\n\nFile v6.0.1:skill-card.md\n\n## Description: <br>\nTrack autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[yangzhe1991](https://clawhub.ai/user/yangzhe1991) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and analysts use this skill to generate twice-daily Chinese-language briefings on robotaxi and autonomous-driving sector developments, with source URLs, delta extraction against recent reports, and competitive context. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Report history older than 24 hours may be deleted from OpenClaw memory by the skill's cleanup step. <br>\nMitigation: Keep separate copies of reports when long-term audit, comparison, or compliance history is required. <br>\nRisk: Briefing quality depends on public news, RSS, Reddit, and web-search availability during the reporting window. <br>\nMitigation: Use the skill's source status reporting and fallback channels, and treat source outages or empty fetches as coverage limitations. <br>\nRisk: Robotaxi, market, regulatory, and financial claims can mislead readers if sources are stale, redirected, or weak. <br>\nMitigation: Require resolved final URLs and cross-verification for financial data, stock-price context, permits, and other high-impact claims. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/yangzhe1991/robotaxi-briefing) <br>\n- [TechCrunch RSS feed](https://techcrunch.com/feed/) <br>\n- [The Verge RSS feed](https://www.theverge.com/rss/index.xml) <br>\n- [Wired RSS feed](https://www.wired.com/feed/rss) <br>\n- [Ars Technica RSS feed](https://arstechnica.com/feed/) <br>\n- [Reuters technology feed](https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech) <br>\n- [Reddit SelfDrivingCars feed](https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Analysis, Shell commands, Files] <br>\n**Output Format:** [Chinese-language Markdown briefing with bare source URLs and a saved local report file] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Briefings are constrained to a 24-hour news window, compare against saved reports from the previous 24 hours, and avoid long tables for Feishu readability.] <br>\n\n## Skill Version(s): <br>\n6.0.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v6.0.0: 2 files, 5364 bytes\n\nFiles: SKILL.md (9997b), _meta.json (136b)\n\nFile v6.0.0:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Media Deep Scan (Multi-Channel with Fallback)\n\n**Priority chain**: `web_search` → `web_fetch` direct → RSS (already done in Step 0)\n\n**Channel A — web_search (best coverage, use first)**:\nSearch for:\n- Pony.ai / 小马智行\n- Waymo\n- Tesla Robotaxi / Cybercab / FSD\n- Zoox / Cruise / Aurora / WeRide\n\nMust cover:\n- **English media**: Bloomberg, CNBC, Reuters, TechCrunch, WSJ, The Verge\n- **Chinese media**: 财联社, 36氪, 晚点LatePost, 华尔街见闻, 新浪财经\n- Also search X/Twitter: `site:x.com robotaxi`, `site:x.com waymo`\n\n**Channel B — web_fetch direct (fallback when web_search fails)**:\nIf `web_search` returns error or empty results, switch to direct page fetching:\n\n```bash\n# English sources — direct page pulls (no search API needed)\nweb_fetch https://techcrunch.com/category/transportation/\nweb_fetch https://www.theverge.com/transportation\nweb_fetch https://arstechnica.com/cars/\nweb_fetch https://www.reuters.com/technology/autos-transportation/\n\n# Chinese sources — direct page pulls\nweb_fetch https://36kr.com/search/articles/robotaxi\nweb_fetch https://www.cls.cn/searchPage?keyword=robotaxi\n```\n\nExtract article titles and links from returned markdown. Filter by 24h freshness and robotaxi relevance.\n\n**Channel C — X/Twitter search (supplementary)**:\nUse `web_search site:x.com` to search for breaking robotaxi discussions on X/Twitter.\n\n**Data source status reporting**: After all channels run, report each channel's status:\n```\n数据源状态：\n- web_search: ✅ 可用 / ❌ 不可用 (reason)\n- RSS 直抓: ✅ X篇 / ❌ 失败\n- web_fetch 直拉: ✅ X篇 / ❌ 跳过\n- Reddit: ✅ X篇 / ❌ 失败\n- X/Twitter: ✅ X条 / ❌ 跳过\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v6.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"6.0.0\",\n  \"publishedAt\": 1779007927824\n}\n\nArchive v5.0.0: 2 files, 4875 bytes\n\nFiles: SKILL.md (8704b), _meta.json (136b)\n\nFile v5.0.0:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link | $pubdate\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Media Deep Scan\n\nUse `web_search` to search for:\n- Pony.ai / 小马智行\n- Waymo\n- Tesla Robotaxi / Cybercab / FSD\n- Zoox / Cruise / Aurora / WeRide\n\nMust cover:\n- **English media**: Bloomberg, CNBC, Reuters, TechCrunch, WSJ, The Verge\n- **Chinese media**: 财联社, 36氪, 晚点LatePost, 华尔街见闻, 新浪财经\n- Also search X/Twitter: `site:x.com robotaxi`, `site:x.com waymo`\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v5.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"5.0.0\",\n  \"publishedAt\": 1778961227596\n}\n\nArchive v4.0.17: 2 files, 4875 bytes\n\nFiles: SKILL.md (8704b), _meta.json (137b)\n\nFile v4.0.17:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link | $pubdate\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Media Deep Scan\n\nUse `web_search` to search for:\n- Pony.ai / 小马智行\n- Waymo\n- Tesla Robotaxi / Cybercab / FSD\n- Zoox / Cruise / Aurora / WeRide\n\nMust cover:\n- **English media**: Bloomberg, CNBC, Reuters, TechCrunch, WSJ, The Verge\n- **Chinese media**: 财联社, 36氪, 晚点LatePost, 华尔街见闻, 新浪财经\n- Also search X/Twitter: `site:x.com robotaxi`, `site:x.com waymo`\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.0.17\",\n  \"publishedAt\": 1778961009870\n}\n\nArchive v4.2.3: 2 files, 6360 bytes\n\nFiles: SKILL.md (12251b), _meta.json (136b)\n\nFile v4.2.3:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link | $pubdate\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL + pubDate for each match. **Filter by 24h freshness using pubDate** (format: `Fri, 15 May 2026 17:13:26 +0000`). Articles older than 24h from report generation time are discarded. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 0a: Google News RSS Scan (MANDATORY — free, minute-level aggregation)\n\nGoogle News RSS aggregates all sources with near-zero latency. No API key, no rate limit. Split into 4 searches of 5 OR terms each (Google News degrades with >5 OR terms).\n\n```bash\n# GN1: Chinese industry + Waymo + Pony.ai\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6+OR+%E6%97%A0%E4%BA%BA%E9%A9%BE%E9%A9%B6+OR+Robotaxi+OR+Waymo+OR+%E5%B0%8F%E9%A9%AC%E6%99%BA%E8%A1%8C&hl=zh-CN&gl=CN\"\n\n# GN2: Chinese companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E6%96%87%E8%BF%9C%E7%9F%A5%E8%A1%8C+OR+%E8%90%9D%E5%8D%9C%E5%BF%AB%E8%B7%91+OR+%E7%99%BE%E5%BA%A6+Apollo+OR+%E7%A6%BE%E8%B5%9B+OR+%E5%9C%B0%E5%B9%B3%E7%BA%BF&hl=zh-CN&gl=CN\"\n\n# GN3: English industry\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=robotaxi+OR+%22self+driving%22+OR+%22autonomous+driving%22+OR+Waymo+OR+%22Pony+AI%22&hl=en-US&gl=US\"\n\n# GN4: English companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%22Tesla+Robotaxi%22+OR+Cybercab+OR+WeRide+OR+Zoox+OR+Aurora&hl=en-US&gl=US\"\n```\n\nParse each with Python: extract `<title>`, `<link>`, `<pubDate>`, `<source>`. Filter by 24h freshness using `<pubDate>`. Google News links are redirects — resolve in Step 3.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Brave Search (2 calls — Chinese + English)\n\nUse Brave Search API with `freshness:day` (past 24h) and `site:` domain filters. Two parallel searches cover all relevant sources with zero manual filtering.\n\n**Search 1 — 中文媒体（必须用 search_lang: \"zh-hans\"）**:\n\nKeywords: 自动驾驶 OR 无人驾驶 OR Robotaxi OR Robotruck OR Waymo OR 小马智行 OR 文远知行 OR 萝卜快跑 OR WeRide OR \"Pony AI\" OR 百度 Apollo OR 禾赛 OR 地平线 OR 智驾\n\nDomains: site:cls.cn OR site:wallstreetcn.com OR site:latepost.com OR site:jiemian.com OR site:thepaper.cn OR site:finance.sina.com.cn OR site:21jingji.com OR site:nbd.com.cn\n\n| Source | Notes |\n|--------|-------|\n| cls.cn | 财联社快讯 |\n| wallstreetcn.com | 华尔街见闻 |\n| latepost.com | 晚点LatePost深度 |\n| jiemian.com | 界面新闻 |\n| thepaper.cn | 澎湃新闻 |\n| finance.sina.com.cn | 新浪财经 |\n| 21jingji.com | 21世纪经济报道 |\n| nbd.com.cn | 每日经济新闻 |\n\n**Search 2 — 英文媒体**:\n\nKeywords: \"self driving\" OR \"autonomous driving\" OR driverless OR Robotaxi OR Robotruck OR Waymo OR \"Pony AI\" OR \"Tesla Robotaxi\" OR Cybercab OR WeRide OR Zoox OR Aurora\n\nDomains: site:bloomberg.com OR site:cnbc.com OR site:reuters.com OR site:techcrunch.com OR site:theverge.com OR site:wired.com OR site:wsj.com OR site:axios.com OR site:arstechnica.com OR site:x.com\n\n| Source | Notes |\n|--------|-------|\n| bloomberg.com | 财经通讯社 |\n| cnbc.com | 财经/科技 |\n| reuters.com | 通讯社 |\n| techcrunch.com | 科技/交通 |\n| theverge.com | 科技 |\n| wired.com | 科技深度 |\n| wsj.com | 财经 |\n| axios.com | 政策/商业 |\n| arstechnica.com | 科技深度 |\n| x.com | 社交媒体（官方/爆料）|\n\n**Processing**: Deduplicate results across all channels (RSS + Reddit + Brave). Filter by 24h freshness (Brave `freshness:day` handles most, but verify publish dates on ambiguous items).\n\n⛔ **时间验证强制规则**：Brave 的 `published` 字段不可信。每条搜索结果必须 `web_fetch` 点进原文确认真实发布时间和内容——只看标题和 snippet 不够。无法确认时间 → 丢弃标注 `⚠️ 时间存疑`。36kr 已从可信源中移除（无法从页面提取发布时间）。\n\n**Data source status**:\n```\n数据源状态：\n- Brave Search: ✅ N条中文 + N条英文\n- Google News RSS: ✅ N条中文 + N条英文\n- RSS 直抓: ✅ X篇（TechCrunch/Wired/Verge/Ars）\n- Reddit: ✅ X篇\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.2.3\",\n  \"publishedAt\": 1778960172586\n}\n\nArchive v4.2.2: 2 files, 6361 bytes\n\nFiles: SKILL.md (12299b), _meta.json (136b)\n\nFile v4.2.2:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link | $pubdate\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL + pubDate for each match. **Filter by 24h freshness using pubDate** (format: `Fri, 15 May 2026 17:13:26 +0000`). Articles older than 24h from report generation time are discarded. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 0a: Google News RSS Scan (MANDATORY — free, minute-level aggregation)\n\nGoogle News RSS aggregates all sources with near-zero latency. No API key, no rate limit. Split into 4 searches of 5 OR terms each (Google News degrades with >5 OR terms).\n\n```bash\n# GN1: Chinese industry + Waymo + Pony.ai\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6+OR+%E6%97%A0%E4%BA%BA%E9%A9%BE%E9%A9%B6+OR+Robotaxi+OR+Waymo+OR+%E5%B0%8F%E9%A9%AC%E6%99%BA%E8%A1%8C&hl=zh-CN&gl=CN\"\n\n# GN2: Chinese companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E6%96%87%E8%BF%9C%E7%9F%A5%E8%A1%8C+OR+%E8%90%9D%E5%8D%9C%E5%BF%AB%E8%B7%91+OR+%E7%99%BE%E5%BA%A6+Apollo+OR+%E7%A6%BE%E8%B5%9B+OR+%E5%9C%B0%E5%B9%B3%E7%BA%BF&hl=zh-CN&gl=CN\"\n\n# GN3: English industry\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=robotaxi+OR+%22self+driving%22+OR+%22autonomous+driving%22+OR+Waymo+OR+%22Pony+AI%22&hl=en-US&gl=US\"\n\n# GN4: English companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%22Tesla+Robotaxi%22+OR+Cybercab+OR+WeRide+OR+Zoox+OR+Aurora&hl=en-US&gl=US\"\n```\n\nParse each with Python: extract `<title>`, `<link>`, `<pubDate>`, `<source>`. Filter by 24h freshness using `<pubDate>`. Google News links are redirects — resolve in Step 3.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Brave Search (2 calls — Chinese + English)\n\nUse Brave Search API with `freshness:day` (past 24h) and `site:` domain filters. Two parallel searches cover all relevant sources with zero manual filtering.\n\n**Search 1 — 中文媒体（必须用 search_lang: \"zh-hans\"）**:\n\nKeywords: 自动驾驶 OR 无人驾驶 OR Robotaxi OR Robotruck OR Waymo OR 小马智行 OR 文远知行 OR 萝卜快跑 OR WeRide OR \"Pony AI\" OR 百度 Apollo OR 禾赛 OR 地平线 OR 智驾\n\nDomains: site:36kr.com OR site:cls.cn OR site:wallstreetcn.com OR site:latepost.com OR site:jiemian.com OR site:thepaper.cn OR site:finance.sina.com.cn OR site:21jingji.com OR site:nbd.com.cn\n\n| Source | Notes |\n|--------|-------|\n| 36kr.com | 科技/创投深度 |\n| cls.cn | 财联社快讯 |\n| wallstreetcn.com | 华尔街见闻 |\n| latepost.com | 晚点LatePost深度 |\n| jiemian.com | 界面新闻 |\n| thepaper.cn | 澎湃新闻 |\n| finance.sina.com.cn | 新浪财经 |\n| 21jingji.com | 21世纪经济报道 |\n| nbd.com.cn | 每日经济新闻 |\n\n**Search 2 — 英文媒体**:\n\nKeywords: \"self driving\" OR \"autonomous driving\" OR driverless OR Robotaxi OR Robotruck OR Waymo OR \"Pony AI\" OR \"Tesla Robotaxi\" OR Cybercab OR WeRide OR Zoox OR Aurora\n\nDomains: site:bloomberg.com OR site:cnbc.com OR site:reuters.com OR site:techcrunch.com OR site:theverge.com OR site:wired.com OR site:wsj.com OR site:axios.com OR site:arstechnica.com OR site:x.com\n\n| Source | Notes |\n|--------|-------|\n| bloomberg.com | 财经通讯社 |\n| cnbc.com | 财经/科技 |\n| reuters.com | 通讯社 |\n| techcrunch.com | 科技/交通 |\n| theverge.com | 科技 |\n| wired.com | 科技深度 |\n| wsj.com | 财经 |\n| axios.com | 政策/商业 |\n| arstechnica.com | 科技深度 |\n| x.com | 社交媒体（官方/爆料）|\n\n**Processing**: Deduplicate results across all channels (RSS + Reddit + Brave). Filter by 24h freshness (Brave `freshness:day` handles most, but verify publish dates on ambiguous items).\n\n⛔ **Brave 时间验证强制规则**：Brave 的 `published` 字段对中文媒体（尤其36kr）可能使用重新抓取时间而非真实发布时间。每条搜索结果的发布时间必须在引用前确认真实性——无法确认具体发布日期的条目直接丢弃，标注 `⚠️ 时间存疑已丢弃`。\n\n**Data source status**:\n```\n数据源状态：\n- Brave Search: ✅ N条中文 + N条英文\n- Google News RSS: ✅ N条中文 + N条英文\n- RSS 直抓: ✅ X篇（TechCrunch/Wired/Verge/Ars）\n- Reddit: ✅ X篇\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.2.2\",\n  \"publishedAt\": 1778959448077\n}\n\nArchive v4.2.1: 2 files, 6299 bytes\n\nFiles: SKILL.md (12124b), _meta.json (136b)\n\nFile v4.2.1:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 0a: Google News RSS Scan (MANDATORY — free, minute-level aggregation)\n\nGoogle News RSS aggregates all sources with near-zero latency. No API key, no rate limit. Split into 4 searches of 5 OR terms each (Google News degrades with >5 OR terms).\n\n```bash\n# GN1: Chinese industry + Waymo + Pony.ai\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6+OR+%E6%97%A0%E4%BA%BA%E9%A9%BE%E9%A9%B6+OR+Robotaxi+OR+Waymo+OR+%E5%B0%8F%E9%A9%AC%E6%99%BA%E8%A1%8C&hl=zh-CN&gl=CN\"\n\n# GN2: Chinese companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E6%96%87%E8%BF%9C%E7%9F%A5%E8%A1%8C+OR+%E8%90%9D%E5%8D%9C%E5%BF%AB%E8%B7%91+OR+%E7%99%BE%E5%BA%A6+Apollo+OR+%E7%A6%BE%E8%B5%9B+OR+%E5%9C%B0%E5%B9%B3%E7%BA%BF&hl=zh-CN&gl=CN\"\n\n# GN3: English industry\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=robotaxi+OR+%22self+driving%22+OR+%22autonomous+driving%22+OR+Waymo+OR+%22Pony+AI%22&hl=en-US&gl=US\"\n\n# GN4: English companies\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%22Tesla+Robotaxi%22+OR+Cybercab+OR+WeRide+OR+Zoox+OR+Aurora&hl=en-US&gl=US\"\n```\n\nParse each with Python: extract `<title>`, `<link>`, `<pubDate>`, `<source>`. Filter by 24h freshness using `<pubDate>`. Google News links are redirects — resolve in Step 3.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Brave Search (2 calls — Chinese + English)\n\nUse Brave Search API with `freshness:day` (past 24h) and `site:` domain filters. Two parallel searches cover all relevant sources with zero manual filtering.\n\n**Search 1 — 中文媒体（必须用 search_lang: \"zh-hans\"）**:\n\nKeywords: 自动驾驶 OR 无人驾驶 OR Robotaxi OR Robotruck OR Waymo OR 小马智行 OR 文远知行 OR 萝卜快跑 OR WeRide OR \"Pony AI\" OR 百度 Apollo OR 禾赛 OR 地平线 OR 智驾\n\nDomains: site:36kr.com OR site:cls.cn OR site:wallstreetcn.com OR site:latepost.com OR site:jiemian.com OR site:thepaper.cn OR site:finance.sina.com.cn OR site:21jingji.com OR site:nbd.com.cn\n\n| Source | Notes |\n|--------|-------|\n| 36kr.com | 科技/创投深度 |\n| cls.cn | 财联社快讯 |\n| wallstreetcn.com | 华尔街见闻 |\n| latepost.com | 晚点LatePost深度 |\n| jiemian.com | 界面新闻 |\n| thepaper.cn | 澎湃新闻 |\n| finance.sina.com.cn | 新浪财经 |\n| 21jingji.com | 21世纪经济报道 |\n| nbd.com.cn | 每日经济新闻 |\n\n**Search 2 — 英文媒体**:\n\nKeywords: \"self driving\" OR \"autonomous driving\" OR driverless OR Robotaxi OR Robotruck OR Waymo OR \"Pony AI\" OR \"Tesla Robotaxi\" OR Cybercab OR WeRide OR Zoox OR Aurora\n\nDomains: site:bloomberg.com OR site:cnbc.com OR site:reuters.com OR site:techcrunch.com OR site:theverge.com OR site:wired.com OR site:wsj.com OR site:axios.com OR site:arstechnica.com OR site:x.com\n\n| Source | Notes |\n|--------|-------|\n| bloomberg.com | 财经通讯社 |\n| cnbc.com | 财经/科技 |\n| reuters.com | 通讯社 |\n| techcrunch.com | 科技/交通 |\n| theverge.com | 科技 |\n| wired.com | 科技深度 |\n| wsj.com | 财经 |\n| axios.com | 政策/商业 |\n| arstechnica.com | 科技深度 |\n| x.com | 社交媒体（官方/爆料）|\n\n**Processing**: Deduplicate results across all channels (RSS + Reddit + Brave). Filter by 24h freshness (Brave `freshness:day` handles most, but verify publish dates on ambiguous items).\n\n⛔ **Brave 时间验证强制规则**：Brave 的 `published` 字段对中文媒体（尤其36kr）可能使用重新抓取时间而非真实发布时间。每条搜索结果的发布时间必须在引用前确认真实性——无法确认具体发布日期的条目直接丢弃，标注 `⚠️ 时间存疑已丢弃`。\n\n**Data source status**:\n```\n数据源状态：\n- Brave Search: ✅ N条中文 + N条英文\n- Google News RSS: ✅ N条中文 + N条英文\n- RSS 直抓: ✅ X篇（TechCrunch/Wired/Verge/Ars）\n- Reddit: ✅ X篇\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.2.1\",\n  \"publishedAt\": 1778959373771\n}\n\nArchive v4.2.0: 2 files, 6666 bytes\n\nFiles: SKILL.md (12927b), _meta.json (136b)\n\nFile v4.2.0:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 0a: Google News RSS Scan (MANDATORY — runs second, zero API key)\n\nGoogle News RSS provides minute-level news aggregation across all sources. No API key, no rate limit. Two feeds — Chinese and English.\n\n```bash\n# English: robotaxi keywords\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=robotaxi+OR+Waymo+OR+%22self+driving%22+OR+%22Pony+AI%22+OR+WeRide+OR+Zoox+OR+Cruise&hl=en-US&gl=US&ceid=US:en\" | python3 -c \"\nimport sys, re, html as h\nfrom datetime import datetime, timedelta, timezone\ntext = sys.stdin.read()\ncutoff = datetime.now(timezone.utc) - timedelta(hours=24)\n# Extract items\nitems = re.findall(r'<item>(.*?)</item>', text, re.DOTALL)\nfor i, item in enumerate(items):\n    t = re.search(r'<title>([^<]+)</title>', item)\n    d = re.search(r'<pubDate>([^<]+)</pubDate>', item)\n    l = re.search(r'<link>([^<]+)</link>', item)\n    s = re.search(r'<source[^>]*>(.*?)</source>', item)\n    if t and d and l:\n        try:\n            dt = datetime.strptime(d.group(1), '%a, %d %b %Y %H:%M:%S %Z').replace(tzinfo=timezone.utc)\n            if dt < cutoff: break\n            title = h.unescape(t.group(1))\n            link = l.group(1)\n            source = s.group(1) if s else ''\n            print(f'{title}|{link}|{source}|{d.group(1)}')\n        except: pass\n\"\n\n# Chinese: 自动驾驶 keywords\ncurl -sL --max-time 10 \"https://news.google.com/rss/search?q=%E8%87%AA%E5%8A%A8%E9%A9%BE%E9%A9%B6+OR+Robotaxi+OR+%E5%B0%8F%E9%A9%AC%E6%99%BA%E8%A1%8C+OR+%E6%96%87%E8%BF%9C%E7%9F%A5%E8%A1%8C+OR+%E8%90%9D%E5%8D%9C%E5%BF%AB%E8%B7%91&hl=zh-CN&gl=CN&ceid=CN:zh-Hans\" | python3 -c \"\n# Same parser as above\n... (identical python script)\n\"\n```\n\n**Processing**: Extract title + source + URL + timestamp. Filter by 24h freshness using `<pubDate>`. Google News URLs are redirects (`news.google.com/rss/articles/...`) — these will be resolved in Step 3.\n\n**What this catches**: Breaking news from all sources that Google indexes — Bloomberg, CNBC, Reuters, local media, blogs — typically within minutes of publication. Complements Brave's domain-limited precision with breadth and speed.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Brave Search (2 calls — Chinese + English)\n\nUse Brave Search API with `freshness:day` (past 24h) and `site:` domain filters. Two parallel searches cover all relevant sources with zero manual filtering.\n\n**Search 1 — 中文媒体（必须用 search_lang: \"zh-hans\"）**:\n\nKeywords: 自动驾驶 OR 无人驾驶 OR Robotaxi OR Robotruck OR Waymo OR 小马智行 OR 文远知行 OR 萝卜快跑 OR WeRide OR \"Pony AI\" OR 百度 Apollo OR 禾赛 OR 地平线 OR 智驾\n\nDomains: site:36kr.com OR site:cls.cn OR site:wallstreetcn.com OR site:latepost.com OR site:jiemian.com OR site:thepaper.cn OR site:finance.sina.com.cn OR site:21jingji.com OR site:nbd.com.cn\n\n| Source | Notes |\n|--------|-------|\n| 36kr.com | 科技/创投深度 |\n| cls.cn | 财联社快讯 |\n| wallstreetcn.com | 华尔街见闻 |\n| latepost.com | 晚点LatePost深度 |\n| jiemian.com | 界面新闻 |\n| thepaper.cn | 澎湃新闻 |\n| finance.sina.com.cn | 新浪财经 |\n| 21jingji.com | 21世纪经济报道 |\n| nbd.com.cn | 每日经济新闻 |\n\n**Search 2 — 英文媒体**:\n\nKeywords: \"self driving\" OR \"autonomous driving\" OR driverless OR Robotaxi OR Robotruck OR Waymo OR \"Pony AI\" OR \"Tesla Robotaxi\" OR Cybercab OR WeRide OR Zoox OR Cruise OR Aurora\n\nDomains: site:bloomberg.com OR site:cnbc.com OR site:reuters.com OR site:techcrunch.com OR site:theverge.com OR site:wired.com OR site:wsj.com OR site:axios.com OR site:arstechnica.com OR site:x.com\n\n| Source | Notes |\n|--------|-------|\n| bloomberg.com | 财经通讯社 |\n| cnbc.com | 财经/科技 |\n| reuters.com | 通讯社 |\n| techcrunch.com | 科技/交通 |\n| theverge.com | 科技 |\n| wired.com | 科技深度 |\n| wsj.com | 财经 |\n| axios.com | 政策/商业 |\n| arstechnica.com | 科技深度 |\n| x.com | 社交媒体（官方/爆料）|\n\n**Processing**: Deduplicate results across all channels (RSS + Reddit + Brave). Filter by 24h freshness (Brave `freshness:day` handles most, but verify publish dates on ambiguous items).\n\n⛔ **Brave 时间验证强制规则**：Brave 的 `published` 字段对中文媒体（尤其36kr）可能使用重新抓取时间而非真实发布时间。每条搜索结果的发布时间必须在引用前确认真实性——无法确认具体发布日期的条目直接丢弃，标注 `⚠️ 时间存疑已丢弃`。\n\n**Data source status**:\n```\n数据源状态：\n- Brave Search: ✅ N条中文 + N条英文\n- Google News RSS: ✅ N条中文 + N条英文\n- RSS 直抓: ✅ X篇（TechCrunch/Wired/Verge/Ars）\n- Reddit: ✅ X篇\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.2.0\",\n  \"publishedAt\": 1778958274231\n}\n\nArchive v4.1.1: 2 files, 5783 bytes\n\nFiles: SKILL.md (10772b), _meta.json (136b)\n\nFile v4.1.1:SKILL.md\n\n---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone\n```\n\n**What this catches**: Articles published on TechCrunch, The Verge, Wired, Ars Technica, and Reuters that mention robotaxi/autonomous driving keywords. This channel is **immune to web_search outages** — it's a direct HTTP request with no intermediate API.\n\n**Processing**: Extract title + source + URL for each match. These will later be combined with results from other channels and deduplicated before delta extraction.\n\n### Step 1: Reddit Scan\n\n```bash\ncurl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\"\n```\nExtract posts/permalinks related to Pony.ai or Waymo.\n\n### Step 2: Brave Search (2 calls — Chinese + English)\n\nUse Brave Search API with `freshness:day` (past 24h) and `site:` domain filters. Two parallel searches cover all relevant sources with zero manual filtering.\n\n**Search 1 — 中文媒体（必须用 search_lang: \"zh-hans\"）**:\n\nKeywords: 自动驾驶 OR 无人驾驶 OR Robotaxi OR Robotruck OR Waymo OR 小马智行 OR 文远知行 OR 萝卜快跑 OR WeRide OR \"Pony AI\" OR 百度 Apollo OR 禾赛 OR 地平线 OR 智驾\n\nDomains: site:36kr.com OR site:cls.cn OR site:wallstreetcn.com OR site:latepost.com OR site:jiemian.com OR site:thepaper.cn OR site:finance.sina.com.cn OR site:21jingji.com OR site:nbd.com.cn\n\n| Source | Notes |\n|--------|-------|\n| 36kr.com | 科技/创投深度 |\n| cls.cn | 财联社快讯 |\n| wallstreetcn.com | 华尔街见闻 |\n| latepost.com | 晚点LatePost深度 |\n| jiemian.com | 界面新闻 |\n| thepaper.cn | 澎湃新闻 |\n| finance.sina.com.cn | 新浪财经 |\n| 21jingji.com | 21世纪经济报道 |\n| nbd.com.cn | 每日经济新闻 |\n\n**Search 2 — 英文媒体**:\n\nKeywords: \"self driving\" OR \"autonomous driving\" OR driverless OR Robotaxi OR Robotruck OR Waymo OR \"Pony AI\" OR \"Tesla Robotaxi\" OR Cybercab OR WeRide OR Zoox OR Cruise OR Aurora\n\nDomains: site:bloomberg.com OR site:cnbc.com OR site:reuters.com OR site:techcrunch.com OR site:theverge.com OR site:wired.com OR site:wsj.com OR site:axios.com OR site:arstechnica.com OR site:x.com\n\n| Source | Notes |\n|--------|-------|\n| bloomberg.com | 财经通讯社 |\n| cnbc.com | 财经/科技 |\n| reuters.com | 通讯社 |\n| techcrunch.com | 科技/交通 |\n| theverge.com | 科技 |\n| wired.com | 科技深度 |\n| wsj.com | 财经 |\n| axios.com | 政策/商业 |\n| arstechnica.com | 科技深度 |\n| x.com | 社交媒体（官方/爆料）|\n\n**Processing**: Deduplicate results across all channels (RSS + Reddit + Brave). Filter by 24h freshness (Brave `freshness:day` handles most, but verify publish dates on ambiguous items).\n\n⛔ **Brave 时间验证强制规则**：Brave 的 `published` 字段对中文媒体（尤其36kr）可能使用重新抓取时间而非真实发布时间。每条搜索结果的发布时间必须在引用前确认真实性——无法确认具体发布日期的条目直接丢弃，标注 `⚠️ 时间存疑已丢弃`。\n\n**Data source status**:\n```\n数据源状态：\n- Brave Search: ✅ N条中文 + N条英文\n- RSS 直抓: ✅ X篇（TechCrunch/Wired/Verge/Ars）\n- Reddit: ✅ X篇\n```\n\n### Step 3: URL Resolution (Mandatory)\n\n`web_search` often returns Google News redirect URLs (`news.google.com/...`). Every URL must be resolved:\n\n```bash\ncurl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"URL\"\n```\n\n- Only keep resolved final-domain URLs (bloomberg.com, cnbc.com, etc.)\n- If resolution fails or returns 403/404/429: drop the link, note as `来源：媒体名（原文链接不可用）`\n- **Never fabricate or construct URLs**\n\n### Step 4: Delta Extraction (24-Hour Window — MANDATORY merge all files)\n\n**First**: List and read ALL saved reports from the past 24 hours:\n```bash\nls -t ~/.openclaw/workspace-group/memory/robotaxi_report_*.md | head -20\n```\n**Second**: Read every file, merge all covered events/topics into one baseline set.\n**Third**: Delta declaration MUST list compared files: `⚠️ Delta：vs 过去24h全部报告（共N份：0800.md, 2000.md）。12h增量：...`\n\n⛔ **严禁**：\n- 严禁只比\"上一版\"或\"最近一份\"\n- 严禁写\"vs 上一版\"——必须列出具体比对文件名\n- 严禁跳步：先 ls 再逐个 read，不能凭记忆\n\n**Why**: 0800 covers event A → 2000 skips A → next 0800 finds A again → MUST NOT flag as new. Merge-all prevents false increments from coverage gaps.\n\n**Strict delta filtering:**\n- Only report new facts, new data, or new sentiment not covered in ANY report from the past 24 hours\n- If the morning report covered something, do not repeat in the evening unless there is significant new development\n- If nothing new in the past 12 hours, output \"过去半天 Robotaxi 赛道无重大增量动态\"\n\n### Step 5: Save Report to Disk (MANDATORY — do NOT skip)\n\n**Before outputting the report to chat**, save it with `write`:\n```bash\nwrite ~/.openclaw/workspace-group/memory/robotaxi_report_YYYYMMDD_HHMM.md\n```\nThen delete files older than 24h:\n```bash\nfind ~/.openclaw/workspace-group/memory/ -name 'robotaxi_report_*.md' -mmin +1440 -delete\n```\n⛔ If the file write fails, do NOT deliver the report — fix and retry.\n\n### Step 6: Generate & Output Briefing\n\nProduce a focused, sharp incremental briefing with:\n- Delta baseline: load ALL `memory/robotaxi_report_*.md` within 24h, merge covered events (from Step 4)\n- Delta header MUST list compared files, e.g. `⚠️ Delta：vs 24h全部报告（共3份：0515_0800, 0515_2000, 0516_0800）`\n- Competitive comparisons and media insights\n- Every citation must include the resolved final URL from Step 3\n- Use delta labels: `🔴 [增量更新]` for new facts, `⚪ [跟进报道]` for repeats\n\n## Report Format\n\n### Delta Overview\n\nStart with a timeline summary of the reporting window and number of incremental items found.\n\n### Core Increments\n\nGroup by topic/company, each item with:\n- Headline with delta label\n- Source with resolved URL\n- Brief competitive context\n\n### Zero-Delta Confirmation Table\n\nList all monitored dimensions with status against previous report:\n- Pony.ai, Baidu Apollo, Waymo, Tesla, Zoox, Cruise\n- Chinese tech media (财联社/36氪/晚点/华尔街见闻)\n\n### Key Calendar\n\nPriority-ranked upcoming events for the sector.\n\n### Core Judgment\n\nSynthesize the narrative shift in the past window with forward-looking implications.\n\n## Formatting Rules\n\n- **Language**: All output in Chinese\n- **Feishu**: Avoid tables if any cell exceeds 8 Chinese characters (mobile line-wrapping issue). Use lists, bold, emoji instead. Tables OK only for short cells (numbers, short labels ≤ 4 chars).\n- **Direct output**: Output the report body directly. OpenClaw handles delivery. Do NOT use `message` tool.\n- **No `<think>` tags**: Avoid any internal reasoning output to save tokens.\n- **No standalone stock price section**: Do NOT include a \"📈 股价\" section in every report. Stock prices should only appear when there is specific news that the price movement helps contextualize (e.g., \"股价暴涨 15% 回应昨晚的合作公告\"). A generic end-of-day price table with no news hook is noise — drop it.\n- **Links must be bare URLs**: Feishu does not support `[text](url)` Markdown link syntax — links will disappear. Correct format: `🔗 https://example.com/article`, NOT `[🔗](https://example.com/article)`. Feishu auto-linkifies bare URLs.\n\n## Anti-Hallucination Rules\n\n- Pony.ai / Baidu / Waymo financial data, stock prices, license/permit status: must have at least one credible source for cross-verification\n- Do not regurgitate AI-generated content farm articles\n- Time verification: post-market data cannot appear in intraday reports\n- All rules in MEMORY.md Section 8 (source credibility) and Section 10 (report publishing requirements) apply\n\nFile v4.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"4.1.1\",\n  \"publishedAt\": 1778957531641\n}","readmeExcerpt":"Skill: Robotaxi Briefing Owner: yangzhe1991 Summary: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm... Tags: latest:6.1.0 Version history: v6.1.0 | 2026-07-20T15:58:38.869Z | user Fix: Add shell safety rules to Step 3 URL Resolution — forbid for/while loops which caused cron exec failures v6.0.1 | 2026-05-17","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone"},{"language":"bash","snippet":"curl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\""},{"language":"bash","snippet":"curl -s https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15 -H \"User-Agent: my-agent/1.0\""},{"language":"bash","snippet":"# English sources — direct page pulls (no search API needed)\nweb_fetch https://techcrunch.com/category/transportation/\nweb_fetch https://www.theverge.com/transportation\nweb_fetch https://arstechnica.com/cars/\nweb_fetch https://www.reuters.com/technology/autos-transportation/\n\n# Chinese sources — direct page pulls\nweb_fetch https://36kr.com/search/articles/robotaxi\nweb_fetch https://www.cls.cn/searchPage?keyword=robotaxi"},{"language":"text","snippet":"数据源状态：\n- web_search: ✅ 可用 / ❌ 不可用 (reason)\n- RSS 直抓: ✅ X篇 / ❌ 失败\n- web_fetch 直拉: ✅ X篇 / ❌ 跳过\n- Reddit: ✅ X篇 / ❌ 失败\n- X/Twitter: ✅ X条 / ❌ 跳过"},{"language":"bash","snippet":"curl -sIL -o /dev/null -w \"%{url_effective}\\n\" \"SINGLE_URL_HERE\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: robotaxi-briefing\ndescription: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily incremental briefings with real source URLs, delta extraction against previous reports, and competitive landscape analysis.\n---\n\n# Robotaxi & Autonomous Driving Briefing\n\nGenerates twice-daily (08:00 / 20:00 CST) incremental intelligence briefings for the autonomous driving and Robotaxi sector, focusing on Pony.ai, Waymo, Tesla, and Baidu Apollo.\n\n## Core Rules\n\n- **24-Hour Freshness**: Every news article included **MUST** have been published within the last **24 hours** from report generation time. Since reports are generated twice daily, any article older than 24h has already been covered — discard immediately.\n\n## Core Targets\n\n- **Pony.ai (小马智行)** — primary Chinese Robotaxi ADR\n- **Waymo** — global leader, expansion and safety events\n- **Tesla Robotaxi** — Cybercab, FSD progress, regulatory\n- **Baidu Apollo (百度萝卜快跑)** — Chinese competitor\n- Others: Zoox, Cruise, Aurora, WeRide as relevant\n\n## Execution Pipeline\n\n### Step 0: RSS Fast Scan (MANDATORY — runs first, zero external API dependency)\n\nDirectly curl RSS feeds from 5 major English tech media sources. This is a pure HTTP channel — no API key, no search provider, works even when `web_search` is down.\n\n```bash\n#!/bin/bash\n# Robotaxi RSS fast scan — 5 English tech media RSS feeds\n# Output format: TITLE | SOURCE | URL | DATE\n\nKEYWORDS='robotaxi|waymo|zoox|aurora|cruise|self-driving|autonomous|cybercab|pony.ai|weride|baidu.apollo|driverless|FSD|teleoperator|teleoperation'\n\nfeeds=(\n  \"TechCrunch|https://techcrunch.com/feed/\"\n  \"The Verge|https://www.theverge.com/rss/index.xml\"\n  \"Wired|https://www.wired.com/feed/rss\"\n  \"Ars Technica|https://arstechnica.com/feed/\"\n  \"Reuters Tech|https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech\"\n)\n\nfor entry in \"${feeds[@]}\"; do\n  IFS='|' read -r name url <<< \"$entry\"\n  items=$(curl -sL --max-time 15 -H \"User-Agent: Mozilla/5.0\" \"$url\" 2>/dev/null | \\\n    python3 -c \"\nimport sys, re, xml.etree.ElementTree as ET\ndata = sys.stdin.read()\n# Try RSS 2.0\nroot = ET.fromstring(data)\nns = {'content': 'http://purl.org/rss/1.0/modules/content/'}\nfor item in root.iter('item'):\n    title = (item.find('title').text or '') if item.find('title') is not None else ''\n    link = (item.find('link').text or '') if item.find('link') is not None else ''\n    pubdate = (item.find('pubDate').text or '') if item.find('pubDate') is not None else ''\n    print(f'{title}|{link}|{pubdate}')\n\" 2>/dev/null)\n  \n  if [ -z \"$items\" ]; then\n    echo \"  ⚠️ $name: RSS fetch failed or empty\"\n    continue\n  fi\n  \n  count=0\n  while IFS='|' read -r title link pubdate; do\n    if echo \"$title\" | grep -qiE \"$KEYWORDS\"; then\n      echo \"  ✅ $name | $title | $link\"\n      count=$((count+1))\n    fi\n  done <<< \"$items\"\n  echo \"  📊 $name: $count robotaxi-related articles found\"\ndone"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn78vdzmqbjydjhqr4vtgqdyks822wys\",\n  \"slug\": \"robotaxi-briefing\",\n  \"version\": \"6.1.0\",\n  \"publishedAt\": 1784563118869\n}"},{"path":"skill-card.md","content":"## Description:\n\nTrack autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yangzhe1991](https://clawhub.ai/user/yangzhe1991)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees and external analysts use this skill to produce twice-daily incremental briefings on autonomous driving and robotaxi market developments. It focuses on fresh public-source reporting, prior-report delta comparison, source URL resolution, and competitive context.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Briefings depend on public web, RSS, Reddit, and social-search sources that can be incomplete, stale, or misleading.\n\nMitigation: Require 24-hour freshness, resolved source URLs, source status reporting, and cross-verification for financial, licensing, permit, and safety-sensitive claims.\n\nRisk: The workflow writes report files and removes old matching robotaxi report files in the OpenClaw memory directory.\n\nMitigation: Review the configured memory path and cleanup pattern before deployment, especially in shared or restricted environments.\n\nRisk: The skill includes shell examples for direct public-source fetching and URL resolution.\n\nMitigation: Review shell execution policy before installation and follow the skill's single-command URL-resolution guidance in environments that restrict shell access.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/yangzhe1991/skills/robotaxi-briefing)\n- [Publisher profile](https://clawhub.ai/user/yangzhe1991)\n- [TechCrunch RSS feed](https://techcrunch.com/feed/)\n- [The Verge RSS feed](https://www.theverge.com/rss/index.xml)\n- [Wired RSS feed](https://www.wired.com/feed/rss)\n- [Ars Technica RSS feed](https://arstechnica.com/feed/)\n- [Reuters technology feed](https://www.reutersagency.com/feed/?taxonomy=best-sectors&post_type=best&best-sectors=tech)\n- [SelfDrivingCars Reddit feed](https://www.reddit.com/r/SelfDrivingCars/new.json?limit=15)\n- [Reuters autos and transportation](https://www.reuters.com/technology/autos-transportation/)\n- [36Kr robotaxi search](https://36kr.com/search/articles/robotaxi)\n- [CLS robotaxi search](https://www.cls.cn/searchPage?keyword=robotaxi)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, guidance]\n\n**Output Format:** [Chinese Markdown briefing with bare source URLs]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes 24-hour delta comparison, source status reporting, resolved final-domain URLs, and scoped local report retention guidance.]\n\n## Skill Version(s):\n\n6.1.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm... Skill: Robotaxi Briefing Owner: yangzhe1991 Summary: Track autonomous driving and Robotaxi sector intelligence with Pony.ai, Waymo, Tesla Robotaxi, and Baidu Apollo as core targets. Generates twice-daily increm... Tags: latest:6.1.0 Version history: v6.1.0 | 2026-07-20T15:58:38.869Z | user Fix: Add shell safety rules to Step 3 URL Resolution — forbid for/while loops which caused cron exec failures v6.0.1 | 2026-05-17","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1192,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:07:39.265Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:36:54.663Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}