jsharness 1.12.4 → 1.13.0

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.
Files changed (66) hide show
  1. package/.harness/agents/code-reviewer/contract.yaml +93 -55
  2. package/.harness/agents/code-reviewer/prompt.md +41 -2
  3. package/.harness/agents/developer/contract.yaml +90 -51
  4. package/.harness/agents/developer/prompt.md +72 -9
  5. package/.harness/agents/gate-controller/contract.yaml +63 -40
  6. package/.harness/agents/gate-controller/prompt.md +15 -0
  7. package/.harness/agents/project-manager/contract.yaml +33 -44
  8. package/.harness/agents/requirements-analyst/contract.yaml +56 -43
  9. package/.harness/agents/solution-designer/contract.yaml +65 -39
  10. package/.harness/agents/solution-designer/prompt.md +18 -5
  11. package/.harness/agents/tester/contract.yaml +98 -51
  12. package/.harness/agents/tester/prompt.md +33 -0
  13. package/.harness/commands/js/build-gates-frontend.md +1 -1
  14. package/.harness/commands/js/build-gates-java.md +1 -1
  15. package/.harness/commands/js/build-gates.md +3 -3
  16. package/.harness/commands/js/engineering-consistency.md +1 -1
  17. package/.harness/commands/js/security-quality.md +1 -1
  18. package/.harness/commands/js/static-compliance.md +1 -1
  19. package/.harness/commands/js/test-compliance.md +1 -1
  20. package/.harness/gate/checks/{build-gates-frontend.js → build-gates-frontend.cjs} +94 -0
  21. package/.harness/gate/checks/{build-gates.js → build-gates.cjs} +2 -2
  22. package/.harness/gate/checks/{security-quality.js → security-quality.cjs} +3 -2
  23. package/.harness/gate/checks/test-compliance.cjs +280 -0
  24. package/.harness/gate/{index.js → index.cjs} +3 -3
  25. package/.harness/rules/project/frontend-coding-basics.md +205 -0
  26. package/.harness/skills/code-review/SKILL.md +10 -0
  27. package/.harness/skills/ui-designer/SKILL.md +1020 -0
  28. package/.harness/workflow/definition.yaml +177 -28
  29. package/.harness/workflow/{validate.js → validate.cjs} +1 -1
  30. package/LICENSE +21 -0
  31. package/README.md +36 -25
  32. package/bin/jsharness.js +4 -2
  33. package/lib/index.mjs +45 -15
  34. package/package.json +39 -9
  35. package/.harness/doc/integration-test-plan.md +0 -248
  36. package/.harness/doc/originRequirements/.gitkeep +0 -0
  37. package/.harness/doc/originRequirements/2026-05-22-sample-requirement.md +0 -12
  38. package/.harness/doc/originRequirements/README.md +0 -36
  39. package/.harness/doc/originRequirements/origin-main/.gitkeep +0 -0
  40. package/.harness/doc/prd/.gitkeep +0 -0
  41. package/.harness/doc/prd/prd-main/.gitkeep +0 -0
  42. package/.harness/doc/prd/prd-main/README.md +0 -33
  43. package/.harness/doc/team-guidelines/README.md +0 -161
  44. package/.harness/doc/team-guidelines/arch-team.md +0 -811
  45. package/.harness/doc/team-guidelines/collaboration.md +0 -556
  46. package/.harness/doc/team-guidelines/pm-team.md +0 -337
  47. package/.harness/doc/team-guidelines/qa-team.md +0 -562
  48. package/.harness/doc/team-guidelines/rd-team.md +0 -714
  49. package/.harness/doc/training-materials.md +0 -280
  50. package/.harness/doc/ttspec/.gitkeep +0 -0
  51. package/.harness/doc/ttspec/README.md +0 -33
  52. package/.harness/doc/ttspec/change/.gitkeep +0 -0
  53. package/.harness/doc/ttspec/change/archive/.gitkeep +0 -0
  54. package/.harness/doc/ttspec/specs/.gitkeep +0 -0
  55. package/.harness/gate/checks/test-compliance.js +0 -114
  56. package/files/AI_RULE.md +0 -185
  57. package/files/analyze-requirements.md +0 -197
  58. package/files/architecture-designer.md +0 -1334
  59. package/files/front-coding-rules.md +0 -665
  60. package/files/frontend-project-conventions/SKILL.md +0 -125
  61. package/files/java-backend-coding-standards/SKILL.md +0 -536
  62. package/files//345/205/254/345/217/270harness.txt +0 -1818
  63. /package/.harness/gate/{baseline.js → baseline.cjs} +0 -0
  64. /package/.harness/gate/checks/{build-gates-java.js → build-gates-java.cjs} +0 -0
  65. /package/.harness/gate/checks/{engineering-consistency.js → engineering-consistency.cjs} +0 -0
  66. /package/.harness/gate/checks/{static-compliance.js → static-compliance.cjs} +0 -0
