Skip to content
Back to skills

Evolve Check

ASecurity

任何内容流程收尾的伴随演进评估(数据驱动的 self-evolving,非独立目标轮)。 用户下内容目标(补 case / reference 沉淀 / 诊断 / 拉取 / replay)后,执行中产生 的数据(新沉淀、miss、重复动作、流程摩擦)本身就是 evolving 信号——本协议在 流程收尾低成本检查:对照触发条件表 → 有信号才产 idea 卡并自行验证执行 (agent 自产卡 + 自验证 + 攒批聚合 PR 人审),无信号一行即止。演进不是"跑一轮 自演进"才发生,而是系统做事时自动校准——像人学习。深度全库观测轮(用户说 "看看有什么可改进")见 /skill:self-evolve;本文件是被内容流程收尾引用的轻量协议。

  • 5 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 19, 2026
ai-agentspythongogit

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add pillumina/ascend-sleuth --skill evolve-check --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evolve Check?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Evolve Check
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pillumina-evolve-check/badge)](https://www.skillsdirectory.com/skills/pillumina-evolve-check)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: evolve-check
description: >
  任何内容流程收尾的伴随演进评估(数据驱动的 self-evolving,非独立目标轮)。
  用户下内容目标(补 case / reference 沉淀 / 诊断 / 拉取 / replay)后,执行中产生
  的数据(新沉淀、miss、重复动作、流程摩擦)本身就是 evolving 信号——本协议在
  流程收尾低成本检查:对照触发条件表 → 有信号才产 idea 卡并自行验证执行
  (agent 自产卡 + 自验证 + 攒批聚合 PR 人审),无信号一行即止。演进不是"跑一轮
  自演进"才发生,而是系统做事时自动校准——像人学习。深度全库观测轮(用户说
  "看看有什么可改进")见 /skill:self-evolve;本文件是被内容流程收尾引用的轻量协议。
---

# Evolve-Check(收尾评估协议)

> **定位**:self-evolve 的伴随形态。self-evolve = 用户显式发起的深度轮(全库观测/
> 攒批/聚合);本协议 = **任何内容流程收尾自动执行的轻量检查**——用户说"沉淀
> vllm-ascend 的 closed issue",issue-ingest 跑完收尾即触发本协议,不看用户是否
> 另说"改进系统"。演进是隐形执行策略的一部分;本文自包含执行参数。
>
> **本地执行说明**:本 skill 是收尾协议,非独立用户入口。内容流程(issue-ingest /
> to-reference / to-postmortem / diagnose / knowledge-groom)收尾时,agent
> `read` 本文件并遵循下方流程;用户说"这次做完有什么可改进的/值得沉淀的"也可直接触发。

## 何时触发(收尾钩子)

任何内容流程**完成主体目标后、出最终报告前**执行一次,成本目标近零(无信号即止):

- issue-ingest:沉淀与标记完成后;
- to-reference / to-postmortem:草稿产出、落盘后;
- diagnose:**不强制每次收尾跑本协议**(高频 + 已有内建 evolving:未命中起草候选
  case、源码揭示稳定结构事实顺手走 to-reference、反馈捕获把 `feedback.outcome` 置 `pending`)——
  其 L2/L3 视角(反复 miss 同族、流程摩擦)由 S2 replay(`s2_replay.py --todo`)
  与深度轮归因事件信号覆盖,见 /skill:self-evolve §二;
- knowledge-groom:批审产出后。

触发**不需要用户说"跑自演进"**——它是流程的默认收尾步骤(同 diagnose 写 trace 的
地位)。如果一轮内容执行本身就是自演进深度轮的一部分(self-evolve 驱动),跳过本
协议(深度轮已含观测)。

## 评估步骤(先扫信号,无信号即止)

**第 1 步:读本轮执行现场**(不重扫全库、不读 case 全文——token 预算,原则九):

