














程序员表达关心的一种方式,大概就是:发现对方每天都在重复做一件麻烦又容易遗漏的事,然后悄悄把它做成一个工具。
对象的工作会接触产品质量鉴定、法院委托鉴定,以及不同地区法院对鉴定机构、鉴定材料和办理流程的要求。
这类工作有一个很现实的问题:全国各省、市、法院公开信息的入口并不统一。有的内容在高级人民法院网站,有的藏在“司法委托”栏目里,有的是机构名册、入册公告或暂停资格公告,还有一些只在当地政府文件库中公开。
如果某个法院突然发布了新要求,而工作人员还在沿用旧材料、旧名册或旧流程,就可能在实际办理时遇到问题。
所以,我做了一个名为 “中国产品质量鉴定法规监测” 的 Skill,希望把“到处搜索、逐条核对、保存原文、检查变化”这件事尽量自动化。
最初的需求很简单:
能不能定期检查全国各省市关于产品质量鉴定的法规和法院要求?如果有新发布或修改,就把原文下载下来并提醒我。
真正开始做以后,才发现它不是一次普通的关键词搜索。
需要处理的问题至少包括:
因此,这个 Skill 不只是“搜索网页”,而是一套带有检索边界、来源等级、存档、去重和变化判断的工作流程。
当前版本主要面向以下内容:
默认不混入以下内容:
这一步非常重要。检索范围如果不先限定,最后得到的往往不是“资料更多”,而是大量看似相关、实际无法使用的信息。
Skill 内置了全国31个省级地区的检索清单,包括:
北京、天津、河北、山西、内蒙古、辽宁、吉林、黑龙江、上海、江苏、浙江、安徽、福建、江西、山东、河南、湖北、湖南、广东、广西、海南、重庆、四川、贵州、云南、西藏、陕西、甘肃、青海、宁夏和新疆。
每个地区至少配置两类入口:
检索时先检查国家层面的统一依据,再依次检查31个地区。用户要求“各省市”时,还会继续补查省会、计划单列市,以及已经发现专项文件的中级法院和基层法院。
需要说明的是:全国并不存在一个能够完整收录所有地方法院内部要求的公开数据库。因此,“覆盖31个省级地区”不等于“已经穷尽全国每一家基层法院”。报告必须如实写出实际检查的城市和法院数量,不能为了好看而宣称百分之百覆盖。
为了降低误报,Skill 对来源做了分级:
只有A级至C级来源可以进入“确认清单”。搜索结果摘要、机构自述和行业文章不能直接作为正式依据。
例如,法院委托鉴定的一项重要统一依据是最高人民法院发布的《关于人民法院民事诉讼中委托鉴定审查工作若干问题的规定》。它涉及鉴定事项、鉴定材料、机构和人员审查、收费、期限及出庭等内容。
另一个很容易踩坑的地方,是网上仍然可以搜到原国家质量技术监督局令第4号《产品质量仲裁检验和产品质量鉴定管理办法》。但根据国家质检总局第196号令,该办法已经在2018年被废止。
所以,“网页还能打开”不等于“文件仍然有效”。这也是为什么 Skill 必须同时记录发布机关、发布时间、效力状态和核验备注。
开发过程中遇到过一个很典型的问题。
用户问:
最近半年有哪些新发布的文件?
程序却回答:
相比上次没有新增。
这两个答案可能都没有算错,但明显答非所问。
因此,当前版本把检索明确拆成两种模式:
| 用户问题 | 模式 | 应该回答什么 |
|---|---|---|
| 最近几天、最近一个月、最近半年、某个日期区间有哪些文件 | 时间范围检索 | 发布日期位于该区间内的全部确认文件 |
| 相比上次有没有新增、是否发生变化、持续监测 | 增量监测 | 相对上一次扫描真正新增或确认修改的文件 |
时间范围检索使用:
--report-mode period
增量监测使用:
--report-mode incremental
状态文件只负责保存历史记录和去重,不能擅自改变用户问题的口径。
也就是说,即使系统已经保存过历史状态,用户问“最近半年有哪些”,报告仍然必须先列出最近半年的文件;可以在后面补充“相对上次新增0项”,但不能用这句话覆盖前面的时间范围结果。
第一次运行时,系统会建立基线。
基线的含义是:
我现在知道这些文件已经存在,以后可以用它们进行比较。
它不代表这些文件是刚刚发布的。
变化检测同时保存两种哈希:
sha256:原始下载文件的校验值,用于证明存档文件是否发生变化;comparison_sha256:去掉访问量、点击数等动态字段后,对正文计算的比较指纹。同一个网页的正文指纹发生变化时,默认还要在下一个监测周期再次观察到同样的新指纹,才会正式标记为 changed。
这样可以减少以下误报:
一个正常监测周期只扫描一次,不会为了凑够两次确认而在同一任务中立刻重复搜索。
法院和政府网站并不都是为自动化检索设计的,常见问题包括:
Skill 的处理原则不是“失败了就当作没有”,而是:
同时,不绕过验证码和访问控制,也不关闭证书校验去强行抓取。
“未确认专项文件”只能说明本轮没有从可访问来源确认到文件,不能据此推断当地一定没有要求。
技能目录名保持为:
china-product-quality-appraisal-watch
放入 Codex 的 skills 目录后,可以这样调用:
$china-product-quality-appraisal-watch 搜索最近半年全国各省市产品质量鉴定的新规定
如果要检查相对上一次有没有变化,可以这样说:
$china-product-quality-appraisal-watch 检查相比上次是否出现新的产品质量鉴定规定
WorkBuddy 版本使用中文显示名称:
中国产品质量鉴定法规监测
导入ZIP时,压缩包根目录必须直接包含 SKILL.md,不能再多套一层文件夹。
建议使用下面两类明确提示词:
搜索最近半年全国各省市产品质量鉴定方面发布的文件,使用时间范围检索,不要用相对上次无新增覆盖区间结果。
检查相比上一次监测,全国各省市是否新发布或修改了产品质量鉴定文件,使用增量监测。
时间范围检索示例:
python scripts/quality_watch.py run `
--report-mode period `
--since YYYY-MM-DD `
--until YYYY-MM-DD `
--output product-quality-watch
持续增量监测示例:
python scripts/quality_watch.py run `
--report-mode incremental `
--since YYYY-MM-DD `
--state-file product-quality-watch-state.json `
--output product-quality-watch
WorkBuddy每次可能创建新的任务目录,所以用于增量比较的状态文件必须放在固定位置,不能跟着每次的时间戳输出目录一起变化。
每次运行会生成:
latest.md:适合继续编辑或复制的Markdown报告;latest.html:可直接用浏览器打开,官方链接支持点击跳转;latest.json:方便其他Agent、程序或提醒流程读取;state.json:用于去重和增量比较的状态数据;events.jsonl:记录新增和确认变化事件;archive/:下载的官方网页、附件和元数据。一份完整报告通常包含:
所有面向用户的官方网址都会写成可点击链接。对于不支持Markdown链接跳转的客户端,优先打开 latest.html。
真正困难的不是搜到网页,而是判断它是不是官方来源、是不是仍然有效、是不是适用于产品质量鉴定,以及是不是适用于具体法院。
网站访问失败、动态渲染和未公开内部名册都会造成信息缺口。工具必须把失败展示出来,而不是安静地跳过。
与其输出一个看起来完整但实际漏检的全国清单,不如清楚标明哪些地区成功、哪些部分失败、哪些需要人工确认。
不同大模型的理解能力存在差异。像“最近半年”和“相比上次”这样的口径,如果只在说明中轻描淡写地提一下,能力稍弱的模型就可能选错。
最终我把它写成了明确的路由表,并在脚本中加入强制参数,让模型少做判断,让程序多做确定性工作。
这个 Skill 并不是什么宏大的项目,起点只是想让对象少花一点时间在重复搜索上,也少承担一点“某个地方刚更新了要求但我没有看到”的压力。
它现在已经能完成全国31个省级地区的基础覆盖、官方来源核验、原文下载、时间范围检索和增量提醒,但仍然需要继续补充更多城市法院入口,也需要面对政府网站访问不稳定这个长期问题。
工具不能替代法律判断,也不能替代承办法院的最终确认。它真正适合做的,是把分散的信息尽可能提前找出来、整理好、留下出处,让人把精力放在更需要判断的工作上。
如果以后对象的工作流程发生变化,我也会继续改这个 Skill。
毕竟,需求来自对象,版本更新也就有了长期动力。
效果如下:

github 地址:https://github.com/wutangyuan/china-product-quality-appraisal-watch
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。