Install
openclaw skills install @miaoshou.dev/cdc-data一句话获取中国疾控官方健康报告 自动定位、核验并提取中国疾控中心发布的五类官方报告,包括流感周报、急性呼吸道监测周报、新冠月报及国内外传染病风险评估。 支持最新一期或指定周期查询,自动识别 HTML、PDF 和附件型报告,提取正文、表格与关键指标,并严格限制在中国疾控官方来源。 使用简单:“帮我查找最新一期中国 CDC 流感周报”
openclaw skills install @miaoshou.dev/cdc-dataLocate one official report, verify its identity and carrier, then perform only the action the user requested.
Users can ask Codex:
For a precise request, use this template:
查找 {year} 年第 {week} 周中国 CDC 流感周报,并返回:
- 官方页面 URL
- PDF URL
- 年份、周次、期号
- 本地下载路径(如果已下载)
https://www.chinacdc.cn/.vision > extract > download > locate; default to locate.Read references/source-registry.md, select one source, then read only its linked adapter.
influenza_weeklyrespiratory_weeklycovid_monthlyglobal_infectious_risk_monthlychina_public_health_risk_monthlyIf the type remains ambiguous, return the matching choices. Only influenza supports issue-number lookup.
| Carrier | Reports | Locate result |
|---|---|---|
html_with_pdf | influenza | detail page and PDF |
html | respiratory, COVID-19 | detail page |
pdf | global risk, China risk | direct PDF |
For HTML-only reports, do not search for or create a PDF.
references/matching-rules.mdreferences/report-schema.mdreferences/output-schema.md and references/artifact-schema.mdreferences/pdf-extraction-rules.mdreferences/vision-task-rules.mdreferences/metric-schema.mdreferences/source-schema.mdNormalize applicable fields:
report_type, year, week, month, issue_number, publish_date,
reference_date, latest, action, output_format
latest, inspect all valid records on the first list page; prefer highest issue for influenza, otherwise reporting period then publication date.not_found only after a complete healthy search; technical failures are not absence.For locate, download, and native extract, prefer the single-process runner:
python3 scripts/fetch_report.py \
--report-type <id> (--latest | --year <year> (--week <week> | --month <month>)) \
[--issue <issue>] --action <locate|download|extract>
It keeps one browser-session lifecycle, routes HTML and PDF carriers without unneeded work, reuses valid extraction artifacts, manages extract-only PDFs in an automatically cleaned temporary directory, and prints only a compact result. The verification and fallback requirements below still apply.
index_url; assert the final host, allowed path, and index_marker.title_pattern.下一页, 尾页, or numeric links), tracking visited canonical URLs. Search at most eight list pages.latest.If browser startup, navigation, timeout, final URL, marker, or carrier verification fails, record the failed assertion and use ordinary HTTP only as a read-only page-access fallback. Apply the same host, path, title, content-type, and nonempty-body checks. Never learn or persist a replacement route.
For html_with_pdf, verify the detail heading and at least one allowed official PDF link. For html, verify the detail heading and set document_url=null. For pdf, verify the list title and direct allowed PDF URL, set detail_url=null, and use the index URL as Referer.
Save a PDF only when the user explicitly requests a download. Transfer verified bytes only with:
python3 scripts/download_official_document.py \
--url <verified-pdf-url> \
--referer <verified-detail-or-index-url> \
--allowed-path-prefix <adapter-prefix> \
--report-type <id> --year <year> (--week <week> | --month <month>) \
[--issue <issue>] --output-dir <artifact-directory>
Accept only downloader JSON with status=success. The downloader owns redirects, URL scope, Referer, PDF validation, SHA-256, atomic writes, reuse, and collisions.
For PDF extraction without explicit download, use the same downloader in a task-temporary directory and delete that directory after success or failure. Do not transfer PDF bytes with browser controls, Base64, screenshots, or ad hoc curl.
artifacts/<report-id>/extracted.json.content. Do not save HTML, DOM, or snapshots.references/pdf-extraction-rules.md and process the local verified PDF directly into one extracted.json.requires_vision=true and add only its page number to vision_pages.Use vision only when explicitly requested, only on relevant entries already listed in vision_pages, and update the same extracted.json. Keep failed pages listed; mark estimated chart values approximate=true. Do not persist rendered intermediates.
Compare reports only when explicitly requested and after checking methodology, population, geography, denominator, unit, and period compatibility.
Return concise text by default: status, title, period, issue, publication date, verified URLs, match method, warnings, saved paths, and permitted next actions.
Use one status: success, invalid_query, ambiguous, not_found, search_budget_exceeded, source_unavailable, browser_unavailable, tool_environment_error, detail_unverified, artifact_store_unavailable, download_failed, extraction_partial, vision_budget_exceeded, or internal_error.