Skill: lodligos/intel-briefing (version 1.5.3)

--- name: intel-briefing description: "全域情报简报生成系统。手动触发，从多信源采集、评分、去重、输出HTML情报简报。覆盖国际形势、AI应用、社会民生、潮流热点四大分类。触发词：情报简报、早报、午报、晚报、推送简报、生成简报、daily briefing。" --- # Intel Briefing — 全域情报简报生成系统 手动触发的情报简报生成工具。从多信源采集信息，经评分、去重、排序后输出 HTML 简报。 --- ## 一、工具链 ### 核心原则 **搜索优先使用 OpenClaw 内置搜索能力（如 Kimi），抓正文用 `web_fetch`。不依赖任何外部 CLI 工具。** ### 工具分工 | 工具 | 用途 | 调用方式 | |------|------|---------| | **web_fetch** | **P0信源正文抓取（财联社/36氪）** | OpenClaw内置工具，extractMode=text | | OpenClaw 内置搜索 | 搜索引擎查询（中英文均可） | 直接在对话中搜索 | ### 环境兼容性 本 Skill 设计为零外部依赖，可在以下环境运行： - ✅ OpenClaw 本地 TUI（内置搜索 + Bash 工具） - ✅ OpenClaw 云端（内置搜索 + Bash 工具） - ✅ 任何支持 OpenClaw 的环境 **不需要安装：** `z-ai-web-dev-sdk`、`web-scraper-jina`、`multi-search-engine` 等外部包。 ### 搜索策略 **首选：OpenClaw 内置搜索** - 直接在对话中提出搜索请求，OpenClaw 会调用配置的搜索 provider（如 Kimi） - 中文搜索质量优秀，适合中文情报采集 - 无需任何额外配置 **备选：web-search 技能** - 如果 OpenClaw 内置搜索不可用，尝试使用 `web-search` 技能 - `clawhub install web-search`（如需安装） --- ## 二、信源清单 ### P0 信源（每次必须采集） | 信源 | URL | 主方案 | 备用方案 | 说明 | |------|-----|--------|---------|------| | 财联社快讯 | `https://www.cls.cn/telegraph` | web_fetch | 搜索降级 | 财经快讯，信息密度最高 ✅ 已验证 | | 华尔街见闻 | `https://wallstreetcn.com` | 搜索降级 | - | JS渲染页面，仅支持搜索降级 | | 36氪快讯 | `https://36kr.com/newsflashes` | web_fetch | 搜索降级 | 科技/AI/创投 ✅ 已验证 | > **策略说明（2026-04-08更新）：** web_fetch对财联社和36氪提取质量优秀（质量9/10），设为主方案。华尔街见闻为JS渲染页面，web_fetch无法提取，保持搜索降级。每次推送时如web_fetch返回内容<200字符或质量不佳，立即搜索降级。 ### P1 信源（搜索降级） | 信源 | 降级搜索关键词 | 说明 | |------|---------------|------| | 路透社 | "路透社 最新 国际新闻" | 国际权威 | | 澎湃新闻 | "澎湃新闻 最新 社会热点" | 社会民生 | | 央视新闻 | "央视新闻 最新" | 官方权威 | ### P2 信源（补充采集，每次尝试） | 信源 | 采集方式 | 说明 | |------|---------|------| | 机器之心 | web_fetch / 搜索降级 | AI垂直深度，优先尝试web_fetch | | 量子位 | 搜索降级 | AI前沿 | | 虎嗅 | 搜索降级 | 科技商业分析 | | 新华社 | 搜索降级 | 官方政策信号 | **策略：** P2信源作为信息补充，每次推送时尝试采集。如时间/资源不足，优先保证P0+P1，P2可裁剪。 ### 热榜（每次至少搜索2个平台） | 平台 | 搜索关键词 | |------|-----------| | 微博热搜 | "微博热搜 今日" | | 知乎热榜 | "知乎热榜 今日" | | 百度热搜 | "百度热搜榜" | ### AI新闻（6维度搜索） 如果 `ai-news-collectors` 技能已安装，直接调用。否则用 OpenClaw 内置搜索按以下6维度搜索： | 维度 | 搜索关键词 | |------|-----------| | A: 周报聚合 | "AI weekly roundup [当前月份年份]" | | B: 社区热度 | "viral AI tool trending [当前月份]" | | C: 产品发布 | "AI model release launch [当前月份]" | | D: 融资并购 | "AI startup funding acquisition [当前年份]" | | E: 研究突破 | "AI research paper breakthrough [当前月份]" | | F: 开源趋势 | "AI open source trending GitHub [当前月份]" | --- ### 执行模式配置 根据场景选择执行策略： | 模式 | P1信源 | 补充搜索轮次 | 预估耗时 | 适用场景 | |:---|:---:|:---:|:---:|:---| | **质量优先** | 3个全搜 | 5轮 | 3-5min | 早间/晚间简报，深度阅读 | | **效率优先** | 2个（国际+社会） | 3轮 | 2-3min | 午间简报，快速获取要点 | | **紧急模式** | 1个（国际） | 1-2轮或跳过 | 1-2min | 重大事件即时推送 | **决策建议：** - AI类信息已由Step 2覆盖，P1信源可酌情跳过AI相关 - 早间/晚间选择质量优先，午间选择效率优先 - 紧急情况下仅保留P0+热榜 --- ## 三、执行流程 ### Step 1：读取记忆（去重基准 + 上次复盘验证） 1. 运行 `read_daily` 读取最近两天的日常笔记 2. 运行 `read_memory` 读取长期记忆 3. 在 daily 笔记中找到最近一次"简报复盘"段落，提取"下次执行待验证"列表 ### Step 2：AI新闻采集（必须首先执行） **优先调用 `ai-news-collectors` 技能**（如已安装）。 如未安装，用 OpenClaw 内置搜索按6维度搜索（见信源清单）。 ### Step 3：热榜搜索 用 OpenClaw 内置搜索获取至少2个平台的热搜榜单。 ### Step 4：P0信源采集 **主方案：web_fetch（财联社 + 36氪）** 使用OpenClaw内置 `web_fetch` 工具抓取（extractMode=text，maxChars=5000）： - `https://www.cls.cn/telegraph` — 财联社快讯 - `https://36kr.com/newsflashes` — 36氪快讯 **搜索降级（华尔街见闻 + web_fetch失败时）** - 华尔街见闻为JS渲染页面，web_fetch无法提取，直接搜索降级：`"华尔街见闻 最新 [当前日期]"` - 如财联社/36氪的web_fetch返回<200字符或质量不佳，搜索降级：`"财联社 最新 快讯 [当前日期]"` / `"36氪 最新 快讯 [当前日期]"` **降级规则：** - web_fetch返回<200字符或无实质内容 → 搜索降级 - 搜索结果质量不足 → 用更精确关键词重新搜索 - 两种方式均失败 → 在简报中标注该信源采集失败，不虚报内容 ### Step 5：P1信源降级搜索 用 OpenClaw 内置搜索搜索P1信源关键词。 **按第二章「执行模式配置」选择信源数量：** - 质量优先模式：3个全搜 - 效率优先模式：2个（国际+社会） - 紧急模式：1个（国际）或跳过 ### Step 6：补充搜索 根据已采集信息中的关键事件，补充搜索最新进展。 **按第二章「执行模式配置」选择轮次：** - 质量优先模式：最多5轮 - 效率优先模式：最多3轮 - 紧急模式：1-2轮或跳过 ### Step 7：分析、评分、输出 **去重分析（必须执行）：** 1. 读取上一版已推送内容（memory/YYYY-MM-DD.md） 2. 逐条对比，标注每条状态： - 🆕 **新增**：上一版未出现 - 📰 **更新**：已报事件有新进展 - ⏸️ **维持**：已报事件无新变化（仅在文末简要回顾） - ❌ **移除**：重要性下降或已被覆盖 3. 仅保留 🆕 和 📰 的条目在正文，⏸️ 移入文末"此前已报" **评分与排序：** 4. 按评分体系评分，每类内按综合评分降序排列 5. 生成 HTML 简报（按 template.html 模板格式） 6. 保存到 download 目录 ### Step 8：更新记忆 运行 `edit_daily` 更新当日笔记，记录已推送内容摘要。 ### Step 9：执行复盘 按复盘规则（第九章）记录本次执行情况，通过 `edit_daily` 追加到当日笔记。 --- ## 四、评分体系 综合评分 = 影响力(40%) + 敏感度(30%) + 热度(30%)，每项满分100，加权求和。 > 完整评分规则及置信度体系见 [references/scoring.md](references/scoring.md) --- ## 五、去重规则 ### 基础去重 1. **同一事件的新事实**（新战果、新声明、新数据、新反转）→ 视为新进展，纳入简报 2. **同一事实的不同媒体报道** → 视为重复，不重复纳入 3. **已报事件无新进展** → 不重复提及 4. **去重基准**：读取最近一次简报的 daily 笔记 ### 更新版去重（同日多次推送） 当同一天多次生成简报时，更新版必须严格执行以下规则： 1. **逐条对比上一版已推送内容**，明确标注每条状态： - 🆕 **新增**：上一版未出现过的事件 - 📰 **更新**：已报事件有新进展（展开新事实，不重复旧内容） - ⏸️ **维持**：已报事件无新变化，仅在文末简短回顾（1句话以内） - ❌ **移除**：已报事件重要性下降或已被后续事件覆盖 2. **不允许整份重写**：更新版应聚焦增量信息，而非把上一版内容重新排版 3. **短间隔更新（<2h）**：只报真正有新进展的事件，其余一律移入文末"此前已报"区域，不超过3行 4. **新增/更新的条目综合评分应重新计算**，反映最新情况 --- ## 六、输出规范 ### 文件命名 - 存档版：`intel-briefing_YYYYMMDD_HHMM.html`（如 `intel-briefing_20260408_1900.html`） - 最新版副本：`intel-briefing.html`（每次推送覆盖） > 注：统一用实际时间 HH:MM 标识，时区标注为"北京时间" ### 保存路径 **使用 OpenClaw 的 download 目录**（通常是 `{项目目录}/download/`）。 - 云端环境：`/home/z/my-project/download/` - 本地环境：由 OpenClaw 自动管理的 download 目录 > **注意：** 不要硬编码绝对路径。使用相对路径 `download/` 或让 OpenClaw 自动管理文件位置。 > **QQ 通道特殊要求：** 推送前需将文件复制到 `~/.openclaw/media/qqbot/` 目录，否则 `<qqmedia>` 标签会被拒绝。 ### 输出格式 - **必须为 HTML 网页**（移动端优先深色主题） - 参考模板：`references/template.html` - 页面结构：吸顶导航 → 日期栏 → 分类筛选标签 → 四类统计卡片 → 分类信息卡片列表 → Agent结论 → 页脚 ### 卡片设计 每条信息生成一个可折叠卡片，包含： - 排名编号（1-5 不同颜色） - 标题 - 标签行（状态标签 + 置信度标签 + 风险标签 + 信源标签） - 综合评分 - 展开后显示详情 ### 标签布局规范 标签统一放在标题下方，顺序为： ``` [标题] [状态标签] [置信度标签] [风险标签] [信源标签] [信源标签...] [综合评分] ``` ### 状态标签规范 | 标签 | CSS类 | 样式 | 用途 | |:---:|:---|:---|:---| | **NEW** | `.tag-new` | 蓝色文字，无背景 | 新增条目 | | **UPD** | `.tag-update` | 橙色文字，无背景 | 更新条目 | | 等级 | CSS类 | 样式 | |:---:|:---|:---| | **5/5** | `.tag-conf` | 绿色渐变，50%透明度+投影 | | **4/5** | `.tag-conf-mid` | 蓝色渐变，50%透明度+投影 | | **3/5** | `.tag-conf-3` | 黄色渐变，50%透明度+投影 | | **2/5** | `.tag-conf-low` | 橙色渐变，50%透明度+投影 | | **1/5** | `.tag-conf-low` | 橙色渐变，50%透明度+投影 | ### 风险标签使用规范 | 风险等级 | 标签类名 | 使用场景 | 视觉效果 | |---------|---------|---------|---------| | **高风险** | `.risk-inline` | 军事冲突、战争威胁、重大安全事件 | 红色纯色背景，90%透明度 | | **中风险** | `.risk-mid-inline` | 政策变动、市场波动、社会不稳定 | 橙色纯色背景，90%透明度 | | **信息风险** | `.risk-info-inline` | 可能存在议程设置、情绪操控、标题党 | 黄色纯色背景，90%透明度 | **何时标注：** - 军事冲突/武装对抗（敏感度评分+30）→ 使用 `risk-inline` - 重大政策转向/经济危机 → 使用 `risk-mid-inline` - 可能存在议程设置、情绪操控的信息 → 使用 `risk-info-inline` - 标题党/夸张表述、单一信源的重大事件、明显情绪煽动性语言 → 使用 `risk-info-inline` - 缺乏数据支撑的健康/安全警告 → 使用 `risk-info-inline` **高风险卡片样式：** - 添加 `risk-high` 类到 `.item` 元素 - 显示2px红色边框+红色发光阴影 - 在标签行中使用 `<span class="risk-inline">⚠ 风险描述</span>` **中风险卡片样式：** - 添加 `risk-mid` 类到 `.item` 元素 - 显示2px橙色边框+橙色发光阴影 - 在标签行中使用 `<span class="risk-mid-inline">⚠ 风险描述</span>` ### 推送方式 **根据当前通道自动选择推送方式：** | 通道 | 推送方式 | 操作 | |------|---------|------| | QQ (qqbot) | 只发送HTML文件 | 使用 `<qqmedia>绝对路径</qqmedia>` 标签，**不附带任何文字** | | 其他/未知 | 保存文件+回复摘要 | 保存到download目录，回复文字摘要 | **QQ通道重要规则：** - 只发送 `<qqmedia>` 标签，**不要附带任何文字说明** - 文字内容会导致文件推送失败 - 文件路径必须为绝对路径 - 过程信息写入当日 daily 笔记，不在聊天中输出 ### 内容深度规范 **卡片详情（item-body-inner）必须包含以下维度：** | 维度 | 要求 | 示例 | |------|------|------| | **核心事实** | 必须 | 美伊谈判延长一天，12日上午继续 | | **关键数据** | 尽量提供 | 谈了14个小时、互换175名战俘 | | **背景信息** | 必须 | 巴基斯坦斡旋、美国副总统万斯延长停留 | | **涉及方/人物** | 必须 | 伊朗外交部发言人巴加埃、内塔尼亚胡 | | **影响分析** | 重要事件需包含 | 资产解冻与霍尔木兹海峡通航直接相关 | | **后续展望** | 如有提及 | 谈判是否成功取决于对方诚意 | **内容长度标准：** - 每条详情不少于 **3-5句话**，约80-150字 - 高分事件（评分≥85）应达到 **5-8句话**，约150-250字 - 不允许只写一句话的简单描述 ### 省略规则 - **省略"与以往简报的对比"段落**，直接报新增信息 - **不省略卡片详情内容**，确保信息完整 --- ## 七、输出前自检清单 每次推送输出前**逐项确认**： - [ ] ai-news-collectors 已调用（如已安装），或6维度搜索已完成 - [ ] 四个分类都有内容（或明确标注"无重大新增"） - [ ] 每条信息综合评分≥45 - [ ] 每条信息包含置信度标签（1-5） - [ ] **每条信息详情≥3句话，高分事件（≥85）≥5句话** - [ ] 关键数据已提取（时间、金额、人数等） - [ ] 背景信息已补充（涉及方、历史背景） - [ ] 每类内按评分降序排列 - [ ] 去重：逐条对比 daily_log 中已报事件（更新版需标注每条状态） - [ ] 人名注释完整（非全球顶级知名人物均需注释） - [ ] 风险预警标注 - [ ] P0信源已采集（web_fetch或搜索降级） - [ ] 输出格式为 HTML - [ ] 文件已保存到 download 目录 - [ ] 文件名包含日期（存档版）且更新了最新版副本 - [ ] 通过当前通道发送文件（QQ用qqmedia标签，其他环境回复摘要） - [ ] edit_daily 已更新当日笔记 --- ## 八、推送失败处理 - 如果推送过程中断（工具调用超限、抓取大面积失败等），**必须输出一条告警信息**告知用户本次推送未完成 - 记录失败原因到当日 daily 笔记，供下次推送参考 - **自动续接**：中断后自动继续执行直至完成，不等待用户发送"继续" --- ## 九、复盘机制 ### 复盘频率 - **前20次推送**：每次复盘 - **之后**：每天复盘（当天最后一次推送时记录） ### 复盘内容 每次复盘记录以下内容（通过 `edit_daily` 写入当日笔记）： 1. **自检清单达标情况**（14项表格） 2. **信源采集统计**（有效信源数/总数） 3. **未达标项分析**（问题/严重级/根因/改进措施） 4. **下次执行待验证列表** ### 问题分级 | 级别 | 定义 | 处理方式 | |------|------|---------| | 致命 | 导致核心功能无法执行 | 立即修复，下次执行前必须验证 | | 严重 | 影响信息质量或覆盖度 | 当次记录，下次执行前修复 | | 一般 | 体验优化类问题 | 积累后批量修复 | ### 迭代闭环 ``` 推送执行 → 自检清单 → 复盘记录 → 问题分级 → 自动修复 → 下次执行验证 ↑ | └────────────────────────────────────────────────────────┘ ``` **关键规则：** 1. 复盘记录写入 `edit_daily`（当日笔记），不写入长期记忆 2. 致命级问题的修复措施**必须**标注"下次执行待验证" 3. 下次执行时，**必须**先读取上一次复盘记录，逐项验证待验证项 4. 连续3次同一问题未修复 → 升级为致命级，暂停简报生成并告警用户 --- ## 十、依赖技能 | 技能 | 用途 | 必要性 | 安装命令 | |------|------|--------|---------| | `ai-news-collectors` | AI新闻6维度聚合 | 推荐（未安装时用搜索替代） | `clawhub install ai-news-collectors` | --- ## 十一、架构审查与版本管理 > 完整触发条件框架、审查清单、效率评估及清理规范见 [references/architecture-review.md](references/architecture-review.md) --- --- ## 十二、版本管理规范 > 完整 SemVer 规则及发布 checklist 见 [references/version-management.md](references/version-management.md) --- ## 十三、版本历史 > 完整版本历史见 [references/version-history.md](references/version-history.md) **最近更新：** | 版本 | 日期 | 核心变更 | |------|------|------| | 1.5.3 | 2026-04-12 | 内容深度规范：详情≥3句话、高分事件≥5句话 | | 1.5.2 | 2026-04-12 | 移除定时任务 | | 1.5.1 | 2026-04-10 | 架构审查清理 | | 1.5.0 | 2026-04-10 | 效率评估框架 | | 1.4.0 | 2026-04-09 | 信源可用性验证通过 |

