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,337 @@
1
+ # 产品团队 (PM) Harness 使用规范
2
+
3
+ > **适用角色**: 产品经理、项目经理、需求负责人
4
+ > **对应 Agent**: PM 路由 Agent (project-manager)
5
+ > **模型档位**: Lite(轻量模型,专注分类调度)
6
+ > **参考契约**: `.harness/agents/project-manager/contract.yaml`
7
+ > **参考 Prompt**: `.harness/agents/prompt-templates.md` → PM Agent 部分
8
+
9
+ ---
10
+
11
+ ## 一、角色定位:你是交通指挥官,不是技术决策者
12
+
13
+ ### 1.1 核心职责(3件事)
14
+
15
+ ```
16
+ ┌────────────────────────────────────────────┐
17
+ │ PM 的三大核心职责 │
18
+ ├────────────────────────────────────────────┤
19
+ │ ① 需求路由 — 接收需求,判断类型,分配流程 │
20
+ │ ② 进度追踪 — 维护 TaskBoard,识别阻塞 │
21
+ │ ③ 协调沟通 — 跨角色协调,变更管理 │
22
+ └────────────────────────────────────────────┘
23
+ ```
24
+
25
+ ### 1.2 绝对禁止做的事(触碰即违规)
26
+
27
+ | # | 禁止行为 | 违规等级 | 后果 |
28
+ |---|---------|---------|------|
29
+ | 1 | 指定技术实现方案(如"用 Redis 缓存") | **严重违规** | 记入绩效,流程回退 |
30
+ | 2 | 评价代码质量或设计优劣 | **严重违规** | 口头警告 + 记录 |
31
+ | 3 | 跳过必要的流程阶段 | **严重违规** | 需求打回重走 |
32
+ | 4 | 在闸门判定为 BLOCK 时强行推进 | **致命违规** | 流程终止 + 通报批评 |
33
+ | 5 | 修改任何技术文档内容 | **中等违规** | 文档还原 + 警告 |
34
+ | 6 | 给出具体的工期承诺(不经开发确认) | **中等违规** | 承诺作废 |
35
+
36
+ > 以上禁令来源: `.harness/rules/global/process-discipline.md`
37
+
38
+ ---
39
+
40
+ ## 二、日常工作规范
41
+
42
+ ### 2.1 需求接入与路由
43
+
44
+ #### Step 1: 接收需求
45
+
46
+ 需求可以来自:
47
+ - 业务方口头/邮件/IM 描述
48
+ - Jira/Tapd 等项目管理工具的 Ticket
49
+ - 内部优化建议
50
+ - Bug 报告
51
+
52
+ #### Step 2: 分类路由
53
+
54
+ 收到需求后,**必须在 4 小时内** 完成分类并选择流程变体:
55
+
56
+ | 需求类型 | 判断标准 | 选择流程变体 | 预计阶段数 |
57
+ |---------|---------|-------------|-----------|
58
+ | **新功能** | 全新功能模块 | 标准七阶段流程 | 7 |
59
+ | **功能增强** | 已有功能扩展 | 标准七阶段流程 | 7 |
60
+ | **Bug 修复** | 已知缺陷修复 | Bug 修复轻量流程 | 5 |
61
+ | **紧急热修复** | 生产环境故障 | 热修复最快路径 | 3-4 |
62
+ | **文档/配置** | 非代码变更 | 微型流程 | 3 |
63
+
64
+ **路由输出格式**:
65
+
66
+ ```yaml
67
+ decision: route_type # new-feature / bugfix / hotfix / micro
68
+ assigned_to: requirements-analyst # 下一步处理人
69
+ reason: "简短理由(一句话)"
70
+ taskboard_updated: true # 是否已更新看板
71
+ priority: P0/P1/P2/P3 # 优先级
72
+ expected_complexity: low/medium/high # 复杂度预估
73
+ ```
74
+
75
+ #### Step 3: 更新 TaskBoard
76
+
77
+ 每次路由操作后,必须更新 `.harness/task-board.md`:
78
+
79
+ ```markdown
80
+ ## 进行中
81
+
82
+ | 任务ID | 名称 | 类型 | 当前阶段 | 负责人 | 路由时间 | 预计交付 |
83
+ |--------|------|------|---------|--------|---------|---------|
84
+ | TASK-2026-001 | 用户登录优化 | 新功能 | ①需求分析 | 张三(需求) | 05-21 | 06-05 |
85
+ ```
86
+
87
+ ### 2.2 TaskBoard 维护规范
88
+
89
+ #### 更新频率要求
90
+
91
+ | 操作类型 | 响应时效 | 说明 |
92
+ |---------|---------|------|
93
+ | 新任务注册 | 接收后 **4小时内** | 含分类和初始路由 |
94
+ | 状态变更通知 | 收到后 **2小时内** | 阶段切换时同步更新 |
95
+ | 阻塞标记 | 发现后 **1小时内** | 标注阻塞原因和等待对象 |
96
+ | 交付归档 | 完成后 **当天内** | 移至"已完成"区 |
97
+
98
+ #### TaskBoard 必填字段
99
+
100
+ ```markdown
101
+ ### 进行中任务列表
102
+ - [ ] 任务ID(格式: TASK-YYYY-NNN)
103
+ - [ ] 任务名称(简短明确)
104
+ - [ ] 需求类型(新功能/Bug修复/热修复等)
105
+ - [ ] 当前所处阶段(①-⑦)
106
+ - [ ] 当前负责人(具体到人)
107
+ - [ ] 路由时间(首次分配日期)
108
+ - [ ] 预计交付日期(与开发确认后填写)
109
+ - [ ] 阻塞状态(如有阻塞标注原因)
110
+
111
+ ### 度量指标区域
112
+ - 平均交付周期: X 天
113
+ - 本月完成数: N 个
114
+ - 打回率: X%
115
+ - 各阶段平均耗时:
116
+ - 需求分析: X 天
117
+ - 方案设计: X 天
118
+ - 开发实现: X 天
119
+ ...
120
+ ```
121
+
122
+ ---
123
+
124
+ ## 三、各阶段参与规范
125
+
126
+ ### 3.1 ① 需求分析阶段 — 你的职责
127
+
128
+ **你做什么**:
129
+ - ✅ 向需求分析师提供业务背景和用户场景
130
+ - ✅ 回答分析师提出的澄清问题(24h 内响应)
131
+ - ✅ 确认验收标准的业务正确性
132
+ - ✅ 将原始需求整理成结构化输入
133
+
134
+ **你不做什么**:
135
+ - ❌ 不自己写需求文档(那是需求分析师的事)
136
+ - ❌ 不指定验收标准的技术指标(如"响应时间<100ms"需技术评估)
137
+
138
+ ### 3.2 ② 方案设计阶段 — 你的职责
139
+
140
+ **你做什么**:
141
+ - ✅ 参与方案评审会议(如有)
142
+ - ✅ 确认方案是否覆盖了所有业务需求
143
+ - ✅ 对方案提出业务层面的疑问
144
+
145
+ **你不做什么**:
146
+ - ❌ 不评价技术方案的优劣
147
+ - ❌ 不指定使用什么技术栈
148
+ - ❌ 不修改 API 定义文档
149
+
150
+ ### 3.3 ③ 闸门评估阶段 — 你的职责
151
+
152
+ **你做什么**:
153
+ - ✅ 提供/确认资源可用性信息
154
+ - ✅ 确认商业优先级排序
155
+ - ✅ HOLD 状态下等待时配合提供补充信息
156
+
157
+ **你不做什么**:
158
+ - ❌ 不干预 PASS/BLOCK/HOLD 的技术裁决
159
+ - ❌ 不因为"赶进度"而施压放行
160
+
161
+ ### 3.4 ④-⑥ 开发/审查/测试阶段 — 你的职责
162
+
163
+ **你做什么**:
164
+ - ✅ 定期查看 TaskBoard 了解进度
165
+ - ✅ 回答业务层面的问题(及时响应)
166
+ - ✅ 如有需求变更,通过正式流程发起
167
+
168
+ **你不做什么**:
169
+ - ❌ 不催促"快点做完"(应关注阻塞点而非施压)
170
+ - ❌ 不在中途添加新需求(变更走正式流程)
171
+ - ❌ 不直接找开发者改东西
172
+
173
+ ### 3.5 ⑦ 交付归档阶段 — 你的职责(主要责任!)
174
+
175
+ 这是 PM **最核心的操作阶段**:
176
+
177
+ **必须完成的动作清单**:
178
+
179
+ | # | 动作 | 完成标准 | 截止时间 |
180
+ |---|------|---------|---------|
181
+ | 1 | 汇总全链路交付物 | 所有阶段文档已收集归档 | 交付后 1 天内 |
182
+ | 2 | TaskBoard 移至已完成 | 更新状态 + 填写实际交付周期 | 交付后 4 小时内 |
183
+ | 3 | 记录度量数据 | 周期时间、各阶段耗时、打回次数 | 交付后 1 天内 |
184
+ | 4 | 通知相关利益方 | 发送交付通知(含摘要) | 交付后 4 小时内 |
185
+ | 5 | 更新项目整体状态 | 同步到公司级项目看板 | 交付后 1 天内 |
186
+
187
+ **交付摘要模板**:
188
+
189
+ ```markdown
190
+ # 交付摘要: {任务名称}
191
+
192
+ ## 基本信息
193
+ - **任务ID**: TASK-YYYY-NNN
194
+ - **任务名称**: xxx
195
+ - **负责人**: xxx
196
+ - **交付日期**: YYYY-MM-DD
197
+
198
+ ## 交付周期总览
199
+ | 阶段 | 耗时 | 负责人 | 打回次数 |
200
+ |-----|------|-------|---------|
201
+ | 需求分析 | X 天 | xxx | N |
202
+ | 方案设计 | X 天 | xxx | N |
203
+ | 闸门评估 | X 天 | xxx | - |
204
+ | 开发实现 | X 天 | xxx | N |
205
+ | 代码审查 | X 天 | xxx | N |
206
+ | 测试验证 | X 天 | xxx | N |
207
+ | **总计** | **X 天** | | **N** |
208
+
209
+ ## 产出物清单
210
+ - [x] 需求文档 (requirements-{id}.md)
211
+ - [x] 验收标准 (acceptance-criteria.md)
212
+ - [x] 设计文档 (design-{id}.md)
213
+ - [x] API 定义 (api-definition.yaml)
214
+ - [x] 实现代码 (src/)
215
+ - [x] 单元测试 (*.test.*)
216
+ - [x] 代码审查报告 (review-report.md)
217
+ - [x] 测试报告 (test-report.md)
218
+
219
+ ## Gate 检查结果
220
+ - 静态检查: PASS/WARNING/FAIL
221
+ - 构建检查: PASS/FAIL
222
+ - 测试合规: PASS/FAIL
223
+ - 安全扫描: PASS/FAIL
224
+ - 工程一致性: PASS/WARNING/FAIL
225
+
226
+ ## 经验教训(可选)
227
+ (记录本次交付中的问题和改进点)
228
+ ```
229
+
230
+ ---
231
+
232
+ ## 四、变更管理规范
233
+
234
+ ### 4.1 需求变更流程
235
+
236
+ ```
237
+ 发现需要变更 → 填写变更请求单 → PM 评估影响范围
238
+ → 通知当前阶段负责人 → 暂停或回退 → 变更处理后继续
239
+ ```
240
+
241
+ **变更请求模板**:
242
+
243
+ ```markdown
244
+ # 需求变更请求
245
+
246
+ ## 基本信息
247
+ - **原任务ID**: TASK-YYYY-NNN
248
+ - **当前阶段**: 第X阶段(名称)
249
+ - **申请人**: xxx
250
+ - **申请日期**: YYYY-MM-DD
251
+
252
+ ## 变更内容
253
+ ### 变更前
254
+ (原需求描述)
255
+
256
+ ### 变更后
257
+ (变更后的需求描述)
258
+
259
+ ## 变更原因
260
+ (为什么需要变更)
261
+
262
+ ## 影响范围评估
263
+ - [ ] 需要重新做需求分析
264
+ - [ ] 需要修改设计方案
265
+ - [ ] 需要修改已写代码
266
+ - [ ] 影响测试用例
267
+ - [ ] 影响交付时间
268
+
269
+ ## PM 初步意见
270
+ (同意/有条件同意/拒绝 + 理由)
271
+ ```
272
+
273
+ ### 4.2 变更时机规则
274
+
275
+ | 当前阶段 | 小变更处理方式 | 大变更处理方式 |
276
+ |---------|--------------|---------------|
277
+ | ① 需求分析 | 直接修改 | 直接修改 |
278
+ | ② 方案设计 | 发起变更请求,通常可就地修正 | 可能回退到① |
279
+ | ③ 闸门评估 | HOLD + 变更请求 | 回退到②或① |
280
+ | ④ 开发实现 | 严格限制,仅允许修 bug | 必须回退到② |
281
+ | ⑤ 代码审查 | 原则上不接受 | 必须回退 |
282
+ | ⑥ 测试验证 | 仅接受 bug 修复类变更 | 必须回退到④ |
283
+
284
+ ---
285
+
286
+ ## 五、绩效考核关联指标
287
+
288
+ 作为 PM,以下指标将纳入你的绩效评估:
289
+
290
+ | 指标 | 目标值 | 权重 | 数据来源 |
291
+ |-----|-------|------|---------|
292
+ | 需求路由时效 | ≤ 4小时响应 | 20% | TaskBoard 时间戳 |
293
+ | TaskBoard 准确率 | ≥ 95% | 20% | 月度抽查 |
294
+ | 交付归档完整性 | 100% 字段齐全 | 15% | 归档检查 |
295
+ | 流程违规次数 | = 0 严重违规 | 25% | 违规记录 |
296
+ | 需求交付周期达标率 | ≥ 80% | 20% | 度量数据 |
297
+
298
+ ---
299
+
300
+ ## 六、常用命令速查
301
+
302
+ ```bash
303
+ # 查看 TaskBoard
304
+ cat .harness/task-board.md
305
+
306
+ # 查看当前工作流状态
307
+ node .harness/workflow/validate.js
308
+
309
+ # 查看流程变体定义(用于路由决策)
310
+ cat .harness/workflow/variants.yaml
311
+
312
+ # 查看 PM 自身契约约束
313
+ cat .harness/agents/project-manager/contract.yaml
314
+
315
+ # 查看流程纪律规则(你的行为边界)
316
+ cat .harness/rules/global/process-discipline.md
317
+ ```
318
+
319
+ ---
320
+
321
+ ## 七、检查清单:PM 日常自查
322
+
323
+ 每天上班前花 2 分钟确认:
324
+
325
+ - [ ] TaskBoard 中"进行中"任务状态是否准确?
326
+ - [ ] 昨天是否有未处理的阻塞需要跟进?
327
+ - [ ] 今天是否预期有需求到达?准备好接收了吗?
328
+ - [ ] 本周是否有预计交付的任务?提前准备归档。
329
+
330
+ 每周五下班前:
331
+ - [ ] 本周新增/完成/取消的任务数量统计
332
+ - [ ] 本周是否有流程卡点需要上报?
333
+ - [ ] 下周重点任务的优先级排序确认
334
+
335
+ ---
336
+
337
+ *本规范是产品团队在 Harness 体系中的完整操作指南。有疑问请查阅 `../README.md` 总纲或联系工程效能组。*