- **优先读统一执行记录**(走脚本,别内联 python):脚本自带三件内联版没有的东西——**路径解析**
  (共享件在主检出还是本检出内)、**共享范围标注**(防把读数读成全系统读数)、**无记录时的退化口径**。
  内联版还踩过另一类坑:记录里的 `at` 曾被 PyYAML 读成 datetime,`r['at'][:16]` 直接 TypeError
  (写侧现已统一为带引号 ISO 字符串,该断点已修——但前三条理由不变,且新 worktree 里文件根本不存在):
  `python3 scripts/tail_exec_log.py`(默认尾部 3 条;`--n 5` / `--skill evolve-check` / `--json`)
  ——拿"本轮做了什么"(替代凭 agent 记忆):
- 产出:本轮新增 case/reference/卡 id(从记录 products 提取,不重扫全库);
- 过程中有没有:miss(diagnose/replay 未命中)、重复手动动作、流程摩擦、执行错、
  新数据源/新 issue 类型首次出现——这些在 decision_reason 未提及时由 agent 现场补判断;
- **无执行记录时**:脚本打印一行「无执行记录」并 exit 0——这是**正常退化路径,不是报错**
  (内容 skill 忘了落记录、或本轮是历史流程/外部动作)。按它给的口径如实标注"无执行记录,
  基于现场判断",不假装有数据(诚实退化)。内容 skill 收尾应落记录(见各 skill「收尾」节);
  修好记录缺失比在本步硬猜更有价值。
- **exec-log 是同一克隆共享的**(主检出 `metrics/skill-exec-log.yaml`,所有 worktree 共写共读;
  `.gitignore` 运行时件):所以"这里为空"= **这个克隆还没有任何收尾记录**,而不是"本 worktree
  没跑"。脚本输出自带路径与共享范围标注,**不要**把读数说成全系统读数——**跨克隆/跨机不聚合**,
  要跨机得让聚合值(`--summary`)写进当期的指标源文件(`metrics/timeline.d/<期号>.yaml`,
  随后 `scripts/build_timeline.py` 重建聚合)。

**第 2 步:对照触发条件表**——命中的信号才继续,无命中直接出报告。**本表是「哪些现场值得产卡」的清单,不是信号名枚举**:卡里的 `source_signals[].signal` 是自由文本,允许写更贴切的名字;新增一类现场时**先补本表**再产卡(否则表与行为会脱钩——实测曾有一批卡触发在表外)(加一行
"evolve-check:无演进信号"),**不为产卡而产卡**(原则四/十)。

| # | 信号(本轮执行现场) | 含义 | 候选动作 |
|---|---|---|---|
| T1 | 沉淀 ≥3 条同根因/同族 case,或发现可跨 case 归纳的共性 | 有 methodology/reference 可提炼 | 归纳 reference(走 /skill:to-reference --ingest-cases),**不产卡**;归纳时发现要改路由或加载行为才产卡 |
| T2 | diagnose/replay miss 某 issue 族,或 Tier 3 兜底反复走同路径 | 覆盖缺口 | 补 case(S2 replay 佐证缺口),**不产卡**;缺口指向 triage 分支或检查判据才产卡 |
| T3 | 同一手动动作重复 ≥2 次(如反复拼同一查询、反复等同一命令输出) | 可固化流程/脚本 | 产 L2 卡:沉淀脚本/skill 步骤或 reference |
| T4 | 执行错反复出现且无归属组件 / 归因事件聚合浮出失败簇 | 流程缺陷 | 产 L2 卡:修订该组件所在 skill 步骤 / triage 分支 |
| T5 | 新数据源/新 issue 类型/新错误码首次出现且无配置 | 覆盖扩展 | 扩配置 / 补 reference 家族,**不产卡**;要改家族表的绑定方式或 triage 分支才产卡 |
| T6 | 容量超 soft_cap 或健康指标恶化(`scripts/metrics_health.py` 的越界清单;判据数值在 `metrics/gates.yaml`) | 结构治理 | 产 L1 卡:拆分评估(ev_proposal) |
| T7 | 本轮跑通一个可复用链路(拉取→评测→沉淀→验证全通) | 新流程资产 | 产 L2 卡:沉淀为 skill/脚本候选(弱信号,新 skill 立项走双签) |
| T8 | 本轮出现**体验/质量**信号(用户抱怨问得多/结论看不懂、输出像模板、坏路径甩锅、交互摩擦) | 体验与质量问题 | **不产卡**——记入 session 报告,累积成 `/skill:skill-review` 的输入(体验是判断性规范,不做 CI 硬门) |
| T9 | **人给的反馈**:人审意见、owner 追问、用户纠正(同一条反馈反复出现 = 判断或表法有系统偏差) | 人的判断与系统的判断不一致 | 产 L2 卡:把该判断改成结构或流程步骤(反馈只出现一次 → 先记信号,不产卡) |
| T10 | **自审发现的缺口**:设计缺口 / 机制缺口 / 可观测性缺口(如「判据在量错东西」「声明与实现不符」「某个读数没有分母」) | 机制自身的缺陷 | 产 L1/L2 卡:修读数或补机制(这是本协议最主要的产卡来源,别把它当「没有信号」) |
| T11 | **审计/数据体检**:口径漂移、断言过期、数据反常(如「同名概念两个数」「断言里写死的数字已腐烂」) | 存量在腐化 | 产 L2 卡:修口径或改断言;**审计轮本身不产卡**,带具体缺陷才产 |

