jsharness 1.0.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 (68) hide show
  1. package/.harness/README.md +199 -0
  2. package/.harness/agents/code-reviewer/contract.yaml +64 -0
  3. package/.harness/agents/developer/contract.yaml +72 -0
  4. package/.harness/agents/gate-controller/contract.yaml +64 -0
  5. package/.harness/agents/project-manager/contract.yaml +77 -0
  6. package/.harness/agents/prompt-templates.md +352 -0
  7. package/.harness/agents/requirements-analyst/contract.yaml +64 -0
  8. package/.harness/agents/solution-designer/contract.yaml +75 -0
  9. package/.harness/agents/tester/contract.yaml +92 -0
  10. package/.harness/config/models.yaml +67 -0
  11. package/.harness/dev-map/backend/api-definition.md +131 -0
  12. package/.harness/dev-map/backend/auth-security.md +131 -0
  13. package/.harness/dev-map/backend/conventions-java.md +471 -0
  14. package/.harness/dev-map/backend/conventions.md +192 -0
  15. package/.harness/dev-map/backend/database.md +106 -0
  16. package/.harness/dev-map/backend/structure.md +140 -0
  17. package/.harness/dev-map/decisions.md +275 -0
  18. package/.harness/dev-map/frontend/api-integration.md +139 -0
  19. package/.harness/dev-map/frontend/components.md +178 -0
  20. package/.harness/dev-map/frontend/conventions.md +416 -0
  21. package/.harness/dev-map/frontend/state-management.md +170 -0
  22. package/.harness/dev-map/frontend/structure.md +103 -0
  23. package/.harness/dev-map/overview.md +267 -0
  24. package/.harness/docs/integration-test-plan.md +248 -0
  25. package/.harness/docs/team-guidelines/README.md +161 -0
  26. package/.harness/docs/team-guidelines/arch-team.md +811 -0
  27. package/.harness/docs/team-guidelines/collaboration.md +556 -0
  28. package/.harness/docs/team-guidelines/pm-team.md +337 -0
  29. package/.harness/docs/team-guidelines/qa-team.md +562 -0
  30. package/.harness/docs/team-guidelines/rd-team.md +714 -0
  31. package/.harness/docs/training-materials.md +280 -0
  32. package/.harness/gate/baseline.js +220 -0
  33. package/.harness/gate/checks/build-gates-frontend.js +152 -0
  34. package/.harness/gate/checks/build-gates-java.js +155 -0
  35. package/.harness/gate/checks/build-gates.js +119 -0
  36. package/.harness/gate/checks/engineering-consistency.js +138 -0
  37. package/.harness/gate/checks/security-quality.js +129 -0
  38. package/.harness/gate/checks/static-compliance.js +313 -0
  39. package/.harness/gate/checks/test-compliance.js +114 -0
  40. package/.harness/gate/index.js +315 -0
  41. package/.harness/mcp/config.yaml +435 -0
  42. package/.harness/rules/global/coding-standard.md +232 -0
  43. package/.harness/rules/global/commit-convention.md +165 -0
  44. package/.harness/rules/global/process-discipline.md +192 -0
  45. package/.harness/rules/global/security-baseline.md +306 -0
  46. package/.harness/rules/project/frontend-vue3.md +293 -0
  47. package/.harness/rules/project/java-backend.md +460 -0
  48. package/.harness/rules/project/web-specific.md +231 -0
  49. package/.harness/skills/build.md +192 -0
  50. package/.harness/skills/code-review.md +251 -0
  51. package/.harness/skills/docker-build.md +227 -0
  52. package/.harness/skills/docs-update.md +164 -0
  53. package/.harness/skills/java-build.md +261 -0
  54. package/.harness/skills/lint-check.md +482 -0
  55. package/.harness/skills/task-board-maintenance.md +105 -0
  56. package/.harness/skills/test-api.md +461 -0
  57. package/.harness/skills/test-e2e.md +431 -0
  58. package/.harness/skills/test-unit.md +649 -0
  59. package/.harness/skills/vue-frontend-build.md +344 -0
  60. package/.harness/specs/quality-feedback/implementation-guide.md +350 -0
  61. package/.harness/task-board.md +121 -0
  62. package/.harness/workflow/definition.yaml +504 -0
  63. package/.harness/workflow/validate.js +320 -0
  64. package/.harness/workflow/variants.yaml +253 -0
  65. package/README.md +237 -0
  66. package/bin/jsharness.js +53 -0
  67. package/lib/index.mjs +778 -0
  68. package/package.json +1 -0