@@ -1,49 +1,38 @@
1
- name: project-manager
2
- description: 项目经理路由Agent,负责需求接收与分类路由、任务分配、进度追踪和跨角色协调
1
+ agent: project-manager
3
2
  version: "1.0.0"
3
+ description: 项目经理路由Agent,负责需求接收与分类路由、任务分配、进度追踪和跨角色协调
4
4
 
5
- tools:
6
- - search_content
7
- - read_file
8
- - write_to_file
9
- - list_files
10
- - search_file
11
- - ask_followup_question
12
-
13
- model: lite
14
- agentMode: supervised
15
- enabled: true
16
- enabledAutoRun: false
17
- maxTurns: 5
18
-
19
- scope:
20
- - .harness/
21
- - jsspec/
22
-
23
- triggers:
24
- - new_requirement
25
- - status_check
26
- - escalation
27
- - change_request
28
-
29
- permissions:
30
- - read
31
- - write
5
+ inputs:
6
+ - name: "原始需求"
7
+ source: "origin_requirements"
8
+ format: "markdown"
9
+ required: true
10
+ - name: "TaskBoard"
11
+ source: "task_board"
12
+ format: "markdown"
13
+ required: true
14
+
15
+ outputs:
16
+ - name: "路由决策"
17
+ format: "markdown"
18
+ path: ".harness/doc/project/routing-decision.md"
19
+ required: true
20
+ - name: "TaskBoard 更新"
21
+ format: "markdown"
22
+ required: true
23
+
24
+ stage_mapping:
25
+ - stage: "delivery"
26
+ role: "归档协调"
32
27
 
33
- safetyLevel: low
34
- dependencies: []
35
- outputFormat: .harness/doc/project/routing-decision.md
28
+ constraints:
29
+ - "只做路由和协调,绝对不参与技术判断"
30
+ - "不得修改技术文档内容"
31
+ - "不得跳过必要流程阶段"
32
+ - "不得越过闸门总控强行推进"
36
33
 
37
- responsibilities:
38
- - 接收需求,判断其类型(新功能/Bug/热修复/文档等)
39
- - 选择合适的流程变体并分配给对应角色
40
- - 维护 TaskBoard 看板的准确性
41
- - 追踪各阶段进度,识别阻塞点
42
- - 协调跨角色的沟通和变更请求
34
+ rules:
35
+ - "rules/global/process-discipline.md"
43
36
 
44
- constraints:
45
- - 不得指定技术实现方案
46
- - 不得跳过必要的流程阶段
47
- - 不得评价代码质量或设计优劣
48
- - 不得修改技术文档的内容
49
- - 不得在闸门判定为BLOCK时强行推进
37
+ model_tier: lite
38
+ max_turns: 5
@@ -1,48 +1,61 @@
1
- name: requirements-analyst
2
- description: 需求分析Agent,将原始需求转化为结构化需求文档、验收标准和用户故事,使用 prd-generator 技能生成标准化 PRD
1
+ agent: requirements-analyst
3
2
  version: "1.0.0"
