@zeyue0329/xiaoma-cli 1.12.0 → 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.
- package/.playwright-cli/console-2026-05-13T06-36-26-793Z.log +2 -0
- package/.playwright-cli/page-2026-05-13T06-36-27-725Z.yml +1 -0
- package/CLAUDE.md +1 -0
- package/XiaoMa-CLI-2026H2-/350/277/255/344/273/243/350/247/204/345/210/222.pptx +0 -0
- package/demo/xiaoma-bug-circle-resolve/SKILL.md +1 -1
- package/demo/xiaoma-bug-circle-resolve/workflow.md +72 -30
- package/demo/xiaoma-prd-saas-zh/README.md +57 -0
- package/demo/xiaoma-prd-saas-zh/domain-research.md +128 -0
- package/demo/xiaoma-prd-saas-zh/epics.md +303 -0
- package/demo/xiaoma-prd-saas-zh/market-research-2026-q1.md +183 -0
- package/demo/xiaoma-prd-saas-zh/prd-bad-examples.md +268 -0
- package/demo/xiaoma-prd-saas-zh/prd.md +409 -0
- package/demo/xiaoma-prd-saas-zh/product-brief.md +97 -0
- package/demo/xiaoma-prd-saas-zh/validation-report.md +279 -0
- package/media/doc1_fig1.png +0 -0
- package/media/doc1_fig2.png +0 -0
- package/media/doc1_fig3.png +0 -0
- package/media/doc1_fig4.png +0 -0
- package/media/doc2_fig1.png +0 -0
- package/media/doc2_fig2.png +0 -0
- package/media/doc2_fig3.png +0 -0
- package/media/doc2_fig4.png +0 -0
- package/media/doc3_fig1.png +0 -0
- package/media/doc3_fig2.png +0 -0
- package/media/doc3_fig3.png +0 -0
- package/media/doc3_fig4.png +0 -0
- package/media/doc4_fig1.png +0 -0
- package/media/doc4_fig2.png +0 -0
- package/media/doc4_fig3.png +0 -0
- package/media/doc5_fig1.png +0 -0
- package/media/doc5_fig2.png +0 -0
- package/media/doc5_fig3.png +0 -0
- package/package.json +1 -1
- package/patent-disclosure-optimized/SKILL.md +135 -17
- package/patent-disclosure-optimized/references/docx-format-spec.md +183 -0
- package/patent-disclosure-optimized/scripts/md2docx.js +777 -0
- package/src/core/tasks/xiaoma-create-prd/data/prd-purpose.md +157 -0
- package/src/core/tasks/xiaoma-create-prd/data/upstream-input-contract.md +168 -0
- package/src/core/tasks/xiaoma-create-prd/templates/prd-skeleton-reference.md +428 -0
- package/src/core/tasks/xiaoma-create-prd/templates/prd-template.md +101 -3
- package/src/xmc/agents/sm.agent.yaml +4 -0
- package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/data/prd-quality-rubric.csv +14 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/SKILL.md +6 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/checklist.md +43 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/steps/step-01-init-and-validate.md +155 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/steps/step-02-create-epics.md +156 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/steps/step-03-bridge-sprint-planning.md +143 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/steps/step-04-batch-create-stories.md +309 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/steps/step-05-finalize.md +311 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/workflow.md +105 -0
- package/src/xmc/workflows/5-full-pipeline/auto-prd-to-stories/xiaoma-skill-manifest.yaml +3 -0
- package//344/270/223/345/210/251/344/272/244/345/272/225/344/271/246_1_/351/235/242/345/220/221AI/346/231/272/350/203/275/344/275/223/347/232/204/345/244/232/351/200/232/351/201/223/344/276/235/350/265/226_20260318.md +483 -0
- package//344/270/223/345/210/251/344/272/244/345/272/225/344/271/246_2_/345/237/272/344/272/216/351/205/215/347/275/256/351/251/261/345/212/250/347/232/204/350/267/250/345/271/263/345/217/260IDE/346/231/272/350/203/275_20260318.md +592 -0
- package//344/270/223/345/210/251/344/272/244/345/272/225/344/271/246_3_AI/346/231/272/350/203/275/344/275/223/345/243/260/346/230/216/345/274/217/345/256/232/344/271/211/347/232/204/347/274/226/350/257/221/346/265/201/346/260/264_20260318.md +624 -0
- package//344/270/223/345/210/251/344/272/244/345/272/225/344/271/246_4_/345/237/272/344/272/216/345/223/210/345/270/214/346/214/207/347/272/271/347/232/204/346/231/272/350/203/275/344/275/223/351/231/204/345/261/236/350/265/204/346/272/220/351/200/211_20260318.md +628 -0
- package//344/270/223/345/210/251/344/272/244/345/272/225/344/271/246_5_AI/346/231/272/350/203/275/344/275/223/350/247/246/345/217/221/346/214/207/344/273/244/347/232/204/345/244/215/345/220/210/346/240/274/345/274/217/346/240/241_20260318.md +652 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
stepsCompleted:
|
|
3
|
+
- step-01-init
|
|
4
|
+
- step-02-vision
|
|
5
|
+
- step-03-users
|
|
6
|
+
- step-04-metrics
|
|
7
|
+
- step-05-scope
|
|
8
|
+
- step-06-complete
|
|
9
|
+
inputDocuments: []
|
|
10
|
+
date: '2026-04-22'
|
|
11
|
+
author: 张明远
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Product Brief: 灵协 Linkly
|
|
15
|
+
|
|
16
|
+
## Vision
|
|
17
|
+
|
|
18
|
+
**愿景:** 让中型企业的客户成功(CS)团队在统一画布上看见、解读并干预客户旅程,把流失预警的"发现到触达"从平均 7 天压到 24 小时内。
|
|
19
|
+
|
|
20
|
+
**核心问题:** 中型企业 CS 团队同时使用 4-6 个系统(CRM、客服、数据看板、IM、工单、合同),客户信号分散,CSM 平均每天花 90 分钟手动汇集信息,流失预警延迟 5-7 天,单人服务客户数受限。
|
|
21
|
+
|
|
22
|
+
**价值主张:**
|
|
23
|
+
|
|
24
|
+
- 跨系统聚合的客户旅程视图,单页可视化 ≥ 12 个月历史
|
|
25
|
+
- LLM 自动摘要近 30 天高风险对话,CSM 平均处理时间从 18 分钟降至 6 分钟
|
|
26
|
+
- 风险评分与触达建议同源,CSM 单人服务客户数从 30 提升至 40
|
|
27
|
+
|
|
28
|
+
**差异化:**
|
|
29
|
+
|
|
30
|
+
- 唯一同时整合"旅程画布 + LLM 摘要 + 风险评分"三能力的国内 SaaS
|
|
31
|
+
- 国内同类产品(聚客云、客成 Pro)只覆盖其中 1-2 项
|
|
32
|
+
|
|
33
|
+
## Target Users
|
|
34
|
+
|
|
35
|
+
主要用户(primary):
|
|
36
|
+
|
|
37
|
+
- **客户成功经理(CSM)** — 直接对客户健康度负责,每日检视高风险客户并介入
|
|
38
|
+
- **客服主管** — 负责团队 KPI、SLA、人力调度
|
|
39
|
+
- **数据分析师** — 季度健康度报告、流失预测模型迭代
|
|
40
|
+
|
|
41
|
+
次要用户(secondary):
|
|
42
|
+
|
|
43
|
+
- **租户管理员(Admin)** — 配置权限、订阅、集成
|
|
44
|
+
- **产品经理(PM)** — 月度功能反馈分析
|
|
45
|
+
|
|
46
|
+
不在目标用户中:
|
|
47
|
+
|
|
48
|
+
- 一线客服坐席(已有 Salesforce Service Cloud / 钉钉客服覆盖)
|
|
49
|
+
- 销售团队(CRM 主战场,本产品仅消费 CRM 数据)
|
|
50
|
+
|
|
51
|
+
## Success Metrics
|
|
52
|
+
|
|
53
|
+
候选指标(PM 在 PRD §2 中需补全 baseline / target / measurement / window):
|
|
54
|
+
|
|
55
|
+
- 流失预警触达率:从 30% 提升至 ≥ 95%
|
|
56
|
+
- CSM 单人服务客户数:从 30 提升至 40
|
|
57
|
+
- LLM 摘要采纳率:人工标注后采纳 ≥ 80%
|
|
58
|
+
- 月度 SLA:99.9%
|
|
59
|
+
- 试点客户 NPS:≥ 45(季度调研)
|
|
60
|
+
- 12 个月内付费客户数:≥ 80
|
|
61
|
+
- 单客户平均合同金额(ACV):≥ 18 万元/年
|
|
62
|
+
|
|
63
|
+
## Scope
|
|
64
|
+
|
|
65
|
+
**In-Scope(MVP,2026 H2 上线):**
|
|
66
|
+
|
|
67
|
+
- 客户档案管理:多源聚合 · 标签 · 检索
|
|
68
|
+
- 旅程画布:单租户视图 · 12 个月历史 · 时间轴
|
|
69
|
+
- 风险预警:3 类规则引擎 · 工单系统单向集成
|
|
70
|
+
- AI 摘要:近 30 天对话摘要 · 触达建议
|
|
71
|
+
- 工单整合:钉钉 / 飞书 / Salesforce 单向同步
|
|
72
|
+
- 租户与权限:4 角色 RBAC · 基础订阅层级(Starter/Team/Business)
|
|
73
|
+
|
|
74
|
+
**Out-of-Scope:**
|
|
75
|
+
|
|
76
|
+
- 海外多语:首期客户均为国内中型企业,海外需求量 < 5%
|
|
77
|
+
- 自营客服坐席系统:与现有合作伙伴 Salesforce/钉钉客服重叠
|
|
78
|
+
- 自营 CRM:仅消费现有 CRM 数据,不替代
|
|
79
|
+
- 移动原生 App:MVP 仅 Web;移动需求由 PWA 满足
|
|
80
|
+
|
|
81
|
+
**Future Phases:**
|
|
82
|
+
|
|
83
|
+
- Growth(2027 Q1):客户健康度模型可调校 · 移动 PWA · 多 LLM 厂商抽象层
|
|
84
|
+
- Vision(2027 H2+):自动触达执行(IM 推送 / 邮件)· 跨租户行业基准对比 · 海外多语
|
|
85
|
+
|
|
86
|
+
**Constraints:**
|
|
87
|
+
|
|
88
|
+
- 团队规模:2026 H2 前 8 人(含 PM、设计、前端 2、后端 3、数据 1)
|
|
89
|
+
- 预算:年化研发投入 ¥6M
|
|
90
|
+
- 时间:2026 H2 上线,节点:2026/06 内测、2026/09 公测、2026/12 GA
|
|
91
|
+
- 数据本地化:所有客户数据仅存储于中国大陆 IDC
|
|
92
|
+
|
|
93
|
+
## Differentiation
|
|
94
|
+
|
|
95
|
+
- 国内同类产品对比:见 market-research-2026-q1.md §3 竞争分析
|
|
96
|
+
- 技术新颖度:LLM 摘要 + 风险评分 + 旅程画布的三位一体集成在国内为首
|
|
97
|
+
- 核心壁垒:旅程画布的多源聚合管线(≥ 12 个月历史)+ 可解释风险评分模型
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
---
|
|
2
|
+
workflowType: 'prd-validation'
|
|
3
|
+
prdFile: ./prd.md
|
|
4
|
+
prdVersion: '1.0.0'
|
|
5
|
+
rubricFile: '../../src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/data/prd-quality-rubric.csv'
|
|
6
|
+
validationIteration: 1
|
|
7
|
+
date: '2026-05-08'
|
|
8
|
+
verdict: 'pass'
|
|
9
|
+
totalScore: 97.5
|
|
10
|
+
gatePassed: true
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PRD Validation Report — 灵协 Linkly v1.0.0
|
|
14
|
+
|
|
15
|
+
> 本报告是 [prd.md](./prd.md) 跑完 `xiaoma-validate-prd` 13 步校验后的得分卡,演示 `prd-quality-rubric.csv` 的 13 维量化打分逻辑。
|
|
16
|
+
|
|
17
|
+
## Verdict
|
|
18
|
+
|
|
19
|
+
| 项 | 值 | 备注 |
|
|
20
|
+
| ----------------- | ----------- | --------------------------------------------------- |
|
|
21
|
+
| **Total Score** | 97.5 / 100 | 加权总分(partial 按 50% 权重计入) |
|
|
22
|
+
| **Blockers Failed** | 0 | D05 / D06 / D08 / D10 全 pass |
|
|
23
|
+
| **Verdict** | **pass** ✅ | 无 blocker 且总分 ≥ 80 |
|
|
24
|
+
| Validation Iteration | 1 / 3 | 首轮即 pass,无需重试 |
|
|
25
|
+
| Gate Threshold | 80 | 已通过 |
|
|
26
|
+
|
|
27
|
+
可进入下游 `xiaoma-create-epics-and-stories` 工作流。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 13 维得分卡
|
|
32
|
+
|
|
33
|
+
| ID | 维度 | step_ref | 权重 | 状态 | 得分 | 严重度 |
|
|
34
|
+
| --- | ------------------------- | ------------------------------------------------ | ---- | -------- | ------- | ------- |
|
|
35
|
+
| D01 | Discovery Completeness | step-v-01-discovery | 5 | pass | 5.0 | minor |
|
|
36
|
+
| D02 | Format & Parity | step-v-02-format-detection + step-v-02b | 6 | pass | 6.0 | major |
|
|
37
|
+
| D03 | Information Density | step-v-03-density-validation | 10 | pass | 10.0 | major |
|
|
38
|
+
| D04 | Brief Coverage | step-v-04-brief-coverage-validation | 8 | pass | 8.0 | major |
|
|
39
|
+
| D05 | **Measurability** | step-v-05-measurability-validation | 12 | pass | 12.0 | blocker |
|
|
40
|
+
| D06 | **Traceability** | step-v-06-traceability-validation | 12 | pass | 12.0 | blocker |
|
|
41
|
+
| D07 | Implementation Leakage | step-v-07-implementation-leakage-validation | 8 | pass | 8.0 | major |
|
|
42
|
+
| D08 | **Domain Compliance** | step-v-08-domain-compliance-validation | 10 | pass | 10.0 | blocker |
|
|
43
|
+
| D09 | Project-Type Fit | step-v-09-project-type-validation | 7 | pass | 7.0 | major |
|
|
44
|
+
| D10 | **SMART (FR/NFR)** | step-v-10-smart-validation | 12 | pass | 12.0 | blocker |
|
|
45
|
+
| D11 | Holistic Quality | step-v-11-holistic-quality-validation | 5 | partial | 2.5 | minor |
|
|
46
|
+
| D12 | Completeness | step-v-12-completeness-validation | 5 | pass | 5.0 | major |
|
|
47
|
+
| D13 | Dual-Audience Readiness | step-v-13-report-complete (fused) | 0 | pass | (info) | minor |
|
|
48
|
+
| | | **TOTAL** | 100 | | **97.5**| |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 维度详情
|
|
53
|
+
|
|
54
|
+
### D01 Discovery Completeness — pass
|
|
55
|
+
|
|
56
|
+
- inputDocuments:3 个文件全部加载成功(product-brief.md / market-research-2026-q1.md / domain-research.md)
|
|
57
|
+
- frontmatter `workflowType: 'prd'`:✅
|
|
58
|
+
- frontmatter `templateVersion: '2.0-m1'`:✅
|
|
59
|
+
|
|
60
|
+
### D02 Format & Parity — pass
|
|
61
|
+
|
|
62
|
+
9 个必需章节全部以 `## N. <Name>` 形式存在:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
## 1. Executive Summary
|
|
66
|
+
## 2. Success Criteria
|
|
67
|
+
## 3. Product Scope
|
|
68
|
+
## 4. User Journeys
|
|
69
|
+
## 5. Domain Requirements
|
|
70
|
+
## 6. Innovation Analysis
|
|
71
|
+
## 7. Project-Type Requirements
|
|
72
|
+
## 8. Functional Requirements
|
|
73
|
+
## 9. Non-Functional Requirements
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
格式:XiaoMa 2.0-m1(无需 parity check)。
|
|
77
|
+
|
|
78
|
+
### D03 Information Density — pass
|
|
79
|
+
|
|
80
|
+
| 信号关键词 | 命中数 | 阈值 |
|
|
81
|
+
| ----------------- | ------ | ---- |
|
|
82
|
+
| 打造 | 0 | < 3 |
|
|
83
|
+
| 业界领先 | 0 | < 3 |
|
|
84
|
+
| 一站式 | 0 | < 3 |
|
|
85
|
+
| 赋能 | 0 | < 3 |
|
|
86
|
+
| 数字化转型 | 0 | < 3 |
|
|
87
|
+
| 智能化 | 0 | < 3 |
|
|
88
|
+
| 全方位 | 0 | < 3 |
|
|
89
|
+
| the system will | 0 | < 3 |
|
|
90
|
+
| in order to | 0 | < 3 |
|
|
91
|
+
| **Total fluff/100 lines** | **0** | **< 3** |
|
|
92
|
+
|
|
93
|
+
§1 Executive Summary 直接量化("7 天压到 24 小时"),无口号化。
|
|
94
|
+
|
|
95
|
+
### D04 Brief Coverage — pass
|
|
96
|
+
|
|
97
|
+
`contract-check.json` 验证通过:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"passed": true,
|
|
102
|
+
"missing_required": [],
|
|
103
|
+
"missing_conditional": [],
|
|
104
|
+
"applied_policies": {},
|
|
105
|
+
"tbds": []
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
product-brief.md 中所有 `required: yes` 字段均映射到 PRD 对应章节:
|
|
110
|
+
|
|
111
|
+
| Brief 字段 | PRD 章节 |
|
|
112
|
+
| ----------------------- | --------------------------------------------------------------- |
|
|
113
|
+
| vision_statement | §1 Executive Summary(行 24) |
|
|
114
|
+
| core_problem | §1 Executive Summary(行 26) |
|
|
115
|
+
| target_personas | §1 + §4 全部 4 个 journey(CSM/Manager/分析师/Admin) |
|
|
116
|
+
| value_propositions | §1 价值主张三条 |
|
|
117
|
+
| success_metrics_draft | §2(SC-01..08 全覆盖 brief 中候选指标 + 添加 baseline/target) |
|
|
118
|
+
| mvp_scope | §3 MVP 列表 |
|
|
119
|
+
| out_of_scope | §3 Out-of-Scope(6 条) |
|
|
120
|
+
| differentiation | §1 What Makes Special + §6 Innovation Analysis |
|
|
121
|
+
|
|
122
|
+
### D05 Measurability — pass(blocker)
|
|
123
|
+
|
|
124
|
+
**FR 分析(24 条):**
|
|
125
|
+
|
|
126
|
+
| 检查项 | 违规数 |
|
|
127
|
+
| -------------------- | ------ |
|
|
128
|
+
| 格式 `[Actor] can` | 0 |
|
|
129
|
+
| 主观形容词 | 0 |
|
|
130
|
+
| 模糊量词 | 0 |
|
|
131
|
+
| 实现泄漏 | 0 |
|
|
132
|
+
| **FR violations** | **0** |
|
|
133
|
+
|
|
134
|
+
**NFR 分析(10 条):**
|
|
135
|
+
|
|
136
|
+
| 检查项 | 违规数 |
|
|
137
|
+
| ------------------------ | ------ |
|
|
138
|
+
| 缺测量方法 | 0 |
|
|
139
|
+
| 缺数值阈值 | 0 |
|
|
140
|
+
| 缺前置条件 | 0 |
|
|
141
|
+
| **NFR violations** | **0** |
|
|
142
|
+
|
|
143
|
+
总违规数 = 0(< 5 阈值),状态 pass。
|
|
144
|
+
|
|
145
|
+
### D06 Traceability — pass(blocker)
|
|
146
|
+
|
|
147
|
+
§Traceability Matrix([prd.md 行 314-339](./prd.md))含 24 行:
|
|
148
|
+
|
|
149
|
+
- 24/24 FR 含 `Maps to Vision`
|
|
150
|
+
- 22/24 FR 含 `Maps to Success Criteria`(FR-PROFILE-04 / FR-JOURNEY-04 / FR-RISK-04 / FR-SUMMARY-04 / FR-TENANT-01 / FR-TENANT-03 标注 "-" — Admin/Manager 配置类 FR 无直接 SC 映射,已合理化)
|
|
151
|
+
- 24/24 FR 含 `Maps to Journey Step`
|
|
152
|
+
|
|
153
|
+
无空 mapping 比例:0% < 20% 阈值,pass。
|
|
154
|
+
|
|
155
|
+
### D07 Implementation Leakage — pass
|
|
156
|
+
|
|
157
|
+
跨 §1, §2, §4, §8 扫描技术栈关键词:
|
|
158
|
+
|
|
159
|
+
| 关键词 | §1 | §2 | §4 | §8 |
|
|
160
|
+
| ------------------ | -- | -- | -- | -- |
|
|
161
|
+
| Redis/Postgres/... | 0 | 0 | 0 | 0 |
|
|
162
|
+
| React/Vue/... | 0 | 0 | 0 | 0 |
|
|
163
|
+
| Docker/K8s/... | 0 | 0 | 0 | 0 |
|
|
164
|
+
| AWS/GCP/Azure | 0 | 0 | 0 | 0 |
|
|
165
|
+
|
|
166
|
+
§7 Project-Type Requirements 出现 "K8s HPA"(NFR-SCALE-02)属于可接受位置(基础设施约束)。
|
|
167
|
+
|
|
168
|
+
### D08 Domain Compliance — pass(blocker)
|
|
169
|
+
|
|
170
|
+
domain 检测:`general` + medium complexity(来自 frontmatter `domainTier: 'medium'` + project_type saas_b2b)。
|
|
171
|
+
|
|
172
|
+
`domain-complexity.csv` 对 `general` 域要求 `special_sections: standard_requirements`。
|
|
173
|
+
PRD §5 含 6 条具体可验证条款(5.1.1-5.1.6),且 §5.2 行业术语表 + §5.3 外部依赖均完整。
|
|
174
|
+
|
|
175
|
+
虽然 domain=general 不是 high-complexity,但 PRD 主动覆盖了等保二级 + 个保法 + 数据本地化 + 审计日志 + 数据备份 + 数据导出 + 数据删除 7 个合规维度,超出 general 域要求。
|
|
176
|
+
|
|
177
|
+
### D09 Project-Type Fit — pass
|
|
178
|
+
|
|
179
|
+
`project-types.csv` 中 `saas_b2b` 行的 `required_sections`:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
tenant_model;rbac_matrix;subscription_tiers;integration_list;compliance_reqs
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
PRD §7 覆盖:
|
|
186
|
+
|
|
187
|
+
| required_section | §7 子节 | 状态 |
|
|
188
|
+
| ------------------- | ------------------------ | ---- |
|
|
189
|
+
| tenant_model | §7.1 多租户模型 | ✅ |
|
|
190
|
+
| rbac_matrix | §7.2 RBAC 角色矩阵 | ✅ |
|
|
191
|
+
| subscription_tiers | §7.3 订阅层级 | ✅ |
|
|
192
|
+
| integration_list | §7.4 集成清单(MVP) | ✅ |
|
|
193
|
+
| compliance_reqs | §7.6 合规需求摘要 | ✅ |
|
|
194
|
+
|
|
195
|
+
`skip_sections: cli_interface;mobile_first` — PRD 在 §3 Out-of-Scope 明确"MVP 仅 Web,移动需求由 PWA 满足",已显式处理。
|
|
196
|
+
|
|
197
|
+
### D10 SMART (FR/NFR) — pass(blocker)
|
|
198
|
+
|
|
199
|
+
| FR/NFR 总数 | Specific | Measurable | Attainable | Relevant | Traceable | 复合需求 |
|
|
200
|
+
| ----------- | -------- | ---------- | ---------- | -------- | --------- | -------- |
|
|
201
|
+
| FR (24) | 24/24 | 24/24 | 24/24 | 24/24 | 24/24 | 0 |
|
|
202
|
+
| NFR (10) | 10/10 | 10/10 | 10/10 | 10/10 | 10/10 | 0 |
|
|
203
|
+
|
|
204
|
+
无单条 FR 含 `且|并|同时|以及`。所有 NFR 含 baseline + threshold + measurement method。
|
|
205
|
+
|
|
206
|
+
### D11 Holistic Quality — partial ⚠️
|
|
207
|
+
|
|
208
|
+
发现 1 处轻度跨节不一致:
|
|
209
|
+
|
|
210
|
+
- §3 Out-of-Scope 列出 "自动触达执行(自动外呼 / 自动 IM):MVP 仅生成建议,CSM 手动确认后执行"
|
|
211
|
+
- §8.5 工单整合 包含 FR-TICKET-02(系统同步工单到外部)— 同步工单本身可视为"系统侧自动触达"
|
|
212
|
+
- 风险:读者可能将 FR-TICKET-02 误读为"自动触达执行"被偷偷加回 MVP
|
|
213
|
+
|
|
214
|
+
建议:在 §3 Out-of-Scope 第一条加注释,明确"自动触达执行"特指对客户的主动外呼/IM 推送,不含工单同步动作。修正后可升级为 pass。
|
|
215
|
+
|
|
216
|
+
权重计算:5 × 50% = 2.5(partial 折半)。
|
|
217
|
+
|
|
218
|
+
### D12 Completeness — pass
|
|
219
|
+
|
|
220
|
+
| 章节 | 字符数 | 阈值 | 状态 |
|
|
221
|
+
| ------------------- | ------ | -------- | ------- |
|
|
222
|
+
| §1 Executive Summary| ~750 | > 200 | ✅ |
|
|
223
|
+
| §2 Success Criteria | ~620 | > 200 | ✅ |
|
|
224
|
+
| §3 Product Scope | ~960 | > 200 | ✅ |
|
|
225
|
+
| §4 User Journeys | ~1850 | > 200 | ✅ |
|
|
226
|
+
| §5 Domain Reqs | ~1100 | > 200 | ✅ |
|
|
227
|
+
| §6 Innovation | ~580 | > 200 | ✅ |
|
|
228
|
+
| §7 Project-Type | ~880 | > 200 | ✅ |
|
|
229
|
+
| §8 FR (24 items) | ~1500 | > 200 | ✅ |
|
|
230
|
+
| §9 NFR (10 items) | ~720 | > 200 | ✅ |
|
|
231
|
+
|
|
232
|
+
frontmatter 完整性:所有 M1 新增字段 (`templateVersion`, `densityLevel`, `domainTier`, `projectType`, `version`) 均填写。
|
|
233
|
+
|
|
234
|
+
无残留 `{{...}}` 占位。
|
|
235
|
+
|
|
236
|
+
### D13 Dual-Audience Readiness — pass(informational)
|
|
237
|
+
|
|
238
|
+
| 检查项 | 状态 |
|
|
239
|
+
| ---------------------------------------- | ---- |
|
|
240
|
+
| Skim — 仅看 ## 头能理解结构 | ✅ |
|
|
241
|
+
| Skip — 每节有 1-2 句开场总结 | ✅ |
|
|
242
|
+
| Scan — 表格/列表/加粗承载密度数据 | ✅ |
|
|
243
|
+
| Chunk — 一段一概念 | ✅ |
|
|
244
|
+
| Anchor — 所有 §N / FR-AREA-NN 引用一致 | ✅ |
|
|
245
|
+
| Cite — 跨引使用全 ID | ✅ |
|
|
246
|
+
| Forward-reference free | ✅ |
|
|
247
|
+
| Section-local terminology | ✅ |
|
|
248
|
+
|
|
249
|
+
8/8 通过。informational 维度,不计入加权得分。
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 修复建议(按优先级)
|
|
254
|
+
|
|
255
|
+
| # | 维度 | 问题 | 建议 | 工作量 |
|
|
256
|
+
| - | ----- | ------------------------------------------ | ------------------------------------------------------------------------------------- | ------ |
|
|
257
|
+
| 1 | D11 | §3 自动触达描述与 §8.5 工单同步可能混淆 | §3 第一条 Out-of-Scope 加注释,明确"自动触达"特指对客户主动外呼/IM 推送,不含工单同步 | XS |
|
|
258
|
+
|
|
259
|
+
修复后预期总分:100 / 100。
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 与 prd-bad-examples.md 的对比
|
|
264
|
+
|
|
265
|
+
将 [prd-bad-examples.md](./prd-bad-examples.md) 中 8 个反模式片段拼成的"坏 PRD"喂给同一份 rubric,预期得分卡完全不同:
|
|
266
|
+
|
|
267
|
+
| 维度 | good 版本(本报告) | bad 版本(预期) |
|
|
268
|
+
| ---- | ------------------- | ---------------------- |
|
|
269
|
+
| D03 | pass (10) | partial (5) — AP-01 命中 |
|
|
270
|
+
| D05 | pass (12) | **fail (0)** — blocker |
|
|
271
|
+
| D06 | pass (12) | **fail (0)** — blocker |
|
|
272
|
+
| D07 | pass (8) | major (4) — Redis/React |
|
|
273
|
+
| D08 | pass (10) | **fail (0)** — blocker |
|
|
274
|
+
| D10 | pass (12) | **fail (0)** — blocker |
|
|
275
|
+
| ... | ... | ... |
|
|
276
|
+
| 总分 | 97.5 | < 50 |
|
|
277
|
+
| Verdict | **pass** | **reject**(≥ 4 blockers) |
|
|
278
|
+
|
|
279
|
+
这一对比是 rubric 设计的核心校准目标。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -248,30 +248,148 @@ compatibility: "Requires docx skill for Word document generation. Requires bash
|
|
|
248
248
|
|
|
249
249
|
交底书输出为 .docx 格式。**必须先阅读 docx skill 获取 docx-js 最新的使用指南和注意事项**(路径通常在同级 skills 目录下的 `docx/SKILL.md`)。docx skill 中包含了完整的文档创建、验证流程和关键规则,务必遵循。
|
|
250
250
|
|
|
251
|
-
|
|
251
|
+
> **格式权威参考**:本节给出的字体、字号、行距、颜色、首行缩进、对齐方式全部来自客户提供的《技术交底书模板.doc》。若客户另外给出模板文件,应以客户模板为准,并按相同方法(unpack → 读 styles.xml + document.xml)提取规范后覆盖此处默认值。
|
|
252
|
+
>
|
|
253
|
+
> 详细格式速查表见 `references/docx-format-spec.md`。
|
|
254
|
+
> 已封装的转换实现见 `scripts/md2docx.js`(推荐直接调用,无需重复编写)。
|
|
255
|
+
|
|
256
|
+
### 5.1 页面与基本参数
|
|
257
|
+
|
|
258
|
+
| 项目 | 取值 | 备注 |
|
|
259
|
+
| --- | --- | --- |
|
|
260
|
+
| 纸张 | A4 | 宽 11906 × 高 16838 DXA |
|
|
261
|
+
| 上下页边距 | 2.54cm(1440 DXA) | |
|
|
262
|
+
| 左右页边距 | 3.17cm(1800 DXA) | 即模板默认值 |
|
|
263
|
+
| 页码 | 底部居中,9pt | 用 `PageNumber.CURRENT` |
|
|
264
|
+
| 默认颜色 | 黑色 `#000000` | 蓝色 `#0000FF` 仅用于占位提示语,正式内容一律用黑色 |
|
|
265
|
+
|
|
266
|
+
### 5.2 四类段落样式(**严格执行**)
|
|
267
|
+
|
|
268
|
+
字号单位说明:docx-js 的 `size` 字段使用半磅,10.5pt = 21,18pt = 36,9pt = 18。
|
|
269
|
+
|
|
270
|
+
| 段落类型 | 触发条件 | 东亚字体 | 西文字体 | 字号 | 字形 | 对齐 | 行距 | 首行缩进 |
|
|
271
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
272
|
+
| 大标题 | 仅文档首行的「技术交底书」 | 楷体_GB2312 | Times New Roman | 18pt(sz=36) | 加粗 | 居中 | 固定 21pt(line=420 exact) | 无 |
|
|
273
|
+
| 头部字段 | `**交底书名称:**…` `**本专利发明人:**…` `**技术问题联系人:**…` `**联系人电话:**…` `**E-MAIL:**…` 五行 | 仿宋_GB2312 | Times New Roman | 10.5pt(sz=21) | 加粗 | 左对齐 | 1.5x(line=360 auto) | 无 |
|
|
274
|
+
| 章节标题 | Markdown `#` / `##` / `###` / `####` | 楷体_GB2312 | Times New Roman | 10.5pt(sz=21) | 加粗 | 左对齐 | 固定 21pt(line=420 exact) | 无 |
|
|
275
|
+
| 正文 | 其余段落、列表、表格内文字 | 宋体 | Times New Roman | 10.5pt(sz=21) | 常规 | 两端对齐(both) | 1.5x(line=360 auto) | 2 个汉字(firstLine=420 twips) |
|
|
276
|
+
| 行内代码 / 代码块 | `` `code` `` / ``` ``` ``` | 宋体(兜底) | Consolas | 10pt(sz=20) | 常规 | 左对齐 | 1.25x(line=300 auto) | 无;底色 `#F5F5F5` |
|
|
277
|
+
| 表格表头 | 表格首行 | 宋体 | Times New Roman | 10.5pt | 加粗 | 居中 | 1.25x | — |
|
|
278
|
+
| 表格单元格 | 表格其它行 | 宋体 | Times New Roman | 10.5pt | 常规 | 左对齐 | 1.25x | — |
|
|
279
|
+
| 附图 | 独立成行的 `` | — | — | 等比缩放至内容宽度 540px / 高度上限 720px | — | 居中 | 1.5x | — |
|
|
280
|
+
| 图注 | 紧跟附图,沿用 alt 文字 | 宋体 | Times New Roman | 10pt(sz=20) | 斜体 | 居中 | 1.25x | — |
|
|
281
|
+
|
|
282
|
+
### 5.3 docx-js API 关键写法
|
|
283
|
+
|
|
284
|
+
docx-js 中 `font` 字段必须显式区分四个槽位,否则东亚字体会被覆写:
|
|
285
|
+
|
|
286
|
+
```js
|
|
287
|
+
// ❌ 错误:name 会被同时填到 eastAsia,把中文字体清掉
|
|
288
|
+
new TextRun({ text: "中文 English", font: { name: "Times New Roman", eastAsia: "宋体" } });
|
|
289
|
+
|
|
290
|
+
// ✅ 正确:分别声明 ascii / hAnsi / cs / eastAsia
|
|
291
|
+
new TextRun({
|
|
292
|
+
text: "中文 English",
|
|
293
|
+
font: { ascii: "Times New Roman", hAnsi: "Times New Roman", cs: "Times New Roman", eastAsia: "宋体" },
|
|
294
|
+
size: 21,
|
|
295
|
+
color: "000000",
|
|
296
|
+
});
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
颜色字段必须传 6 位十六进制不带 `#`:
|
|
300
|
+
|
|
301
|
+
```js
|
|
302
|
+
new TextRun({ ..., color: "000000" }); // 全文统一黑色;蓝色 "0000FF" 仅用于占位提示
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### 5.4 附图嵌入(**强制:必须真正嵌入图片,不可用文本描述代替**)
|
|
306
|
+
|
|
307
|
+
代理人审阅交底书时需要直接看到附图。生成 docx 时,md 中的 `` 必须被解析为真实图片嵌入到对应位置,**严禁**保留 `[附图1 - 四遍扫描整体流程](media/doc1_fig1.png)` 这类纯文本形式。
|
|
308
|
+
|
|
309
|
+
#### 5.4.1 Markdown 写法
|
|
310
|
+
|
|
311
|
+
附图必须 **独立成行**:
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+

|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
不要把附图与正文混排在同一段;非独立行的 `![]()` 不会触发图片嵌入。
|
|
318
|
+
|
|
319
|
+
#### 5.4.2 文件组织
|
|
252
320
|
|
|
253
|
-
-
|
|
254
|
-
-
|
|
255
|
-
-
|
|
256
|
-
- 一级标题:黑体/SimHei 三号(16pt)加粗
|
|
257
|
-
- 二级标题:黑体 四号(14pt)加粗
|
|
258
|
-
- 三级标题:宋体 小四(12pt)加粗
|
|
259
|
-
- 行距:1.5 倍行距(line spacing: 360 = 1.5x of 240 twips for 12pt)
|
|
260
|
-
- 页边距:上下 2.54cm(约1440 DXA),左右 3.17cm(约1800 DXA)
|
|
261
|
-
- 页码:底部居中
|
|
321
|
+
- 每篇交底书 md 的同目录下建立 `media/` 子目录,把附图统一放在里面
|
|
322
|
+
- 命名建议:`doc{交底书序号}_fig{图序}.png`,如 `media/doc1_fig1.png`、`media/doc2_fig3.png`
|
|
323
|
+
- 路径解析以 md 文件所在目录为基准,支持相对路径或绝对路径
|
|
262
324
|
|
|
263
|
-
|
|
325
|
+
#### 5.4.3 嵌入规则(已在 `scripts/md2docx.js` 中实现)
|
|
264
326
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
327
|
+
| 项 | 取值 |
|
|
328
|
+
| --- | --- |
|
|
329
|
+
| 支持格式 | png / jpg / jpeg / gif / bmp / svg |
|
|
330
|
+
| 真实像素读取 | png:解析 IHDR 块;其它:按 4:3 兜底 |
|
|
331
|
+
| 目标宽度 | 540 px(≈A4 内容区宽 8306 DXA 留少量边距) |
|
|
332
|
+
| 高度上限 | 720 px;超限时按高度反算宽度 |
|
|
333
|
+
| 缩放方式 | 等比,绝不拉伸 / 绝不裁剪 |
|
|
334
|
+
| 图片段落 | 居中,1.5x 行距,段前 120 / 段后 40 twips |
|
|
335
|
+
| 图注 | 自动用 `alt` 文本生成;居中宋体 10pt 斜体;alt 为空时不输出 |
|
|
336
|
+
| 容错 | 图片不存在时插入红色 `[图片缺失] alt (src)`,不中断转换 |
|
|
270
337
|
|
|
271
|
-
|
|
338
|
+
#### 5.4.4 docx-js 关键写法
|
|
339
|
+
|
|
340
|
+
```js
|
|
341
|
+
new ImageRun({
|
|
342
|
+
type: "png", // 必填
|
|
343
|
+
data: fs.readFileSync(absPath),
|
|
344
|
+
transformation: { width: 540, height: 360 },
|
|
345
|
+
altText: { title: alt, description: alt, name: path.basename(absPath) }, // 三字段全填
|
|
346
|
+
});
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
`scripts/md2docx.js` 已封装路径解析、IHDR 读取、等比缩放、图注、容错;直接调用脚本即可,无需手写 ImageRun。
|
|
350
|
+
|
|
351
|
+
### 5.5 生成流程
|
|
352
|
+
|
|
353
|
+
推荐路径(无需重复造轮子):
|
|
354
|
+
|
|
355
|
+
1. 阅读 docx skill(`docx/SKILL.md`),掌握 docx-js 基本规则与 `scripts/office/validate.py` 的调用方式
|
|
356
|
+
2. `npm install docx`(项目级或工作区)
|
|
357
|
+
3. 把 md 与 `media/` 子目录放好;md 中通过 `` 引用附图
|
|
358
|
+
4. 直接调用本技能自带的 `scripts/md2docx.js`:
|
|
359
|
+
```bash
|
|
360
|
+
node patent-disclosure-optimized/scripts/md2docx.js \
|
|
361
|
+
专利交底书_<发明名称简写>_<YYYYMMDD>.md \
|
|
362
|
+
专利交底书_<发明名称简写>_<YYYYMMDD>.docx
|
|
363
|
+
```
|
|
364
|
+
脚本会按 5.2 / 5.4 节规范自动处理:大标题、五个头部字段、章节标题、正文、表格、列表、代码块、**附图嵌入与图注**。
|
|
365
|
+
5. 用 `docx/scripts/office/validate.py` 校验生成文件
|
|
366
|
+
6. 解包抽样核对(**附图与字体颜色都要查**):
|
|
367
|
+
```bash
|
|
368
|
+
python scripts/office/unpack.py 输出.docx tmp/
|
|
369
|
+
grep -oE 'w:eastAsia="[^"]+"' tmp/word/document.xml | sort | uniq -c
|
|
370
|
+
grep -oE 'w:color w:val="[A-F0-9]+"' tmp/word/document.xml | sort | uniq -c
|
|
371
|
+
ls tmp/word/media/ | wc -l # 内嵌图片数应等于 md 中独立 ![]() 行数
|
|
372
|
+
```
|
|
373
|
+
期望:
|
|
374
|
+
- 楷体_GB2312(标题)≥ 章节数;仿宋_GB2312 = 5(五个头部字段);其余 = 宋体
|
|
375
|
+
- 颜色仅 `000000`(除非保留蓝色占位语)
|
|
376
|
+
- **`tmp/word/media/` 下图片数 = md 中独立 `` 行数**
|
|
377
|
+
7. 将最终文件保存到用户的工作目录
|
|
378
|
+
|
|
379
|
+
### 5.6 文档命名
|
|
272
380
|
|
|
273
381
|
`专利交底书_<发明名称简写>_<日期YYYYMMDD>.docx`
|
|
274
382
|
|
|
383
|
+
### 5.7 客户给了不同模板的情况
|
|
384
|
+
|
|
385
|
+
若客户提供新模板(如《技术交底书模板.doc》),按以下流程更新格式:
|
|
386
|
+
|
|
387
|
+
1. 用 `soffice.py --convert-to docx` 把 .doc 转为 .docx
|
|
388
|
+
2. `python scripts/office/unpack.py 模板.docx tmpl/` 解包
|
|
389
|
+
3. 读 `tmpl/word/styles.xml`(默认 rFonts、字号、行距)与 `tmpl/word/document.xml`(实际样例段落的 rPr)
|
|
390
|
+
4. 重点提取:默认字体(rFontsDefault)、行距(spacing.line + lineRule)、首行缩进(ind.firstLineChars / firstLine)、各类标题字体与颜色、占位提示语颜色(如 `0000FF`)
|
|
391
|
+
5. 把新参数覆盖到 `scripts/md2docx.js` 顶部的常量(FONT_BODY_EAST / FONT_HEADING_EAST / FONT_TITLE_EAST / FONT_HEADER_FIELD_EAST / SIZE_BODY / SIZE_TITLE / BODY_LINE_SPACING / HEADING_LINE_SPACING / BODY_FIRST_LINE_INDENT),同时在本节表格里记录变更
|
|
392
|
+
|
|
275
393
|
---
|
|
276
394
|
|
|
277
395
|
## 工作流程总结
|