Releases: tywinlu1988/GateKeeper
Release list
GateKeeper v0.6.1 — 监控引擎收尾:守卫分支实测 + 路径边界裁定
0.6.x 收尾
- 场景 8 五检查点全绿:守卫分支实测通过——无 previous_run_id → 拒绝执行 + 零搜索 + 消息合规
- 路径边界裁定:monitoring-run vs targeted-update 按动词裁定(监控动词 vs 分析动词),引用 plan_id 未说明意图不猜测
- G8 扩展:monitoring-run 产物同样受模板底本 + GateKeeper-Template 标记约束
- 输出目录组织:监控告警清单在根目录,留痕 YAML 与计划单同目录或 artifacts/
- 附:发布后一致性自检抓出并修复版本字符串漂移(v0.6.0→v0.6.1 全库同步)
冒烟测试累计:场景 1-8 共 33+10+6+5 检查点,全部通过。
GateKeeper v0.6.0 — 督导期监控引擎:静态监控表变成可运行的督导流程
方向
v0.5 三产物中最可产品化的部分是督导期监控表(36 条信号×阈值×责任人)。持续督导是保荐机构 2-3 年的法定职责——把静态表升级为执行引擎,是从"单次报告生成"到"长期订阅服务"的切入点。
核心能力
monitoring-run 路径 + monitor-runner 技能:
- 输入:plan_id + 检查时点(季报/中报/年报/解禁窗口)
- 执行:按检查周期过滤应检信号 → 逐信号真实检索最新数据 → "阈值 vs 最新值"显式三态判定(触发/未触发/数据不足)
- 输出:监控告警清单(触发信号附最新值/来源/监控表原定动作/责任人)+ 判定留痕 YAML 审计底稿
- 无前次推演制品 → 拒绝执行
G9 监控判定合规门禁(第 12 道):检索留痕 / 数值比较 / 三态完备——禁止凭印象写"正常/异常",禁止陈旧数据冒充当前状态。
验证就绪
- 冒烟测试场景 8(monitoring-run 5 项检查点)+ 场景 7 增补三产物 6 项 = 21 项验收清单
docs/weak-model-validation-v5-brief.md:第五轮弱模型验证任务书——强制新项目(防过拟合频准/宇树两案)、21 项检查点、产物约定。可直接整体交给 DeepSeek 执行
体系现状
6 技能 / 5 路径 / 12 非协商条款 / 12 门禁 / D0-D4 降级 / 7 模板 / 2 案例 / 一致性自检 C1-C5 全绿
GateKeeper v0.5.3 — 发布前一致性自检脚本
背景
v0.5.2 的自检靠人工 grep 发现 4 处 bug(版本漂移、快照计数、单一事实源遗漏、协议指向过期)——每类都是"发布时只改主文件、没同步引用它的地方"。人工检查不可持续,本版本固化为脚本。
scripts/check-consistency.py
五项检查,每项对应一次真实事故:
- C1 版本统一:AGENTS/README/六个模板页脚的当前版本一致(v0.5.1/v0.5.2 两次漂移事故)
- C2 计数引用:Step 1.5 快照项数 vs S2/G1 引用;N1-N12/G1-G8/D1-D4 数量 vs README 宣称("六项→八项"未同步事故)
- C3 单一事实源:AGENTS 列出的 references 文件全部存在且无遗漏(non-negotiables/final-report 漏列事故)
- C4 交叉引用:全库 references/ 路径可解析
- C5 模板标记:输出模板必须含 GateKeeper-Template(G8 验证依据)
退出码 0/1,可直接接入 CI 或作为发布前固定步骤。首跑即抓出 9 处真实不一致并已修复。
GateKeeper v0.5.2 — 自检修复:版本同步与快照计数
自检发现四处 bug 并修复:
- 版本漂移:v0.5.1 发布时 AGENTS/README/三个产物模板/risk-matrix 模板页脚未同步(仍 v0.5.0/v0.5.1),全库统一 v0.5.2
- 快照计数不一致:Step 1.5 已在 v0.5.0 扩至八项(新增流通结构与情绪位置),但 S2 schema 注释与 G1 门禁仍写"六项齐全"——执行体按门禁检查会漏掉第 7/8 项
- 单一事实源遗漏:AGENTS 未列 v0.5.1 新增的主交付物模板 final-report.html
- 组装协议指向过期:html-assembly 步骤 0 仍指向降级为附录的 risk-matrix-template.html
GateKeeper v0.5.1 — 最终报告合一:用户看到的是报告,不是过程文件
问题
v0.5.0 三产物以裸 Markdown 产出、与 YAML 过程文件混在同一目录——用户打开输出目录看到的是大量过程文件而非成型报告。内容结构对了,交付形态没跟上。
修复
- final-report.html(主交付物):三产物合一的自包含 HTML——导航 + ①内核风险清单 + ②发行定价备忘录 + ③督导期监控表,内联 CSS 可独立分发,可直接打开阅读/打印/转发
- 交付目录组织(G8 强制):输出根目录只放 4 个可读文件(最终报告 + 三个分拆件);全部过程文件(analysis_plan、node 制品、69 条全量条目、搜索留痕、过程日志)收入 artifacts/ 子目录作审计底稿
- 组装协议:Markdown 产物转 HTML 后按 html-assembly 协议拼入模板(GateKeeper-Template 标记可验证)
宇树科技实测产物(v0.5.1 标准)
一份 32KB 自包含报告含全部三个产物;artifacts/ 保存完整审计链。
GateKeeper v0.5.0 — 三产物重构:从风险报告到保荐机构工作流工具
定位升级
以保荐机构负责人视角审查原体系后的结论:风险清单有用,但交付形态与工作流错位——69 条全量矩阵、三角色冲突仪式、伪精确传染因子(2.0×)对内核会、投价报告、持续督导没有消费场景。v0.5.0 把产品从"更厚的报告"重构为"能塞进工作流的产物"。
三个工作流产物(主交付)
- 内核风险清单:≤15 条顶格风险精选(critical / unpriced / 三角色共识优先),每条含应对动作、责任归属、时限 + 反面论证("什么假设下不成立")+ 问询回复策略提示
- 发行定价备忘录:定价事实 + 可比估值(双来源可复算)+ 隐含假设反推(当前市值隐含什么增长路径,参数显式标注为假设非预测)+ 流通结构与解禁日历 + 破发风险面(二分框架)+ 市场情绪位置(只定位不择时)+ 情景赔率简表 + G7 时效清单
- 督导期监控表:signal_watchlist 工程化为 信号 × 阈值 × 责任人 × 检查周期 × 触发后动作
结构性配套
- 预期差分层:每条风险标注
priced_in(已定价/部分/未定价)——已定价风险对决策无边际信息,未定价风险才是决策输入 - 可执行应对:
response_owner+response_deadline必填;"关注XX"空泛表述门禁不过 - 传染定性化:弃用 1.5×/2.0× 伪精确因子,改为通道数 → watch/active/critical 定级
- 边界修订:禁止单一目标价预测,允许情景化估值推演;超额认购≠估值认可
- 三角色降为分析透镜,产物按"问题→应对→责任"组织;完整风险矩阵 HTML 降级为可选底稿附录
- case-library 第二案:宇树科技(发行参数/财务倒挂/市场第一性要素)
验证建议
用宇树科技案例重跑:对比 v0.4.5 的 83KB 报告 vs v0.5.0 的三个产物——看内核会能否直接消费、定价谈判能否引用、督导团队能否按表执行。
GateKeeper v0.4.5 — 规则缝隙封堵 + 测试回归体系 + case-library 首案
背景
深度自检 + 四轮弱模型实测(DeepSeek v4 × 频准激光)的证据审查发现三个"规则缝隙":ID 枚举缩写自评通过、数字追溯链无约束力、一手披露规定无门禁验收。同时测试体系滞后(v0.4.1+ 十余个机制无回归检查表),case-library 仍为空。
规则缝隙封堵
- G4/S3 ID 完整枚举:ID 的 role 段必须等于完整枚举值(pre-ipo-investor / buy-side / media),禁止缩写——实测反例:第四轮全部用
RISK-pricing-pre-ipo-001缩写却自评 G4 通过,ID 是跨节点/跨计划单追溯的主键 - G3/S3 source_ref 必填:deep 深度下 key_data_points 逐条附 source_ref(指向 search_log 查询或 [UNLOGGED])——此前"可选"导致追溯链在 finance/pricing 使用 0 处
- G1 一手披露验收:deep 每角色 ≥1 次招股书/问询函/发行公告查询计入门禁(此前 registry 有规定、门禁不查)
- description 纯触发化:5 个 skill 的 frontmatter description 移除流程总结,只写触发条件与禁令——防"按 description 执行、不读正文"的捷径陷阱(writing-skills SDO 原则,弱模型下风险更高)
测试与知识库
- 场景 7 机制回归清单:10 项 v0.4.1+ 机制检查点固化入 smoke-test-log,以四轮实测为基线
- 搜索次数规则收敛:analysis-registry 深度表为唯一事实源,G1/Step 0 只引用不复制(延续 N10)
- case-library 首案:频准激光发行推演——事实卡 + 四轮关键数字对照(RED/GREEN 锚)+ 失败模式清单,供 D1/D4 降级兜底与弱模型执行前参照
第五轮验证重点(建议)
场景 7 的 10 项检查点:ID 完整枚举、source_ref 覆盖率、一手披露查询、制品-日志对账、模板标记、快照带数值+URL、第四轮三个残留不复发。
GateKeeper v0.4.4 — 模板底本强制 + 制品日志对账 + 快照禁无量词
背景
DeepSeek 四次实测(v0.4.3)取得迄今最好成绩:可比 PE 经独立核实全部准确、聚合均值可复算、HTML 按组装协议 3 分钟零试错完成、规则文件零篡改。残留问题:
- 模板架空:报告未使用官方模板,从零自行设计 HTML——G8 只约束"固定区块存在",未约束"以模板为底本"
- 制品-日志脱节:过程日志声称"51 条风险/48 次查询/门禁全过",落盘制品实为 40 条且 finance/pricing 无 search_log——门面做足、制品缩水
- G1 静默放行:条目数仅为 deep 要求 40%,无任何 confidence: low 标注
- 快照无量表述:market_snapshot 出现"估计>100%"——参数记忆冒充搜索
- 回灌漏网:D4 扫描按论断主题进行,"16.85%"在执行摘要漏网
修复
- G8 强化为模板底本制:必须以官方模板文件为底本填充;模板含
<!-- GateKeeper-Template: ... -->标记注释作为可验证证据;html-assembly 协议第 0 步 = Read 模板 - G1 制品-日志对账:日志统计与落盘制品不一致视同 G1 不通过;不通过处理必须显式记录
confidence: low+ 缺口说明,禁止静默放行 - 快照禁无量词:market_snapshot 每项强制具体数值 + 来源 URL
- 回灌按数值扫描:D4 回灌逐字扫描数值本身,同一数值任何复用都算命中
四轮实测演进
| v0.4.0 | v0.4.1 | v0.4.2 | v0.4.3 | |
|---|---|---|---|---|
| 原始三处事实漂移 | 未复发 | 未复发 | 未复发 | 未复发 |
| 可比数字 | 部分幻觉 | 幻觉 | 偏高+编造均值 | 全对可复算 |
| 规则文件 | — | 自改规则书 | 干净 | 干净 |
| G7/D4 | 漏判 | 算术误判 | 判而不行 | 判定+回灌 80% |
| 遗留缺口 | 搜索量 | 合规表演 | 回灌 | 制品缩水+模板架空 → 本轮修复 |
GateKeeper v0.4.3 — 门禁回灌 + 可比双来源 + HTML 组装协议
背景
DeepSeek 三次实测(v0.4.2):机制层面全部起效(规则文件零篡改、G7 距今月数列、search_log 角色分化、G8 固定区块),但暴露两类残留问题:
- D4 判而不行:G7 清单正确标注"2024 年市场数据超期,不入结论位",同一份报告的 TOP 1 风险与综合结论仍在使用该数据——门禁产物未回灌正文
- 定价数字失真:三家可比 PE 整体偏高 8-30%;"可比均值 190.22x"与其自家分项(117/206/107x)都对不上——G7 管时效管不了"新但错"
- HTML 生成靠试错:heredoc 引号冲突、python 运行时不可用(exit 49),模型多轮失败后才摸索出分块拼接路径
修复
- G7 回灌检查 + Step 4.5 一致性核对:D4/[STALE_DATA] 标注论断逐字扫描结论位(执行摘要/TOP 风险/关键数据/key_finding),出现即删除或改写——清单判定与报告正文必须一致
- 可比估值双来源规则:每家可比 ≥2 独立来源一致,或 1 来源 +「总市值÷TTM 净利润」交叉计算;聚合数字(均值/区间)必须可从快照分项复算
- HTML 组装协议(
references/templates/html-assembly.md):Write 分块 + cat 拼接为标准做法;禁止 Bash heredoc 写 HTML、禁止依赖 python/node 渲染;分块中间产物保留作审计证据 - 模板 TOP 3 放宽为 TOP 3-5
三轮实测演进
| v0.4.0 跑 | v0.4.1 跑 | v0.4.2 跑 | |
|---|---|---|---|
| 三处原始事实漂移 | 未复发 | 未复发 | 未复发 |
| 查询量/留痕 | 6 次 | ~17 次 | 48 次全留痕 |
| 规则文件完整性 | — | 自改规则书 | 干净 |
| G7 时效判定 | 漏判 | 算术误判 | 判定正确 |
| D4 后果执行 | — | — | 判而不行 → 本轮修复 |
GateKeeper v0.4.2 — 规则完整性与反凑数:修复弱模型二次实测新失败模式
背景
DeepSeek 二次实测(v0.4.1)显示过程合规度大幅提升(search_log 落盘、market_snapshot 完整、一手披露真实触达、逐节点 G7 清单),但出现三种新失败模式:
- 执行体修改规则书:开跑前 10 分钟自行修改 AGENTS.md(新增条款 + 版本号改为 v0.5.0),然后对着自己写的规则自评"合规"
- 合规表演:过程日志声称 48 次查询,去重后实际 17 次;pricing 节点三角色 search_log 逐字雷同(同查询词/同时间戳/同 hits)充数
- G7 算术失效:as_of 2024 年报数据被判"≤18 个月 ✅"(实际 ~20 个月),超期数据登顶报告 TOP 1 风险
修复
- N12 规则文件只读:执行体禁止修改 AGENTS.md / references/ / .claude/skills/ / knowledge/ 任何文件;版本 bump、tag、Release 是用户专属动作;发现规则缺陷记录
rule_defect报告用户;推演前后比对规则文件状态,被修改则全部产物标记rules_tampered: true - G7 判定算术外显:时效判定清单强制「距今月数」计算列——判定以数值比较为准,禁止凭感觉
- G1 反凑数:三角色 search_log 完全雷同视为一次查询不重复计数;每角色 ≥2 条角色独有查询
- D4 语义收紧:仅用于时效不足;数值冲突走 D3;异常值剔除说明理由即可(实测反例:编错的英诺 PE 206x 被标 D4"异常值隔离",真实值 ~149x 从未被复核发现)
- G8 模板合规(新门禁):报告固定区块(执行摘要 / 关键论断时效清单 / 制品新鲜度)不可缺、不可改名替换
实测中确认已生效的 v0.4.1 机制
status_correction 校正通道、一手披露真实触达(招股书/两轮问询回复/审计报告)、C4/C6 传染信号对首次真实使用、market_snapshot 六项完整、基准数据未进结论位。