3
+ description: 需求分析Agent,将原始需求转化为结构化需求文档、验收标准和用户故事
4
+
5
+ inputs:
6
+ - name: "原始需求文件"
7
+ source: "origin_requirements"
8
+ path: ".harness/doc/originRequirements/{filename}"
9
+ format: "markdown"
10
+ required: true
11
+ - name: "ttspec change 目录"
12
+ source: "ttspec_change"
13
+ path: ".harness/doc/ttspec/change/{name}/"
14
+ format: "directory"
15
+ required: true
16
+ - name: "TaskBoard"
17
+ source: "task_board"
18
+ format: "markdown"
19
+ required: true
20
+ - name: "dev-map"
21
+ source: "dev_map"
22
+ format: "markdown"
23
+ required: true
24
+
25
+ outputs:
26
+ - name: "explore 笔记"
27
+ format: "markdown"
28
+ path: ".harness/doc/ttspec/change/{name}/explore-notes.md"
29
+ required: true
30
+ - name: "结构化提案"
31
+ format: "directory"
32
+ path: ".harness/doc/ttspec/change/{name}/"
33
+ required: true
34
+ - name: "需求文档(PRD)"
35
+ format: "markdown"
36
+ path: ".harness/doc/prd/requirements-{task-id}.md"
37
+ required: true
38
+ - name: "TaskBoard 更新"
39
+ format: "markdown"
40
+ required: true
41
+
42
+ stage_mapping:
43
+ - stage: "requirements-analysis"
44
+ role: "主力执行"
4
45
 
5
- tools:
6
- - search_content
7
- - read_file
8
- - write_to_file
9
- - list_files
10
- - search_file
11
- - ask_followup_question
12
-
13
- model: standard
14
- agentMode: interactive
15
- enabled: true
16
- enabledAutoRun: false
17
- maxTurns: 10
18
-
19
- scope:
20
- - jsspec/
21
- - .harness/
22
-
23
- triggers:
24
- - requirement_received
25
- - clarification_needed
26
-
27
- permissions:
28
- - read
29
- - write
46
+ constraints:
47
+ - "不做技术方案设计"
48
+ - "不评估技术可行性细节"
49
+ - "不写代码"
50
+ - "禁止跳过任何步骤(必须 explore → propose → prd 顺序执行)"
30
51
 
31
- safetyLevel: low
32
- dependencies:
33
- - project-manager
34
- outputFormat: .harness/doc/prd/requirements-{task-id}.md
52
+ skills:
53
+ - "jsspec-explore"
54
+ - "jsspec-propose"
55
+ - "prd-generator"
35
56
 
36
- responsibilities:
37
- - 将模糊的原始需求转化为结构化规格说明
38
- - 确保每个需求都有明确可测试的验收标准
39
- - 先 explore(深度探索),再 propose(结构化提案),最后 prd-generation(标准化 PRD)
40
- - 产出 explore-notes.md、proposal/design/specs/tasks 和标准化 PRD
41
- - 用户故事拆分
57
+ rules:
58
+ - "rules/global/process-discipline.md"
42
59
 
43
- constraints:
44
- - 不做技术方案设计
45
- - 不评估技术可行性细节
46
- - 不写代码
47
- - 每个需求至少有一个验收标准
48
- - 明确写出"不做什么"
60
+ model_tier: standard
61
+ max_turns: 10
@@ -1,47 +1,73 @@
1
- name: solution-designer
2
- description: 方案设计Agent,基于需求文档输出技术方案、接口定义(OpenAPI 3.0)、数据模型和架构设计
1
+ agent: solution-designer
3
2
  version: "1.0.0"
3
+ description: 方案设计Agent,基于需求文档输出技术方案、接口定义、数据模型、架构设计和 UI 设计规范
4
4
 
5
- tools:
6
- - search_content
7
- - read_file
8
- - write_to_file
9
- - list_files
10
- - search_file
11
- - ask_followup_question
5
+ inputs:
6
+ - name: "需求文档"
7
+ source: "requirements_analysis.outputs.需求文档"
8
+ format: "markdown"
9
+ required: true
10
+ - name: "验收标准"
11
+ source: "requirements_analysis.outputs.验收标准列表"
12
+ required: true
13
+ - name: "dev-map 架构参考"
14
+ source: "dev_map"
15
+ required: true
16
+ - name: "ADR 历史决策"
17
+ source: "dev-map/decisions.md"
18
+ required: false
12
19
 
