跨境电商时政监控(kj-policy-radar)
为跨境电商从业者持续追踪多平台多市场的关税、法规、合规、地缘政治动态, 按 🔴/🟡/🟢 三级预警结构化落库,并产出 HTML 可视化日报。
何时使用
- 用户要求执行"时政监控 / 政策日报 / 政策扫描 / 预警监控"
- 用户给出 S1/S2/S3/S4 任一阶段指令,或要求更新"时政监控台账"
- 用户要求对某条跨境政策新闻做"核实 + 建卡"
不适用:单条新闻的临时翻译/总结(直接回答即可,不必走全流程)。
前置配置
运行时读取本技能目录下的 config.json(首次使用请从 config.example.json 复制修改):
| 字段 | 类型 | 说明 |
|---|---|---|
vault_path |
string | 知识库根目录(Obsidian vault 或普通文件夹) |
ledger |
string | 台账文件相对路径,如 S-实时政策/时政监控-台账.md |
report_dir |
string | 日报输出目录相对路径,如 S-实时政策/日报 |
report_timezone |
string | 日报时间戳时区标签,如 CST |
- 缺少 config.json 时:向用户询问 vault 根路径与台账相对位置,确认后再执行,不得猜测路径。
- 台账文件不存在时:按 references/framework.md 第五节的五区块结构初始化。
- 落位目录不存在时:按 总纲 → 落位规则 创建。
输入参数
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
mode |
full / quick / s1 / s2 / s3 / s4 | full | full=四阶段全跑;quick=只做 S1+摘要不落库;单阶段=只执行该阶段 |
date |
YYYY-MM-DD | 运行日 | 扫描基准日期 |
focus |
关键词/市场/平台列表 | 空 | 额外关注项,并入扫描关键词 |
dry_run |
bool | false | true 时只输出发现清单与摘要,不写台账、不建卡、不产日报 |
参数从用户自然语言解析;无法识别的参数取默认值并在执行摘要中声明(如"未指定 mode,按 full 执行"),不要反问打断。
执行流程(四阶段)
S1 信源扫描
按 references/sources.md 第七章聚合信源清单检索当日更新标题,
用关键词过滤(关税/税率/法规/合规/认证/反倾销/制裁/召回/禁令/配额/数据隐私/VAT/GST +
focus 关键词),命中条目与台账既有条目比对后登记待验证(编号 V-XXXX)。
信源打不开时按 sources.md 的"信源失效处理"降级并说明。
S2 深度核实
对命中条目逐条查官方原文(第一梯队信源优先,WebFetch 抓取原文), 确认生效日期/适用范围/过渡期,按 framework.md 的等级矩阵定级。 🔴 红色预警必须以官方原文为据,禁止仅凭媒体转述建卡。 已有政策的解读/进展并入既有条目备注,不重复建卡。
S3 建卡落库
对 🔴/🟡 用 assets/alert-template.md 建卡, 按 framework.md 落位规则写入知识库对应目录,建立双链关联, 台账同步为"已落库"并刷新统计面板。🟢 信息登记台账后按需建卡。 编号规则:M-XXXX(红黄)/ G-XXXX(绿)/ V-XXXX(待验证),均扫描台账现有最大号 +1,禁止复用。
S4 跟踪闭环
台账中"生效日 ≤ 7 天"的 🔴/🟡 条目在摘要中列倒计时提醒; 已过期条目状态改"归档"移入台账已归档区(不删原行)。
详细操作口径见 references/sop.md。
输出契约(每次执行固定 4 项)
- 台账更新:新增/更新条目 + 统计面板同步(dry_run 时跳过)
- 预警笔记:如有新 🔴/🟡,按模板落库(dry_run 时跳过)
- HTML 日报:
{report_dir}/policy_daily_YYYY-MM-DD.html,用 assets/policy_daily_template.html 填充全部{{占位符}}; RUN_N = 执行序号递增(同日重跑 +1;按"日报文件数+1"计会与执行次数错位 +1);优先用scripts/render_report.py渲染(见下) - 纯文本执行摘要(固定格式):
📡 时政监控日报 — YYYY-MM-DD
🔴 红色预警(N 条):逐条一句话
🟡 黄色预警(N 条):逐条一句话
🟢 绿色信息(N 条):逐条一句话
⏳ 待验证(N 条)
📦 今日落库笔记:列表
下 7 天即将生效:倒计时提醒
📊 HTML 日报:<相对路径>
机器可读摘要(可选,供自动化对接)
额外写出 {report_dir}/policy_summary_YYYY-MM-DD.json,结构:
{
"date": "YYYY-MM-DD",
"run_no": 27,
"counts": {"critical": 0, "warning": 0, "green": 0, "pending": 0},
"new_items": [{"id": "G-0109", "level": "green", "title": "...", "note_path": "..."}],
"ddl_7d": [{"date": "YYYY-MM-DD", "id": "M-0002", "name": "..."}],
"report_html": "S-实时政策/日报/policy_daily_YYYY-MM-DD.html"
}
用 render_report.py 渲染日报
模型负责生成各预警卡片的 HTML 片段(按模板内 .alert-item 结构与 .ddl-card 结构),
脚本负责确定性拼装。调用:
python scripts/render_report.py \
--template assets/policy_daily_template.html \
--summary <日报目录>/policy_summary_YYYY-MM-DD.json \
--cards <日报目录>/cards_YYYY-MM-DD.json \
--out <日报目录>/policy_daily_YYYY-MM-DD.html
summary.json:机器可读摘要,脚本从中读取date/weekday/run_no/counts{critical,warning,green}/ddl_7d[{date,countdown,cls,name}]/compare_items[]/action_groups[{group,count,tasks}]/headline/regions/sources/next_run/next_weekly/datetime(可选exchange_rate_section)cards.json:仅三个键{"critical": "<HTML>", "warning": "<HTML>", "info": "<HTML>"},值为按模板.alert-item结构生成的卡片 HTML 片段。卡片链接约定(v1.1 起):- 标题内嵌 Obsidian 跳转:
<a class="title-link" href="obsidian://open?vault=<vault名>&file=<URL编码落位路径(不带.md)">标题<span class="arr">↗</span></a>,路径取台账「落位笔记」列;HTML 属性中&必须写& - 原文外链:有核实完整 URL 的卡片加
<a class="chip src" href="..." target="_blank" rel="noopener">原文 ↗</a>;无可靠 URL 不加(笔记内「引用来源」兜底),禁止编造链接 - 合并卡(一条卡片覆盖多条目):标题跳主条目,第二条目用
<a class="chip" href="...">M-XXXX 笔记 ↗</a> - 焦点卡:今日/明日大限卡片加
featured类(模板含专属强调样式);未建卡条目(V-XXXX)回退obsidian://search?vault=<vault名>&query=<编号>
- 标题内嵌 Obsidian 跳转:
- 脚本不做任何政策判断,只做占位符替换;渲染后向用户报告输出路径。
边界与降级
- 无新增:仍产出日报(复述存量焦点 + DDL 倒计时),摘要标注"今日无新增"。
- 信源全部失效:输出"信源不可达"并列出已检查清单,不得编造条目。
- 日期敏感:所有"今天/明天"以运行日为准;跨日引用必须带绝对日期。
- 禁止破坏性操作:不删除台账历史记录;更正以追加"已修正"标注方式处理。
- dry_run 模式:只读台账 + 输出发现清单,不写任何文件。
参考文件
- references/framework.md — 维度/市场/等级/落位/编号/台账结构
- references/sources.md — 信源目录与失效处理
- references/sop.md — 四阶段详细操作口径与质检点
- assets/alert-template.md — 预警笔记建卡模板
- assets/policy_daily_template.html — 日报 HTML 模板
- scripts/render_report.py — 日报渲染脚本