**第 3 步:产卡 + 自行验证(有信号时,agent 自动完成,不等用户)**:

1. **先读候选水位**(产卡前的机械检查,别靠自觉):`python3 scripts/ev_proposal.py --waterline`
   ——输出「待回写/待合入 N(上限 20)」,**超限退 1**;退 1 时本轮**只记信号不产卡**,先消化积压
   (信号照记在收尾说明里,条件到了再产)。读数含"指针没回写"的成分,超限时先按
   `python3 scripts/ev_proposal.py --mark-merged --from-prs` 把上一批的指针补齐再看剩余量——
   把已合入的卡读成未合入,会让动作走成"停产"而真正该做的是回写;
2. 查重 + **同组件先例咨询**(防重提被拒方案——skill-impact 咨询语义;
   论证可选层 docs/mechanism/pipeline.md §12a):`python3 scripts/ev_proposal.py --list`
   ——同 trajectory/同 target 已有在池卡 → 合并不新建;
   同时查本卡要改的组件(skill 步骤 / triage 分支 / script)在历史卡里的结局:
   `--list` 定位同组件卡 → 读其 decisions——该组件被改过 / 回滚过 / 有 rejected 结论 =
   该方向已试过 → 不重复方案(改提新方向,或记信号不产卡);一次查全走
   `python3 scripts/ev_proposal.py --impact [组件关键词]`(组件×尝试×结局;**有结局分歧的组件会被标出**
   ——只有那些组件的先例能告诉你"别重试",其余是"改完又改"的累积);
3. 产骨架:`python3 scripts/ev_proposal.py --new` → 填字段(layer / **target_component** /
   title / source_signals 带 trajectory / hypothesis / predicted_effect / validation /
   risk / principle_refs),trajectory 必须指到本轮执行出处(产出文件 id / replay
   结果 / trace)。**target_component = 本卡要改的那个组件**(仓库内路径或组件名):它是
   「同组件改过几次、结局如何」的键,缺了先例咨询就无从查起(先例视图 `ev_proposal.py --impact`
   读它;CI 对生效日之后的卡强制);
   `predicted_effect` 必须带 **`measure`——预测的出处**:一条命令 + 期望
   (`expect_exit` 或 `expect_stdout` 至少一项),让**任何** reviewer 一条命令就能
   复核预测是否成立(`scripts/ev_measure.py <卡号> --run`;三态退出码 =
   符合 / 被证伪 / 无法判定)。真不可度量时如实声明 `reason`,不要编一条命令。
   预测写不出可复现口径,通常说明它还不是一个可证伪的假设——先改预测。
   与 `trajectory` 的分工:trajectory 管**问题可回放**,measure 管**预测可复现**;
