Skills Improvements from User Feedback
基本信息
| 属性 | 内容 |
|---|
| 日期 | 2025-11-28 |
| 状态 | 草稿 |
| 来源 | 两个Claude实例在实际开发场景中使用Superpowers的反馈 |
执行摘要
本次反馈来自两个Claude实例的实际开发会话,暴露了当前Superpowers技能体系中存在的系统性缺陷——即使遵循现有技能流程,仍然会产生可预防的缺陷并发布到生产环境。
核心结论:这些内容是真实问题报告而非单纯的解决方案提议,问题真实存在,对应的改进方案需要进一步评估。
核心主题
- 验证缺口:当前仅验证操作执行成功,不验证操作实现了预期目标
- 进程卫生问题:后台进程不断累积,跨子代理场景下会产生干扰
- 上下文优化不足:子代理会收到过多无关信息
- 缺少自我反思环节:交付前没有要求对自身工作进行复盘校验
- Mock接口漂移:Mock实现会在无感知的情况下偏离接口定义
- 技能激活不足:技能已存在但未被阅读和使用
已识别问题
| 问题编号 | 问题名称 | 影响等级 | 核心问题描述 |
|---|
| 1 | 配置变更验证缺口 | 高 | verification-before-completion流程仅检查操作成功,不验证结果是否符合预期配置变更,会产生测试错误信心,导致缺陷流生产 |
| 2 | 后台进程累积 | 中高 | 子代理无状态,不知道之前子代理启动的进程,没有清理流程, stale进程会占用端口导致后续测试命中错误服务,得到错误测试结果 |
| 3 | 子代理prompt上下文膨胀 | 中 | 默认给子代理传递完整计划文件,子代理会在无关内容上浪费token和注意力,导致执行更慢、失败尝试更多 |
| 4 | 交付前缺少自我反思 | 中 | 实现者在报告完成前不会主动复盘自身工作,本可由实现者发现的缺陷被传递给评审者 |
| 5 | Mock-接口漂移 | 高 | Mock根据错误代码的调用生成而非从接口定义生成,TypeScript无法检测到内联Mock的方法名错误,导致测试通过但运行时崩溃 |
| 6 | 评审者文件访问问题 | 低中 | 代码评审子代理的prompt没有包含显式读文件指令,导致评审者无法找到实际存在的文件,评审失败或不完整 |
| 7 | 修复工作流延迟 | 低 | 现有流程中,实现者在自我反思中发现bug后,需要经过报告->调度修复者->修复->验证的额外往返,增加无价值延迟 |
| 8 | 技能未被阅读 | 中 | 没有强制要求子Agent阅读相关技能,prompt也不包含阅读技能的要求,导致技能投入被浪费 |
提议改进方案
| 改进项 | 对应问题 | 修改内容 |
|---|
给verification-before-completion添加配置变更验证 | 问题1 | 新增验证环节,要求配置/提供者/功能开关/环境变更后,必须识别预期差异、找到可观测点、运行命令确认差异存在后才能声明变更生效,强制验证意图而非仅操作成功 |
给subagent-driven-development添加E2E测试进程卫生要求 | 问题2 | 要求调度E2E测试子代理前,在prompt中加入清理流程:启动服务前杀死旧进程、验证端口空闲,测试完成后杀死进程验证清理完成 |
给subagent-driven-development添加精简上下文选项 | 问题3 | 修改子代理任务执行步骤,区分两种上下文模式:独立模式化任务使用精简上下文,仅包含任务描述、目标文件、参考模式、验证命令;复杂有依赖任务使用完整计划上下文 |
给subagent-driven-development添加自我反思环节 | 问题4 | 在prompt模板中添加交付前自我反思步骤,要求实现者复盘工作是否符合要求、是否存在可修复问题,发现问题直接修复后再报告 |
给requesting-code-review添加显式读文件要求 | 问题6 | 在评审模板开头添加要求:评审前必须用读工具加载所有变更文件和引用文件,无法找到文件时明确报告,不加载文件不继续评审 |
给testing-anti-patterns添加Mock-接口漂移反模式 | 问题5 | 新增反模式:禁止从实现推导生成Mock,要求写Mock前先读接口定义、仅Mock接口定义的方法,如果测试失败说明代码存在bug,修复代码而非调整Mock |
| 测试任务要求子代理必须阅读技能 | 问题8 | 在测试相关任务的prompt模板中添加要求:写测试前必须读取testing-anti-patterns技能,应用对应规则,该要求为强制要求 |
| 允许实现者修复自识别问题 | 问题7 | 修改工作流:自我反思发现可修复问题后,允许实现者直接修复重新验证,减少额外往返延迟 |
实施计划
阶段1:高影响、低风险(优先执行)
verification-before-completion:添加配置变更验证
testing-anti-patterns:添加Mock-接口漂移反模式
requesting-code-review:添加显式文件读取要求
阶段2:中度修改(小心测试)
subagent-driven-development:添加进程卫生要求
subagent-driven-development:添加自我反思环节
subagent-driven-development:添加技能阅读强制要求
阶段3:优化项(先验证)
subagent-driven-development:添加精简上下文选项
subagent-driven-development:允许实现者修复自识别问题
待解决开放问题
- 精简上下文方案:是否应作为模式化任务默认?如何选择上下文方案?过于精简丢失重要上下文的风险如何处理?
- 自我反思:是否会显著减慢简单任务?是否仅应用于复杂任务?如何避免反思流于形式?
- 进程卫生:是否应独立成技能而非放在子代理开发流程中?是否适用于E2E测试以外的场景?需要持久运行的开发服务如何处理?
- 技能阅读强制:是否要求所有子代理都阅读相关技能?如何避免prompt过长?过度文档导致丢失焦点的风险如何处理?
成功指标
- 配置验证:零“测试通过但使用了错误配置”问题
- 进程卫生:零“测试命中错误服务”问题、无端口冲突错误
- Mock接口漂移:零“测试通过但运行时缺失方法崩溃”问题、Mock与接口无方法名不匹配
- 自我反思:实现者报告包含反思结论、更少缺陷流入代码评审
- 技能阅读:子代理报告引用技能检查规则、代码评审中更少反模式违规
风险与缓解
| 风险 | 缓解方案 |
|---|
| Prompt膨胀 | 分阶段实施、部分改进仅针对对应任务类型启用、按任务类型使用不同模板 |
| 分析瘫痪 | 保持检查流程轻量化、精简上下文初始为可选、监控任务完成时间 |
| 错误安全感 | 强调检查流程是最低要求而非完整保证、保留自主判断空间、明确说明技能仅捕获常见失败 |
| 技能内容分歧 | 修改前跨技能评审一致性、文档化技能之间的交互关系、全量上线前真实场景测试 |
最终建议
- 立即推进阶段1改进
- 阶段2改进先和相关方测试获取反馈后再定稿
- 阶段3改进暂不推进,待验证有效性后再评估