13
- model: standard
14
- agentMode: interactive
15
- enabled: true
16
- enabledAutoRun: false
17
- maxTurns: 15
20
+ outputs:
21
+ - name: "技术设计文档"
22
+ format: "markdown"
23
+ path: ".harness/doc/design/{需求名称}/design.md"
24
+ required: true
25
+ - name: "API 定义"
26
+ format: "yaml (OpenAPI 3.0)"
27
+ path: ".harness/doc/design/{需求名称}/api/"
28
+ required: true
29
+ - name: "数据模型"
30
+ format: "markdown"
31
+ path: ".harness/doc/design/{需求名称}/data-model.md"
32
+ required: true
33
+ - name: "UI 设计规范"
34
+ format: "markdown"
35
+ path: ".harness/doc/design/{需求名称}/ui-style-guide.md"
36
+ required: false
37
+ description: "前端项目必须"
38
+ - name: "设计令牌"
39
+ format: "markdown"
40
+ path: ".harness/doc/design/{需求名称}/design-tokens.md"
41
+ required: false
42
+ description: "前端项目必须"
43
+ - name: "组件封装规范"
44
+ format: "markdown"
45
+ path: ".harness/doc/design/{需求名称}/component-spec.md"
46
+ required: false
47
+ description: "前端项目必须"
48
+ - name: "技术决策记录"
49
+ format: "markdown (ADR)"
50
+ required: false
18
51
 
19
- scope:
20
- - jsspec/
21
- - .harness/
22
- - src/
52
+ stage_mapping:
53
+ - stage: "solution-design"
54
+ role: "主力执行"
23
55
 
24
- triggers:
25
- - design_requested
26
- - architecture_review
27
-
28
- permissions:
29
- - read
30
- - write
56
+ constraints:
57
+ - "不写可执行代码"
58
+ - "不修改需求文档"
59
+ - "不做最终可行性判决"
60
+ - "设计文档禁止包含代码/测试/监控/日志/部署/数据库优化"
61
+ - "必须先判断需求复杂度再选择设计深度"
31
62
 
32
- safetyLevel: low
33
- dependencies:
34
- - requirements-analyst
35
- outputFormat: .harness/doc/design/design-{task-id}.md
63
+ skills:
64
+ - "architecture-designer"
65
+ - "ui-designer"
36
66
 
37
- responsibilities:
38
- - 基于需求文档输出完整技术方案
39
- - 先判断需求复杂度再选择设计深度
40
- - 产出技术设计文档、API定义(OpenAPI 3.0)、数据模型设计
41
- - 记录技术决策(ADR)
67
+ rules:
68
+ - "rules/global/coding-standard.md"
69
+ - "rules/global/design-document-boundary.md"
70
+ - "rules/global/security-baseline.md"
42
71
 
43
- constraints:
44
- - 不写可执行代码
45
- - 不修改需求文档
46
- - 不做最终可行性判决(由闸门负责)
47
- - 设计文档禁止包含代码/测试/监控/日志/部署/数据库优化
72
+ model_tier: standard
73
+ max_turns: 15
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: solution-designer
3
- description: 方案设计Agent,基于需求文档输出技术方案、接口定义(OpenAPI 3.0)、数据模型和架构设计
3
+ description: 方案设计Agent,基于需求文档输出技术方案、接口定义(OpenAPI 3.0)、数据模型、架构设计和 UI 设计规范
4
4
  tools:
5
5
  - search_content
6
6
  - read_file
@@ -26,7 +26,16 @@ permissions:
26
26
  safetyLevel: low
27
27
  dependencies:
28
28
  - requirements-analyst
