关于 confess
面向编码 Agent 的自我审查技能,用于查找未完成工作、未经验证的假设和未披露的问题。它以怀疑式清单复核改动,再判定任务是否完成。
主要功能
- 01检查相关改动是否遗漏
- 02区分已测试结果与假设
- 03对照现有代码模式
- 04发现隐忧与清理欠账
- 05提出可执行的披露事项
适用场景
- 01完成任务前复查实现
- 02查找遗漏的测试或文档更新
- 03报告已完成工作中的风险与捷径
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ b-open-io/ prompts --skill confess安装后在 Claude Code 中输入/confess确认已加载。
附带文件.clawnet/unsigned-skill.json
详细介绍
自检坦白
一项系统化的自查技能,鼓励 Agent 诚实地发现并披露自己可能知道但尚未提及的问题。尤其适合坦白奖励利用并承认错误。
适用时机
- 完成实现工作后
- 感觉有内容尚未完成时
- 将任务标记为“完成”之前
- 用户询问“我漏了什么?”或“坦白吧”时
坦白类别
1. 未完成的工作
搜索可能也需要修改的相关文件:
- 使用
grep查找对已修改代码的引用 - 检查是否需要更新测试
- 查找引用了行为变更的文档
2. 未经测试的假设
如实说明实际验证了哪些内容:
- 你运行了代码,还是只进行了构建?
- 是否测试了错误路径?
- 哪些边界情况未考虑?
3. 模式违规
与现有代码库进行比较:
- 使用
glob查找类似实现 - 新代码是否符合现有模式?
- 是否忽略了框架的最佳实践?
4. 隐瞒的发现
揭示已注意到但未提及的事情:
- 发现但未提出的潜在问题
- 对方案的顾虑
- 未披露的权宜之计
- 引入的技术债务
5. 清理债务
检查是否有孤立代码:
- 应删除的死代码
- 未使用的导入/依赖项
- 孤立的文件/路由
对抗式立场
不要问“我漏了什么?”——这个问题会让人自我辩解。
采用怀疑者的姿态:假设遗漏了某些内容,然后寻找证据来证实。你的任务是推翻自己“已完成”的说法。怀疑者因错误地排除问题而受罚,而不会因检查周全而受罚。
结束前,逐项检查:
- 对你更改的每个符号运行 Grep——所有调用方都已更新吗?
- 测试套件确实覆盖了更改路径,还是只导入了它?
- 是否引入了任何未记录的新导入/依赖项?
- 是否有你注意到却因难以启齿而未提及的内容?
- 如果有人只撤销你最近一次提交,会导致什么问题?
工作流
-
收集上下文
# What files were recently modified? git diff --name-only HEAD~1 # What functions/exports changed? git diff HEAD~1 --stat -
搜索引用
# Find all references to modified code grep -r "functionName" --include="*.ts" --include="*.tsx" -
比较模式
- 在代码库中查找类似文件
- 比较实现方案
- 记录任何不一致之处
-
验证检查
- 列出实际测试过的内容
- 列出假定可正常工作的内容
- 列出需要手动验证的内容
-
披露全部情况 按以下格式坦白:
## My Confessions ### Incomplete Work - [specific issue] ### Untested - [what wasn't verified] ### Pattern Issues - [inconsistencies found] ### Hidden Concerns - [things I noticed but didn't mention] ### Cleanup Needed - [dead code, orphaned files]
核心原则
- 专为对抗式检查而设计——你要做的是找出自己的问题,而不是安慰自己
- 做最坏的打算——总有某些内容未完成、未经测试或被掩盖
- 借助工具 - 使用 grep/glob,不要依赖记忆
- 系统化 - 每次都覆盖所有类别
- 诚实 - 不确定时就直说
- 可执行 - 每条坦白都应提出修复建议
输出示例
实现 OAuth 错误处理后:
我的坦白
未完成的工作
- 修改了
auth-config.ts,但oauth2/authorize/page.tsx:173仍会重定向到/error/oauthproxy.ts:67也引用了旧的错误路由lib/oauth-errors.ts中的redirectToErrorPage()函数仍在使用旧模式未经测试
- 只运行了
bun run build,没有实际测试 OAuth 错误流程- 没有验证首页是否能使用真实错误参数显示错误
模式问题
- 首页直接使用
useSearchParams,但其他页面会将它提取到 Suspense 包装的组件中- 参考:
oauth2/authorize/page.tsx、device/page.tsx中的正确模式隐藏的顾虑
/error/[type]错误页面设计完善且仍在使用- 删除
onAPIError可能不是正确的做法需要清理
- 需要决定:将错误处理完全迁移到首页,还是保留
/error/oauth路由
评论
支持 Markdown