path: CRON_SETUP.md
content: # 简报系统定时任务配置

## 配置方法

由于 Gateway 需要配对，请使用以下方法之一配置定时任务：

### 方法一：通过 OpenClaw Web 界面配置

1. 打开 OpenClaw Web 界面
2. 进入 Cron/定时任务管理
3. 创建以下三个任务：

#### 早间简报（07:00）
- **名称**: intel-briefing-morning
- **Cron 表达式**: `0 7 * * *`
- **触发方式**: System Event
- **事件名称**: `EXECUTE_INTEL_BRIEFING_MORNING`

#### 午间简报（12:00）
- **名称**: intel-briefing-noon
- **Cron 表达式**: `0 12 * * *`
- **触发方式**: System Event
- **事件名称**: `EXECUTE_INTEL_BRIEFING_NOON`

#### 晚间简报（19:00）
- **名称**: intel-briefing-evening
- **Cron 表达式**: `0 19 * * *`
- **触发方式**: System Event
- **事件名称**: `EXECUTE_INTEL_BRIEFING_EVENING`

### 方法二：命令行配置（Gateway 配对后）

配对完成后，运行以下命令：

```bash
# 早间简报
openclaw cron create \
  --name intel-briefing-morning \
  --cron "0 7 * * *" \
  --system-event "EXECUTE_INTEL_BRIEFING_MORNING" \
  --session main

# 午间简报
openclaw cron create \
  --name intel-briefing-noon \
  --cron "0 12 * * *" \
  --system-event "EXECUTE_INTEL_BRIEFING_NOON" \
  --session main

# 晚间简报
openclaw cron create \
  --name intel-briefing-evening \
  --cron "0 19 * * *" \
  --system-event "EXECUTE_INTEL_BRIEFING_EVENING" \
  --session main
```

