Back to skills
SKILL.md
Legal Wechat Weekly
ASecurity法律人公众号助手(周报模式)。当用户提到「关注公众号 / 公众号监测 / 公众号有什么新文章 / 公众号简报 / 公众号周报 / 推荐公众号 / 该关注哪些法律公众号 / 对标账号 / 看看同行在发什么 / 公众号选题 / 添加公众号 / 我想看XX号 / 收藏公众号」时触发。五大能力:按执业方向推荐值得关注的法律公众号、每周从 212 个关注号中筛选实务文章并评分分层生成周报(支持每周一自动推送)、分析对标账号近期内容给出选题启发、手动添加自己喜欢的公众号到关注清单、根据用户反馈自动迭代优化。支持律师/法官/检察官/法务四种身份,高价值文章自动入库 IMA 知识库。每日追踪用「帮我看看公众号有什么新文章」手动跑。
- 9 stars
- 0 votes
- 0 copies
- 0 views
- Added September 25, 2026
Works with
Security analysis
100/100Pro scans all 12 files and shows the line behind each finding
npx -y skills add CSlawyer1985/legal-skillhub --skill legal-wechat-weekly --agent claude-codeAre you the author of Legal Wechat Weekly?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/cslawyer1985-legal-wechat-weekly)---
name: 法律公众号周报
description: "法律人公众号助手(周报模式)。当用户提到「关注公众号 / 公众号监测 / 公众号有什么新文章 / 公众号简报 / 公众号周报 / 推荐公众号 / 该关注哪些法律公众号 / 对标账号 / 看看同行在发什么 / 公众号选题 / 添加公众号 / 我想看XX号 / 收藏公众号」时触发。五大能力:按执业方向推荐值得关注的法律公众号、每周从 212 个关注号中筛选实务文章并评分分层生成周报(支持每周一自动推送)、分析对标账号近期内容给出选题启发、手动添加自己喜欢的公众号到关注清单、根据用户反馈自动迭代优化。支持律师/法官/检察官/法务四种身份,高价值文章自动入库 IMA 知识库。每日追踪用「帮我看看公众号有什么新文章」手动跑。"
agent_created: true
version: 4.1.1
---
# 法律公众号周报(周报模式)
## 概述
帮法律人解决五件事:**该关注哪些号**(推荐)、**关注的号发了什么**(监测+周报)、**同行在怎么做内容**(对标分析)、**随手收藏喜欢的号**(自定义添加)、**越看越准**(自动迭代)。数据获取走 WebSearch,零配置开箱即用。
核心交付:**每周一 08:00 自动扫描关注号近 7 天的新文章,按实务价值评分分层,生成浅色周报,高价值文章自动入库 IMA 知识库。**
解释器:优先用 `/Users/zouhao/.workbuddy/binaries/python/envs/default/bin/python`;脚本仅标准库,python3 ≥ 3.8 即可。
## 铁律
| 场景 | 必须遵守 | 不应发生 |
|------|---------|---------|
| 搜索结果 | 只写搜索到的真实文章;无把握的 url 留空;覆盖不到的账号标「未发现」 | 不应编造文章标题/链接/日期 |
| 推荐账号 | 推荐前用 WebSearch 核实账号当前仍活跃;告知「以微信内搜索为准」 | 不应保证推荐目录中的号一定存在 |
| 数据文件 | 只通过 `mpwatch.py` 子命令改 `assets/accounts.json` 与 `state/seen.json` | 不应手写/手改这两个 JSON(易写坏格式) |
| 推送 | 推送失败时降级为「保存文件 + 说明原因」 | 不应因推送失败中断简报生成 |
| IMA 知识库 | 仅限用户自建个人 KB,使用前确认归属 | 不应指引订阅/加入/接受邀请非自建 KB |
| 评分 | 每条入选文章必须给出评分理由(1-2 句) | 不应给空洞的「推荐阅读」式评价 |
| 反馈 | 用户反馈必须记录到 `state/feedback.json` 并影响后续评分 | 不应收集反馈但不使用 |
## 身份系统
支持四种法律职业身份,影响推荐账号、内容筛选和评分分层:
| 身份 | 核心需求 | 内容偏好 | 评分加成 |
|------|---------|---------|---------|
| **律师** | 办案参考、客户开发、技能提升 | 典型案例、裁判规则、实务技能、行业动态 | 实务技能+1 |
| **法官** | 类案参考、裁判统一、学术前沿 | 类案分析、裁判观点、学术理论、司法解释 | 学术理论+1 |
| **检察官** | 公诉参考、法律监督、政策把握 | 刑事案例、检察政策、证据规则、公诉技能 | 刑事案例+1 |
| **法务** | 合规管理、风险防控、合同审查 | 合规指南、合同审查、劳动用工、公司治理、数据合规 | 合规指南+1 |
身份在首次部署时选择,可随时用 `mpwatch.py profile --identity <身份>` 修改。
## 评分算法(五维评分 + 多样性约束 + 篇数可选)
每周从 212 个号中搜到的候选可能超过 150 篇,**用户可选 20 篇(轻量版)或 40 篇(完整版)**。算法分三步:评分 → 排序 → 截断。
### 篇数选择
| 版本 | 篇数 | 适合谁 | 阅读时间 |
|------|------|--------|---------|
| **轻量版** | 20 篇 | 时间紧张的律师/法务 | 10-15 分钟 |
| **完整版** | 40 篇 | 想全面了解一周动态 | 20-30 分钟 |
用户在首次部署时选择,也可随时用 `mpwatch.py profile --limit 20` 或 `--limit 40` 切换。
### 第一步:五维评分(每篇文章 1-17 分)
| 维度 | 权重 | 5 分 | 4 分 | 3 分 | 2 分 | 1 分 |
|------|------|------|------|------|------|------|
| **source_authority** | 5 | 最高法/最高检 | 省高院/知名学者 | 中院/头部律所 | 一般自媒体 | 无法确认 |
| **content_type** | 4 | 新司法解释/法律修订 | 裁判规则/指导性案例 | 典型案例分析 | 实务技能/方法论 | 行业动态/资讯 |
| **practice_match** | 3 | 执业方向+身份双匹配 | 执业方向匹配 | 身份匹配 | 通用实务 | 不相关 |
| **freshness** | 3 | 3 天内 | 5 天内 | 7 天内 | 超 7 天 | 无法确认 |
| **popularity_proxy** | 2 | 多平台转载/大号首发 | 单一来源但权威 | 一般来源 | 小众来源 | 无法确认 |
**总分 = 五维之和(1-17 分)**
> **popularity_proxy 说明**:WebSearch 拿不到真实阅读量,用以下代理指标估算:同一文章在多个搜索结果中出现(+2)、来源是 10 万+ 大号(+1)、被其他媒体转载(+1)。这些信号叠加,模拟「这篇文章正在被传播」的效果。
### 第二步:排序 + 多样性约束
按总分降序排列后,应用以下约束防止「一个号霸屏」:
- **单账号上限**:同一公众号最多入选 **2 篇**
- **单分类上限**:同一执业方向最多入选 **4 篇**
- **必须覆盖**:至少覆盖 **3 个不同执业方向**(如果候选足够)
### 第三步:截断 + 分档
**轻量版(20 篇):**
| 总分 | 档位 | 含义 | 占比 |
|------|------|------|------|
| 13-17 | ⭐ 必须看 | 直接影响办案 | ~5 篇 |
| 8-12 | 📌 值得看 | 有参考价值 | ~10 篇 |
| 5-7 | 📄 扫一眼 | 背景了解 | ~5 篇 |
| <5 | ❌ 淘汰 | 不推荐 | — |
**完整版(40 篇):**
| 总分 | 档位 | 含义 | 占比 |
|------|------|------|------|
| 13-17 | ⭐ 必须看 | 直接影响办案 | ~8 篇 |
| 8-12 | 📌 值得看 | 有参考价值 | ~20 篇 |
| 5-7 | 📄 扫一眼 | 背景了解 | ~12 篇 |
| <5 | ❌ 淘汰 | 不推荐 | — |
**篇数不足时按实际数量出,不注水。**
### 评分原则
- 每条入选文章必须有 1-2 句评分理由(为什么值得看)
- 评分理由中注明关键维度得分(如「source=5, content=4, 执业匹配=3」)
- 执业方向匹配的加 +1 档(如用户做建工,建工相关文章自动升级)
- 身份匹配的加 +1 档(如用户是法官,学术理论文章自动升级)
- 时间超过 7 天的 freshness=1,最多 📄
- 无法确认出处的 source=1,最多 📄
- **反馈加权**:历史 👍 多的来源 popularity_proxy+1,👎 多的 -1
## 工作流一:周报生成(核心)
触发语:「生成本周公众号周报」「公众号周报」「看看最近有什么实务文章」。
```
读清单 → 逐账号 WebSearch(近 7 天)→ 内容筛选 → 评分分层 → dedupe → render → IMA 入库 → 交付 → 收集反馈
```
1. 运行 `scripts/mpwatch.py list --json` 取 active 账号;文件不存在先 `init`。执业方向用 `profile` 读取,影响评分加成。
2. 逐账号 WebSearch,查询词模式:`"<账号名>" 公众号` + 时间词(如「近一周」「2026年7月」)。每个账号找近 7 天文章,搜不到就记「未发现」,不编造。
3. **内容筛选**:只收录与法律实务/法律适用直接相关的文章。符合以下任意一条即纳入:
- ✅ 典型案例/类案分析、裁判规则/裁判观点解读
- ✅ 新法新规/司法解释的条文解读与适用指引
- ✅ 实务技能/办案方法论(举证、庭审、谈判、文书等)
- ✅ 行业数据/司法统计/法律科技工具评测
- ✅ 法律风险提示/合规指南(面向企业/当事人视角)
以下内容**一律剔除**:
- ❌ 领导调研/视察/讲话、党建活动、政治学习
- ❌ 法院/检察院内部行政动态(如人事任免、表彰、运动会)
- ❌ 纯时政新闻(如防汛救灾、会议通稿)——除非其中包含可直接引用的法律适用观点
- ❌ 普法短文/宣传稿(无实务参考价值的口水文章)
4. **五维评分**:对每篇入选文章按五维算法打分(source_authority/content_type/practice_match/freshness/popularity_proxy),写 1-2 句评分理由并注明关键维度得分。执业方向匹配的升一档,身份匹配的升一档。
5. **排序截断**:按总分降序排列,应用多样性约束(单账号≤2篇,单分类≤4篇,覆盖≥3个方向),按 `profile` 中的 `weekly_limit` 截断(20 或 40 篇)。按总分分档:13-17=⭐, 8-12=📌, 5-7=📄, <5=淘汰。
5. 候选写 NDJSON 到临时文件,每行:`{"account","title","url","date","summary","score","score_reason"}`,account/title 必填,score 为 1-3(3=⭐, 2=📌, 1=📄)。
6. 去重:`scripts/mpwatch.py dedupe --input <候选文件> > /tmp/new.jsonl`。
7. 渲染:`scripts/mpwatch.py render --input /tmp/new.jsonl --out <输出.md>`。新增为 0 也照常渲染(写「本期无新增」)。
8. HTML:用 Python 脚本生成浅色周报 HTML(`#f8f7f5` 背景,评分分栏,⭐ 在最前),保存到工作区 `公众号周报-<日期>.html`。
9. IMA 入库:⭐ 和 📌 文章自动推送到 IMA 知识库(走 `references/ima-integration.md` 配置,未配置时跳过并说明)。
10. 用 present_files 交付;并在回复里附各账号覆盖情况 + 评分分布统计 + IMA 入库条数。
11. **收集反馈**:周报交付后,问用户「这期周报怎么样?哪些文章对你有用?」,记录到 `state/feedback.json`。
## 工作流〇:首次部署(初始化全流程)
触发语:「帮我做公众号监测」「设置公众号监控」「首次部署」「我想用这个技能怎么做」。
当用户首次使用本技能、或关注清单为空、或执业方向未设置时,执行此流程。
### 首次引导(自然对话式,不要机械问)
你是用户的法律同行,帮 ta 把这件事聊明白。分四步走,每步都附带默认建议,用户可以随时说「就这样」「都行」跳过。
---
### 第一步:搞清楚身份
> 「先确认一下,您是做什么的?
>
> ① **律师** —— 办案为主,需要实务参考和技能提升
> ② **法官** —— 审判为主,需要类案参考和裁判统一
> ③ **检察官** —— 公诉为主,需要刑事案例和检察政策
> ④ **法务** —— 企业合规,需要风险防控和合同审查」
用 `mpwatch.py profile --identity <身份>` 写入。身份影响后续推荐和评分。
---
### 第二步:搞清楚执业方向
> 「您主要关注哪几个领域?可以多选——公司商事、公司法务、银行金融、建工房产、刑事、劳动、执行、知产、婚姻家事、行政法都行。不确定的也可以说『不区分』,我全推荐。」
对应的 8 个方向来自 `references/account-directory.md`。用 `mpwatch.py profile --areas "方向1,方向2,..."` 写入。
---
### 第三步:搞清楚想看什么
> 「您主要想通过这份周报解决什么问题?比如:
>
> ① **跟判决** —— 关注最高法院/省高院的典型案例、裁判规则变化,办案时直接引用
> ② **学技能** —— 实务操作、举证技巧、文书模板、办案方法论
> ③ **追新规** —— 新法新司法解释一出来就能看到解读
> ④ **都要** —— 不挑,实务相关的全收」
这个偏好会体现在后续评分分层上。选 ① 时最高法/省高院案例自动升 ⭐;选 ② 时实务技能文章优先 📌;选 ③ 时新法解读自动 ⭐。
---
### 第四步:搞清楚看多少
> 「每周看多少篇文章合适?
>
> ① **20 篇轻量版**(推荐)—— 每周一 10 分钟看完,只看最重要的
> ② **40 篇完整版** —— 想全面了解一周动态,不怕多」
用 `mpwatch.py profile --limit 20` 或 `--limit 40` 写入。用户可随时切换。
---
### 第五步:搞清楚怎么看
> 「周报怎么看方便?
>
> ① **每周自动出**(推荐)—— 每周一 08:00 自动扫描,生成 HTML 周报,打开 WorkBuddy 就能看
> ② **想看才跑** —— 不自动跑,您说『帮我看看最近有什么』时才跑
> ③ **先试一次** —— 什么配置都不做,先跑一次看看效果再决定」
根据用户选择:
- 选 ① → 创建每周一 08:00 的自动化(走 `references/push-setup.md`),告诉用户「下周一 08:00 会出第一份」
- 选 ② → 不创建自动化,告诉用户「随时说『跑一次公众号周报』即可」
- 选 ③ → 立即进入工作流一跑一次,跑完再回来问要不要定时
---
### 第六步:推荐账号 + 执行
把前四步的答案串成一句简短小结说给用户听(「好的,您是律师,做建工+刑事,想看新规和案例,每周一自动出。我来帮您配」),然后:
1. `mpwatch.py init`(如清单不存在)。
2. 按所选的执业方向+身份,从 `references/account-directory.md` 推荐账号。分方向展示,每方向 10-15 个,附一句话理由,标注 ★ 等级(5★=必关注,4★=推荐,3★=可选)。**不抛出 99 个号的信息风暴**,只在用户说明「全加」时才批量加。
3. 给简洁选择:「全加 / 分方向挑 / 我自己选」。确认后 `mpwatch.py add` 逐个写入。
4. 补通用础石:若清单中缺失(最高法、最高检、本地省高院、人民法院报、法律读库、无讼),自动补入。
---
### 首次部署的反面教材(不要这样做)
- ❌ 一口气列出 99 个号让用户选
- ❌ 问完执业方向直接跳到推送配置,跳过「想看什么」和「怎么看」
- ❌ 假设用户知道 HTML 推送是什么
- ❌ 用技术命令吓用户(先说人话,操作放后面)
- ❌ 每个问题都必须是单选对错——允许「都行」「你推荐」「先试试」
## 工作流二:推荐值得关注的公众号
触发语:「推荐公众号」「我该关注哪些号」「XX 方向有什么好的公众号」。
1. 读执业方向:`scripts/mpwatch.py profile`;未设置先走工作流〇。
2. 按 `references/account-directory.md` 对应领域挑账号,逐条给一句话理由;先 WebSearch 核实账号活跃再推荐。
3. 用户确认后 `scripts/mpwatch.py add <name> --category <分类> --tags <标签>` 逐个写入。
## 工作流三:对标账号内容分析
触发语:「分析对标账号」「看看 XX 号最近在发什么」「帮我找选题」。
按 `references/benchmark-framework.md` 执行:取样近期文章 → 四维分析(更新节奏/选题分布/标题套路/爆款特征)→ 输出 3-5 个可直接用的选题建议。只给有把握的建议,不编造阅读数据,不照抄标题。
## 工作流四:手动添加喜欢的公众号(自定义收藏)
触发语:「关注 XX 公众号」「把 XX 号加到监测」「添加 XX 到我的列表」「收藏这个公众号」「我想看 XX 号的文章」。
这是用户随时可以使用的快捷入口——不需要经过推荐/部署流程,直接把自己喜欢的号塞进去。
### 流程
1. **确认账号名**:用户提供公众号名称(如「天同诉讼圈」「高杉LEGAL」)。名称若不完整,请用户确认全称。
2. **可选核实**:用 WebSearch 搜一次确认该公众号当前活跃、确实存在(搜索词:`"<账号名>" 公众号`)。不存在或不活跃的如实告知用户、让用户核对全称。
3. **确定分类**:根据公众号内容自动归类。参考分类取值:法院 / 检察 / 律协 / 学术 / 法律媒体 / 实务自媒体 / 对标账号 / 其他。有疑问时问用户,不猜。
4. **写入清单**:`scripts/mpwatch.py add "<账号名>" --category "<分类>" --tags "<标签1,标签2>"`。
- tags 根据内容特点加(如「建工」「劳动法」「案例」「行业」等),帮助分类展示。
- 添加成功后告诉用户:「已加入关注清单,共 N 个号」。
5. **防重**:添加前脚本自带重名校验,同名账号不会重复添加,直接告诉用户「已在清单中」。
### 示例对话
> 用户:关注「法客帝国」公众号
>
> → WebSearch 确认活跃 → 分类「实务自媒体」、标签「公司商事,案例,裁判规则」→ add → 回复:「已加入关注清单(共 130 个号)。下次跑周报时会包含它的文章。」
## 工作流五:自动迭代(越看越准)
触发语:「迭代」「优化周报」「让周报更准」「看看哪些号该删了」。
每次周报生成后自动执行,也可手动触发。
### 反馈收集
周报交付后,主动问用户:
> 「这期周报怎么样?
> - 哪些文章对你有用?(👍)
> - 哪些觉得没必要?(👎)
> - 有没有漏掉什么重要内容?」
记录到 `state/feedback.json`(每条:日期、文章标题、评分、用户反馈 👍/👎/漏掉)。
### 评分自适应
基于反馈数据自动调整后续评分:
- **来源加权**:某账号的文章连续 3 次 👍 → 该账号后续文章自动 +1 档
- **来源降权**:某账号的文章连续 3 次 👎 → 该账号后续文章自动 -1 档(或标记「建议移除」)
- **类型偏好**:用户对某类内容(如裁判规则 vs 学术理论)的 👍 率明显高 → 该类内容自动 +1 档
- **频率控制**:用户对周报频率的反馈(太多/太少)→ 建议调整自动化频率
### 账号健康检查
每周自动检查:
- **连续 4 周无产出** → 标记「疑似停更」,建议用户移除
- **连续 4 周无实务文章** → 标记「内容不符」,建议用户移除
- **连续 4 周 👍 率 > 80%** → 标记「高质量」,推荐用户关注该账号的其他平台
### 定期回顾
每月第一周周报自动附带「月度回顾」:
- 本月共收录 N 篇文章,⭐ X 篇 / 📌 Y 篇 / 📄 Z 篇
- 最有价值的 5 个账号(按 👍 率排序)
- 建议移除的 3 个账号(连续无产出或无实务内容)
- 建议新增的 3 个账号(基于高 👍 文章的来源推荐)
## 关注清单管理
| 操作 | 命令 |
|------|------|
| 初始化(首次) | `scripts/mpwatch.py init` |
| 查看清单 | `scripts/mpwatch.py list`(`--json` 机器可读) |
| 添加账号 | `scripts/mpwatch.py add <名称> --category 法院 --tags 案例,综合 --note 备注` |
| 移除账号 | `scripts/mpwatch.py remove <名称>` |
| 设置身份 | `scripts/mpwatch.py profile --identity 律师` |
| 设置执业方向 | `scripts/mpwatch.py profile --areas "建筑工程,劳动法"` |
| 统计 | `scripts/mpwatch.py stats` |
分类建议取值:法院 / 检察 / 律协 / 学术 / 法律媒体 / 实务自媒体 / 对标账号 / 其他(渲染简报时按此顺序分栏)。
## 定时自动推送
用户要「每周自动推送」时,按 `references/push-setup.md` 配置。
**推送方式三选一**(按优先级询问用户):
1. **WorkBuddy HTML 推送**(推荐):每次生成带排版的 HTML 周报,通过 present_files 在 WorkBuddy 对话中直接预览,用户打开 WorkBuddy 即可查看。
2. **邮件推送**:周报渲染为 HTML 邮件发送到指定邮箱(需配置 SMTP)。
3. **桌面文件**:周报存 `~/Desktop/legal-mp-daily/`,用户自己打开看。
默认每周一 08:00 执行。已配置的自动化不要重复创建;先 `automation_update` mode=list 查重。
## 免费使用与版权保护
本技能**完全免费**,全部功能开箱即用,无需激活码、不绑定设备,可自由复制安装到任何 WorkBuddy 环境。
**防修改保护:** 核心脚本内置完整性校验(`EXPECTED_HASH`),代码被篡改后启动即锁死拒绝运行,提示从官方渠道获取原版。
**版本与更新:** 运行 `scripts/mpwatch.py version` 查看当前版本;`scripts/mpwatch.py update --check` 查看更新方式。新版本由作者发布,用户下载后覆盖安装(保留 `assets/accounts.json` 和 `state/` 目录即可保留个人数据)。
**版权声明:** 本技能受《中华人民共和国著作权法》保护。允许免费使用与转发原版分发包;未经许可不得修改后二次分发或用于商业用途。
**数字指纹:** 分发包内含隐形数字水印与金丝雀数据。任何未经许可的复制、蒸馏(抽取账号清单/评分体系二次开发)、二次分发均可被技术溯源,并作为著作权维权证据。账号清单的遴选、分类、标注构成《著作权法》第十五条保护的汇编作品。
## 已知限制
- **WebSearch 覆盖不全**:无法保证每个公众号每次都能搜到全部新文章。部分公众号(尤其是新号、小号)可能搜索结果较少或缺失。这是技术限制,不是账号问题。
- **无实时性**:WebSearch 结果有索引延迟,通常滞后 6-24 小时。不适合「刚发的文章立刻看」场景。
- **评分依赖主观判断**:五维评分由 AI 基于标题+摘要判断,无法像 k-NN 那样量化。评分理由(含各维度得分)是为了让判断可解释,但仍有主观成分。
- **阅读量不可得**:WebSearch 拿不到文章真实阅读量。popularity_proxy 用「多平台转载/大号首发/被引用」等信号模拟,不等于真实阅读数。
- **20/40 篇硬上限**:每周只推 20 或 40 篇,可能遗漏一些质量不错但排名靠后的文章。如需更多可随时手动跑「帮我看看公众号有什么新文章」获取全量。
- **反馈数据稀疏**:自动迭代依赖用户反馈,反馈越少迭代越慢。建议每周至少给 1-2 条反馈。
- **IMA 需要单独配置**:IMA 知识库集成需要用户提供 API 凭证,未配置时自动跳过。
- **无法阅读原文**:WebSearch 返回的摘要是搜索引擎的摘要,不是全文。如需阅读原文请点击链接跳转。
- **完整性校验可被绕过**:`EXPECTED_HASH` 校验是本地校验,技术上可被懂代码的人绕过。这是「防君子不防小人」的设计,目的是防止篡改版冒充原版流通,而非绝对阻止破解。
## 安全与隐私
- **无外部凭证**:本技能不需要任何 API key / OAuth token / cookie。纯 WebSearch 驱动。
- **无敏感数据**:不读取通讯录、不访问微信客户端、不存储任何用户私密信息。
- **本地运行**:`mpwatch.py` 仅标准库,只在技能目录内读写 `assets/` 和 `state/`,无网络请求。
- **IMA 凭证**:如用户配置 IMA,凭证仅本地存储,不发送到任何服务器。
- **反馈数据**:用户反馈仅存储在本地 `state/feedback.json`,不发送到任何服务器。
## Rationalizations
1. **为什么选 WebSearch 而非爬虫**:微信无公开 API,爬虫有法律风险和封号风险。WebSearch 是合法合规的替代方案,虽然覆盖不全但可持续。
2. **为什么单文件脚本**:降低维护成本,用户不需要理解多文件架构。纯标准库,零依赖,python3 ≥ 3.8 即可。
3. **为什么用评分分层而非 k-NN**:k-NN 需要训练集,对 212 个号的泛化能力有限。评分分层用「评分理由」让 AI 的判断可解释,且不需要维护训练数据。
4. **为什么浅色模板**:与法律周报(`#f8f7f5`)保持视觉一致性,降低用户在两个技能间切换的认知成本。
5. **为什么默认周报而非日报**:法律人的时间碎片化,每天看 20+ 篇文章不现实。周报模式(每周一集中看)更符合实际工作节奏。
6. **为什么加身份系统**:不同法律职业的信息需求差异很大。律师需要办案参考,法官需要类案统一,检察官需要公诉技能,法务需要合规管理。身份让推荐和评分更精准。
7. **为什么加自动迭代**:静态的评分规则会随着时间失效(账号停更、内容质量下降、用户兴趣变化)。自动迭代让系统「越看越准」,不需要用户手动维护。
## 脚本参考
`scripts/mpwatch.py`(纯标准库,无网络,只写技能目录内 JSON 与 --out 指定文件):
- `init / list / add / remove / profile / stats` — 清单与配置
- `dedupe --input <NDJSON>` — 与 `state/seen.json` 比对去重,stdout 输出新增条目并标记已见
- `render --input <NDJSON> [--out 文件] [--date 日期]` — 按分类分栏渲染 Markdown 简报
- `feedback [--list] [--add <标题> --account <来源公众号> --rating 👍/👎] [--stats]` — 用户反馈管理(自动迭代;--account 让 --stats 能按来源统计)
- `version` — 显示当前版本
- `update --check` — 查看版本与更新方式
- `selftest` — 隔离环境全链路自测;每次改脚本后必跑
`scripts/render_html.py`(独立脚本,不是 mpwatch.py 的子命令):
- `python3 scripts/render_html.py --input <NDJSON> --out <HTML> [--date 日期] [--identity 律师]` — 渲染浅色周报 HTML(评分分栏 ⭐/📌/📄)
## 打包结构
```
法律公众号周报/
├── SKILL.md ← 本文件
├── VERSION ← 版本号(与 frontmatter version 一致)
├── scripts/mpwatch.py ← 清单管理 + 去重 + 渲染 + 反馈(单文件)
├── scripts/render_html.py ← 浅色周报 HTML 渲染(评分分栏,独立脚本)
├── assets/accounts.json ← 关注清单 + 执业方向(init 生成,脚本维护)
├── state/seen.json ← 已见文章库(去重用,自动生成)
├── state/feedback.json ← 用户反馈库(自动迭代用,自动生成)
└── references/
├── account-directory.md ← 分执业方向的推荐目录
├── benchmark-framework.md ← 对标分析框架
├── push-setup.md ← 定时推送配置指南
├── ima-integration.md ← IMA 知识库集成指南
└── update-guide.md ← 版本更新指南
```
Files in this skill
- SKILL.md
- assets/accounts.json
- references/account-directory.md
- references/benchmark-framework.md
- references/ima-integration.md
- references/push-setup.md
- references/update-guide.md
- scripts/mpwatch.py
- scripts/render_html.py
- state/feedback.json
- state/seen.json
- 安装说明-README.md
Attribution
Comments
Loading comments…