名称: 差距分析 描述: 分析当前需求的完整性并识别缺失领域。使用领域检查清单、非功能需求类别和INVEST标准。 参数提示: [–domain <域名>] [–severity <最小严重性>] [–category <类别>] 允许工具: 读取、全局、搜索、写入、技能
差距分析命令
分析需求的完整性并识别缺失领域。
使用
/requirements-elicitation:gaps
/requirements-elicitation:gaps --domain "checkout"
/requirements-elicitation:gaps --severity major
/requirements-elicitation:gaps --category security
参数
| 参数 | 必需 | 描述 |
|---|---|---|
| –domain | 否 | 分析的领域(默认:当前/所有) |
| –severity | 否 | 报告的最小严重性:critical、major、minor(默认:minor) |
| –category | 否 | 关注特定类别:security、performance、usability等 |
分析内容
需求覆盖
- 按类别的功能需求
- 非功能需求
- 约束和假设
- 领域特定区域
非功能需求完整性
- 性能目标
- 安全要求
- 可用性/可访问性
- 可靠性/可用性
- 可扩展性
INVEST标准
- 独立性
- 可协商性
- 有价值
- 可估算
- 小巧
- 可测试性
工作流程
第1步:加载需求
从以下来源收集所有需求:
.requirements/{domain}/interviews/.requirements/{domain}/documents/.requirements/{domain}/simulations/.requirements/{domain}/research/
第2步:加载差距分析技能
调用 requirements-elicitation:gap-analysis 技能以加载检查清单和标准。
第3步:运行分析
启动 gap-detector 代理以:
- 检查类别覆盖
- 评估非功能需求完整性
- 评估INVEST合规性
- 识别差距
第4步:生成报告
将差距分析保存到:
.requirements/{domain}/analysis/GAP-{timestamp}.yaml
第5步:显示摘要
显示关键发现和建议。
示例
基础差距分析
/requirements-elicitation:gaps
输出:
差距分析:所有领域
分析来自3个来源的45个需求...
覆盖摘要:
功能需求: ████████░░ 80%
非功能需求: ████░░░░░░ 40%
约束: ██████░░░░ 60%
关键差距(2):
1. [安全] 无认证要求
→ 访谈技术干系人
2. [安全] 无授权模型
→ 访谈技术干系人
主要差距(4):
1. [性能] 无响应时间目标
→ 与业务定义SLA
2. [可靠性] 无运行时间要求
→ 访谈运维干系人
3. [可用性] 无可访问性要求
→ 研究WCAG指南
4. [错误] 无错误处理指定
→ 与所有角色模拟
INVEST问题(3):
- REQ-012:不可测试(无验收标准)
- REQ-023:太大(需要拆分)
- REQ-031:不独立(依赖于REQ-030)
结论:未准备好进行规范
先解决2个关键差距
保存至:.requirements/all/analysis/GAP-20251225-160000.yaml
领域特定分析
/requirements-elicitation:gaps --domain "authentication" --severity critical
输出:
差距分析:认证
仅显示关键差距
关键差距(0):
未找到!
您的认证需求覆盖:
✓ 登录方法(密码、SSO)
✓ MFA要求
✓ 会话管理
✓ 密码策略
✓ 账户恢复
覆盖摘要:
功能需求: ██████████ 100%
非功能需求: ████████░░ 80%
准备好进行规范:是
建议:解决2个主要差距以提高质量:
- 性能:未指定登录响应时间
- 监控:审计日志要求模糊
类别聚焦分析
/requirements-elicitation:gaps --category performance
输出:
差距分析:性能类别
找到的性能需求:3
- REQ-008:“页面加载时间小于3秒”
- REQ-015:“API响应时间小于200毫秒”
- REQ-022:“支持1000并发用户”
性能差距:
主要:
1. 无高峰负载处理要求
→ 模拟运维干系人
2. 无数据库查询性能目标
→ 访谈技术干系人
3. 无缓存策略要求
→ 研究最佳实践
次要:
1. 静态资产无CDN要求
2. 无浏览器性能要求
推荐:
运行:/requirements-elicitation:simulate "performance" --personas technical,operations
输出格式
保存的YAML结构
gap_analysis:
session_id: "GAP-{timestamp}"
domain: "{domain}"
timestamp: "{ISO-8601}"
filters:
severity: "{min-severity}"
category: "{focused category or all}"
input_summary:
total_requirements: 45
from_interviews: 20
from_documents: 15
from_simulations: 8
from_research: 2
coverage:
functional: 80%
non_functional: 40%
constraints: 60%
assumptions: 30%
gaps:
critical:
- id: GAP-001
category: security
description: "无认证要求"
recommendation:
technique: interview
persona: technical
questions: [...]
major:
- id: GAP-002
category: performance
description: "无响应时间目标"
recommendation:
technique: interview
persona: business
questions: [...]
minor:
- id: GAP-003
category: accessibility
description: "仅基本WCAG覆盖"
recommendation:
technique: research
topic: "WCAG 2.1 AA指南"
invest_issues:
- requirement: REQ-012
issue: "不可测试"
suggestion: "添加验收标准"
verdict:
ready_for_specification: false
blockers: [GAP-001, GAP-002]
recommendations:
- "进行安全访谈"
- "定义性能SLA"
集成
后续命令
# 通过访谈填补差距
/requirements-elicitation:interview "技术负责人" --context "安全差距"
# 通过模拟填补差距
/requirements-elicitation:simulate "安全" --personas technical,compliance
# 通过研究填补差距
/requirements-elicitation:research "WCAG 2.1可访问性要求"
# 填补差距后重新分析
/requirements-elicitation:gaps
# 准备就绪后导出到规范
/requirements-elicitation:export --to canonical
质量关卡
差距分析作为规范前的质量关卡:
准备好进行规范:是
├── 无关键差距
├── 无主要差距(或已接受)
├── 所有INVEST标准通过
└── 所有类别覆盖 > 70%
准备好进行规范:否
├── 存在关键差距 → 必须解决
├── 存在主要差距 → 应该解决
├── INVEST失败 → 应该修复
└── 覆盖 < 50% → 需要更多收集