### 方法三：手动执行（推荐先测试）

在 HEARTBEAT.md 中添加检查逻辑，或手动发送消息触发简报生成：

触发词：
- `情报简报`
- `早报` / `午报` / `晚报`
- `daily briefing`

## Prompt 文件位置

- 早间: `~/.openclaw/workspace/skills/intel-briefing/references/cron-morning.md`
- 午间: `~/.openclaw/workspace/skills/intel-briefing/references/cron-noon.md`
- 晚间: `~/.openclaw/workspace/skills/intel-briefing/references/cron-evening.md`

## 输出位置

简报 HTML 文件将保存到：`~/my-project/download/`
- 存档版: `intel-briefing_YYYYMMDD_时段.html`
- 最新版: `intel-briefing.html`


path: _meta.json
content: ownerId: kn7ehz3d1gkj6jztn7ys0fw11d84cvqm
slug: intel-briefing
version: 1.1.0
publishedAt: 1775540526724

path: references/architecture-review.md
content: ## 十一、架构审查与版本管理

### 一、触发条件框架

架构审查和版本更新采用统一的触发决策框架：

| 场景 | 版本变更 | 架构审查 | 说明 |
|:---|:---:|:---:|:---|
| **重大架构重构** | Major ↑ | 🔴 强制 | 更换底层引擎、核心流程重写 |
| **功能/体系新增** | Minor ↑ | 🔴 强制 | 新增信源层级、标签样式重构、效率框架 |
| **算法/评分调整** | Minor ↑ | 🔴 强制 | 权重变更、新增评分维度 |
| **信源策略调整** | Patch/Minor | 🟡 建议 | P0信源更换、新增降级策略 |
| **连续3次推送异常** | - | 🟡 建议 | 排查系统性问题 |
| **Bug修复/文档补全** | Patch ↑ | 🟢 可选 | CSS错误、URL更新、笔误修正 |
| **小版本迭代** | Patch ↑ | 🟢 可选 | 无结构变更可跳过 |

