@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,183 @@
|
|
|
1
|
+
# 专利交底书 .docx 输出格式规范
|
|
2
|
+
|
|
3
|
+
本文档是 `SKILL.md` 第五阶段格式规范的详细附录,来源于客户提供的《技术交底书模板.doc》。规范用于驱动 `scripts/md2docx.js` 生成符合代理人审阅习惯的 .docx 文档。
|
|
4
|
+
|
|
5
|
+
## 1. 页面参数
|
|
6
|
+
|
|
7
|
+
| 项 | 取值 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| 纸张 | A4(宽 11906 DXA × 高 16838 DXA) |
|
|
10
|
+
| 上下页边距 | 1440 DXA(≈2.54 cm) |
|
|
11
|
+
| 左右页边距 | 1800 DXA(≈3.17 cm) |
|
|
12
|
+
| 页码 | 底部居中,9pt(sz=18),字体随正文 |
|
|
13
|
+
| 行号、装订线 | 不启用 |
|
|
14
|
+
|
|
15
|
+
## 2. 字体清单
|
|
16
|
+
|
|
17
|
+
| 角色 | 东亚字体(eastAsia) | 西文字体(ascii / hAnsi / cs) | 用途 |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| 正文 | 宋体 | Times New Roman | 段落、表格单元格、列表项 |
|
|
20
|
+
| 章节标题 | 楷体_GB2312 | Times New Roman | `#` / `##` / `###` / `####` |
|
|
21
|
+
| 大标题 | 楷体_GB2312 | Times New Roman | 文档首行「技术交底书」 |
|
|
22
|
+
| 头部字段 | 仿宋_GB2312 | Times New Roman | 交底书名称 / 发明人 / 联系人 / 电话 / E-MAIL |
|
|
23
|
+
| 代码 | 宋体(兜底) | Consolas | 行内 `` ` `` 与 ``` ``` |
|
|
24
|
+
|
|
25
|
+
> 字体名按模板原文写为 `宋体`、`楷体_GB2312`、`仿宋_GB2312`。Mac/Linux 缺字时可在 fontTable.xml 中追加 fallback,本规范不强制。
|
|
26
|
+
|
|
27
|
+
## 3. 字号
|
|
28
|
+
|
|
29
|
+
| 角色 | 字号 | docx-js `size`(半磅) | 行内字符 size |
|
|
30
|
+
| --- | --- | --- | --- |
|
|
31
|
+
| 大标题 | 18pt(二号) | 36 | — |
|
|
32
|
+
| 正文 / 标题 / 头部字段 | 10.5pt(五号) | 21 | — |
|
|
33
|
+
| 代码 | 10pt | 20 | — |
|
|
34
|
+
| 页码 | 9pt | 18 | — |
|
|
35
|
+
|
|
36
|
+
> 章节标题与正文同字号,仅"字体 + 加粗"区分;不要把章节标题做大字号,与模板不符。
|
|
37
|
+
|
|
38
|
+
## 4. 段落参数
|
|
39
|
+
|
|
40
|
+
| 段落 | 行距 | 对齐 | 首行缩进 | 段前 / 段后 |
|
|
41
|
+
| --- | --- | --- | --- | --- |
|
|
42
|
+
| 大标题 | line=420 exact | center | 无 | 240 / 240 |
|
|
43
|
+
| 头部字段 | line=360 auto(1.5x) | left | 无 | 0 / 0 |
|
|
44
|
+
| 章节标题 H1 | line=420 exact | left | 无 | 240 / 120 |
|
|
45
|
+
| 章节标题 H2 | line=420 exact | left | 无 | 160 / 80 |
|
|
46
|
+
| 章节标题 H3 | line=420 exact | left | 无 | 140 / 60 |
|
|
47
|
+
| 章节标题 H4 | line=420 exact | left | 无 | 120 / 60 |
|
|
48
|
+
| 正文 | line=360 auto(1.5x) | both(两端对齐) | 420 twips(2 字) | 0 / 0 |
|
|
49
|
+
| 列表项 | line=360 auto | both | 720 hanging 360 | 0 / 0 |
|
|
50
|
+
| 代码块行 | line=300 auto | left | 无 | 0 / 0;底色 `#F5F5F5` |
|
|
51
|
+
|
|
52
|
+
行距单位说明:在 docx-js 里 `spacing.line` 单位为二十分之一磅;`lineRule: "exact"` 表示固定行高,`"auto"` 表示倍数(240 = 1x,360 = 1.5x,420 = 21pt 固定)。
|
|
53
|
+
|
|
54
|
+
## 5. 颜色
|
|
55
|
+
|
|
56
|
+
| 角色 | RGB |
|
|
57
|
+
| --- | --- |
|
|
58
|
+
| 正文 / 标题 / 头部 / 表格 / 列表 / 代码 | `#000000`(黑) |
|
|
59
|
+
| 占位提示语(如「(请客观评价…)」) | `#0000FF`(模板蓝),仅出现在保留模板占位的场合 |
|
|
60
|
+
| 表格表头底色 | `#E7E6E6` |
|
|
61
|
+
| 代码块底色 | `#F5F5F5` |
|
|
62
|
+
|
|
63
|
+
> 正式交付的交底书中不应出现模板蓝;若文档中出现蓝色文字,说明仍残留模板占位语,需替换为真实内容。
|
|
64
|
+
|
|
65
|
+
## 6. 附图嵌入规范
|
|
66
|
+
|
|
67
|
+
代理人审阅交底书时需要直接看到附图,**不能**接受 `[]` 这类文本描述形式。生成 docx 时必须把图片真正嵌入到对应位置。
|
|
68
|
+
|
|
69
|
+
### 6.1 Markdown 写法
|
|
70
|
+
|
|
71
|
+
附图必须 **独立成行**:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+

