前端开发
需要给 AI agent…
对一套 agent 工作区跑质量/健康/效率审计,输出按严重度分类、带修复建议与执行排序的 Tier 1 工作简报。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
需要给 AI agent 工作区做系统级特定
解决思路
- 先跑 `python tests/run_tests.py`(静态检查;随系统增长期望 78/78 或更高)。
- 再跑 `python tests/run_tests.py --output`(fixture 模式;部分 fixture 可能故意未捕获)。
- 解析失败:每条 `[FAIL]` 行按显示的 file:line 记入 findings;不要重跑失败项或尝试修复,只记录。
- 本地 harness 全绿不等于全绿:读最新的 `routine-reports/weekly-health-check-*.md`,把它的 harness 行与刚跑的结果做 diff;报告两个数字,任何差异(计数或结论)都当作 finding 而非云端抖动。
- 当计数不同时,先诊断远端缺少哪些输入,再去动检查本身;常见原因是某个 canonical 源不完整,而某个 skill 文件一直在悄悄兜底。
- 测量 `SKILLS_DIR` 前先解析它并报告返回的根:`python -c "import sys; sys.path.insert(0,'tests'); import run_tests as rt; print(rt.SKILLS_DIR, len(list(rt.SKILLS_DIR.glob('*/SKILL.md'))))"`。
- 绝不要从 CLAUDE.md 或本技能里写的路径推断 skills 根,直接问 harness;两次运行间扁平的检查数不能证明技能变更无影响,因为基于 glob 的扫描每次只报一个聚合检查。
- 把解析出的根与 personal-skills clone 比较,列出根里缺失的技能以及内容不同的技能;两侧不同时先比较行数与 `diff` 方向诊断哪边更旧,再决定复制方向(较新的一侧不一定是已安装的一侧)。
- Step 2 并行读 `~/.claude/CLAUDE.md`,扫描自相矛盾:专家人数漂移(同文件里 16 对 20)、版本号漂移、层表漂移。
- 读 `<work folder>/CLAUDE.md`,扫描陈旧数字:专家人数、harness 检查数、页面数、agent 团队人数。
- 读 Step 1 解析出的 `SKILLS_DIR` 下的 `{ann,vi,li,researcher}/SKILL.md`,对照行数预算;预算数字从 `tests/run_tests.py` 的 `SKILL_BUDGETS` 读,那是权威源,不要相信任何引用的旧数字。
- 报告余量而不只是通过/失败:技能距预算 5 行以内就算 finding,因为下一次编辑会因算术而非实质内容让 harness 失败。
- 检查上述技能正文 prose 的 em-dash 计数,按 CLAUDE.md 语音规则,列表项分隔符与技能文件 frontmatter 属例外。
- 读 `agent-improvements/agent_registry.md`,数 `### ` 条目,与 Vi taxonomy 表交叉引用完整性,并与 `~/.claude/agents/<name>.md` 是否存在交叉引用。
- 每个 finding 记录:文件路径、显示的行号、错在哪、按失败-修复映射给出的修复建议。
- Step 3 并行读 `agent-improvements/{ann,vi,li,researcher,community}-overlay.md`,检查文件大小(上限 35KB)与 Active 条目数(上限 10)。
- overlay 任一超限就标记为 compression CURATE(压缩条目),而不是仅 archive-only CURATE;`community-overlay.md` 同样受这两项上限监控。
- 读 `agent-improvements/coordination-log.md`,数 `STATUS: OPEN` 条目。
- 读 `agent-improvements/_pending-ingest.md`,数 `Status: PENDING` 行,呈给 Ane 处理。
- 读 `agent-improvements/PROPOSED-*.md` 的 `Status:` 字段,标记超过 7 天的 `AWAITING APPROVAL`。
- Step 4 检查 `agent-improvements/_temp_*.md`,用 `ls -la` 取日期,超过 7 天的列为陈旧候选。
- 对 `agent-improvements/proposed-agents/*.md`(排除 README)逐个检查 `~/.claude/agents/<同名>.md` 是否存在;存在说明 staging 副本本应在部署时移除,用 `diff -q` 确认分歧。
- 读每个 `agent-improvements/SESSION-STATE-*.md`,检查内部矛盾:表格单元与项目符号互相打架、进度状态字段互相不一致。
- 检查 `mel_wiki/wiki/raw/` 大小,不应为空(为空说明 ingestion 已停止)。
- Step 5 读 `agent-improvements/qa-rejection-log.md`,数数据行并给判定做趋势,这是实时 QA 遥测信号;空表意味着改进循环靠轶事,标记为风险。
- `qa-disagreement-log.md` 仅作历史,2026-07-30 已退役为实时计数器,不要把它的行数当作 watch 指标。
- 读 `agent-improvements/cost-calibration-log.md`,数有实测 actuals 与 `not observed` 的行;若不足 30% 有 actuals,可观测性仍弱。
- claude.ai mirror 现在是两个文件:`mel-framework-reference.md`(核心:常驻规则、速查表、lenses、ECA 校准)加 `mel-framework-appendix.md`(编号框架条目),2026-07-30 在 194KB 拆分;不要再提合并大小阈值。
- 大小问题不由审计判断:`/test` 每次通过 `claude-ai:framework core ≤ 50KB`(框架条目漂回 appendix 外就失败)和 `claude-ai:framework mirror build stamp current in both halves`(两半不同步就失败)强制执行。
- 剩下归审计的:跑 `python scripts/check_desktop_sync.py`,报告哪一半相对 claude.ai 陈旧,因为没有脚本能看到实际落进 project knowledge 的内容。
- wiki 正文 prose 的 em-dash 审计:`grep -c "—"` 会多计(命中章节标题、`title:` frontmatter、表格行、列表项 `term — definition` 分隔符、逐字引文标题内的 em-dash),先用 `grep -rnE "—" mel_wiki/wiki/ --include="*.md" | grep -vE ":[0-9]+:#|title:|\||\[\["` 过滤结构噪声。
- 把过滤后的计数与最近的 audit-drift 基线比较,趋势比绝对数重要;幸存者要肉眼检查,因为列表定义破折号与引文标题仍会通过;逗号会造成真实歧义的同位语是允许的。
- Step 6:若 `agent-improvements/audit-drift-*.md` 存在,读最近一份(按文件名日期排序)。
- 对每个先前标记项,检查是否已解决。
- 把未解决项结转进 findings,标注 `[carry-forward from audit-drift YYYY-MM-DD]`。
- 重新标记前先对照权威源核实数字预算:`tests/run_tests.py` 里的 `SKILL_BUDGETS` 或 `P1_SECTION_TOKEN_CAP`,或 finding 引用的具名配置;确认该指标仍存在且仍用这个数字。
- 若上限已退役或变更,把 finding 降级为 `[stale heuristic, not a live breach]`,写出真正治理的指标,不要重提旧数字;这条子步骤不重新实现 harness,`/test` 负责执行预算,审计只负责不再重提退役项。
- Step 7 应用四部分技能评分表:trigger、structure、steering、pruning;trigger 由 skill-creator evals 检查,structure 由 superpowers:writing-skills,pruning 由 Step 3 到 4 加 harness 预算覆盖。
- 本步只补 steering 轴:技能触发后是否真的约束了 agent 的行为。
- 读取 personal-skills `skills/` 树下的第一方技能,加上 `{ann,vi,li,researcher}` 团队技能。
- 触发碰撞:grep `description:` frontmatter 行中的共享触发动词(grill, review, plan, debate, design),肉眼检查重叠对;带 `disable-model-invocation: true` 的技能是用户调用专属、无法碰撞,先排除;碰撞的解法是让更具体的技能在 description 里写明自己的地带并把邻居路由开。
- 引导强度:看 body 是否给出具体有序动作、编号工作流、决策规则、输出模板或「不要做」清单;标记既无命令式工作流、又无决策规则、又无输出章节的技能。
- 评分前必须读 body,绝不靠标题关键词扫描判这一轴;渐进披露技能是标准误报,其 `SKILL.md` 故意短、把引导委托给 `references/` 或 `scripts/` 目录,这也算引导;先检查兄弟目录,再读。
- 引导泄漏:检查 body 是否允许 description 禁止的事,例:一个「不写文件」的技能正文没有防写守卫,或一个「不做决定」的技能正文漂移进做决定;标记 description 与 body 的矛盾。
- 列表可达性:在任何读取文件之前先观察,看会话启动时加载的自身可用技能列表,记录哪些技能只显示名字、没有 description。
- description 从未到达列表的技能无法被触发匹配选中,即用户调用专属而未声明;这一轴对文件检查不可见,且会话启动后列表固定、事后不可重观察,必须在第一轮捕获。
- 原因已诊断且 Ane 已裁决:name-only 是文档化的技能列表预算(`skillListingMaxDescChars` 默认 1536;`skillListingBudgetFraction` 默认上下文窗口的 0.01),不是缺陷,记录受影响集合后继续,不要重新推导原因。
- 报告受影响技能并说明其中是否有 load-bearing 的;不要为此开调查,也不要编辑技能文件去修,因为损失在列表而非文件里。
- `disable-model-invocation: true` 的技能按设计显示 name-only,标记前先排除。
- 不要把 Workflow 条目(`.claude/workflows/*.js`)整体排除;只有某个 workflow 的 `meta` 既无 `description` 也无 `whenToUse` 时才排除,因为那样它无可显示。
- 标记任何 model-invocable 技能、或 meta 健康的 workflow,其 description 从未到达列表。
- 每个 finding 记录技能路径与失败轴(listing-unreachable / trigger-collision / steering-weak / steering-leak)。
- Step 8 审计每个会话都会加载的面:`~/.claude/CLAUDE.md`、项目 `CLAUDE.md`、output-style 块、会话列表中的 model-invocable 技能 description。
- 重复漂移指令:grep 两个 CLAUDE.md 的共享锚短语(规则名、阈值、文件路径)并 diff 匹配段落;governance 标记区域是故意重复以保 web parity,对这类只比较匹配 `governance:*` 标记对之间的共享规则文本、只标记漂移、绝不标记重复本身。
- 矛盾:一侧要求而另一侧禁止,或对同一行为设不同阈值(权限模式、长度上限、引用位置);肉眼读候选对,报告两侧的文件与行号。
- 触发所有权:同一行为被两个面声明(如某技能 description 与某 CLAUDE.md 规则抢同一触发);按项目 CLAUDE.md skill-routing 节的 trigger-discipline 规则解决。
- 分类每个 finding:contradiction(中)、duplicate-drifted(中)、governance 区域外的 benign duplicate(低,候选改为 goal + pointer)。
- governance 内容的修复通道是 `governance-rules.md` + `sync_governance_rules.py`,绝不手改标记之间的内容。
- 修复映射:CLAUDE.md 专家人数漂移 → 用当前 `agent_registry.md` 计数替换陈旧数字。
- 修复映射:Vi taxonomy 表缺专家 → 加一行匹配 `agent_registry.md` 条目。
- 修复映射:Vi 模型规则与 registry 冲突 → 让 Vi 对齐 registry 的 `model_default` 字段,registry 权威。
- 修复映射:技能文件超预算 → 压缩叙述、把细节移到 wiki;只有在万不得已时才改 `tests/run_tests.py` 中 Ann/Vi/Li/Researcher 的技能上限。
- 修复映射:正文 prose 里的 em-dash → 按 mel-report-writer 的既有模式转换(同位→逗号;列表引导→冒号;句断→句号)。
- 修复映射:陈旧的 `_temp_*.md` → 超过 7 天且当前未被引用就 `git rm`。
- 修复映射:已部署的 agent 仍在 `proposed-agents/` → `git rm` 暂存副本;`~/.claude/agents/` 中的为 canonical。
- 修复映射:overlay 超过 35KB 上限 → 跑实质性 CURATE(压缩条目,不只归档);这个体积下 Li 的仅归档一遍不够。
- 修复映射:qa_block schema 与技能不一致 → schema 权威,把技能文本对齐 schema 字段名。
- 修复映射:两个 model-invocable 技能触发碰撞 → 在更具体技能的 description 里写明地带并把邻居路由开;或对 Ane 总是按名字调用的那个设 `disable-model-invocation: true`。
- 修复映射:steering-weak 技能(会触发但不约束)→ 往 body 加编号工作流、决策规则或输出模板;只有 description 不构成引导。
- 修复映射:steering leak(body 允许 description 禁止的事)→ 在 body 加与 description 约束一致的显式守卫,如 no-write 技能声明不得用 Write/Edit。
- 修复映射:加载面上有冲突或重复漂移的指令 → 保留一份 canonical 声明,把副本换成指针;governance 区域通过 `governance-rules.md` + `sync_governance_rules.py` 重新生成,绝不分别手改。
- 输出 Tier 1 工作简报:第一句 BLUF;不用 em-dash(你在审计 em-dash 纪律,不要违反被检查的规则);平实英语、主动语态、句子不超过 25 词;遵循 CLAUDE.md 的「Tier 1 working brief」规则。
- 用固定模板交付:# System audit — YYYY-MM-DD / BLUF(N issues found, M severity-medium, P severity-low, Q architectural decisions)/ Tests run / Documentation drift / Skill trigger and steering / Conflicting instructions / Hygiene / Architectural ceilings / What is working / Recommended sequencing / Evidence base。
- Recommended sequencing 按三档给:Quick batch(约 30 分钟,机械编辑)、Focused pass(约 1 小时,需判断)、Strategic decision(需人拍板)。
- 不要自动执行修复:Ane 逐条复核并运行;不要产生 grade,那是 `/grade-system` 的职责。
- 不要把自己不知道的已延期项当新问题标记:交叉检查 `agent-improvements/system-audit-*.md` 与 `audit-drift-*.md`。
- 不要重复 harness 输出:若 `python tests/run_tests.py` 已静态覆盖某检查,只报 harness 结果,不要重新推导出这个 finding。
- 不要奉承系统:诚实的 finding 数与严重度。
- 交付简报前标记维护节奏:`python ~/.claude/hooks/maintenance_due.py --mark system-audit 2>/dev/null || true`(没有该 hook 的机器如 web 容器上是 no-op)。
- 以「Want me to execute the quick-batch fixes now?」结束简报,然后等待,人确认后再执行。
- 确认后执行 quick batch(机械编辑);focused-pass 项逐项再确认一次,因为涉及判断;strategic-decision 项永不自动执行。
- 预算成本:干净审计约 30-60k tokens,需要大量交叉引用验证时更大,仍在 200k 系统改进上限内有充足余量。
适用边界 · 注意事项
- 不适用于没有这套具体系统的环境:它依赖 Ann/Vi/Li/Researcher 团队、`agent-improvements/`、`tests/run_tests.py` harness、`mel_wiki/` 与 claude.ai mirror 等特定路径和产物,换系统需重写全部路径与预算来源。
- 不适用于想要一键修好问题的人:本技能只产出分级审计简报,不自动执行修复,每条修复都要由人复核确认。
- 不替代 `/test`(只管 harness)、`/li lint`(只管 wiki)或 `/grade-system`(给整体质量评分而非具体问题清单)。