**决策原则：**
- 任何导致输出格式变化或新功能引入的变更 → Minor + 强制审查
- 仅修复或微调不改变结构的变更 → Patch + 可选审查
- 底层架构变动 → Major + 强制审查

### 二、审查清单

| 检查项 | 方法 | 预期结果 |
|:---|:---|:---|
| **SKILL规则完整性** | 逐章阅读，检查逻辑闭环 | 无规则冲突、无遗漏 |
| **模板一致性** | 对比第六章（输出规范）和`references/template.html` | 所有标签类（tag-conf/risk-info等）都有CSS定义 |
| **信源可用性** | 实际测试web_fetch/搜索降级 | P0/P1/P2信源按优先级分层可用 |
| **自检清单覆盖** | 模拟一次完整推送 | 所有关键步骤都有检查项 |
| **效率评估** | 分析各步骤耗时，优化瓶颈 | 总耗时控制在合理范围 |

### 模板一致性核对表

SKILL中定义的输出元素，必须在模板中有对应实现：

| SKILL定义 | 模板CSS类 | 样式说明 |
|:---|:---|:---|
| 置信度5/5 | `.tag-conf` | 绿色渐变，50%透明度+投影 |
| 置信度4/5 | `.tag-conf-mid` | 蓝色渐变，50%透明度+投影 |
| 置信度3/5 | `.tag-conf-3` | 黄色渐变，50%透明度+投影 |
| 置信度1-2/5 | `.tag-conf-low` | 橙色渐变，50%透明度+投影 |
| 高风险标签 | `.risk-inline` | 红色纯色，90%透明度 |
| 中风险标签 | `.risk-mid-inline` | 橙色纯色，90%透明度 |
| 信息风险标签 | `.risk-info-inline` | 黄色纯色，90%透明度 |
| 高风险卡片 | `.risk-high` | 2px红色边框+红色发光阴影 |
| 中风险卡片 | `.risk-mid` | 2px橙色边框+橙色发光阴影 |
| 信息风险卡片 | `.risk-info` | 2px黄色边框+黄色发光阴影 |
| 新增标签(NEW) | `.tag-new` | 蓝色文字，无背景 |
| 更新标签(UPD) | `.tag-update` | 橙色文字，无背景 |
| 信源标签 | `.tag-source` | 深色背景+边框 |
| 标签行容器 | `.item-badges` | flex布局，gap:6px |

