mcpField
C
confidence

confidence

github.com/mthines测试与质量2035 次安装今天更新
代码仓库

关于 confidence

用于评估计划、代码和分析的信心评估技能,帮助决定是否继续。它结合加权判断与计划的确定性规则检查,并支持审查后自动应用修复的模式。

主要功能

  1. 01计划、代码与分析评估模式
  2. 02加权评估维度
  3. 03计划的确定性规则检查
  4. 04评分阈值与迭代指导
  5. 05用于应用审查修改的修复模式

适用场景

  1. 01在自主执行前检查计划
  2. 02在提交拉取请求前审查代码
  3. 03评估根因分析
  4. 04应用评估中发现的修复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mthines/agent-skills --skill confidence

安装后在 Claude Code 中输入/confidence确认已加载。

详细介绍

置信度评估

评估当前工作完全满足既定要求的置信度。

多信号评估。 单个 LLM 置信度数值不可靠,不能单独作为门槛(令牌概率 ≠ 正确性)。此技能将 LLM 的维度评分与 Agent 必须同时运行的确定性规则检查结合起来。最终得分取决于两者是否都通过。

目录


模式检测

检查参数:$ARGUMENTS

参数默认值验证内容使用时机
plan实施计划的完整性第 1 阶段规划完成后、自主执行前
code是代码实现的正确性编写代码后、提交 PR 前
analysis分析准确性(根本原因、重构依据或技能缺口)调查期间,在提出修复、重构或技能源代码差异之前
bug-analysisanalysis 的弃用别名 — 行为完全相同为保持向后兼容;在报告标题中输出一行弃用说明

如果未提供参数,默认使用 code。

别名处理。 bug-analysis 可作为已弃用的别名接受,并解析为 analysis,使用相同的维度、权重、阈值和修复模式行为。使用此别名时,在报告标题前添加一行:> Note: \bug-analysis` is a deprecated alias for `analysis`. Update the caller when convenient.` 此别名可确保现有工作流和记录在过渡期间继续正常运行;待调用方迁移后将其移除。

如果参数中包含 "fix"(例如 code fix、plan fix、analysis fix),则进入修复模式——审查后自动修复发现的所有问题。


评估维度

对于 plan 模式

计划模式采用多信号评估:LLM 维度评分 + 确定性规则检查。 两者都必须通过才能解除门槛。

第 1 步 — 大模型维度评分
维度权重评估内容
完整性40%是否记录了所有 Phase 0 要求?核心章节是否已填写(且任务需要时包含扩展章节)?新会话能否仅凭此计划执行?如果某个扩展章节因其 Include when 触发条件不适用而合理省略(例如,仅修改计划中没有现有代码调查),则不要扣分。如果现有代码调查中的“搜索内容”一栏含糊不清(“看了看”),或 BUILD NEW 判定未显示任何搜索,则应扣分——规则 #10 检查是否存在,本维度检查搜索质量。
可行性30%技术方案是否可靠?所用模式是否与代码库一致?是否在适用时识别了风险?
无歧义性30%实施步骤是否足够具体,能够直接执行而无需自行解读?是否在适用时考虑了边界情况?
第 2 步 — 确定性规则检查(通过 Bash 运行)

对于计划模式,以下每项检查都必须通过。任何一条规则未通过,都会将关卡上限限制为 89%(无论大模型评分如何)——Agent 必须指出未通过的规则,并修复计划或向用户升级处理。规则 #10 和 #11 为有条件适用(其触发条件属于规则的一部分);条件不成立时,视为通过并记录说明——不得静默跳过。