@@ -0,0 +1,248 @@
1
+ # 集成测试与试点验证指南
2
+
3
+ ## 11.1 端到端测试用例 — 模拟完整七阶段工作流跑通
4
+
5
+ ### 测试目标
6
+ 验证 Harness 工作流引擎的完整性,确保一个需求从接收到交付的完整链路可以正确运行。
7
+
8
+ ### E2E 测试场景:完整标准流程
9
+
10
+ ```yaml
11
+ test_case_id: "E2E-HARNESS-FULL-001"
12
+ name: "标准七阶段流程端到端测试"
13
+ description: |
14
+ 模拟一个完整的「用户注册功能」需求,走通从 PM 路由到最终交付的全流程。
15
+
16
+ scenario:
17
+ # === Phase 0: 准备 ===
18
+ - given: "一个新功能需求(用户邮箱注册)已提交"
19
+ input:
20
+ raw_requirement: "用户需要通过邮箱和密码注册账号"
21
+ source: "product_manager"
22
+ task_board_status: "空"
23
+
24
+ # === Phase 1: PM 路由 (Task 1) ===
25
+ - when: "PM Agent 接收需求并路由"
26
+ then:
27
+ routing_decision:
28
+ variant_selected: "standard" # 新功能 → 标准流程
29
+ assigned_to: "requirements-analyst"
30
+ task_board_updated: true
31
+ assert: "task_board 包含新任务且状态为 待开始"
32
+
33
+ # === Phase 2: 需求分析 (Tasks 2-3) ===
34
+ - when: "需求分析 Agent 处理需求"
35
+ then:
36
+ output_exists:
37
+ - "requirements-TASK-001.md"
38
+ - "acceptance-criteria.md"
39
+ - "stories.md"
40
+ quality_checks:
41
+ - "每个验收标准可测"
42
+ - "范围边界清晰(包含/不包含)"
43
+ - "无技术实现细节混入"
44
+ task_board_status_changed: "待开始 → 进行中(需求分析)"
45
+
46
+ # === Phase 3: 方案设计 (Tasks 4-5) ===
47
+ - when: "方案设计 Agent 基于需求文档设计方案"
48
+ then:
49
+ output_exists:
50
+ - "design-TASK-001.md"
51
+ - "api-definition.yaml"
52
+ - "data-model.md"
53
+ references_dev_map: true # 引用了既有模块
54
+ api_spec_complete: true # API 定义覆盖所有验收场景
55
+
56
+ # === Phase 4: 闸门评估 (Task 6) ===
57
+ - when: "闸门总控 Agent 评估方案可行性"
58
+ then:
59
+ gate_decision: one_of ["PASS", "HOLD"]
60
+ if_PASS: "进入开发阶段"
61
+ if_HOLD: "有明确的解除条件"
62
+ risk_identified: true # 风险清单不为空
63
+
64
+ # === Phase 5: 开发实现 (Tasks 7-8) ===
65
+ - when: "开发者 Agent 按方案编码"
66
+ steps_verified:
67
+ - step_1_design_read: "阅读了 design 文档"
68
+ - step_2_code_written: "源码文件存在"
69
+ - step_3_tests_written: "单元测试存在且覆盖率 ≥85%"
70
+ - step_4_build_pass: "npm run build 通过"
71
+ - step_5_test_pass: "npm run test 通过"
72
+ - step_6_lint_pass: "ESLint + Prettier 通过"
73
+ - step_7_devmap_updated: "dev-map 已同步更新"
74
+ - step_8_commit_made: "Commit 符合 Conventional Commits"
75
+ - step_9_pr_created: "PR/MR 已创建"
76
+
77
+ # === Phase 6: 代码审查 (Task 9) ===
78
+ - when: "代码审查 Agent 审查 PR"
79
+ then:
80
+ review_dimensions_checked:
81
+ - A_quality: "得分 ≥60%"
82
+ - B_compliance: "得分存在"
83
+ - C_security: "无安全红线违规"
84
+ - D_performance: "已检查"
85
+ - E_testing: "覆盖率未下降 >5%"
86
+ decision: one_of ["PASS", "CONDITIONAL_PASS", "FAIL"]
87
+
88
+ # === Phase 7: 测试验证 (Task 10) ===
89
+ - when: "测试验证 Agent 执行全面测试"
90
+ then:
91
+ test_types_executed:
92
+ - unit: "PASS, coverage >= baseline"
93
+ - api_integration: "PASS, no breaking changes"
94
+ - e2e_critical_path: "PASS"
95
+ - security_scan: "no HIGH/CRITICAL vulnerabilities"
96
+ defect_report:
97
+ P0_count: 0
98
+ P1_count: 0
99
+ regression_check: "no new regressions"
100
+
101
+ # === Phase 8: 交付归档 (Task 11) ===
102
+ - when: "PM Agent 完成交付归档"
103
+ then:
104
+ task_board_status: "已完成"
105
+ deliverables_archived: true
106
+ metrics_recorded: true
107
+
108
+ # 最终断言
109
+ assertions:
110
+ - "所有阶段产出物齐全"
111
+ - "TaskBoard 状态流转正确(每个阶段只推进一次或按规则回退)"
112
+ - "无流程违规记录"
113
+ - "Gate 报告显示 PASS 或 CONDITIONAL_PASS"
114
+ ```
115
+
116
+ ### E2E 测试场景:Bug 修复轻量流程
117
+
118
+ ```yaml
119
+ test_case_id: "E2E-HARNESS-BUGFIX-001"
120
+ name: "Bug 修复流程端到端测试"
121
+ description: "验证 Bug 修复变体流程的正确性"
122
+
123
+ scenario:
124
+ given: "一个 P2 级 Bug 报告:登录后页面标题不显示"
125
+ when: "PM 路由为 bugfix 变体"
126
+ then:
127
+ skipped_stages: ["requirements-analysis", "solution-design", "full-gate"]
128
+ executed_stages: ["impact-assessment", "fix-development", "fix-review", "regression-testing"]
129
+ total_steps: "< 标准流程的 50%"
130
+ fix_includes_regression_test: true
131
+ ```
132
+
133
+ ### E2E 测试场景:安全红线阻断
134
+
135
+ ```yaml
136
+ test_case_id: "E2E-HARNESS-SECURITY-001"
137
+ name: "安全红线阻断测试"
138
+ description: "验证安全问题时工作流能正确阻断"
139
+
140
+ scenario:
141
+ given: "开发者在代码中硬编码了 API Key"
142
+ when: "经过 Gate 安全检查 (D 类)"
143
+ then:
144
+ gate_result: "FAIL"
145
+ auto_reject_triggered: true
146
+ block_merge: true
147
+ escalation_sent: true
148
+ workflow_state: "blocked at code-review or testing"
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 11.2 试点运行计划
154
+
155
+ ### 试点需求选择标准
156
+
157
+ | 标准 | 要求 | 说明 |
158
+ |------|------|------|
159
+ | 规模 | 中小型 | 理想:1-3 天开发量 |
160
+ | 复杂度 | 中等 | 不太简单(无法验证流程),不太复杂(周期太长)|
161
+ | 风险可控 | 低 | 不涉及核心业务、不影响线上稳定性 |
162
+ | 可测量 | 高 | 有明确的验收标准和可量化结果 |
163
+
164
+ ### 推荐试点需求示例
165
+
166
+ ```
167
+ 候选 1: 「用户头像上传与裁剪」功能
168
+ ✅ 涉及前后端、有 API 设计、有文件处理
169
+ ✅ 有明确验收标准(格式、大小、裁剪比例)
170
+ ✅ 预计 2-3 天开发量
171
+ ⚠️ 涉及文件存储,需要基础设施配合
172
+
173
+ 候选 2: 「用户个人资料页展示」功能
174
+ ✅ 纯读取型功能,风险低
175
+ ✅ 涉及 API 对接和数据组装
176
+ ✅ 预计 1-2 天开发量
177
+ ❌ 可能过于简单,不足以充分验证流程
178
+
179
+ 候选 3: 「通知消息列表 + 已读标记」功能
180
+ ✅ 涉及数据模型变更、API 设计、状态管理
181
+ ✅ 有明确的交互逻辑
182
+ ✅ 适合验证多角色协作
183
+ ```
184
+
185
+ ### 试点执行步骤
186
+
187
+ ```markdown
188
+ ## 试点前准备(Day 0)
189
+ - [ ] 选择试点需求
190
+ - [ ] 确认参与人员(PM / 开发者 / 测试各 1 人)
191
+ - [ ] 准备独立的 Git 分支 `feature/harness-pilot-{name}`
192
+ - [ ] 确认 Rule/Skill/Gate 配置就绪
193
+
194
+ ## 试点执行(Day 1-3)
195
+ - [ ] Day 1: PM 路由 → 需求分析 → 方案设计 → 闸门评估
196
+ - [ ] Day 2: 开发实现 → 代码审查
197
+ - [ ] Day 3: 测试验证 → 交付归档
198
+
199
+ ## 试点回顾(Day 4)
200
+ - [ ] 收集各方反馈(每个角色的体验)
201
+ - [ ] 记录遇到的问题和卡点
202
+ - [ ] 统计度量数据(实际耗时 vs 预期、打回次数等)
203
+ - [ ] 识别需要调整的配置项
204
+ ```
205
+
206
+ ---
207
+
208
+ ## 11.3 反馈收集模板
209
+
210
+ ```markdown
211
+ # Harness 试点反馈表
212
+
213
+ **试点需求**: {name}
214
+ **参与者**: {role_name}
215
+ **填写日期**: {date}
216
+
217
+ ## 流程体验评分 (1-5 分)
218
+
219
+ | 维度 | 评分 | 说明 |
220
+ |------|------|------|
221
+ | 流程清晰度 | ?/5 | 各阶段的输入输出是否明确? |
222
+ | 工具易用性 | ?/5 | Rule/Skill/Gate 是否容易使用? |
223
+ | 协作顺畅度 | ?/5 | 角色交接是否顺利? |
224
+ | 效率感知 | ?/5 | 相比之前的方式是快还是慢? |
225
+ | 整体满意度 | ?/5 | 是否愿意在后续工作中继续使用? |
226
+
227
+ ## 最大痛点(Top 3)
228
+
229
+ 1.
230
+ 影响程度: 🟡🟠🔴
231
+ 改进建议:
232
+
233
+ 2.
234
+
235
+ 3.
236
+
237
+ ## 最有价值的部分(Top 3)
238
+
239
+ 1.
240
+
241
+ 2.
242
+
243
+ 3.
244
+
245
+ ## 其他建议
246
+
247
+ {free_text}
248
+ ```
@@ -0,0 +1,161 @@
1
+ # 公司各团队 Harness 使用规范总纲
2
+
3
+ > **版本**: v1.0.0
4
+ > **生效日期**: 2026-05-21
5
+ > **适用范围**: 全公司产研测相关团队
6
+ > **维护人**: 工程效能组
7
+
8
+ ---
9
+
10
+ ## 一、背景与目标
11
+
12
+ ### 1.1 为什么需要这套规范
13
+
14
+ 公司已建立完整的 **Harness 产研测作战地图** 体系(`.harness/`),包含:
15
+ - **7 个角色 Agent**(PM/需求分析/方案设计/闸门/开发/审查/测试)
16
+ - **5 类 Rule 规则**(编码规范/提交规范/安全红线/流程纪律/Web规则)
17
+ - **9 个 Skill 技能库**(构建/测试/Lint/审查/Docker/文档等)
18
+ - **7 阶段 Workflow 工作流**(需求→设计→闸门→开发→审查→测试→交付)
19
+ - **5 类 Gate 门禁检查**(静态/构建/测试/安全/一致性)
20
+
21
+ 本规范的目的是:**让每个团队清楚知道自己在 Harness 体系中的角色、职责、操作流程和考核标准**。
22
+
23
+ ### 1.2 规范覆盖的团队
24
+
25
+ | 团队 | 对应 Agent | 核心职责 |
26
+ |------|-----------|---------|
27
+ | **产品团队 (PM)** | PM 路由 Agent | 需求接入、流程调度、看板维护 |
28
+ | **研发团队 (RD)** | 开发实现 Agent + 代码审查 Agent | 编码实现、单元测试、代码审查 |
29
+ | **测试团队 (QA)** | 测试验证 Agent | 测试策略、用例执行、质量把关 |
30
+ | **架构/技术方案组** | 方案设计师 Agent + 闸门总控 Agent | 技术设计、可行性评估、风险控制 |
31
+
32
+ ---
33
+
34
+ ## 二、通用协作原则(所有团队必须遵守)
35
+
36
+ ### 2.1 三不原则
37
+
38
+ ```
39
+ ┌─────────────────────────────────────────────┐
40
+ │ Harness 三不原则 │
41
+ ├─────────────────────────────────────────────┤
42
+ │ ❌ 不跳过阶段 — 必须按七阶段流程推进 │
43
+ │ ❌ 不越界干预 — 不做不属于自己角色的事 │
44
+ │ ❌ 不私自放行 — 闸门判定为 BLOCK 时不得强行推进│
45
+ └─────────────────────────────────────────────┘
46
+ ```
47
+
48
+ ### 2.2 下游不改上游原则
49
+
50
+ | 上游产出 | 谁可以修改 | 其他人能做什么 |
51
+ |---------|----------|-------------|
52
+ | 需求文档 | 需求分析师 / PM(变更请求) | 提出澄清问题 |
53
+ | 技术设计 | 方案设计师 | 提出实现疑问 |
54
+ | 代码实现 | 开发者 | Code Review 评论 |
55
+ | 测试报告 | 测试人员 | 确认缺陷复现 |
56
+
57
+ ### 2.3 文档即契约原则
58
+
59
+ - 每个阶段必须产出规定格式的文档
60
+ - 文档是下游工作的唯一依据
61
+ - 文档变更必须走正式流程,不能口头约定
62
+
63
+ ### 2.4 度量透明原则
64
+
65
+ 所有关键指标在 TaskBoard 可见:
66
+ - 需求交付周期(需求提出 → 交付完成)
67
+ - 各阶段耗时分布
68
+ - 打回率和打回原因统计
69
+ - Gate 通过率
70
+
71
+ ---
72
+
73
+ ## 三、约束硬度层级说明
74
+
75
+ ```
76
+ Rule (软约束) Skill (半硬约束) Gate Scripts (硬约束)
77
+ ↓ ↓ ↓
78
+ 自然语言指导 标准步骤流程 自动化检查
79
+ 有解释空间 步骤固定 PASS/FAIL 无商量
80
+ 违反 → 记录警告 违反 → 重做 违反 → 直接阻断
81
+ ```
82
+
83
+ | 层级 | 执行方式 | 违反后果 |
84
+ |-----|---------|---------|
85
+ | **Rule** | 自觉遵循 + AI 辅助检查 | 警告记录,累计影响绩效 |
86
+ | **Skill** | 按标准步骤执行 | 未执行则该阶段不通过 |
87
+ | **Gate Scripts** | 自动化脚本检查 | FAIL 则直接阻断流程 |
88
+
89
+ ---
90
+
91
+ ## 四、各团队规范索引
92
+
93
+ 请各团队成员详细阅读对应的团队规范:
94
+
95
+ | 团队 | 规范文件 | 必读内容 |
96
+ |------|---------|---------|
97
+ | 产品团队 | `team-guidelines/pm-team.md` | 需求提交流程、路由规则、看板维护 |
98
+ | 研发团队 | `team-guidelines/rd-team.md` | 编码规范、自检流程、CR 要求、dev-map 更新 |
99
+ | 测试团队 | `team-guidelines/qa-team.md` | 测试策略、缺陷分级、验收标准、回归要求 |
100
+ | 架构/设计 | `team-guidelines/arch-team.md` | 设计文档标准、接口定义、风险评估、ADR |
101
+ | 全体通用 | `team-guidelines/collaboration.md` | 跨团队协作、争议升级、应急处理 |
102
+
103
+ ---
104
+
105
+ ## 五、快速参考:七阶段流程速查
106
+
107
+ ```
108
+ ① 需求分析 ──→ ② 方案设计 ──→ ③ 闸门评估 ──→ ④ 开发实现
109
+ ↑ ↓打回 ↓打回/变更需求 │PASS ↓PR+自检通过
110
+ └──┘ │BLOCK/HOLD ⑤ 代码审查
111
+ ↓ ↓PASS/条件PASS
112
+ 取消/BLOCK ⑥ 测试验证
113
+ ↓全部PASS
114
+ ⑦ 交付归档
115
+
116
+ 完成 ✓
117
+ ```
118
+
119
+ **各阶段负责人**:
120
+
121
+ | 阶段 | 负责角色 | 模型档位 | 关键产出 |
122
+ |-----|---------|---------|---------|
123
+ | ① 需求分析 | 需求分析师 | Standard | 需求文档 + 验收标准 |
124
+ | ② 方案设计 | 方案设计师 | Standard | 设计文档 + API 定义 |
125
+ | ③ 闸门评估 | 闸门总控 | Strong | 可行性报告 + PASS/BLOCK/HOLD |
126
+ | ④ 开发实现 | 开发者 | Standard | 代码 + 单元测试 + PR |
127
+ | ⑤ 代码审查 | 审查者 | Strong | 审查报告 + PASS/条件PASS/FAIL |
128
+ | ⑥ 测试验证 | 测试员 | Strong | 测试报告 + 缺陷列表 |
129
+ | ⑦ 交付归档 | PM | Lite | 交付摘要 + 归档 |
130
+
131
+ ---
132
+
133
+ ## 六、常见问题 FAQ
134
+
135
+ **Q1: 紧急 Bug 修复要走完整七阶段吗?**
136
+ A: 不必。使用「热修复变体」流程(见 `workflow/variants.yaml`),可压缩至 3-4 阶段,但安全检查不可省略。
137
+
138
+ **Q2: PM 可以指定技术方案吗?**
139
+ A: 绝对不可以。PM 的职责是路由和协调,「指定技术实现」是明确的违规行为(见 `rules/global/process-discipline.md`)。
140
+
141
+ **Q3: 发现设计文档和实际代码严重不符怎么办?**
142
+ A: 开发者应立即发起「上游变更请求」,回退到方案设计阶段修正。不能自行修改设计文档。
143
+
144
+ **Q4: Gate 检查 FAIL 了但我觉得没问题,能强行通过吗?**
145
+ A: 不能。Gate 是硬约束,FAIL 必须修复后重新检查。如有异议,可申请人工复审。
146
+
147
+ **Q5: dev-map 由谁维护?**
148
+ A: 原则是「谁改代码谁改地图」。开发者在有结构性变更时必须同步更新 dev-map。
149
+
150
+ ---
151
+
152
+ ## 七、规范更新机制
153
+
154
+ - **定期评审**: 每两周 Review 一次 Rule/Skill/Workflow 配置
155
+ - **变更提案**: 通过 `/opsx:propose` 提交改进建议
156
+ - **版本管理**: 所有规范变更记录在 ADR 中(`dev-map/decisions.md`)
157
+ - **培训同步**: 规范变更后一周内完成全员培训
158
+
159
+ ---
160
+
161
+ *本文档是公司 Harness 体系的顶层规范入口,具体操作细节请参阅各团队专属规范。*