**审查频率：** 每次大版本变更（v1.x→v1.y+1）后强制审查。

### 效率评估

#### 基准测试数据（v1.5.0架构审查）

| 步骤 | 内容 | 耗时 | 占比 | 质量影响 |
|:---|:---|:---:|:---:|:---:|
| **Step 1** | SKILL规则完整性审查 | ~13s | 14% | 高 |
| **Step 2** | 模板一致性审查 | ~33s | 34% | 高 |
| **Step 3** | 信源可用性测试 | ~38s | 39% | 高 |
| **Step 4** | 自检清单验证 | ~13s | 13% | 中 |
| **总计** | - | **~97s** | 100% | - |

#### 执行流程耗时分析（实际推送）

| 步骤 | 操作 | 基准耗时 | 占比 | 优化空间 |
|:---|:---|:---:|:---:|:---|
| **Step 2** | AI新闻采集（6维度） | 30-60s | 25% | **中** - 可并行 |
| **Step 3** | 热榜搜索（2平台） | 15-30s | 12% | **低** - 已精简 |
| **Step 4** | P0信源采集 | 10-20s | 10% | **低** - web_fetch快 |
| **Step 5** | P1信源降级搜索 | 20-40s | 18% | **高** - 可裁剪 |
| **Step 6** | 补充搜索（5轮） | 50-120s | **35%** | **高** - 可减少轮次 |
| **其他** | 分析/评分/输出 | 10-20s | 10% | **低** - 本地处理 |
| **总计** | - | **135-310s** (2.5-5min) | - | - |

#### 优化建议

**核心原则：** 信源覆盖度与生成速度的平衡

优化策略详见第二章「执行模式配置」。关键优化点：
- **Step 6 补充搜索**：质量优先5轮 / 效率优先3轮
- **Step 5 P1信源**：质量优先3个全搜 / 效率优先2个（国际+社会）
- **Step 2 AI新闻**：可并行3维度搜索

#### 监控指标

每次推送记录以下指标，用于持续优化：

```
[效率指标]
- 总耗时: X秒
- 搜索调用次数: X次
- web_fetch成功率: X%
- 信源覆盖: P0(X/2) P1(X/3) P2(X/N)

[质量指标]
- 条目总数: X条
- 平均评分: X分
- 高风险事件数: X条
- 新增/更新/维持比例: X/X/X
```

### 三、版本升级清理检查

每次版本升级后，执行以下三类检查，确保文档清洁：

#### 1. 版本升级残留无效信息检测

| 检查项 | 检测方法 | 本Skill典型案例 |
|:---|:---|:---|
| **废弃工具引用** | 搜索已废弃的工具名称 | r.jina.ai、curl、早期CLI工具 |
| **过时方案描述** | 检查备用方案是否已失效 | 「curl代理抓取」作为备用但已废弃 |
| **历史版本残留** | 检查自检清单/表格中的过时项 | 「搜索或Jina」但Jina已移除 |
| **已废弃配置** | 检查配置项是否仍被引用 | 早期信源URL、已下线服务 |
| **过时策略描述** | 检查策略说明是否匹配当前 | 「Jina备用」但实际已完全废弃 |

**常见残留模式：**
- ❌ 表格中仍列已废弃工具
- ❌ 描述中提及已移除的降级方案
- ❌ 版本历史中保留过时技术细节
- ❌ 自检清单包含已不存在的检查项

#### 2. 冗余信息检测

| 检查项 | 检测方法 | 本Skill典型案例 |
|:---|:---|:---|
| **重复表格/描述** | 对比不同章节的相似内容 | 第二章和第十二章的效率配置表格重复 |
| **过度详细的早期版本** | 检查版本历史长度 | v1.0.0-v1.2.0描述过长，可精简 |
| **重复提醒/注释** | 搜索相同提示的多处出现 | 「模板同步提醒」在第五章和第十二章重复 |
| **可引用的配置分散** | 检查是否可集中管理 | Step 5/6各自描述模式配置，可引用第二章 |
| **过时最佳实践** | 检查是否仍适用当前版本 | 早期优化建议已被新机制替代 |

**常见冗余模式：**
- ❌ 两个章节有相同的配置表格
- ❌ 版本历史中早期版本过于详细
- ❌ 多处重复相同的决策建议
- ❌ 分散描述可集中管理的配置

#### 3. 可优化/精简逻辑检测

| 检查项 | 检测方法 | 本Skill典型案例 |
|:---|:---|:---|
| **章节结构优化** | 检查章节间逻辑关系 | 工具链相关章节可合并（已优化） |
| **配置集中管理** | 检查分散的模式配置 | 执行模式配置已集中至第二章 |
| **表格简化** | 检查表格是否过于复杂 | 华尔街见闻描述已简化 |
| **逻辑一致性** | 检查描述与实际是否一致 | 「备用方案」列实际不存在时已移除 |
| **版本历史精简** | 检查早期版本是否可压缩 | 建议仅保留最近3个版本详细描述 |

