# 项目当前状态简报 ## 当前结论 当前仓库已经具备交付给 OpenClaw 的基础条件。 当前主链路是: `FreshRSS 未读 -> RSS 内容提取 -> LLM 总结 -> 规则过滤 -> OpenClaw delivery payload` OpenClaw 应通过 MCP 工具 `run_freshrss_openclaw_pipeline` 调用这条链路,而不是自行拼接脚本。 ## 当前已完成 - 已完成 FreshRSS `greader` API 接入与未读拉取 - 已完成 FreshRSS 条目到标准化 `item` 的映射 - 已完成 RSS-first 提取策略 - 已完成 LLM 总结与校验闭环 - 已完成规则引擎过滤 - 已完成 `ArticleCandidateRecord` 与 `OpenClawCandidateInput` 分层 - 已完成 `OpenClawDeliveryPayload` 批量投递结构 - 已完成 FreshRSS 已读状态回写 - 已完成“仅在最终 payload 成功写盘后再标记已读”的语义 - 已完成 MCP 工具 `run_freshrss_openclaw_pipeline` - 已完成默认精简输出模式,减少中间文件 - 已完成日报级 `keywords` 词元库与全局词频统计 - 已完成 `keyword-cleanup-review` skill 骨架与 review bundle 脚本 - 已完成低复杂治理层:`term_cleanup_policy` / `term_watchlist` / `term_change_log` - 已完成采纳建议写回脚本 `scripts/apply_term_suggestions.py` ## 当前 MCP 工具 当前服务入口: - `src/summary_mcp/server.py` 当前暴露的 MCP 工具: - `extract_url_content` - `extract_item_content` - `filter_summary_result` - `run_freshrss_openclaw_pipeline` 其中生产主入口是: - `run_freshrss_openclaw_pipeline` ## 当前关键文件 - MCP 服务入口 - `src/summary_mcp/server.py` - FreshRSS 统一工作流 - `src/summary_mcp/workflows/freshrss_pipeline.py` - 词元统计核心 - `src/summary_mcp/core/keyword_index.py` - 词元统计模型 - `src/summary_mcp/models/keyword_index.py` - 摘要循环 - `src/summary_mcp/core/summary_loop.py` - 提取主流程 - `src/summary_mcp/core/pipeline.py` - FreshRSS 集成 - `src/summary_mcp/integrations/freshrss.py` - 规则引擎 - `src/summary_mcp/filters/engine.py` - LLM 结果校验 - `src/summary_mcp/validators/llm_result.py` - OpenClaw candidate 模型 - `src/summary_mcp/models/article_candidate.py` - OpenClaw delivery 模型 - `src/summary_mcp/models/openclaw_delivery.py` - 生产脚本入口 - `scripts/run_freshrss_pipeline.py` - 词元统计重建脚本 - `scripts/build_keyword_index.py` - 词元清洗 skill - `skills/keyword-cleanup-review/SKILL.md` - skill review bundle 脚本 - `skills/keyword-cleanup-review/scripts/build_review_bundle.py` - 采纳建议写回脚本 - `scripts/apply_term_suggestions.py` - 清洗治理配置 - `configs/term_cleanup_policy.json` - `configs/term_watchlist.json` - `configs/term_change_log.json` - OpenClaw 交接说明 - `docs/openclaw/openclaw-handoff.md` ## 当前输出规则 默认生产模式只输出: - `raw/freshrss.raw.json` - `candidates/openclaw-delivery-payload.json` - `run-report.json` 同时会更新本地运行数据: - `data/term_index/daily/YYYY-MM-DD.json` - `data/term_index/term_stats.json` 如果需要词元清洗审阅输入,可额外生成: - `outputs/term_index/review/keyword-cleanup-bundle.json` 如果需要在人工确认后把建议正式写入 watchlist / change log,可使用: - `scripts/apply_term_suggestions.py` 如果需要排障,可开启: - `debug_artifacts=true` - 或脚本参数 `--debug-artifacts` 这样才会额外输出逐条中间文件。 ## 当前验证状态 已经验证通过: - FreshRSS 未读拉取成功 - 已读回写成功 - MCP 工具入口可直接触发完整链路 - 微信公众号样本可直接使用 RSS 提供的 `summary` 内容提取,不再回源抓网页 - 精简输出模式已实际跑通 - 日报级词元统计已通过离线样例验证,确认别名、停用词、非 `drop` 过滤和 rerun 覆盖逻辑正常 - `keyword-cleanup-review` skill 已通过 `quick_validate.py` 结构校验 - review bundle 脚本已实际跑通 - `apply_term_suggestions.py` 已通过 dry-run 与临时副本写回验证 ## 当前已知限制 - 当前对 FreshRSS 条目采用 RSS-first 策略,不再回源抓原网页 - 如果 RSS 中没有足够正文内容,该条会直接跳过,不会进入后续总结 - 某些规则仍偏保守,部分内容可能落到 `review` - `paywall` 相关启发式仍可能误判中文文本 - Webhook / 主动投递到 OpenClaw 外部接口尚未实现,当前是由 OpenClaw 通过 MCP 主动调用 - 词元清洗 skill 当前已支持“bundle 构建 -> 建议审阅 -> 人工确认写回 watchlist/change_log”,但尚未接入周期性调度 - 当前词元统计仍以前置 `OpenClawDeliveryPayload` 作为日报前代理输入,真实 `DailyDigest` 接入后还需切换上游 ## 当前最建议的交接阅读顺序 1. `README.md` 2. `docs/openclaw/openclaw-handoff.md` 3. `docs/openclaw/openclaw-candidate-input-field-spec.md` 4. `docs/openclaw/openclaw-delivery-payload-spec.md` 5. `docs/design/daily-keyword-index-design.md` 6. `skills/keyword-cleanup-review/SKILL.md` 7. `TODO.md` ## 一句话结论 当前仓库已经从“提取 MCP 原型”演进到“可供 OpenClaw 调用的 FreshRSS -> OpenClaw payload 上游处理器”,并已补上第一阶段的日报级词元统计能力和词元清洗 skill 骨架;后续重点转向 skill 周期调度、知识库状态流转和 webhook 接线。