4. **自行验证执行**(评估自动化的核心——agent 自己验证,不把验证推给人):
   - 按**影响面分级**选门禁(docs/guide/eval.md「门禁分级」可选论证层,下述为执行值):
     **检索/路由/候选选择面**改动 → golden 子集前后对照(2-5 条受影响 fixture,
     非全量;基线缓存复用,只跑改后侧)或 S2 replay(`scripts/replay_golden.py` /
     `scripts/s2_replay.py`),数据通过才算 eval solid;检索/路由层候选在 **arena
     selection 池可用时**(`scripts/eval_arena.py --stats` 出分、`--gate` 出判词,论证见
     docs/mechanism/eval-arena.md 可选层):无回归 + 门控判词为 **accept**
     才判 solid(门控判定是数据门槛,不替代 dual 双签)。golden 无回归不在这两条命令里,
     由 `scripts/replay_golden.py` 单独跑(每条 fixture 一次完整诊断,要模型)。
     **判词三态,只有 accept 算通过**:`weak_accept` 表示"看起来涨了但证据不够"
     (池子里翻转的对子太少,或 stats 缺逐条向量)——**不得据此判 validated**:
     要么补样本/扩池后重跑,要么如实把卡记为证据不足(诚实退化,不虚报门控通过)。
     判据自带复用折减:同一个池被反复拿来做接受决定时,工具的判定阈值按复用序号收紧
     (池内容变了=换了量尺,复用计数自动归零)。所以**别把同一个小池当无限量尺**——
     连续几次判 weak 就是该重新选样或扩充池的信号,而不是把标准说松;
     **交互/追问/指引面**改动(不改变候选选择)→ 跑 ixn 对口样本(`scripts/ixn_replay.py`,
     2-3 条针对性)或小型探针,**不跑检索 golden**;
     纯文档/注释 → 不跑 replay,scan + 人审;
   - 不能即时判定的(真实反馈类 content/fix):完成实现 + S2 佐证,如实标注
     "已实现待真实确认"(现场有效性进观察窗,事后结算);
   - **先跑一遍自己的 `measure`**(`scripts/ev_measure.py <卡号> --run`):判据跑不通
     或期望对不上的预测,不算验证——先修判据或如实改预测,别把不可复现的预期留在卡上;
5. **agent 判断(EV 卡 = agent 决策档案,不含 git 合入态/待办态)**:
   - eval solid → `validated`(采纳:改动保留,进流程层攒批/PR 供人审);
   - eval 不成立 / 实验失败 → `rejected`(不采纳:留结论,改动不保留);
   - 发现更好方向 → 新卡 supersede 本卡(`superseded`);
   - **产卡即执行(无 candidate 待办态)**——方案成形才产卡,产卡状态 in_experiment
     开始执行;执行或验证完成而卡仍停 in_experiment = 卡不完整(见第 3.5 步)。

**第 3.5 步:生命周期完整性(卡 = proposal→action→eval→decision 的 agent 决策档案)**:

- **每步 decisions 记 type**:产卡记 `{type: proposal}`、执行记 `{type: action, conclusion: <做了什么/commit/产物>}`、
  验证记 `{type: eval, conclusion: <验证数据/通过与否>}`、判断记 `{type: decision, conclusion: <采纳/不采纳/换方向/继续下一轮+依据>}`——
  卡能看出生命周期走到哪、凭什么判断。**decision 是"在该节点做出的判断",不是"卡的终点"**:一张卡可以有多次
  (多轮:判断 → 新一轮 → 再判断),终态由 status 承载;