**常见优化模式：**
- ✅ 分散配置 → 集中管理章节
- ✅ 重复表格 → 引用统一配置
- ✅ 过长描述 → 精简核心要点
- ✅ 复杂分级 → 简化决策逻辑

**v1.5.3更新成果：**
- ✅ 新增第六章「内容深度规范」
- ✅ 规定详情≥3句话、高分事件（≥85）≥5句话
- ✅ 自检清单增加内容深度检查项
- ✅ 要求详情包含：核心事实/关键数据/背景信息/涉及方/影响分析


path: references/scoring.md
content: ## 四、评分体系

综合评分 = 影响力(40%) + 敏感度(30%) + 热度(30%)，每项满分100，加权求和。

### 影响力（权重40%）

| 条件 | 分值 |
|------|------|
| 涉及大国博弈/全球格局 | +30 |
| 影响全球经济/金融市场 | +20 |
| 影响区域稳定 | +20 |
| 仅行业级影响 | +5 |

### 敏感度（权重30%）

| 条件 | 分值 |
|------|------|
| 军事冲突/武装对抗 | +30 |
| 重大人事变动（国家级/巨头级） | +20 |
| 政策转向 | +25 |
| 一般动态/常规新闻 | +5 |

### 热度（权重30%）

| 条件 | 分值 |
|------|------|
| 多平台热搜同时出现 | +30 |
| 权威信源头条/置顶 | +20 |
| 社交媒体讨论度高 | +15 |
| 仅垂直领域关注 | +5 |

### 评分规则

- 同一信息可叠加多个条件，单项不超过100
- 综合评分低于45的信息不报
- 单类信息超过5条时，去除评分低于50的
- 每类内按综合评分降序排列

### 置信度评分规则

每条信息根据信源可靠性和交叉验证情况，评定1-5级置信度：

| 等级 | 定义 | 条件 |
|------|------|------|
| 5/5 确认 | 事实清晰，可信度最高 | 多个权威信源交叉验证，信息一致 |
| 4/5 较高 | 基本可信，细节待确认 | 权威信源报道，但部分细节尚未得到多方印证 |
| 3/5 中等 | 方向正确，但不够确定 | 信源可靠但单一，或多个信源表述存在出入 |
| 2/5 较低 | 参考价值有限 | 非权威信源，或存在明显矛盾说法 |
| 1/5 存疑 | 不可轻信 | 转载链不完整，或信源有明显议程设置嫌疑 |

- 置信度作为独立标签显示在卡片中，与综合评分分开
- 置信度低于2/5的信息标注「风险信息」标签