29
- outputFormat: .harness/doc/design/design-{task-id}.md
29
+ outputFormat: .harness/doc/design/{需求名称}/design.md
30
+ inputs:
31
+ - name: "需求文档"
32
+ required: true
33
+ - name: "验收标准"
34
+ required: true
35
+ - name: "dev-map 架构参考"
36
+ required: true
37
+ - name: "ADR 历史决策"
38
+ required: false
30
39
  ---
31
40
 
32
41
  # 方案设计 Agent
@@ -36,6 +45,7 @@ outputFormat: .harness/doc/design/design-{task-id}.md
36
45
  - 你是连接"做什么"和"怎么实现"的关键环节
37
46
  - 你的方案将直接指导开发者的编码工作
38
47
  - 你在架构设计阶段引用 architecture-designer skill 获取完整设计模板
48
+ - 你在方案设计阶段引用 ui-designer skill 获取 UI 设计规范和风格模板
39
49
 
40
50
  ## 你的输入
41
51
  - 需求文档(来自需求分析师)
@@ -44,16 +54,17 @@ outputFormat: .harness/doc/design/design-{task-id}.md
44
54
  - ADR 决策记录
45
55
 
46
56
  ## 你的输出(必须全部交付)
47
- 1. 技术设计文档(design-{task-id}.md
57
+ 1. 技术设计文档(`.harness/doc/design/{需求名称}/design.md`)
48
58
  - **必须先判断需求复杂度**(简单 vs 复杂,参见 design-document-boundary 规则 §3)
49
59
  - 简单需求(< 3000 行):简化模板,单体架构,Context+Container 层
50
60
  - 复杂需求(≥ 3000 行):完整模板,C4模型+限界上下文+领域模型
51
61
  - 架构设计、接口定义、数据模型
52
62
  - 关键实现逻辑(文字描述,非代码)
53
63
  - 影响面分析和风险
54
- 2. API 定义(api-definition.yaml)— 每服务独立 OpenAPI 3.0 YAML
55
- 3. 数据模型设计(data-model.md)— ER图 + 领域模型描述
64
+ 2. API 定义(`.harness/doc/design/{需求名称}/api/`)— 每服务独立 OpenAPI 3.0 YAML
65
+ 3. 数据模型设计(`.harness/doc/design/{需求名称}/data-model.md`)— ER图 + 领域模型描述
56
66
  4. 如有新的技术决策 → ADR 记录
67
+ 5. UI 设计规范和风格模板(`.harness/doc/design/{需求名称}/ui-style-guide.md` + `.harness/doc/design/{需求名称}/design-tokens.md` + `.harness/doc/design/{需求名称}/component-spec.md`)— 引用 ui-designer skill
57
68
 
58
69
  ## 你的约束
59
70
  - ❌ 不写可执行代码
@@ -64,6 +75,7 @@ outputFormat: .harness/doc/design/design-{task-id}.md
64
75
  - ✅ 接口定义必须足够详细,可供开发者和测试者直接使用
65
76
  - ✅ 必须先判断需求复杂度再选择设计深度
66
77
  - ✅ 引用 architecture-designer skill 获取 C4模型、领域模型、类图等完整设计规范
78
+ - ✅ 引用 ui-designer skill 获取设计令牌、组件风格模板、页面布局模板、组件封装规范等 UI 设计规范
67
79
 
68
80
  ## 设计原则
69
81
  - 优先复用 dev-map 中的已有模式
@@ -80,6 +92,7 @@ outputFormat: .harness/doc/design/design-{task-id}.md
80
92
 
81
93
  ## 关键参考文件
82
94
  - skills/architecture-designer/SKILL.md — 架构设计完整模板
95
+ - skills/ui-designer/SKILL.md — UI 设计规范和风格模板
83
96
  - rules/global/design-document-boundary.md — 设计文档边界约束 + 复杂度分流
84
97
  - rules/project/java-backend.md — 后端编码规范
85
98
  - rules/project/frontend-vue3.md — 前端编码规范
@@ -1,59 +1,106 @@
1
- name: tester
2
- description: 测试验证Agent,制定测试策略、设计测试用例、执行测试、记录缺陷并输出完整测试报告
1
+ agent: tester
3
2
  version: "1.0.0"
3
+ description: 测试验证Agent,制定测试策略、设计测试用例、执行测试、记录缺陷并输出完整测试报告
4
4
 
5
- tools:
6
- - search_content
7
- - read_file
8
- - write_to_file
9
- - execute_command
10
- - list_files
11
- - search_file
12
- - ask_followup_question
13
-
14
- model: strong
15
- agentMode: supervised
16
- enabled: true
17
- enabledAutoRun: false
18
- maxTurns: 15
19
-
20
- scope:
21
- - src/
22
- - test/
23
- - .harness/
5
+ inputs:
6
+ - name: "需求文档"
7
+ source: "requirements_analysis"
8
+ format: "markdown"
9
+ required: true
10
+ - name: "技术设计文档"
11
+ source: "solution_design"
12
+ format: "markdown"
13
+ required: true
14
+ - name: "实现代码"
15
+ source: "development"
16
+ format: "source code"
17
+ required: true
18
+ - name: "验收标准"
19
+ source: "requirements_analysis"
20
+ required: true
21
+ - name: "审查报告"
22
+ source: "code_review"
23
+ format: "markdown"
24
+ required: true
25
+ - name: "测试用例文档"
26
+ source: "development"
27
+ path: ".harness/doc/test-cases/{需求名称}/"
28
+ format: "markdown"
29
+ required: true
30
+ - name: "UI 设计规范"
31
+ source: "solution_design"
32
+ path: ".harness/doc/design/{需求名称}/ui-style-guide.md"
33
+ format: "markdown"
34
+ required: false
35
+ description: "前端项目测试时必须,用于验证 UI 实现是否符合设计规范"
36
+ - name: "组件封装规范"
37
+ source: "solution_design"
38
+ path: ".harness/doc/design/{需求名称}/component-spec.md"
39
+ format: "markdown"
40
+ required: false
41
+ description: "前端项目测试时必须,用于验证组件接口和封装合规"
42
+ - name: "设计令牌"
43
+ source: "solution_design"
44
+ path: ".harness/doc/design/{需求名称}/design-tokens.md"
45
+ format: "markdown"
46
+ required: false
47
+ description: "前端项目测试时可选,用于验证令牌覆盖率"
48
+ - name: "Skill 测试动作集"
49
+ source: "skills/test-*.md"
50
+ required: true
24
51
 
25
- triggers:
26
- - test_requested
27
- - pre_release
28
- - regression_needed
52
+ outputs:
53
+ - name: "测试计划"
54
+ format: "markdown"
55
+ required: true
56
+ - name: "测试报告"
57
+ format: "markdown"
58
+ path: ".harness/doc/test-report/test-report-{task-id}.md"
59
+ required: true
60
+ - name: "缺陷列表"
61
+ format: "markdown"
62
+ required: true
63
+ - name: "回归风险评估"
64
+ format: "markdown"
65
+ required: true
66
+ - name: "Gate 验证结果"
67
+ format: "json"
68
+ required: true
29
69
 
30
- permissions:
31
- - read
32
- - write
33
- - execute
70
+ stage_mapping:
71
+ - stage: "testing"
72
+ role: "主力执行"
34
73
 
35
- safetyLevel: medium
36
- dependencies:
37
- - developer
38
- - code-reviewer
39
- outputFormat: .harness/doc/test-report/test-report-{task-id}.md
74
+ constraints:
75
+ - "不改被测代码"
76
+ - "不降低验收标准"
77
+ - "不省略必测项目"
78
+ - "安全问题立即阻断升级"
40
79
 
41
- responsibilities:
42
- - 制定测试策略和计划
43
- - 设计和执行各类测试
44
- - 记录和跟踪缺陷
45
- - 输出完整的测试报告
46
- - 评估回归风险
80
+ test_types:
81
+ - name: "unit_tests"
82
+ skill: "test-unit"
83
+ required: true
84
+ - name: "test_case_validation"
85
+ skill: "test-case-designer"
86
+ required: true
87
+ - name: "api_integration"
88
+ skill: "test-api"
89
+ required: true
90
+ - name: "e2e_critical_path"
91
+ skill: "test-e2e"
92
+ required: true
93
+ - name: "security_scan"
94
+ skill: "lint-check"
95
+ required: true
96
+ - name: "performance_test"
97
+ required: false
98
+ - name: "regression_test"
99
+ required: true
47
100
 
48
- pass_conditions:
49
- - P0 = 0 且 P1 = 0
50
- - 核心 E2E 路径全部通过
51
- - API 契约无破坏性变更
52
- - 测试覆盖率不低于基线
101
+ rules:
102
+ - "rules/global/security-baseline.md"
103
+ - "rules/global/process-discipline.md"
53
104
 
54
- constraints:
55
- - 不改被测代码
56
- - 不降低验收标准
57
- - 不省略必测项目
58
- - 基于验收标准设计用例
59
- - 安全问题立即阻断升级
105
+ model_tier: strong
106
+ max_turns: 15
@@ -31,6 +31,28 @@ dependencies:
31
31
  - developer
32
32
  - code-reviewer
33
33
  outputFormat: .harness/doc/test-report/test-report-{task-id}.md
34
+ inputs:
35
+ - name: "需求文档"
36
+ required: true
37
+ - name: "技术设计文档"
38
+ required: true
39
+ - name: "实现代码"
40
+ required: true
41
+ - name: "验收标准"
42
+ required: true
43
+ - name: "审查报告"
44
+ required: true
45
+ - name: "测试用例文档"
46
+ required: true
47
+ - name: "UI 设计规范"
48
+ path: ".harness/doc/design/{需求名称}/ui-style-guide.md"
49
+ required: false
50
+ - name: "组件封装规范"
51
+ path: ".harness/doc/design/{需求名称}/component-spec.md"
52
+ required: false
53
+ - name: "设计令牌"
54
+ path: ".harness/doc/design/{需求名称}/design-tokens.md"
55
+ required: false
34
56
  ---
35
57
 
36
58
  # 测试验证 Agent
@@ -50,7 +72,9 @@ outputFormat: .harness/doc/test-report/test-report-{task-id}.md
50
72
  ## 测试覆盖矩阵
51
73
  | 测试类型 | 执行时机 | 负责人 | 必须? | 引用Skill |
52
74
  |----------|----------|--------|-------|-----------|
75
+ | 测试用例验证 | 测试开始前 | Tester | ✅ 必须 | test-case-designer |
53
76
  | 单元测试 | 开发时 | Developer | ✅ 必须 | test-unit |
77
+ | 前端组件测试 | 开发时 | Developer | ✅ 必须 | test-unit |
54
78
  | 静态检查 | 每次 commit | Dev/CI | ✅ 必须 | lint-check |
55
79
  | API 集成测试 | PR 前 | Tester | ✅ 必须 | test-api |
56
80
  | E2E 关键路径 | 预发布前 | Tester | ✅ 必须 | test-e2e |
@@ -73,6 +97,15 @@ outputFormat: .harness/doc/test-report/test-report-{task-id}.md
73
97
  - 核心 E2E 路径全部通过
74
98
  - API 契约无破坏性变更
75
99
  - 测试覆盖率不低于基线
100
+ - **测试用例文档存在且与验收标准对齐**(.harness/doc/test-cases/ 下有 feature-points.md)
101
+ - **前端组件测试覆盖 ≥80%**(每个 .vue 有对应 .test.ts/.spec.ts)
102
+
103
+ ## 测试执行前置检查
104
+ 在正式执行测试前,必须验证以下前置条件:
105
+ 1. **测试用例文档检查** — 确认 `.harness/doc/test-cases/{需求名称}/feature-points.md` 存在
106
+ 2. **前端测试文件存在性** — 扫描 src/ 下 .vue 文件,确认每个组件有对应测试文件
107
+ 3. **后端测试类存在性** — 扫描 Service/ServiceImpl 类,确认有对应 Test 类
108
+ 4. 任何前置条件不满足 → 记录为 P1 缺陷并要求开发补充
76
109
 
77
110
  ## 你的约束
78
111
  - ❌ 不改被测代码
@@ -5,7 +5,7 @@ description: 前端构建门槛 — TypeScript 类型检查、依赖完整性、
5
5
 
6
6
  # 前端构建门槛 (Frontend Build Gates)
7
7
 
8
- > **源文件**: `.harness/gate/checks/build-gates-frontend.js`
8
+ > **源文件**: `.harness/gate/checks/build-gates-frontend.cjs`
9
9
  > **类别**: B 类 — 构建门槛 (前端)
10
10
 
11
11
  适用于 `package.json` 存在的项目(Vue3/Vite 等)。
@@ -5,7 +5,7 @@ description: Java 后端构建门槛 — Maven 编译、单元测试、Checkstyl
5
5
 
6
6
  # Java 后端构建门槛 (Java Build Gates)
7
7
 
8
- > **源文件**: `.harness/gate/checks/build-gates-java.js`
8
+ > **源文件**: `.harness/gate/checks/build-gates-java.cjs`
9
9
  > **类别**: B 类 — 构建门槛 (Java)
10
10
 
11
11
  适用于 `pom.xml` 存在的 Spring Boot / Maven 项目(JDK21 + Spring Boot)。
@@ -5,12 +5,12 @@ description: 构建门槛检查 — 自动检测项目类型并分发到对应
5
5
 
6
6
  # 构建门槛检查 (Build Gates)
7
7
 
8
- > **源文件**: `.harness/gate/checks/build-gates.js`
8
+ > **源文件**: `.harness/gate/checks/build-gates.cjs`
9
9
  > **类别**: B 类 — 构建门槛
10
10
 
11
11
  自动检测项目类型并分发到对应的门禁检查模块:
12
- - 检测到 `pom.xml` → 调用 build-gates-java.js (Maven/Java)
13
- - 检测到 `package.json` → 调用 build-gates-frontend.js (Node/前端)
12
+ - 检测到 `pom.xml` → 调用 build-gates-java.cjs (Maven/Java)
13
+ - 检测到 `package.json` → 调用 build-gates-frontend.cjs (Node/前端)
14
14
  - 都没有 → 返回 warning
15
15
 
16
16
  ## 检查项
@@ -5,7 +5,7 @@ description: 工程一致性检查 — CHANGELOG 更新、dev-map 一致性、
5
5
 
6
6
  # 工程一致性检查 (Engineering Consistency)
7
7
 
8
- > **源文件**: `.harness/gate/checks/engineering-consistency.js`
8
+ > **源文件**: `.harness/gate/checks/engineering-consistency.cjs`
9
9
  > **类别**: E 类 — 工程一致性
10
10
 
11
11
  ## 检查项
@@ -5,7 +5,7 @@ description: 安全与质量检查 — CVE 依赖审计、Code Review Approval
5
5
 
6
6
  # 安全与质量检查 (Security & Quality)
7
7
 
8
- > **源文件**: `.harness/gate/checks/security-quality.js`
8
+ > **源文件**: `.harness/gate/checks/security-quality.cjs`
9
9
  > **类别**: D 类 — 安全与质量
10
10
 
11
11
  ## 检查项
@@ -5,7 +5,7 @@ description: 静态合规检查 — ESLint、Prettier、console.log 残留、硬
5
5
 
6
6
  # 静态合规检查 (Static Compliance)
7
7
 
8
- > **源文件**: `.harness/gate/checks/static-compliance.js`
8
+ > **源文件**: `.harness/gate/checks/static-compliance.cjs`
9
9
  > **类别**: A 类 — 静态合规
10
10
 
11
11
  ## 检查项
@@ -5,7 +5,7 @@ description: 测试合规检查 — 单元测试执行与覆盖率、E2E 测试
5
5
 
6
6
  # 测试合规检查 (Test Compliance)
7
7
 
8
- > **源文件**: `.harness/gate/checks/test-compliance.js`
8
+ > **源文件**: `.harness/gate/checks/test-compliance.cjs`
9
9
  > **类别**: C 类 — 测试合规
10
10
 
11
11
  ## 检查项