- **status 随执行推进,不靠自觉**:方案成形 → 产卡(in_experiment,开始 action + eval);
  agent 判断采纳 → validated / 不采纳 → rejected / 换方向 → superseded。**执行与验证都完成
  而卡仍停 in_experiment = 卡不完整**——这条已可机器判定,`verify_proposals.py` 报两类:
  ①**卡不完整**:in_experiment 且已记 `action` **且** `eval` 但无 `decision`(工作做完了、
  判断没落;只记了 action、验证还在跑的在途卡不算——那是正常中间态);②**僵尸卡**:
  in_experiment 超 14 天(`STALE_DAYS`,与面板同口径)仍无 `decision`。CI 的 `proposal-audit`
  job 跑它,卡随 PR 合入即被校验。**有中途 decision、只是还有下一轮要跑,仍停在 in_experiment 是正常的**:
  结束与否看 `status`,不看 decision 的个数;
- **终态卡必闭合**:validated/rejected/superseded 必须有 agent 判断的 decision 记录;
  validated 后补 `actual_cost.tokens`(成本审计;无法量化写 `0` + `note` 说明口径)——
  缺了 CI 报审计缺口,面板也标「缺成本」(两处口径一致);
- **卡必须能追到出处**:`source_signals` 非空且每条带 `trajectory`(产出文件 id / replay
  结果 / trace)——没有出处的卡无法回放归因,CI 直接报错;
- **预测也必须能追到出处**:`predicted_effect.measure` 带命令 + 期望(或如实声明不可度量)。
  理由:评审被设计成 30 秒判定(`predicted_effect` vs 验证结果),而只有散文的预测判不了
  ——reviewer 只剩"开全文"或"直接批"两个动作。缺 measure / 有命令无期望 / 命令仍是占位
  都会被 CI 报错;存量卡豁免但缺口由 `scripts/ev_measure.py --audit` 如实报出;
- 仅"观察到的信号"(数据前提未满足 / 无准备执行的具体方案)**不产卡**——信号记 session
  报告/任务状态,条件到(方案成形/数据齐)才产卡执行(防想法清单污染提案账本)。
- **改进动作必须先产 EV 卡(前置元流程,防绕过)——范围限定为三类**:①改动**行为面**(triage 分支、
  skill 流程步骤、闸门绑定、表族追加——凡改变命中或加载行为的);②**修订已合入的 active 词条**;
  ③索引与口径类机制改动。三类都走 **产卡(proposal)→ 执行(action)→ 验证(eval)→ 判断(decision)
  → 才随 PR 合入**;禁止先执行后补卡(产出已生效而决策链缺失,人审无据)。
- **内容面产出不产卡**:补 case、补或修 reference 词条、扩错误码家族、从 case 归纳 reference——
  这些都是内容动作,不产卡。产出物自己就是决策记录(case 的 `evidence` 与脱敏自查、reference 类
  PR 模板的变更类型/词条清单/来源与验证状态/聚类检查/预核意见),而卡要求的可证伪预测它们给不出;
  配卡只会产出"预测=CI 能过"的仪式卡,与本协议"预测必须可复现"的要求自相矛盾
  (原则四/十:不为产卡而产卡)。这些动作对应的信号(同族沉淀满三条、覆盖缺口、新错误码首次出现)
  照记进收尾报告与执行记录,动作直接执行;**信号连带要求改行为面时,只为行为面那部分产卡**。
  内容流程产出草稿进 inbox(待审队列)同样不在此列;`to-reference` / `to-postmortem` 收尾照常
  跑本协议,按触发条件表有真信号才动。

**第 4 步:落收尾记录 + 出说明**(并入流程报告,不单独打扰用户):

