⚠️ 发布规则
所有发布到ClawHub的技能必须严格测试,确定没有问题再发布
技能测试验证清单
Requirement Clarifier - 需求澄清器
原创技能 | 激活词: 澄清需求 / 追问细节 / 确认需求
核心问题
模糊需求导致的问题:
- AI按错误理解开发
- 完成后需要返工
- 浪费时间精力
- 用户不满意
澄清框架
5W1H 追问法
What (什么) - 具体要做什么?
Why (为什么) - 为什么要做这个?
Who (谁) - 谁来使用?
Where (哪里) - 在什么环境使用?
When (何时) - 什么时候需要?
How (如何) - 如何实现/使用?
澄清维度
| 维度 | 关键问题 | 目的 |
|---|
| 范围 | 需要包含什么?排除什么? | 明确边界 |
| 质量 | 怎样算成功?有什么标准? | 定义成功 |
| 约束 | 有什么限制?技术/时间/预算? | 了解限制 |
| 优先级 | 什么最重要? | 排序决策 |
| 风险 | 有什么担忧? | 预防问题 |
常见模糊模式
模式1: 动词模糊
❌ 模糊: "帮我优化这个代码"
✅ 澄清: 优化哪个方面?
- 性能 (速度/内存)
- 可读性
- 可维护性
- 安全性
❌ 模糊: "修复这个bug"
✅ 澄清: 期望行为是什么?
实际行为是什么?
如何复现?
模式2: 名词模糊
❌ 模糊: "创建一个用户模块"
✅ 澄清: 需要包含哪些功能?
- 注册/登录
- 用户资料
- 权限管理
- 头像上传
需要和哪些系统集成?
❌ 模糊: "做个好看的界面"
✅ 澄清: 好看是指什么风格?
- 现代简约
- 传统商务
- 活泼年轻
有参考案例吗?
模式3: 范围模糊
❌ 模糊: "做个网站"
✅ 澄清: 网站类型?
- 电商网站
- 博客网站
- 企业官网
- 社交平台
❌ 模糊: "处理这些数据"
✅ 澄清: 数据来源?
处理逻辑?
输出格式?
澄清流程
1. 接收需求
↓
2. 识别模糊点
↓
3. 生成澄清问题
↓
4. 按优先级排序
↓
5. 选择最关键问题追问
↓
6. 根据回答更新理解
↓
7. 重复直到清晰
澄清问题生成
def generate_clarification_questions(requirement: str) -> list[Question]:
questions = []
# 检测模糊模式
if contains_vague_verb(requirement):
questions.extend(clarify_verb(requirement))
if contains_vague_noun(requirement):
questions.extend(clarify_noun(requirement))
if lacks_scope(requirement):
questions.extend(clarify_scope(requirement))
if lacks_success_criteria(requirement):
questions.extend(clarify_criteria(requirement))
# 按优先级排序
questions.sort(key=lambda q: q.priority, reverse=True)
# 只问最关键的3个
return questions[:3]
模糊检测规则
VAGUE_WORDS = [
'优化', '改进', '提升', '完善',
'处理', '管理', '系统', '模块',
'好看', '好用', '快速', '高效',
'一些', '相关', '合适', '适当',
]
VAGUE_PATTERNS = [
r'帮我.*', # 缺少宾语
r'做个.*', # 缺少具体描述
r'处理.*', # 缺少处理逻辑
r'优化.*', # 缺少优化目标
]
澄清输出格式
## 需求澄清
### 原始需求
"帮我做个用户管理模块"
### 已识别模糊点
1. ⚠️ 范围不清 - 不知道包含哪些功能
2. ⚠️ 标准不明 - 不知道怎样算完成
3. ⚠️ 环境未提 - 不知道在什么环境运行
### 请帮我确认
#### 问题 1/3 [高优先级]
**需要包含哪些用户管理功能?**
- [ ] 用户注册
- [ ] 用户登录
- [ ] 密码找回
- [ ] 用户资料编辑
- [ ] 权限/角色管理
- [ ] 其他: ___
#### 问题 2/3 [中优先级]
**有什么技术要求?**
- 技术栈: ___
- 需要API吗? ○ 是 ○ 否
- 需要数据库吗? ○ 是 ○ 否
#### 问题 3/3 [低优先级]
**预计用户规模?**
- [ ] <100人
- [ ] 100-1000人
- [ ] 1000-10000人
- [ ] >10000人
回复理解确认
## 需求理解确认
### 我理解的如下,请确认:
**功能范围**
- ✅ 用户注册/登录
- ✅ 密码找回
- ✅ 用户资料管理
- ❌ 权限管理 (你说先不做)
**技术要求**
- ✅ 技术栈: React + Node.js
- ✅ 需要REST API
- ✅ 使用PostgreSQL
**成功标准**
- ✅ 所有用户能正常注册登录
- ✅ 资料能正常编辑保存
- ✅ 响应时间 < 500ms
**是否正确?**
- [ ] 是,没问题
- [ ] 不对,需要调整
澄清效果评估
def evaluate_clarity(requirement: str, answers: list[str]) -> float:
# 计算澄清后的清晰度
clarity = 0.0
if has_concrete_features(answers):
clarity += 0.3
if has_success_criteria(answers):
clarity += 0.3
if has_tech_constraints(answers):
clarity += 0.2
if has_scope_boundary(answers):
clarity += 0.2
return clarity
# 澄清有效阈值: >= 0.7
应用场景
场景1: AI编程
用户: "帮我做个按钮"
AI: [触发需求澄清器]
- 需要什么样式?
- 点击事件?
- 有哪些状态?
- 尺寸大小?
场景2: 任务交接
A: "把这个功能交给B"
B: [使用需求澄清器]
- 功能范围?
- 接口定义?
- 交付标准?
场景3: 需求分析
产品经理: "用户需要管理数据"
分析师: [使用需求澄清器]
- 什么类型的数据?
- CRUD全部需要?
- 有批量操作?
与Karpathy法则结合
需求澄清 = Karpathy "先思考" 的具体实现
| Karpathy法则 | 需求澄清对应 |
|---|
| 不假设 | 不假设用户需求 |
| 不隐藏困惑 | 明确提出疑问 |
| 多解释列出 | 提供选项让用户选择 |
原创性声明
本技能为原创,融合了:
- 需求工程方法论
- 模糊语言识别
- 追问框架设计
- 交互式澄清对话
作者: laosi
创建日期: 2026-04-28