#规则检查验证
1plan.md 存在于预期路径test -f .agent/$(git branch --show-current)/plan.md
2所有 Core 部分均存在grep -E '^## (TL;DR|Requirements|Decisions|Acceptance Criteria|Implementation Order|File Changes|Verification|Progress Log)' plan.md | wc -l ≥ 8 — 这些属于始终启用的 Core 层级。扩展部分(Background、Technical Approach、Patterns、Edge Cases、API、Tests、Dependencies、Risks)按需纳入,不计入此处。
3Acceptance Criteria 部分非空awk '/^## Acceptance Criteria/{f=1;next} /^###? /{f=0} f' plan.md | grep -c '^- |^[0-9]' ≥ 1
4## File Changes 中的每个文件均可解析,或标记为 create对每一行 modify/delete,git ls-files <path> 都会返回该路径。Create 行跳过此检查。
5每项需求均标记为 [user-stated] 或 [inferred]awk '/^## Requirements/{f=1;next} /^###? /{f=0} !f{next} /^[-0-9]/{n++} /\[user-stated\]/{t++} /\[inferred\]/{t++} END{exit n!=t}' plan.md 退出码为 0 — 标签数量必须等于需求数量(范围在 ### Out of Scope 处结束,因此不计入排除项)。这是一个不含 shell 管道的单条 awk 命令,因此表格行会原样执行。
6每个决策行都填写了 Rationale 列awk -F'[|]' '/^## Decisions/{f=1;next} /^###? /{f=0} !f{next} !/^[|]/{next} {r++} r<3{next} NF<5{bad=1} $4 ~ /^[ \t]*$/{bad=1} END{exit bad}' plan.md 退出码为 0 — Decisions 表格的 Rationale(第三)列没有缺失或空白单元格。字段分隔符和行匹配使用字符类 [|],因此该命令无需 shell 管道即可原样执行。
7所有时间戳均为带时间部分的 ISO 8601 格式awk '/^## Progress Log/{f=1;next} /^###? /{f=0} !f{next} /^- /{n++} /^- \[20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z\]/{t++} END{exit n!=t}' plan.md 退出码为 0 — 每条 Progress Log 条目都以 [YYYY-MM-DDTHH:MM:SSZ] 时间戳开头。这是一个不含 shell 管道的单条 awk 命令,因此表格行会原样执行。
8Verification 命令不是模板“After editing”和“Before PR”行不包含 { 或 } 占位符花括号
9每项 [user-stated] 需求均由一条 Acceptance Criterion 覆盖awk '/^## Requirements/ {rs=1; as=0; next} /^## Acceptance Criteria/ {as=1; rs=0; next} /^###? / {rs=0; as=0} rs && /^[-0-9]/ {n++; if (index($0,"[user-stated]")) us[n]=1} as {s=$0; while (match(s, /covers:[^)]*/)) {seg=substr(s,RSTART,RLENGTH); s=substr(s,RSTART+RLENGTH); while (match(seg,/R[0-9]+/)) {cov[substr(seg,RSTART+1,RLENGTH-1)]=1; seg=substr(seg,RSTART+RLENGTH)}}} END {for (i in us) if (!(i in cov)) exit 1; exit 0}' plan.md 退出码为 0 — 需求按列表位置编号(第一项 = R1;通过 ### 重置排除 Out of Scope 项);每个标记为 [user-stated] 的位置都必须出现在 Acceptance Criteria 的 (covers: R…) 注释中。这是需求→标准的可追溯性关卡:计划不能悄然遗漏用户提出的需求。这是一个不含 shell 管道的单条 awk 命令,因此表格行会原样执行。
10每个计划中的 create 都有 Existing Code Survey 结论awk -F'[|]' '/^## File Changes/ {fc=1; es=0; next} /^## Existing Code Survey/ {es=1; fc=0; next} /^###? / {fc=0; es=0} fc && /^[|]/ && $2 ~ /create/ {creates++} es && /^[|]/ {if (index($0,"EXTEND") + index($0,"WRAP") + index($0,"BUILD NEW") > 0) rows++} END {if (creates == 0) exit 0; exit (rows < 1)}' plan.md 退出码为 0 — 当 File Changes 表格中至少有 1 行 create 时,## Existing Code Survey 部分必须存在,且至少有 1 行结论(EXTEND / WRAP / BUILD NEW)。仅修改的计划无需满足此条件(可合理省略此部分)。这是防止重复造轮子的关卡:新单元必须记录复用搜索结果。字段分隔符使用字符类 [|],结论匹配使用不含管道的 index() 求和,因此该命令无需 shell 管道即可原样执行。
11checks.yaml 存在,且其 ID 与计划同步仅适用于 Acceptance Criteria 带有 AC-{n} ID 的情况(未带 ID 的计划,例如 /fix-bug 快速通道,可跳过并记录说明)。验证:test -f .agent/$(git branch --show-current)/checks.yaml,然后对计划的 Acceptance Criteria 部分中的每个 AC-{n},grep -c "^- id: AC-{n}$" checks.yaml 均返回 ≥ 1,并且 checks.yaml 中的每个 id: 都能在计划中找到对应的 AC。任一方向出现孤立项都会导致失败。
运行每项检查,并在输出表中列出通过/未通过。未通过的规则是阻断项,门禁必须将其报告出来,即使 LLM 维度评分很高也不例外。
第 3 步 — 综合门禁
overall_score = min(weighted_LLM_score, max_allowed_by_rule_checks)
where max_allowed_by_rule_checks = 100% if all rules pass, else 89%

其意图是:一个经 LLM 判断得分为 95% 的计划,如果未通过规则检查 #4(引用了不存在的文件路径),则最高只能得 89%——而且门禁会判定失败。这能捕捉到一种失效模式:模型很有把握,但计划却建立在幻觉生成的路径上。

对于 code 模式
维度权重评估内容
正确性40%逻辑是否确实解决了所述问题?
完整性30%是否涵盖所有情况、边缘情况和要求?
无回归问题30%是否可能破坏现有行为或引入副作用?
对于 analysis 模式

当被评估的内容是一项分析时,使用此模式——例如根因分析报告、重构理由、/create-skill diagnose 提案、陷入循环后进行的整体重新分析,或任何其他先于变更提案的推理内容。

维度权重评估内容
证据强度40%分析是否有具体证据支持(日志、跟踪记录、代码路径、文件:行引用、复现的行为)?
根因确定性30%这是根本原因,还是仅仅是症状?调查得有多深入?对于重构/诊断分析,应将“根因”理解为“实际的结构性原因”,而非字面意义上的故障成因。
结果信心度30%提议的操作(修复、重构、技能源差异)能否解决问题且不引入新问题?

输出格式

你必须严格按照以下格式输出:

## Confidence: X%

### LLM dimensional scoring

| Dimension | Score | Notes |
|-----------|-------|-------|
| <dim 1>   | X%    | ...   |
| <dim 2>   | X%    | ...   |
| <dim 3>   | X%    | ...   |

### Deterministic rule checks (plan mode only — omit for code/analysis)

| # | Rule                | Status      | Evidence                  |
|---|---------------------|-------------|---------------------------|
| 1 | <rule description>  | ✓ pass / ✗ fail | <command output snippet> |
| ... |                   |             |                           |

### Combined gate

- Weighted LLM score: X%
- Rule checks: <N pass> / <total> (cap: 100% if all pass, else 89%)
- **Final: X%**

根据上述维度权重,以加权平均值计算 LLM 加权得分。对于 plan 模式,最终得分为 min(LLM 加权得分, 规则检查上限)。对于 code 和 analysis 模式(包括通过已弃用的 bug-analysis 别名调用的情况),省略规则检查部分,并令 最终得分 = LLM 加权得分。

务必诚实且严格——不要虚抬分数。给出清晰理由的低分,比虚假的 95% 更有价值。规则检查未通过是不可妥协的——即使 LLM 得分很高,也必须将其报告出来。


评分阈值

得分操作
90-100%继续——工作已准备就绪
70-89%列出具体问题以及提高信心的方法。如果处于修复模式,请应用修复。
低于 70%建议验证或修复的具体后续步骤。不要继续自主执行。

迭代流程(plan 模式)

在自主执行前用作质量门禁时:

如果信心低于 90%,最多进行 2 轮迭代,以开展更多研究、分析并收集证据,从而提高得分。 每轮迭代后,重新进行信心评估。 如果经过 2 轮迭代后仍低于 90%,则向用户说明调查结果,并询问他们是继续执行还是进一步完善。


自动修复(仅修复模式)

如果不处于修复模式,请完全跳过本节。

在修复模式下运行时(plan fix、code fix、analysis fix——或已弃用的 bug-analysis fix 别名),自动处理所有导致评分降低的问题:

简单修复(立即应用)

无需询问即可修复以下问题——风险低且处理方式明确:

  • 缺少明显可实现的边缘情况处理
  • 缺少 null/undefined 检查
  • 差一错误或边界条件不正确
  • 字符串、注释或变量名中的拼写错误
  • 类型明确但缺少返回类型或类型注解
  • 可明确修正的小型逻辑错误
  • (计划模式)缺少章节、需求不完整、实现步骤含糊

应用每项修复后,简要说明所做的更改(每项修复一行)。

复杂修复(先规划,再应用)

对于需要深入考虑的问题:

  • 缺少对未覆盖路径的测试
  • 实现不完整(缺少情况、未处理的状态)
  • 架构问题或抽象不当
  • (计划模式)根本性方案问题、缺少技术设计

对于每项,输出:

### [Issue title]
**Why:** [1-sentence explanation]
**Fix plan:**
1. [Step 1]
2. [Step 2]
**Files involved:** [list]

然后执行计划。

修复后重新评估

应用所有修复后:

  1. 使用更新后的评分重新进行置信度评估
  2. 列出修复内容,以及每项修复如何提高评分
  3. 如果置信度仍低于 90%,列出无法自动修复的剩余问题

评论

支持 Markdown