@chongyan/autospec 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.en.md +472 -0
- package/README.md +476 -0
- package/bin/autospec.js +3 -0
- package/knowledge/README.md +144 -0
- package/knowledge/checklists/code.md +182 -0
- package/knowledge/checklists/design.md +196 -0
- package/knowledge/checklists/release.md +70 -0
- package/knowledge/checklists/requirement.md +169 -0
- package/knowledge/checklists/test.md +46 -0
- package/knowledge/config/README.en.md +44 -0
- package/knowledge/config/README.md +44 -0
- package/knowledge/config/role-composition.yaml +98 -0
- package/knowledge/config/role-extensions.yaml +140 -0
- package/knowledge/config/skill-compositions.yaml +142 -0
- package/knowledge/config/team-stage.yaml +95 -0
- package/knowledge/config/team-tasks.yaml +139 -0
- package/knowledge/config/team-triggers.yaml +198 -0
- package/knowledge/config/validation-patterns.yaml +137 -0
- package/knowledge/domain/README.md +115 -0
- package/knowledge/domain/flows/README.md +194 -0
- package/knowledge/domain/glossary.md +143 -0
- package/knowledge/domain/rules.md +138 -0
- package/knowledge/environment/README.en.md +36 -0
- package/knowledge/environment/README.md +87 -0
- package/knowledge/environment/component-knowledge.md +316 -0
- package/knowledge/environment/detection-patterns.yaml +502 -0
- package/knowledge/environment/middleware-knowledge.md +237 -0
- package/knowledge/environment/template-registry.md +321 -0
- package/knowledge/guides/domain-driven-design.md +345 -0
- package/knowledge/guides/knowledge-management.md +369 -0
- package/knowledge/guides/requirement-engineering.md +329 -0
- package/knowledge/guides/stages/ai-effect-evaluator.md +93 -0
- package/knowledge/guides/stages/code-implementer.md +205 -0
- package/knowledge/guides/stages/code-reviewer.md +111 -0
- package/knowledge/guides/stages/consistency-checker.md +177 -0
- package/knowledge/guides/stages/design-planner.md +401 -0
- package/knowledge/guides/stages/design-reviewer.md +83 -0
- package/knowledge/guides/stages/integration-test-runner.md +105 -0
- package/knowledge/guides/stages/release-checker.md +205 -0
- package/knowledge/guides/stages/requirement-analyzer.md +195 -0
- package/knowledge/guides/stages/requirement-reviewer.md +83 -0
- package/knowledge/guides/stages/security-reviewer.md +89 -0
- package/knowledge/guides/stages/test-context-analyzer.md +250 -0
- package/knowledge/guides/stages/test-generator.md +241 -0
- package/knowledge/guides/stages/test-planner.md +183 -0
- package/knowledge/guides/stages/test-reviewer.md +76 -0
- package/knowledge/guides/stages/unit-test-runner.md +83 -0
- package/knowledge/guides/support/ai-agent-analyzer.md +362 -0
- package/knowledge/guides/support/ai-anomaly-analyzer.md +213 -0
- package/knowledge/guides/support/ai-artifact-evaluator.md +192 -0
- package/knowledge/guides/support/ai-capability-analyzer.md +193 -0
- package/knowledge/guides/support/ai-component-analyzer.md +169 -0
- package/knowledge/guides/support/ai-data-validator.md +276 -0
- package/knowledge/guides/support/ai-evaluation-planner.md +374 -0
- package/knowledge/guides/support/ai-path-evaluator.md +274 -0
- package/knowledge/guides/support/ai-pipeline-evaluator.md +219 -0
- package/knowledge/guides/support/ai-rag-analyzer.md +339 -0
- package/knowledge/guides/support/ai-task-assessor.md +418 -0
- package/knowledge/guides/support/ai-test-diagnostics.md +133 -0
- package/knowledge/guides/support/complexity-assessor.md +268 -0
- package/knowledge/guides/support/component-discovery.md +183 -0
- package/knowledge/guides/support/environment-scanner.md +207 -0
- package/knowledge/guides/support/environment-validator.md +207 -0
- package/knowledge/guides/support/knowledge-generator.md +234 -0
- package/knowledge/guides/support/methodology-extractor.md +55 -0
- package/knowledge/guides/support/pipeline-protocol.md +438 -0
- package/knowledge/guides/support/practice-logger.md +359 -0
- package/knowledge/guides/support/scope-inference.md +174 -0
- package/knowledge/guides/support/skill-distiller.md +91 -0
- package/knowledge/guides/support/skill-updater.md +45 -0
- package/knowledge/guides/support/skill-validator.md +72 -0
- package/knowledge/guides/support/team-orchestrator.md +323 -0
- package/knowledge/guides/support/tech-stack-analyzer.md +139 -0
- package/knowledge/guides/support/test-runner.md +254 -0
- package/knowledge/guides/system-design.md +352 -0
- package/knowledge/organization/ai-native-team.md +318 -0
- package/knowledge/organization/team-metrics.md +228 -0
- package/knowledge/principles/constitution.md +134 -0
- package/knowledge/principles/core-principles.md +368 -0
- package/knowledge/principles/design-philosophy.md +877 -0
- package/knowledge/principles/evolution.md +553 -0
- package/knowledge/process/01-requirement.md +113 -0
- package/knowledge/process/02-design.md +123 -0
- package/knowledge/process/03-implementation.md +90 -0
- package/knowledge/process/04-review.md +80 -0
- package/knowledge/process/05-testing.md +90 -0
- package/knowledge/process/06-delivery.md +88 -0
- package/knowledge/process/README.en.md +38 -0
- package/knowledge/process/README.md +48 -0
- package/knowledge/process/ai-sdlc.md +475 -0
- package/knowledge/process/overview.md +319 -0
- package/knowledge/standards/code-review.md +876 -0
- package/knowledge/standards/coding-style.md +940 -0
- package/knowledge/standards/data-consistency.md +1085 -0
- package/knowledge/standards/document-versioning.md +210 -0
- package/knowledge/standards/risk-detection.md +186 -0
- package/knowledge/templates/ai-evaluation.md +150 -0
- package/knowledge/templates/api-design.md +117 -0
- package/knowledge/templates/database-design.md +132 -0
- package/knowledge/templates/domain-driven-design.md +321 -0
- package/knowledge/templates/product-proposal.md +201 -0
- package/knowledge/templates/system-design.md +227 -0
- package/knowledge/templates/task-breakdown.md +107 -0
- package/knowledge/templates/test-case.md +170 -0
- package/package.json +53 -0
- package/plugins/.claude-plugin/plugin.json +134 -0
- package/plugins/agents/roles/ai-engineer.md +129 -0
- package/plugins/agents/roles/backend-engineer.md +165 -0
- package/plugins/agents/roles/ceo.md +94 -0
- package/plugins/agents/roles/data-engineer.md +135 -0
- package/plugins/agents/roles/devops-engineer.md +181 -0
- package/plugins/agents/roles/frontend-engineer.md +129 -0
- package/plugins/agents/roles/product-owner.md +98 -0
- package/plugins/agents/roles/quality-engineer.md +129 -0
- package/plugins/agents/roles/security-engineer.md +180 -0
- package/plugins/agents/roles/tech-lead.md +97 -0
- package/plugins/agents/support/blind-comparator.md +88 -0
- package/plugins/agents/support/consistency-checker.md +103 -0
- package/plugins/agents/support/failure-diagnostician.md +141 -0
- package/plugins/agents/support/independent-reviewer.md +80 -0
- package/plugins/agents/support/safety-auditor.md +121 -0
- package/plugins/agents/support/skill-benchmarker.md +86 -0
- package/plugins/agents/support/skill-forger.md +105 -0
- package/plugins/agents/support/stage-gate-evaluator.md +121 -0
- package/plugins/agents/support/test-coverage-reviewer.md +73 -0
- package/plugins/benchmarks/templates/README.md +44 -0
- package/plugins/benchmarks/templates/commands/explore-template.yaml +48 -0
- package/plugins/benchmarks/templates/pipeline/agile-template.yaml +84 -0
- package/plugins/benchmarks/templates/pipeline/waterfall-template.yaml +106 -0
- package/plugins/benchmarks/templates/skills/requirement-analyzer-template.yaml +48 -0
- package/plugins/commands/README.en.md +96 -0
- package/plugins/commands/README.md +96 -0
- package/plugins/commands/apply.md +191 -0
- package/plugins/commands/archive.md +76 -0
- package/plugins/commands/env-export.md +79 -0
- package/plugins/commands/env-sync.md +640 -0
- package/plugins/commands/env-template.md +223 -0
- package/plugins/commands/env-update.md +264 -0
- package/plugins/commands/env-validate.md +176 -0
- package/plugins/commands/env.md +79 -0
- package/plugins/commands/explore.md +76 -0
- package/plugins/commands/field-evolve.md +536 -0
- package/plugins/commands/memory.md +249 -0
- package/plugins/commands/project-evolve.md +821 -0
- package/plugins/commands/propose.md +93 -0
- package/plugins/commands/review.md +140 -0
- package/plugins/commands/run.md +224 -0
- package/plugins/commands/status.md +62 -0
- package/plugins/commands/validate.md +108 -0
- package/plugins/hooks/README.en.md +56 -0
- package/plugins/hooks/README.md +56 -0
- package/plugins/hooks/ai-project-guard.js +329 -0
- package/plugins/hooks/artifact-evaluation-hook.js +237 -0
- package/plugins/hooks/constitution-guard.js +211 -0
- package/plugins/hooks/environment-autocommit.js +264 -0
- package/plugins/hooks/environment-manager.js +778 -0
- package/plugins/hooks/execution-tracker.js +354 -0
- package/plugins/hooks/frozen-zone-guard.js +140 -0
- package/plugins/hooks/layer1-validator.js +423 -0
- package/plugins/hooks/lib/artifact-evaluator.js +414 -0
- package/plugins/hooks/lib/benchmarks/change-detector.js +390 -0
- package/plugins/hooks/lib/benchmarks/evaluator.js +605 -0
- package/plugins/hooks/lib/benchmarks/integration-example.js +169 -0
- package/plugins/hooks/lib/data-and-ai-detector.js +275 -0
- package/plugins/hooks/lib/detection-pattern-loader.js +865 -0
- package/plugins/hooks/lib/directory-discovery.js +395 -0
- package/plugins/hooks/lib/environment-config-loader.js +341 -0
- package/plugins/hooks/lib/environment-detector.js +553 -0
- package/plugins/hooks/lib/environment-evolver.js +564 -0
- package/plugins/hooks/lib/environment-registry.js +813 -0
- package/plugins/hooks/lib/execution-path.js +427 -0
- package/plugins/hooks/lib/hook-error-recorder.js +245 -0
- package/plugins/hooks/lib/hook-logger.js +538 -0
- package/plugins/hooks/lib/hook-runner.js +97 -0
- package/plugins/hooks/lib/hook-runner.sh +44 -0
- package/plugins/hooks/lib/hook-state-manager.js +480 -0
- package/plugins/hooks/lib/memory-extractor.js +377 -0
- package/plugins/hooks/lib/memory-manager.js +673 -0
- package/plugins/hooks/lib/metrics-analyzer.js +489 -0
- package/plugins/hooks/lib/project-evolution/auto-fixer.js +511 -0
- package/plugins/hooks/lib/project-evolution/memory-manager.js +346 -0
- package/plugins/hooks/lib/project-evolution/pattern-detector.js +476 -0
- package/plugins/hooks/lib/project-evolution/semantic-indexer.js +480 -0
- package/plugins/hooks/lib/project-structure-detector.js +326 -0
- package/plugins/hooks/lib/rollback-tracker.js +346 -0
- package/plugins/hooks/lib/source-code-scanner.js +596 -0
- package/plugins/hooks/lib/technology-stack-detector.js +374 -0
- package/plugins/hooks/lib/test-failure-analyzer.js +375 -0
- package/plugins/hooks/lib/test-failure-fixer.js +268 -0
- package/plugins/hooks/lib/trace-context.js +277 -0
- package/plugins/hooks/lib/validation-patterns.js +415 -0
- package/plugins/hooks/memory-sync.js +171 -0
- package/plugins/hooks/pipeline-observer.js +413 -0
- package/plugins/hooks/scope-sentinel.js +204 -0
- package/plugins/hooks/trace-initialization.js +169 -0
- package/plugins/memory/templates/code-quality.yaml +149 -0
- package/plugins/memory/templates/multi-system.yaml +155 -0
- package/plugins/memory/templates/team-habits.yaml +119 -0
- package/plugins/memory/templates/testing.yaml +121 -0
- package/plugins/skills/README.en.md +47 -0
- package/plugins/skills/README.md +104 -0
- package/plugins/skills/benchmark-executor/README.md +93 -0
- package/plugins/skills/benchmark-executor/SKILL.md +647 -0
- package/plugins/skills/benchmark-generator/SKILL.md +349 -0
- package/plugins/skills/delivery-stage/SKILL.md +203 -0
- package/plugins/skills/design-stage/SKILL.md +216 -0
- package/plugins/skills/evolution-process/SKILL.md +291 -0
- package/plugins/skills/exploration-phase/SKILL.md +133 -0
- package/plugins/skills/implementation-stage/SKILL.md +179 -0
- package/plugins/skills/layer1-validation/SKILL.md +79 -0
- package/plugins/skills/pending-dashboard/SKILL.md +109 -0
- package/plugins/skills/project-evolution/SKILL.md +847 -0
- package/plugins/skills/requirement-stage/SKILL.md +183 -0
- package/plugins/skills/skill-forge/SKILL.md +223 -0
- package/plugins/skills/skill-forge/references/description-guide.md +92 -0
- package/plugins/skills/skill-forge/references/quality-rubric.md +104 -0
- package/plugins/skills/skill-forge/references/skill-template.md +106 -0
- package/plugins/skills/startup-guard/SKILL.md +38 -0
- package/plugins/skills/testing-stage/SKILL.md +195 -0
- package/scripts/cli/global-init.js +288 -0
- package/scripts/cli/global.js +324 -0
- package/scripts/cli/index.js +55 -0
- package/scripts/cli/init.js +382 -0
- package/scripts/cli/list.js +69 -0
- package/scripts/cli/org.js +340 -0
- package/scripts/cli/update.js +44 -0
- package/scripts/config/commands.config.js +145 -0
- package/scripts/config/hooks.config.js +197 -0
- package/scripts/evolution/evolution-router.js +273 -0
- package/scripts/evolution/evolution-signal-collector.js +307 -0
- package/scripts/evolution/knowledge-loader.js +346 -0
- package/scripts/evolution/marketplace.js +317 -0
- package/scripts/evolution/version-manager.js +371 -0
- package/scripts/install/agents.js +106 -0
- package/scripts/install/commands.js +133 -0
- package/scripts/install/constants.js +424 -0
- package/scripts/install/hook-logger.js +536 -0
- package/scripts/install/hooks.js +110 -0
- package/scripts/install/index.js +39 -0
- package/scripts/install/skills.js +95 -0
- package/scripts/postinstall.js +25 -0
- package/scripts/state.js +376 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-effect-evaluator
|
|
3
|
+
description: 当需要执行AI/模型组件的效果评测、验证任务完成质量时触发
|
|
4
|
+
type: execute
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 定位
|
|
8
|
+
|
|
9
|
+
效果评测执行阶段的"执行"类skill。负责加载评测数据集、执行评测、计算指标。
|
|
10
|
+
|
|
11
|
+
> **使用场景**:项目包含AI/模型组件,需要验证效果是否满足要求。
|
|
12
|
+
|
|
13
|
+
## 输入
|
|
14
|
+
|
|
15
|
+
- 必须输入:AI/模型组件、评测数据集
|
|
16
|
+
- 可选输入:评测方案(evaluation-plan.md)、评测脚本
|
|
17
|
+
|
|
18
|
+
## 执行步骤
|
|
19
|
+
|
|
20
|
+
### Step 1: 准备评测环境
|
|
21
|
+
|
|
22
|
+
1. 检查是否有评测方案(`.autospec/specs/{feature}/evaluation-plan.md`)
|
|
23
|
+
2. 检查是否有评测数据集(`.autospec/specs/{feature}/evaluation/dataset/`)
|
|
24
|
+
3. 检查是否有评测脚本(`tests/evaluation/`, `evaluation/`)
|
|
25
|
+
|
|
26
|
+
### Step 2: 加载评测数据集
|
|
27
|
+
|
|
28
|
+
1. 读取评测数据集
|
|
29
|
+
2. 验证数据集格式
|
|
30
|
+
3. 统计数据集规模
|
|
31
|
+
|
|
32
|
+
### Step 3: 执行评测
|
|
33
|
+
|
|
34
|
+
1. 初始化被评测的AI/模型组件
|
|
35
|
+
2. 对每个测试用例执行推理
|
|
36
|
+
3. 收集预测结果
|
|
37
|
+
|
|
38
|
+
### Step 4: 计算评测指标
|
|
39
|
+
|
|
40
|
+
根据评测方案中的指标定义计算:
|
|
41
|
+
|
|
42
|
+
1. **准确率指标**:
|
|
43
|
+
- 激活准确率、匹配准确率等
|
|
44
|
+
|
|
45
|
+
2. **质量指标**:
|
|
46
|
+
- 响应质量、任务完成率等
|
|
47
|
+
|
|
48
|
+
3. **性能指标**:
|
|
49
|
+
- 响应时间、吞吐量等
|
|
50
|
+
|
|
51
|
+
### Step 5: 生成评测报告
|
|
52
|
+
|
|
53
|
+
1. 汇总各项指标
|
|
54
|
+
2. 与目标值对比
|
|
55
|
+
3. 识别badcase
|
|
56
|
+
|
|
57
|
+
## 输出格式
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
## 效果评测结果
|
|
61
|
+
|
|
62
|
+
### 评测对象
|
|
63
|
+
- 组件名称:{component_name}
|
|
64
|
+
- 评测数据集:{dataset_path}
|
|
65
|
+
- 测试用例数:{total_cases}
|
|
66
|
+
|
|
67
|
+
### 评测指标
|
|
68
|
+
| 指标名称 | 目标值 | 实际值 | 状态 |
|
|
69
|
+
|----------|--------|--------|------|
|
|
70
|
+
| ... | ... | ... | ✅/❌ |
|
|
71
|
+
|
|
72
|
+
### Badcase 分析
|
|
73
|
+
| 用例ID | 输入 | 预期输出 | 实际输出 | 问题描述 |
|
|
74
|
+
|--------|------|----------|----------|----------|
|
|
75
|
+
| ... | ... | ... | ... | ... |
|
|
76
|
+
|
|
77
|
+
### 结论
|
|
78
|
+
- 评测通过:✅ 是/❌ 否
|
|
79
|
+
- 达标指标:{passed_count}/{total_count}
|
|
80
|
+
- 需要优化:{需要优化的点}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 判定标准
|
|
84
|
+
|
|
85
|
+
- **通过**:所有指标达到目标值
|
|
86
|
+
- **部分通过**:部分指标达标
|
|
87
|
+
- **不通过**:主要指标未达标,需要优化
|
|
88
|
+
|
|
89
|
+
## 适用场景
|
|
90
|
+
|
|
91
|
+
- 适用:AI/模型组件需要验证效果
|
|
92
|
+
- 不适用:普通功能无需效果评测
|
|
93
|
+
- 对应做类skill:test-generator(生成测试)
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-implementer
|
|
3
|
+
description: 当技术方案通过评审、需要忠实落地为可运行代码时触发
|
|
4
|
+
type: produce
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 定位
|
|
8
|
+
编码阶段的核心"做"类skill。将技术方案忠实转化为可运行代码,确保实现与设计一致。
|
|
9
|
+
|
|
10
|
+
## 输入
|
|
11
|
+
- 必须输入:经方案评审通过的技术方案文档(含关键假设清单)
|
|
12
|
+
- 可选输入:项目代码规范、现有代码库(用于理解上下文和复用)、现有测试代码(用于学习风格)
|
|
13
|
+
|
|
14
|
+
## 输出
|
|
15
|
+
- 功能代码(符合方案设计)
|
|
16
|
+
- 单元测试和模块内集成测试(**仅限模块内部,跨系统集成留给 QA 测试阶段**)
|
|
17
|
+
- 自测报告(覆盖了什么、测试结果、使用的测试框架)
|
|
18
|
+
- **关键假设清单**(继承设计阶段 + 实现中新发现的假设)
|
|
19
|
+
- **证据清单**(测试通过日志、覆盖率数据)
|
|
20
|
+
|
|
21
|
+
## 职责边界
|
|
22
|
+
|
|
23
|
+
| 测试类型 | 编码阶段(自测) | QA 测试阶段 |
|
|
24
|
+
|---------|-----------------|-------------|
|
|
25
|
+
| 单元测试 | ✅ 核心 | ❌ 不重复 |
|
|
26
|
+
| 模块内集成 | ✅ 基础 | ❌ 不重复 |
|
|
27
|
+
| 跨系统集成 | ❌ 留给 QA | ✅ 重点 |
|
|
28
|
+
| E2E 测试 | ❌ 留给 QA | ✅ 重点 |
|
|
29
|
+
| 验收测试 | ❌ 留给 QA | ✅ 重点 |
|
|
30
|
+
|
|
31
|
+
## 执行步骤
|
|
32
|
+
|
|
33
|
+
### Step 0: 学习现有测试风格(新增)
|
|
34
|
+
|
|
35
|
+
在编写测试前,先分析项目现有的测试风格:
|
|
36
|
+
|
|
37
|
+
1. **检测测试框架和工具**:
|
|
38
|
+
- Node.js: 检查 `package.json` 的 devDependencies
|
|
39
|
+
- Python: 检查 `requirements.txt` 或 `pyproject.toml`
|
|
40
|
+
- Java: 检查 `pom.xml` 或 `build.gradle`
|
|
41
|
+
|
|
42
|
+
2. **分析断言风格和组织结构**:
|
|
43
|
+
- 断言风格:`expect().toBe()` vs `assert.equal()`
|
|
44
|
+
- 组织结构:`describe/it` 嵌套、`beforeEach/afterEach` 使用
|
|
45
|
+
|
|
46
|
+
3. **提取测试基础设施**:
|
|
47
|
+
- Setup/Teardown 文件位置(`jest.setup.js`, `conftest.py`)
|
|
48
|
+
- Fixtures 目录结构
|
|
49
|
+
- Mock 配置
|
|
50
|
+
|
|
51
|
+
4. **记录测试上下文**:
|
|
52
|
+
- 记录检测到的测试框架、断言风格
|
|
53
|
+
- 后续生成的测试必须与现有风格一致
|
|
54
|
+
|
|
55
|
+
**关键**:如果项目已有测试代码,生成的测试必须复用现有基础设施并保持风格一致。
|
|
56
|
+
|
|
57
|
+
### Step 1: 确定模式
|
|
58
|
+
|
|
59
|
+
读取 `.autospec/config.json`,检查 `subsystems` 字段:
|
|
60
|
+
- **无 subsystems 或长度为1** → 单系统模式
|
|
61
|
+
- **有 subsystems 且长度>1** → 多系统模式
|
|
62
|
+
|
|
63
|
+
### Step 2: 单系统模式
|
|
64
|
+
|
|
65
|
+
1. 通读技术方案 `design.md`,理解架构、接口、数据模型的设计意图
|
|
66
|
+
- 预期产出:对方案的理解确认
|
|
67
|
+
- 失败处理:方案不清晰的部分标记,不自行猜测
|
|
68
|
+
2. **校验设计阶段关键假设**,在代码中体现约束
|
|
69
|
+
3. **搜索现有代码库**,识别可复用的组件和工具
|
|
70
|
+
4. 按方案的模块划分,确定编码顺序(先基础后上层)
|
|
71
|
+
5. 逐模块编码:
|
|
72
|
+
a. 严格按方案中的接口定义实现
|
|
73
|
+
b. 严格按方案中的数据模型实现
|
|
74
|
+
c. 遵循项目编码规范
|
|
75
|
+
d. 在逻辑不自明的地方添加注释
|
|
76
|
+
6. 编写单元测试(覆盖核心逻辑路径 + 关键边界条件):
|
|
77
|
+
- **使用 Step 0 检测到的测试框架**
|
|
78
|
+
- **复用现有的测试基础设施**(setup/teardown、fixtures)
|
|
79
|
+
- **保持与现有测试风格一致**
|
|
80
|
+
- 职责:仅覆盖本模块的核心逻辑和边界条件
|
|
81
|
+
7. 编写模块内集成测试(覆盖模块间交互):
|
|
82
|
+
- **仅覆盖本模块的内部集成**
|
|
83
|
+
- **跨系统集成留给 QA 测试阶段**
|
|
84
|
+
- 使用现有的 Mock 策略
|
|
85
|
+
8. 本地运行所有测试,确保全部通过
|
|
86
|
+
9. **生成自测报告**:
|
|
87
|
+
```markdown
|
|
88
|
+
## 自测报告
|
|
89
|
+
|
|
90
|
+
### 测试执行结果
|
|
91
|
+
- 单元测试:X 个用例,全部通过
|
|
92
|
+
- 模块内集成测试:X 个用例,全部通过
|
|
93
|
+
- 覆盖率:XX%
|
|
94
|
+
|
|
95
|
+
### 测试框架
|
|
96
|
+
- 框架:Jest / pytest / JUnit
|
|
97
|
+
- 复用基础设施:jest.setup.js, tests/fixtures/
|
|
98
|
+
|
|
99
|
+
### 覆盖范围
|
|
100
|
+
- 核心逻辑:✓
|
|
101
|
+
- 边界条件:✓
|
|
102
|
+
- 异常路径:✓
|
|
103
|
+
- 关键假设:✓
|
|
104
|
+
|
|
105
|
+
### 证据
|
|
106
|
+
- 测试执行日志:[粘贴]
|
|
107
|
+
- 覆盖率报告:[粘贴]
|
|
108
|
+
```
|
|
109
|
+
10. **自查清单**:
|
|
110
|
+
a. 逐项对照方案接口定义
|
|
111
|
+
b. 逐项对照方案数据模型
|
|
112
|
+
c. 检查关键假设在代码中的体现
|
|
113
|
+
11. 如发现方案有缺陷 → **不自行修改**,标记问题提请回退到设计阶段
|
|
114
|
+
12. **整理关键假设清单**(继承 + 新发现),**整理证据清单**
|
|
115
|
+
|
|
116
|
+
### Step 3: 多系统模式
|
|
117
|
+
|
|
118
|
+
1. **读取整体架构**:读取 `design/overview.md`,理解:
|
|
119
|
+
- 系统交互关系
|
|
120
|
+
- 跨系统接口契约
|
|
121
|
+
- 开发顺序(通常:后端 → 前端 → 移动端;有ml时可能需要先验证效果)
|
|
122
|
+
- 解耦并行机会(契约定义后可并行的任务)
|
|
123
|
+
|
|
124
|
+
2. **按依赖顺序处理子系统**:
|
|
125
|
+
```
|
|
126
|
+
for subsystem in config.subsystems(按依赖顺序):
|
|
127
|
+
a. 读取 design/{subsystem.name}.md
|
|
128
|
+
b. 切换到 {subsystem.path} 目录
|
|
129
|
+
c. 搜索现有代码,识别可复用组件
|
|
130
|
+
d. 按方案编码
|
|
131
|
+
e. 执行子系统验证:
|
|
132
|
+
- {subsystem.build}(如有)
|
|
133
|
+
- {subsystem.test}(如有)
|
|
134
|
+
- {subsystem.lint}(如有)
|
|
135
|
+
f. 记录验证结果
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
3. **面向契约并行开发**:
|
|
139
|
+
- **契约先行**:优先产出接口契约(OpenAPI/GraphQL Schema/数据Schema)
|
|
140
|
+
- **下游Mock开发**:契约定义后,下游子系统可基于Mock数据并行开发
|
|
141
|
+
- **联调验证**:上游实现完成后,下游切换真实接口联调
|
|
142
|
+
- **契约变更管理**:契约变更需通知所有相关方
|
|
143
|
+
|
|
144
|
+
4. **并行执行机会**:
|
|
145
|
+
- **原生并行**:无依赖关系的任务可并行(如前端页面A和前端页面B)
|
|
146
|
+
- **解耦并行**:通过契约解耦的任务可并行(如后端实现 ∥ 前端Mock开发)
|
|
147
|
+
- 并行条件:无共享写入资源、无执行顺序约束、失败互不影响
|
|
148
|
+
- 标记为 `[P]` 或 `→contract` 的任务可同时启动多个 Agent 并行执行
|
|
149
|
+
|
|
150
|
+
5. **集成验证**:
|
|
151
|
+
- 验证跨系统接口联调
|
|
152
|
+
- 验证数据流正确性
|
|
153
|
+
- 记录集成问题
|
|
154
|
+
|
|
155
|
+
### Step 4: 数据/AI子系统特殊处理
|
|
156
|
+
|
|
157
|
+
当子系统类型为 `data` 或 `ai` 时:
|
|
158
|
+
|
|
159
|
+
**数据系统(data)**:
|
|
160
|
+
- 数据模型实现(表结构、字段定义)
|
|
161
|
+
- ETL脚本开发
|
|
162
|
+
- 数据质量检查脚本
|
|
163
|
+
- 数据测试用例
|
|
164
|
+
|
|
165
|
+
**AI/模型系统(ai)**:
|
|
166
|
+
- 模型训练/推理代码
|
|
167
|
+
- 特征工程代码
|
|
168
|
+
- 评测数据集构建(如设计阶段定义)
|
|
169
|
+
- 评测脚本开发(如设计阶段定义)
|
|
170
|
+
- 效果验证脚本
|
|
171
|
+
|
|
172
|
+
## Layer 1 验证要求
|
|
173
|
+
|
|
174
|
+
### 单系统模式
|
|
175
|
+
- 编译检查、测试执行、Lint检查、类型检查
|
|
176
|
+
- 每项必须附真实执行日志,无日志=BLOCKED
|
|
177
|
+
|
|
178
|
+
### 多系统模式
|
|
179
|
+
- **每个子系统都必须通过验证**
|
|
180
|
+
- 按顺序验证:先确保上游子系统通过,再验证下游
|
|
181
|
+
- 汇总所有子系统的验证结果
|
|
182
|
+
- 任一子系统失败 = 整体 BLOCKED
|
|
183
|
+
|
|
184
|
+
### 数据/AI子系统验证
|
|
185
|
+
- **数据系统**:数据质量检查通过、ETL流程可执行
|
|
186
|
+
- **AI/模型系统**:模型可加载、推理可执行、评测脚本可运行
|
|
187
|
+
|
|
188
|
+
## 反模式清单(DP7)
|
|
189
|
+
1. **偏离设计**:编码时觉得方案不好,自行修改。检测:逐项对照方案接口和数据模型
|
|
190
|
+
2. **自测走过场**:只测happy path。检测:checklist强制要求覆盖异常路径
|
|
191
|
+
3. **过度优化**:在实现阶段做性能优化。检测:先正确后优化,除非方案明确要求
|
|
192
|
+
4. **蛮力修复**:测试不过用@JsonIgnore、跳过测试、增加内存。检测:禁止skip/ignore注解
|
|
193
|
+
5. **虚假成功声明**:测试红灯时称代码完成。检测:Layer 1确定性验证不可绕过
|
|
194
|
+
6. **重复造轮子**:不搜索项目已有工具/组件就新建。检测:新建文件前搜索同名/同功能
|
|
195
|
+
7. **跳过效果验证**:AI/模型系统不开发评测脚本。检测:ml类型子系统必须有评测代码
|
|
196
|
+
|
|
197
|
+
## 适用场景与边界
|
|
198
|
+
- 适用:有明确技术方案需要落地为代码的场景
|
|
199
|
+
- 不适用:探索性编码(用experiment模式);纯重构(需单独skill)
|
|
200
|
+
- 边界:忠实执行方案,发现方案问题时提出而非自行解决
|
|
201
|
+
- 前置:design-reviewer通过
|
|
202
|
+
- 后续:Layer 1确定性验证 → code-reviewer审查
|
|
203
|
+
|
|
204
|
+
## 示例
|
|
205
|
+
(待从实践中积累第一个完整示例)
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-reviewer
|
|
3
|
+
description: 当代码自测通过Layer 1确定性验证后、需要独立审查代码质量和安全性以决定是否可合并时触发
|
|
4
|
+
type: review
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 定位
|
|
8
|
+
审查阶段的核心"审"类skill。独立审查代码质量,作为进入QA测试阶段的Layer 2质量关卡。
|
|
9
|
+
|
|
10
|
+
> **做审分离(DP2)**:必须由独立于code-implementer的AI实例执行。
|
|
11
|
+
|
|
12
|
+
## 输入
|
|
13
|
+
- 必须输入:自测通过的代码(Layer 1已通过)、技术方案文档、自测报告
|
|
14
|
+
- 可选输入:methodology/checklists/code.md(检查标准)、关键假设清单(累积至今)
|
|
15
|
+
|
|
16
|
+
## 评判标准
|
|
17
|
+
必须满足:
|
|
18
|
+
- [ ] 代码实现与技术方案一致,未偏离设计
|
|
19
|
+
- [ ] 单元测试覆盖核心逻辑路径
|
|
20
|
+
- [ ] 所有测试运行通过
|
|
21
|
+
- [ ] 无安全漏洞(SQL注入、XSS、CSRF、越权访问、敏感信息泄露)
|
|
22
|
+
- [ ] 无硬编码的密钥、密码、配置项
|
|
23
|
+
- [ ] 错误处理合理
|
|
24
|
+
- [ ] 关键假设在代码中正确体现
|
|
25
|
+
|
|
26
|
+
建议满足:
|
|
27
|
+
- [ ] 测试覆盖边界条件和异常路径
|
|
28
|
+
- [ ] 代码可读性良好
|
|
29
|
+
- [ ] 无重复代码
|
|
30
|
+
- [ ] 资源管理正确
|
|
31
|
+
- [ ] 日志记录合理
|
|
32
|
+
|
|
33
|
+
## 评审步骤
|
|
34
|
+
0. **差异对比**(如为更新任务)
|
|
35
|
+
- 获取旧版本代码
|
|
36
|
+
- 获取新版本代码
|
|
37
|
+
- 对比差异维度:新增、修改、删除
|
|
38
|
+
- 输出结构化差异报告
|
|
39
|
+
1. 对照技术方案,检查代码实现是否一致(架构、接口、数据模型)
|
|
40
|
+
- 证据获取:逐个接口对照方案定义
|
|
41
|
+
2. 审查代码质量
|
|
42
|
+
a. 可读性:命名清晰、逻辑直观
|
|
43
|
+
b. 可维护性:模块化合理、不过度耦合
|
|
44
|
+
c. 代码规范:符合项目约定
|
|
45
|
+
3. 审查安全性
|
|
46
|
+
a. 输入校验:是否对用户输入做了验证
|
|
47
|
+
b. 注入防护:SQL、命令注入、XSS
|
|
48
|
+
c. 认证授权:权限检查是否完善
|
|
49
|
+
d. 敏感信息:是否有硬编码密钥或泄露风险
|
|
50
|
+
e. 金额处理:是否使用专用金额类型(禁止浮点数)
|
|
51
|
+
4. 审查工程规范
|
|
52
|
+
a. 接口变更是否向后兼容(出入参只增不减)
|
|
53
|
+
b. 幂等性:服务方是否严格区分成功/失败/重复/未知
|
|
54
|
+
c. 并发控制:是否遵循"一锁二判三处理"
|
|
55
|
+
d. 异常处理:是否明确区分业务异常/系统异常,禁止吞异常
|
|
56
|
+
e. 线程上下文变量设置与清除是否配对(finally中清理)
|
|
57
|
+
5. 审查性能
|
|
58
|
+
a. 是否有明显的性能问题(N+1查询、无限循环风险等)
|
|
59
|
+
b. 资源管理(连接、文件句柄是否正确释放)
|
|
60
|
+
c. SQL语句是否带where条件,是否走索引,禁止select *
|
|
61
|
+
6. 审查测试充分性
|
|
62
|
+
a. 核心逻辑路径是否覆盖
|
|
63
|
+
b. 边界条件和异常路径覆盖情况
|
|
64
|
+
7. **校验关键假设跨阶段一致性**(需求→设计→实现)
|
|
65
|
+
8. 区分blocking和non-blocking问题
|
|
66
|
+
9. 逐项输出判定结果,**每项附具体证据(代码位置+问题描述)**
|
|
67
|
+
|
|
68
|
+
## 输出格式
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
## 审查结论:通过 / 不通过
|
|
72
|
+
|
|
73
|
+
### 逐项判定
|
|
74
|
+
| 检查项 | 结论 | 证据 | 备注 |
|
|
75
|
+
|--------|------|------|------|
|
|
76
|
+
| 方案一致性 | ✅/❌ | {接口对照结果} | {偏离详情} |
|
|
77
|
+
| 安全性 | ✅/❌ | {具体代码位置} | {修复建议} |
|
|
78
|
+
| ... | ... | ... | ... |
|
|
79
|
+
|
|
80
|
+
### 必须修复(blocking)
|
|
81
|
+
- [{文件}:{行号}] {问题描述} → {修复建议}
|
|
82
|
+
|
|
83
|
+
### 建议改进(non-blocking)
|
|
84
|
+
- [{文件}:{行号}] {问题描述} → {改进方向}
|
|
85
|
+
|
|
86
|
+
### 关键假设验证
|
|
87
|
+
- 设计假设X:在代码中正确体现/存在偏差(证据:{代码位置})
|
|
88
|
+
|
|
89
|
+
### 严重问题判定
|
|
90
|
+
如发现以下任一情况,标记为严重问题并进入问题归因阶段:
|
|
91
|
+
- 核心指标缺失或重复
|
|
92
|
+
- 违反业务规则的强规则
|
|
93
|
+
- 数据量波动超过阈值
|
|
94
|
+
- 计算逻辑错误
|
|
95
|
+
- 影响下游业务使用
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 反模式清单(DP7)
|
|
99
|
+
1. **橡皮图章**:审查走过场。检测:每条"通过"必须附具体代码位置作为证据
|
|
100
|
+
2. **吹毛求疵**:纠结代码风格等非关键问题。检测:风格问题不可blocking
|
|
101
|
+
3. **缺乏上下文**:不了解需求和设计就审代码。检测:审查步骤第一步必须对照方案
|
|
102
|
+
4. **假设漂移忽视**:不校验跨阶段假设一致性。检测:输出必须包含假设验证section
|
|
103
|
+
5. **自我确认偏差**:做和审是同一个AI实例。检测:command-runner确保实例隔离
|
|
104
|
+
|
|
105
|
+
## 适用场景与边界
|
|
106
|
+
- 适用:编码完成并自测通过Layer 1后,进入QA测试前
|
|
107
|
+
- 不适用:代码还在编写中(先完成编码和自测)
|
|
108
|
+
- 对应做类skill:code-implementer
|
|
109
|
+
|
|
110
|
+
## 示例
|
|
111
|
+
(待从实践中积累第一个完整示例)
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: consistency-checker
|
|
3
|
+
description: 当需要执行跨产物一致性检查(DP18)时触发。检测需求、设计、代码、测试之间的重复、歧义、规格不全、宪法对齐、覆盖缺口、术语漂移。
|
|
4
|
+
type: review
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 定位
|
|
8
|
+
|
|
9
|
+
跨产物一致性检查专用技能(DP18实现)。在阶段交付前或全流程完成后,检查六维一致性。
|
|
10
|
+
|
|
11
|
+
## 输入
|
|
12
|
+
|
|
13
|
+
- 必须输入:
|
|
14
|
+
- 需求文档(.autospec/specs/{feature}/requirement.md)
|
|
15
|
+
- 技术方案(.autospec/specs/{feature}/design.md)
|
|
16
|
+
- 代码实现(变更文件列表 + 代码内容)
|
|
17
|
+
- 测试报告(如果有)
|
|
18
|
+
- 可选输入:
|
|
19
|
+
- 历史版本的文档(用于检测术语漂移)
|
|
20
|
+
- 架构图、API契约文档
|
|
21
|
+
|
|
22
|
+
## 输出
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
## 跨产物一致性检查报告(DP18六维检测)
|
|
26
|
+
|
|
27
|
+
### 检查结论:✅ 通过 / ⚠️ 有警告 / ❌ 不通过
|
|
28
|
+
|
|
29
|
+
### 1. 重复检测
|
|
30
|
+
| 位置A | 位置B | 重复内容摘要 | 严重程度 |
|
|
31
|
+
|-------|-------|--------------|----------|
|
|
32
|
+
| ... | ... | ... | ... |
|
|
33
|
+
|
|
34
|
+
### 2. 歧义检测
|
|
35
|
+
| 术语/描述 | 出现的文档 | 不同解释 | 建议 |
|
|
36
|
+
|-----------|------------|----------|------|
|
|
37
|
+
| ... | ... | ... | ... |
|
|
38
|
+
|
|
39
|
+
### 3. 规格不全检测
|
|
40
|
+
| 需求条目 | 设计覆盖 | 代码实现 | 测试验证 | 缺失环节 |
|
|
41
|
+
|----------|----------|----------|----------|----------|
|
|
42
|
+
| 收藏功能 | ✅ | ✅ | ❌ | 缺少测试 |
|
|
43
|
+
|
|
44
|
+
### 4. 宪法对齐检测
|
|
45
|
+
| 宪法条款 | 相关文档段落 | 对齐状态 | 问题描述 |
|
|
46
|
+
|----------|--------------|----------|----------|
|
|
47
|
+
| DP6 Layer1必须执行 | 设计.md第15行 | ✅ | ... |
|
|
48
|
+
|
|
49
|
+
### 5. 覆盖缺口检测
|
|
50
|
+
| 需求点 | 设计覆盖 | 代码覆盖 | 测试覆盖 | 状态 |
|
|
51
|
+
|--------|----------|----------|----------|------|
|
|
52
|
+
| ... | ... | ... | ... | ... |
|
|
53
|
+
|
|
54
|
+
### 6. 术语漂移检测
|
|
55
|
+
| 术语 | 需求用词 | 设计用词 | 代码用词 | 漂移程度 |
|
|
56
|
+
|------|----------|----------|----------|----------|
|
|
57
|
+
| 用户收藏 | favorite | bookmark | collection | ⚠️ 中等 |
|
|
58
|
+
|
|
59
|
+
### 必须修复(Critical/High)
|
|
60
|
+
- ...
|
|
61
|
+
|
|
62
|
+
### 建议改进(Medium/Low)
|
|
63
|
+
- ...
|
|
64
|
+
|
|
65
|
+
### 检查者信息
|
|
66
|
+
- 检查Agent:autospec-consistency
|
|
67
|
+
- 置信度:{高/中/低}
|
|
68
|
+
- 六维雷达图:[重复, 歧义, 规格, 宪法, 覆盖, 术语] = [5,4,3,5,2,4] /5
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 执行步骤
|
|
72
|
+
|
|
73
|
+
### Step 1: 收集产物(确定性)
|
|
74
|
+
|
|
75
|
+
读取所有相关产物:
|
|
76
|
+
1. 需求文档:提取用户故事、验收标准、关键术语
|
|
77
|
+
2. 技术方案:提取数据模型、API定义、模块划分
|
|
78
|
+
3. 代码实现:提取实际实现的功能点、API端点、数据结构
|
|
79
|
+
4. 测试报告:提取测试覆盖的功能点、测试用例关联的需求
|
|
80
|
+
|
|
81
|
+
### Step 2: 重复检测(两两比对)
|
|
82
|
+
|
|
83
|
+
**检测逻辑**:
|
|
84
|
+
- 段落级别:相同或相似的段落出现在多个文档中
|
|
85
|
+
- 代码级别:相同逻辑在多个地方重复实现
|
|
86
|
+
- 配置级别:配置与代码中的硬编码重复
|
|
87
|
+
|
|
88
|
+
**输出**:重复内容的位置、相似度、建议(保留一处+引用)
|
|
89
|
+
|
|
90
|
+
### Step 3: 歧义检测(术语多义)
|
|
91
|
+
|
|
92
|
+
**检测逻辑**:
|
|
93
|
+
- 同一术语在不同文档中有不同解释
|
|
94
|
+
- 示例:"用户"在需求中指"终端用户",在代码中指"系统用户"
|
|
95
|
+
|
|
96
|
+
**输出**:术语、出现的文档、不同解释、建议(统一术语)
|
|
97
|
+
|
|
98
|
+
### Step 4: 规格不全检测(追踪矩阵)
|
|
99
|
+
|
|
100
|
+
**检测逻辑**:
|
|
101
|
+
建立需求→设计→代码→测试的追踪矩阵:
|
|
102
|
+
- 每个需求ID是否有对应设计?
|
|
103
|
+
- 每个设计点是否有代码实现?
|
|
104
|
+
- 每个代码功能是否有测试验证?
|
|
105
|
+
|
|
106
|
+
**输出**:缺失环节的清单
|
|
107
|
+
|
|
108
|
+
### Step 5: 宪法对齐检测(红线检查)
|
|
109
|
+
|
|
110
|
+
**检测逻辑**:
|
|
111
|
+
检查各产物是否符合宪法条款:
|
|
112
|
+
- DP6: Layer 1验证是否有真实执行日志
|
|
113
|
+
- DP2: 审查是否独立执行
|
|
114
|
+
- DP10: 不可逆操作是否有安全审计
|
|
115
|
+
- DP7: 反模式清单是否被提及
|
|
116
|
+
|
|
117
|
+
**输出**:违反宪法条款的具体位置
|
|
118
|
+
|
|
119
|
+
### Step 6: 覆盖缺口检测
|
|
120
|
+
|
|
121
|
+
**检测逻辑**:
|
|
122
|
+
- 需求中的边界条件在设计中是否覆盖
|
|
123
|
+
- 设计中的异常处理在代码中是否实现
|
|
124
|
+
- 代码中的功能在测试中是否验证
|
|
125
|
+
|
|
126
|
+
**输出**:未覆盖点的清单和风险评估
|
|
127
|
+
|
|
128
|
+
### Step 7: 术语漂移检测
|
|
129
|
+
|
|
130
|
+
**检测逻辑**:
|
|
131
|
+
- 提取各文档中同一概念的不同用词
|
|
132
|
+
- 计算术语一致性分数
|
|
133
|
+
|
|
134
|
+
**示例漂移**:
|
|
135
|
+
- 需求:"收藏商品"
|
|
136
|
+
- 设计:"加入收藏夹"
|
|
137
|
+
- 代码:saveToFavorites()
|
|
138
|
+
- 测试:"bookmark功能"
|
|
139
|
+
|
|
140
|
+
**输出**:术语对照表、漂移程度、建议统一用词
|
|
141
|
+
|
|
142
|
+
### Step 8: 汇总报告
|
|
143
|
+
|
|
144
|
+
输出结构化报告,包含:
|
|
145
|
+
- 六维雷达图(可视化一致性评分)
|
|
146
|
+
- 必须修复项(Critical/High)
|
|
147
|
+
- 建议改进项(Medium/Low)
|
|
148
|
+
- 总体通过/不通过结论
|
|
149
|
+
|
|
150
|
+
## 反模式清单(DP7)
|
|
151
|
+
|
|
152
|
+
1. **假阳性泛滥**:将正常的同义词使用标记为术语漂移
|
|
153
|
+
- 检测:区分术语漂移和合理同义词
|
|
154
|
+
|
|
155
|
+
2. **忽视上下文**:不考虑产物间的正常演进关系
|
|
156
|
+
- 检测:设计比需求详细是合理的,不是规格不全
|
|
157
|
+
|
|
158
|
+
3. **机械化比对**:只比对字面而不理解语义
|
|
159
|
+
- 检测:使用语义相似度而非字面匹配
|
|
160
|
+
|
|
161
|
+
4. **忽略优先级**:把所有不一致同等对待
|
|
162
|
+
- 检测:按严重程度分级处理
|
|
163
|
+
|
|
164
|
+
## 适用场景与边界
|
|
165
|
+
|
|
166
|
+
- **适用**:
|
|
167
|
+
- 阶段交付前(尤其是交付部署前)
|
|
168
|
+
- 全流程完成后归档前
|
|
169
|
+
- 发现跨阶段不一致问题时
|
|
170
|
+
|
|
171
|
+
- **不适用**:
|
|
172
|
+
- 单阶段内部审查(不需要跨产物检查)
|
|
173
|
+
- 初始阶段(只有需求文档时无其他产物可对比)
|
|
174
|
+
|
|
175
|
+
- **触发时机**:
|
|
176
|
+
- 自动:/autospec:archive 命令执行前自动触发
|
|
177
|
+
- 手动:/consistency 命令
|