|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
不要把附图与正文混排在同一段;非独立行的 `![]()` 不会触发图片嵌入,仍按文本处理。
|
|
78
|
+
|
|
79
|
+
### 6.2 文件组织
|
|
80
|
+
|
|
81
|
+
- 推荐每篇交底书 md 的同目录下建立 `media/` 子目录,把附图放在里面
|
|
82
|
+
- 命名建议:`doc{交底书序号}_fig{图序}.png`,例如 `media/doc1_fig1.png`、`media/doc1_fig2.png`
|
|
83
|
+
- 路径解析以 md 文件所在目录为基准;只支持相对路径或绝对路径
|
|
84
|
+
|
|
85
|
+
### 6.3 嵌入与缩放规则
|
|
86
|
+
|
|
87
|
+
| 项 | 取值 |
|
|
88
|
+
| --- | --- |
|
|
89
|
+
| 支持格式 | png / jpg / jpeg / gif / bmp / svg |
|
|
90
|
+
| 真实像素读取 | png:解析 IHDR 块拿真实宽高;其它格式:按 4:3 兜底 |
|
|
91
|
+
| 目标宽度 | 540 px(≈内容区宽度 8306 DXA,留少量边距) |
|
|
92
|
+
| 高度上限 | 720 px |
|
|
93
|
+
| 缩放 | 等比;高度超限时按高度反算宽度,绝不裁剪、绝不拉伸 |
|
|
94
|
+
| 图片段落对齐 | 居中 |
|
|
95
|
+
| 图片段落行距 | 1.5x(line=360 auto);段前 120 / 段后 40 twips |
|
|
96
|
+
|
|
97
|
+
### 6.4 图注
|
|
98
|
+
|
|
99
|
+
`` 中的 `alt` 文字会自动生成图注段落紧跟在图片下方:
|
|
100
|
+
|
|
101
|
+
- 字体:宋体(东亚)+ Times New Roman(西文)
|
|
102
|
+
- 字号:10pt(sz=20)
|
|
103
|
+
- 字形:斜体
|
|
104
|
+
- 对齐:居中
|
|
105
|
+
- 行距:1.25x(line=300 auto),段后 120 twips
|
|
106
|
+
|
|
107
|
+
`alt` 为空时不输出图注段落。
|
|
108
|
+
|
|
109
|
+
### 6.5 容错
|
|
110
|
+
|
|
111
|
+
- 图片路径不存在:在文档中插入红色 `[图片缺失] alt (src)` 文本,**不**抛错中断转换
|
|
112
|
+
- 非 png 图片读取尺寸失败:按 4:3 兜底
|
|
113
|
+
- 跨平台路径分隔符:始终用 `path.resolve` 统一为绝对路径再读
|
|
114
|
+
|
|
115
|
+
### 6.6 docx-js API 关键写法
|
|
116
|
+
|
|
117
|
+
`ImageRun` 必须传 `type` 参数,且 `altText` 三字段全填:
|
|
118
|
+
|
|
119
|
+
```js
|
|
120
|
+
new ImageRun({
|
|
121
|
+
type: "png",
|
|
122
|
+
data: fs.readFileSync(absPath),
|
|
123
|
+
transformation: { width: 540, height: 360 },
|
|
124
|
+
altText: { title: "附图1", description: "附图1", name: "doc1_fig1.png" },
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
`scripts/md2docx.js` 已封装以上全部逻辑,调用脚本即可,无需手写 ImageRun。
|
|
129
|
+
|
|
130
|
+
## 7. 表格规范
|
|
131
|
+
|
|
132
|
+
- 宽度模式:`WidthType.DXA`(不要用百分比)
|
|
133
|
+
- 表格总宽 = 列宽之和 = 内容区宽度(A4 默认 8306 DXA)
|
|
134
|
+
- 单元格四周边框:`BorderStyle.SINGLE`,size=4,color=`808080`
|
|
135
|
+
- 单元格 padding:`{ top: 80, bottom: 80, left: 120, right: 120 }`
|
|
136
|
+
- 表头:底色 `#E7E6E6`,居中加粗
|
|
137
|
+
- 单元格段落行距:1.25x(line=300 auto)
|
|
138
|
+
|
|
139
|
+
## 8. 头部字段识别规则
|
|
140
|
+
|
|
141
|
+
满足以下任一正则的段落会被识别为"头部字段",自动套用仿宋_GB2312 加粗:
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
^\s*\*\*交底书名称[::].*\*\*
|
|
145
|
+
^\s*\*\*本专利发明人[::].*\*\*
|
|
146
|
+
^\s*\*\*技术问题联系人[::].*\*\*
|
|
147
|
+
^\s*\*\*联系人电话[::].*\*\*
|
|
148
|
+
^\s*\*\*E-?MAIL[::].*\*\*
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
为避免相邻头部字段被合并为单段,tokenizer 在遇到 `**xxx:**` 形式的行时不与上下行合并。
|
|
152
|
+
|
|
153
|
+
## 9. 自检(生成后)
|
|
154
|
+
|
|
155
|
+
生成 docx 后,建议执行:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
python scripts/office/unpack.py 专利交底书_X_20260318.docx tmp/
|
|
159
|
+
grep -oE 'w:eastAsia="[^"]+"' tmp/word/document.xml | sort | uniq -c
|
|
160
|
+
grep -oE 'w:color w:val="[A-F0-9]+"' tmp/word/document.xml | sort | uniq -c
|
|
161
|
+
ls tmp/word/media/ 2>/dev/null | wc -l # 内嵌图片数
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
期望输出:
|
|
165
|
+
|
|
166
|
+
- `仿宋_GB2312` 恰好出现 **5** 次(五个头部字段)
|
|
167
|
+
- `楷体_GB2312` 出现次数 ≥ 章节标题数
|
|
168
|
+
- 其余东亚字体均为 `宋体`
|
|
169
|
+
- `w:color` 仅出现 `000000`(除非显式保留蓝色占位语)
|
|
170
|
+
- 内嵌图片数 = md 中独立行 `` 的个数(即 md 中 `grep -cE '^\s*!\[' *.md`)
|
|
171
|
+
|
|
172
|
+
任一项不满足,需检查 md 源文档结构与 `scripts/md2docx.js` 的常量配置。
|
|
173
|
+
|
|
174
|
+
## 10. 客户换模板的更新步骤
|
|
175
|
+
|
|
176
|
+
1. 转换为 .docx:`soffice --headless --convert-to docx 新模板.doc`
|
|
177
|
+
2. 解包:`python scripts/office/unpack.py 新模板.docx tmpl/`
|
|
178
|
+
3. 在 `tmpl/word/styles.xml` 中读取:
|
|
179
|
+
- `<w:docDefaults>` → 默认 rFonts / sz(决定正文默认值)
|
|
180
|
+
- `Heading1` / `Heading2` 等内置标题样式 → 章节标题字体、字号、行距
|
|
181
|
+
4. 在 `tmpl/word/document.xml` 中抽样几段实际文本,确认实际使用的 rPr 是否覆盖了 styles 默认值
|
|
182
|
+
5. 将差异写入本规范 § 2~7 表格,同时同步修改 `scripts/md2docx.js` 顶部常量
|
|
183
|
+
6. 重跑 § 9 自检
|