path: references/template.html
content: <!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cloud情报简报 · YYYY-MM-DD HH:MM</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{background:#0d1117;color:#c9d1d9;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;line-height:1.7;padding:0;max-width:800px;margin:0 auto}
/* 吸顶导航 */
.sticky-nav{position:sticky;top:0;z-index:100;background:#161b22;border-bottom:1px solid #21262d;padding:10px 16px;display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sticky-nav::-webkit-scrollbar{display:none}
.nav-btn{flex-shrink:0;padding:5px 14px;border-radius:20px;font-size:.78em;border:1px solid #30363d;background:transparent;color:#8b949e;cursor:pointer;transition:all .2s}
.nav-btn:hover,.nav-btn.active{background:#1f6feb;color:#fff;border-color:#1f6feb}
/* 日期栏 */
.date-bar{text-align:center;padding:20px 16px 12px;border-bottom:1px solid #21262d}
.date-bar h1{font-size:1.4em;color:#58a6ff;margin-bottom:2px}
.date-bar .meta{font-size:.78em;color:#8b949e}
/* 统计卡片 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px}
.stat-card{background:#161b22;border:1px solid #21262d;border-radius:10px;padding:12px 8px;text-align:center}
.stat-num{font-size:1.5em;font-weight:700;margin-bottom:2px}
.stat-label{font-size:.7em;color:#8b949e}
.stat-intl .stat-num{color:#f85149}
.stat-ai .stat-num{color:#58a6ff}
.stat-soc .stat-num{color:#3fb950}
.stat-hot .stat-num{color:#f0883e}
/* 分类区块 */
.category{padding:0 16px 24px}
.cat-header{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-top:20px}
.cat-icon{font-size:1.2em}
.cat-title{font-size:1.1em;font-weight:600;color:#e6edf3}
.cat-count{font-size:.7em;color:#8b949e;background:#21262d;padding:2px 8px;border-radius:10px}
/* 信息卡片 */
.item{background:#161b22;border:1px solid #21262d;border-radius:10px;margin-bottom:10px;overflow:hidden;transition:border-color .2s}
.item.risk-high{border:2px solid #f85149;box-shadow:0 0 15px rgba(248,81,73,.25)}
.item.risk-mid{border:2px solid #f0883e;box-shadow:0 0 10px rgba(240,136,62,.15)}
.item.risk-info{border:2px solid #d29922;box-shadow:0 0 10px rgba(210,153,34,.15)}
.item-header{display:flex;align-items:flex-start;padding:12px 14px 0;gap:10px;cursor:pointer;user-select:none}
.item-rank{flex-shrink:0;width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.75em;font-weight:700;color:#fff}
.rank-1{background:#f85149}.rank-2{background:#f0883e}.rank-3{background:#d29922}.rank-4,.rank-5{background:#30363d}
.item-info{flex:1;min-width:0}
.item-title{font-size:.9em;font-weight:600;color:#e6edf3;line-height:1.4}
.item-score{font-size:.7em;color:#8b949e;margin-top:2px}
.item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tag{display:inline-block;font-size:.65em;padding:1px 6px;border-radius:8px;color:#8b949e;background:#21262d}
.tag-red{background:#3d1a1a;color:#f85149;border:1px solid #5a2d2d}
.tag-orange{background:#3d2a1a;color:#f0883e;border:1px solid #5a3d2d}
.tag-blue{background:#1a2a3d;color:#58a6ff;border:1px solid #2d3d5a}
.tag-green{background:#1a3d2a;color:#3fb950;border:1px solid #2d5a3d}
.tag-gray{background:#21262d;color:#8b949e;border:1px solid #30363d}
/* 状态标签 - 无背景 */
.tag-new{color:#58a6ff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700}
.tag-update{color:#f0883e;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700}
/* 置信度标签 - 渐变样式（50%透明度） */
.tag-conf{background:linear-gradient(135deg,rgba(35,134,54,.5),rgba(63,185,80,.5));color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700;box-shadow:0 2px 6px rgba(35,134,54,.3);text-shadow:0 1px 2px rgba(0,0,0,.2)}
.tag-conf-mid{background:linear-gradient(135deg,rgba(31,111,235,.5),rgba(88,166,255,.5));color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700;box-shadow:0 2px 6px rgba(31,111,235,.3);text-shadow:0 1px 2px rgba(0,0,0,.2)}
.tag-conf-3{background:linear-gradient(135deg,rgba(158,106,3,.5),rgba(210,153,34,.5));color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700;box-shadow:0 2px 6px rgba(158,106,3,.3);text-shadow:0 1px 2px rgba(0,0,0,.2)}
.tag-conf-low{background:linear-gradient(135deg,rgba(218,54,51,.5),rgba(248,81,73,.5));color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700;box-shadow:0 2px 6px rgba(218,54,51,.3);text-shadow:0 1px 2px rgba(0,0,0,.2)}
.item-toggle{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#484f58;font-size:.8em;transition:transform .2s}
.item-toggle.open{transform:rotate(180deg)}
.item-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
.item-body.open{max-height:2000px}
.item-body-inner{padding:8px 14px 14px;font-size:.83em;color:#8b949e;line-height:1.7}
.item-body-inner strong{color:#c9d1d9}
/* 风险标签 - 纯色背景（无阴影） */
.risk-inline{background:rgba(248,81,73,.9);color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700}
.risk-mid-inline{background:rgba(240,136,62,.9);color:#fff;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700}
.risk-info-inline{background:rgba(210,153,34,.9);color:#000;padding:1px 6px;border-radius:4px;font-size:.7em;font-weight:700}]}}
/* Agent结论 */
.conclusion{padding:0 16px 24px}
.conclusion-box{background:#161b22;border:1px solid #21262d;border-radius:10px;padding:16px}
.conclusion-box h3{color:#f0883e;font-size:1em;margin-bottom:12px}
.conclusion-box p{font-size:.85em;color:#8b949e;margin-bottom:10px;line-height:1.7}
.conclusion-box strong{color:#c9d1d9}
/* 标签行 - 放在标题下方 */
.item-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;margin-bottom:4px;align-items:center}
/* 信源标签 */
.tag-source{background:#21262d;color:#8b949e;padding:2px 8px;border-radius:4px;font-size:.72em;border:1px solid #30363d}
/* 页脚 */
.footer{text-align:center;padding:20px 16px;border-top:1px solid #21262d;font-size:.72em;color:#484f58;line-height:1.8}
/* 无新增 */
.no-new{text-align:center;padding:30px;color:#484f58;font-size:.9em}
</style>
</head>
<body>

<!-- 吸顶导航 -->
<nav class="sticky-nav" id="nav">
<button class="nav-btn active" onclick="filterCat('all')">全部</button>
<button class="nav-btn" onclick="filterCat('intl')">🌍 国际形势</button>
<button class="nav-btn" onclick="filterCat('ai')">🤖 AI应用</button>
<button class="nav-btn" onclick="filterCat('soc')">🏠 社会民生</button>
<button class="nav-btn" onclick="filterCat('hot')">🔥 潮流热点</button>
</nav>

<!-- 日期栏 -->
<div class="date-bar">
<h1>🔍 Cloud情报简报</h1>
<div class="meta">YYYY-MM-DD HH:MM 北京时间</div>
</div>

<!-- 统计卡片 -->
<div class="stats">
<div class="stat-card stat-intl"><div class="stat-num"><!-- SLOT:STAT_INTERNATIONAL --></div><div class="stat-label">国际形势</div></div>
<div class="stat-card stat-ai"><div class="stat-num"><!-- SLOT:STAT_AI --></div><div class="stat-label">AI应用</div></div>
<div class="stat-card stat-soc"><div class="stat-num"><!-- SLOT:STAT_SOCIAL --></div><div class="stat-label">社会民生</div></div>
<div class="stat-card stat-hot"><div class="stat-num"><!-- SLOT:STAT_TRENDING --></div><div class="stat-label">潮流热点</div></div>
</div>

<!-- ==================== 国际形势 ==================== -->
<div class="category" data-cat="intl">
<div class="cat-header">
<span class="cat-icon">🌍</span>
<span class="cat-title">国际形势</span>
<span class="cat-count"><!-- SLOT:COUNT_INTERNATIONAL --></span>
</div>
<!-- SLOT:CARDS_INTERNATIONAL -->
</div>

<!-- ==================== AI应用 ==================== -->
<div class="category" data-cat="ai">
<div class="cat-header">
<span class="cat-icon">🤖</span>
<span class="cat-title">AI应用</span>
<span class="cat-count"><!-- SLOT:COUNT_AI --></span>
</div>
<!-- SLOT:CARDS_AI -->
</div>

<!-- ==================== 社会民生 ==================== -->
<div class="category" data-cat="soc">
<div class="cat-header">
<span class="cat-icon">🏠</span>
<span class="cat-title">社会民生</span>
<span class="cat-count"><!-- SLOT:COUNT_SOCIAL --></span>
</div>
<!-- SLOT:CARDS_SOCIAL -->
</div>

<!-- ==================== 潮流热点 ==================== -->
<div class="category" data-cat="hot">
<div class="cat-header">
<span class="cat-icon">🔥</span>
<span class="cat-title">潮流热点</span>
<span class="cat-count"><!-- SLOT:COUNT_TRENDING --></span>
</div>
<!-- SLOT:CARDS_TRENDING -->
</div>

<!-- ==================== Agent 结论 ==================== -->
<div class="conclusion">
<div class="conclusion-box">
<h3>📊 Agent 结论与趋势研判</h3>
<!-- SLOT:CONCLUSION -->
</div>
</div>

<!-- 页脚 -->
<div class="footer">
Cloud · 全域情报简报 · 仅供参考，不构成投资建议<br>
数据来源：P0/P1/P2信源 | 生成时间：YYYY-MM-DD HH:MM 北京时间
</div>

<script>
function toggle(header){
  const body=header.parentElement.querySelector('.item-body');
  const arrow=header.querySelector('.item-toggle');
  body.classList.toggle('open');
  arrow.classList.toggle('open');
}
function filterCat(cat){
  document.querySelectorAll('.nav-btn').forEach(b=>b.classList.remove('active'));
  event.target.classList.add('active');
  document.querySelectorAll('.category').forEach(c=>{
    if(cat==='all'||c.dataset.cat===cat) c.style.display='';
    else c.style.display='none';
  });
}
</script>
</body>
</html>


path: references/version-history.md
content: ## 十三、版本历史

| 版本 | 日期 | 变更 |
|------|------|------|
| 1.0.0 | 2026-04-07 | 初始版本（硬编码 z-ai CLI） |
| 1.1.0 | 2026-04-07 | 移除 z-ai CLI 依赖，改用 OpenClaw 内置搜索；移除硬编码路径；移除 web-scraper-jina 依赖；提升环境兼容性 |
| 1.2.0 | 2026-04-08 | ①新增置信度评分规则 ②新增更新版去重规则 ③P0信源策略调整为搜索优先 ④更新实测结果表 ⑤自检清单增加置信度+去重+通道校验 ⑥推送方式通用化 ⑦实测表增加时间戳 |
| 1.3.0 | 2026-04-08 | ①P0信源改用web_fetch ②华尔街见闻搜索降级 ③模板样式同步 ④新增架构审查章节 ⑤启用P2信源 ⑥Step 7明确去重流程 ⑦简报格式统一：不区分早/午/晚，用实际时间HH:MM标识 ⑧文件命名统一格式 |
| 1.4.0 | 2026-04-09 | ①架构审查：模板一致性通过 ②信源可用性验证：P0财联社/36氪 web_fetch 正常 |
| 1.5.0 | 2026-04-10 | ①模板标签样式重构 ②置信度/风险标签样式优化 ③新增`.tag-conf-3`类 ④修复CSS重复定义 ⑤**重构第十一章**：整合架构审查与版本管理触发条件框架 ⑥新增效率评估章节（含决策矩阵） |
| **1.5.1** | **2026-04-10** | **架构审查清理**：①删除r.jina.ai过时内容 ②删除curl备用描述 ③修正P1信源标题 ④删除冗余模板提醒 ⑤简化复盘频率 ⑥删除废弃依赖说明 ⑦新增执行模式配置（第二章） ⑧优化Step5/6引用配置 |
| **1.5.2** | **2026-04-12** | **移除定时任务**：①删除第十一章「定时任务配置」②章节重新编号 ③更新头部描述 ④复盘机制移除自动推送相关描述 |
| **1.5.3** | **2026-04-12** | **内容深度规范**：①新增第六章「内容深度规范」②规定详情≥3句话、高分事件≥5句话 ③自检清单增加内容深度检查项 ④要求包含核心事实/关键数据/背景信息/涉及方/影响分析


path: references/version-management.md
content: ## 十二、版本管理规范

采用语义化版本控制（SemVer）：`MAJOR.MINOR.PATCH`

### 版本号变更规则

| 版本位 | 变更条件 | 典型场景 |
|:---:|:---|:---|
| **MAJOR** | 破坏性变更、架构重构、核心流程重写 | 更换底层采集引擎、评分体系完全重构 |
| **MINOR** | 新增功能、信源扩展、体系调整 | 新增信源层级、标签样式重构、效率评估框架 |
| **PATCH** | Bug修复、样式微调、文档补全 | 修复CSS错误、更新信源URL、补充说明 |

> **触发条件详见第十一章**「架构审查与版本管理」

### 版本发布 checklist

- [ ] 更新版本号（SKILL.md头部 + 版本历史）
- [ ] 更新版本历史（第十二章）
- [ ] 如为Minor/Major → 执行架构审查（第十一章）
- [ ] 如为Minor/Major → 更新模板一致性核对表
- [ ] 验证 template.html 存在


path: setup-cron.sh
content: #!/bin/bash
# 简报系统定时任务配置脚本

# 确保 download 目录存在
mkdir -p ~/my-project/download

# 输出配置说明
echo "=========================================="
echo "简报系统定时任务配置"
echo "=========================================="
echo ""
echo "需要在 OpenClaw 中手动创建以下三个 cron 任务："
echo ""
echo "1. 早间简报 - 每天 07:00"
echo "   名称: intel-briefing-morning"
echo "   表达式: 0 7 * * *"
echo "   Prompt 文件: ~/.openclaw/workspace/skills/intel-briefing/references/cron-morning.md"
echo ""
echo "2. 午间简报 - 每天 12:00"
echo "   名称: intel-briefing-noon"
echo "   表达式: 0 12 * * *"
echo "   Prompt 文件: ~/.openclaw/workspace/skills/intel-briefing/references/cron-noon.md"
echo ""
echo "3. 晚间简报 - 每天 19:00"
echo "   名称: intel-briefing-evening"
echo "   表达式: 0 19 * * *"
echo "   Prompt 文件: ~/.openclaw/workspace/skills/intel-briefing/references/cron-evening.md"
echo ""
echo "=========================================="
echo "创建命令示例:"
echo "openclaw cron create --name intel-briefing-morning --schedule '0 7 * * *' --prompt-file ~/.openclaw/workspace/skills/intel-briefing/references/cron-morning.md"
echo "=========================================="


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)