1. **先落本协议的收尾记录**(顺序不能反:记录落了,"这次协义跑过"才是数据)。
   **为什么必须落**:不落记录时"收尾跑了但无演进信号"与"根本没跑"在数据上完全不可区分,
   机制是否在运作无法证伪(收尾记录此前几乎为空,面板与 metrics 都不读 exec-log)。
   面板「执行现场」按它显示运行次数与无信号次数。

   ```
   python3 scripts/log_skill_exec.py --skill evolve-check \
     --products "<EV-xxxx(validated),...>" \
     --reason "<一句话:命中 T# → 动作 / 收尾无演进信号>" \
     --source <上游 skill:issue-ingest / to-reference / to-postmortem / knowledge-groom> \
     --tokens <估算>
   ```
   无信号时 `--products` 留空、`--reason` 写"收尾无演进信号"(面板据此单列 no-signal 计数)。
   落完自查本地不变量:`python3 scripts/verify_exec_log.py --check`(seq 唯一/字段齐全)。
   该脚本**不进 CI**——exec-log 是 `.gitignore` 运行时件,CI 上文件不存在,进 CI 只会空转。

2. 出说明:

```
evolve-check:产出 EV-xxxx(补 case,S2 replay 佐证缺口)→ agent 判断采纳(validated)
或:evolve-check:无演进信号(本轮无新增数据/无流程摩擦/无覆盖缺口)
```

## 与 self-evolve 的分工

| | evolve-check(本协议) | self-evolve(深度轮) |
|---|---|---|
| 触发 | 内容流程收尾自动(用户下内容目标即隐含) | 用户显式"跑一轮自演进/看看有什么可改进" |
| 范围 | 本轮执行现场(一流程一查) | 全库观测(归因聚合/容量/覆盖/指标) |
| 信号源 | 本次产出的数据 + 摩擦 | 跨轮聚合(归因事件、S2 校准集、timeline) |
| 共用 | idea 卡 schema / 验证门 / 攒批聚合 PR | 同左 |

两者产出同一批池(`proposals/ideas/`),攒批聚合 PR 供人审时合并处理,不区分来源。

## 授权边界

- **EV 决策是 agent 做的**(产卡 + 自验证 + 判采纳/不采纳——本协议第 3/3.5 步);
  卡的 authorization 字段(auto/review/dual)标注的是**改动合入的知识层分级**(改动随 PR
  合入时按此送审),不是 EV 决策需要人逐卡审批;
- **人审发生在目标态完成/降级完成时提的聚合 PR**:审整个自演进过程是否 solid(含 rejected
  卡——agent 提了 EV、实验发现不行、不采纳,这是诚实记录,人审应接受),不是逐卡审批;
- 指标口径红线保留:产卡不得改评分/指标定义(系统不改自己考卷);
- 结构级(triage/skill 骨架/新 skill 立项)走 kb/high-risk 双签,本协议只产候选不直改。

## 边界(不做)

- 不为产卡而产卡:无信号即止;候选水位超限时只记信号不产卡;
- 不代替用户下内容目标:本协议只回答"这次做完能否更好",不决定"下次做什么";
- 不碰客户现场、不做批量改库(那是 self-evolve 深度轮 + 人审的范围)。

## 依赖的能力/工具

| 能力 | 工具/入口 |
|---|---|
| 读本轮执行现场(第 1 步) | `scripts/tail_exec_log.py`(确定性入口;文件缺失/空表 = 正常退化,exit 0) |
| 落收尾记录(第 4 步) | `scripts/log_skill_exec.py --skill evolve-check` + 自查 `scripts/verify_exec_log.py --check` |
| 查重/产卡骨架 | `scripts/ev_proposal.py --list / --new` |
| 卡校验 | `scripts/verify_proposals.py`(CI `proposal-audit` job;含卡不完整/僵尸卡/出处缺失) |
| 预测复核 | `scripts/ev_measure.py <卡号> --run`(**自己先跑一遍**:判据跑不通的预测不算验证) |
| 验证门(即时判定) | `scripts/replay_golden.py` / `scripts/s2_replay.py` |
| 归因事件聚合(T4 信号) | `scripts/component_tally.py` |
| 收尾可见性(面板) | `scripts/ev_board_data.py` 的 `skill_exec` 段 → ev-panel「执行现场(exec-log)」 |
| 内容沉淀(T1/T2 落到执行) | /skill:to-reference / /skill:to-postmortem |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.