# HTML 报告构建规则

这个文件只解决一件事：

- 当已经确定要输出 `HTML 报告` 后，怎样稳定地把默认模板落成一份具体案例报告，而不是临时拼一套新页面。

它不是分析规则。  
分析判断仍然来自 `clarification/`、`categories/`、`scenarios/`、`methods/`、`risks/` 和 `routing/`。  
这里处理的是“怎样把已经想清楚的内容灌进模板”。

## 一、默认构建顺序

默认按下面顺序执行：

1. 先读 [visual-report-spec.md](./visual-report-spec.md)，确认固定骨架、按需模块和去重原则。
2. 再读本文件，确认占位怎么填、哪些模块该删、哪些结构默认不要动。
3. 再读 [visual-report-template.html](./visual-report-template.html)。
4. 把模板复制到目标输出文件，例如 `YYYY-MM-DD-topic.html`。
5. 只替换占位内容、删除不需要的按需模块、补齐关系图和表格数据。
6. 交付前做自查，确认没有占位残留、模块没有重复、编号连续、交互没坏。

默认不是从空白文件重新写一份新 HTML。  
默认也不是直接在 skill 自己的模板文件上写最终案例。

## 二、硬性约束

- 默认复用模板的视觉系统和结构骨架，不从零重写页面。
- 非用户明确要求换风格，不重写模板里的 `:root` 变量、主体布局、主要 class 名、响应式 media query、关系图 SVG 壳子、弹层交互脚本。
- 固定骨架必须保留：报告标题区、核心判断区、建议路线区、下一步行动区。
- 按需模块只在信息真实存在时保留；不需要就整段删除，不留空壳。
- 删除按需模块后，要同步调整页面内可见编号，保持顺序连续。
- 交付时不能保留任何 `[]` 占位文字、`可删` 提示、空列表、空卡片或明显的模板说明语。
- 最终文件必须仍然是自包含单文件 HTML。

## 三、允许编辑的部分

默认允许修改：

- `<title>` 与封面标题
- 一句话案例摘要
- 生成日期、主场景、复杂度、当前阶段、服务对象等元信息
- 固定骨架四大区块的正文
- 按需模块的保留、删除和具体内容
- 关系图中的节点名称、节点说明、关系线说明、`data-*` 详情文案
- 表格中的行列内容
- 方法出处条目数量与文案
- 文件名和输出路径

如果用户明确要求，也可以做局部视觉调整，例如：

- 在同一配色体系内微调颜色变量
- 小幅调整间距或文案长度
- 在不破坏结构的前提下增减少量卡片

## 四、默认不要动的部分

除非用户明确要求换风格，否则默认不要动下面这些：

- `:root` 中整套颜色、字体、阴影、半径变量
- 封面、`.section`、`.closing` 等主要容器结构
- `.section-head`、`.grid-*`、`.relation-layout` 等布局类
- `.graph-dialog`、`#graph-dialog`、`#graph-backdrop` 以及对应脚本逻辑
- 关系图热点元素依赖的 `data-kind`、`data-title`、`data-summary`、`data-points`
- 模板中的响应式规则和移动端适配

一句话说：

- 可以换内容。
- 可以删模块。
- 可以小调。
- 默认不要改壳子。

## 五、固定骨架怎么填

### 1. 报告标题区

作用：回答“这份报告在看什么”。

应填写：

- 标题：问题重述后的正式题目
- 一句话摘要：用一句话压住问题场景、当前卡点和本报告要解决的核心判断
- 生成日期：当天日期
- 主场景：来自场景入口判断
- 复杂度：来自分类层判断
- 当前阶段：推进期、转段期、收口期或接管期
- 服务对象：这套路线首先对谁负责

不要在这里展开长篇分析正文。

### 2. 核心判断区

作用：回答“当前最关键的判断是什么”。

应填写：

- 用户目标
- 服务对象
- 当前阶段
- 核心问题或主要矛盾
- 关键控制点
- 当前第一要务

如果这一块写不稳，后面的图和模块越多越像堆砌。

### 3. 建议路线区

作用：回答“为什么当前应走这条路线”。

应填写：

- 当前推荐路线名称
- 路线成立前提
- 当前支点
- 底盘供给
- 路线说明
- 政策或规则重写点
- 最关键的 1 到 3 个动作

### 4. 下一步行动区

作用：回答“看完之后立刻做什么”。

应填写：

- 近期动作
- 观察点
- 风险提醒

这里只写近期闭环，不写长篇执行计划。

## 六、按需模块怎么取舍

### 1. 关系图模块

保留条件：

- 局面难点主要在“谁影响谁、谁卡谁、谁依赖谁”
- 至少有 3 个关键节点
- 只看文字很难一眼看出关键结构

填写要求：

- 节点优先保留 5 到 9 个关键节点
- 每个热点节点或关系线都要有 `data-kind`、`data-title`、`data-summary`、`data-points`
- 保留右侧静态关系索引，不要让信息只藏在弹层里

删除条件：

- 关系结构不是本案重点
- 图只会重复正文，没有新增理解价值

### 2. 证据链模块

保留条件：

- 关键判断依赖事实链、程序链、授权链
- 需要说明结论不是凭感觉，而是由多条证据支撑

填写要求：

- 至少写出关键结论、2 到 5 条证据、当前缺口、最易被推翻点
- 每条证据最好能回到时间点、来源或对象

删除条件：

- 当前判断并不依赖证据链，只是轻量行动建议

### 3. 控制点 / 权力点分布表

保留条件：

- 纸面关系和现实控制点不一致
- 问题核心在于谁掌握信息、预算、客户、审批、口径或节奏

填写要求：

- 至少写清控制点、名义归属、现实掌握方、当前状态、对局面影响

删除条件：

- 控制点结构不复杂，核心判断区已经能讲清

### 4. 人物与关系清单模块

保留条件：

- 关系图已经出现，但仍需要逐项补角色、诉求、态度、边界

删除条件：

- 只是把关系图再抄一遍

### 5. 时间线模块

保留条件：

- 阶段变化明显
- 事件顺序会改写判断

删除条件：

- 只有零散事件，顺序不影响结论

### 6. 结构拆解模块

保留条件：

- 表层问题和深层问题不同
- 需要区分主次问题

删除条件：

- 核心判断区已经足够清楚，额外保留只会重复

### 7. 路线比较模块

保留条件：

- 至少存在两条可行路线

删除条件：

- 实际上只有一条主路线成立

### 8. 资源与约束模块

保留条件：

- 资源、支点、底盘供给、承受能力会显著改变路线

### 9. 分区推进矩阵

保留条件：

- 同一套动作不能对所有对象、区域、团队同步展开
- 明显存在成熟区 / 新区、老团队 / 新团队、旧容器 / 新容器

删除条件：

- 只有单一对象或单一执行面，不存在分区推进

### 10. 沟通与协商模块

保留条件：

- 关键突破点在表达对象、口径设计、协商顺序或时机安排

### 11. 谈判底线 / 程序检查表

保留条件：

- 判断依赖条款、程序、授权、留痕
- 需要判断合作、和解、接管、授权是否真实成立

删除条件：

- 证据链模块已经足够说明底线和程序，且不涉及正式协商场景

### 12. 执行计划模块

保留条件：

- 用户需要的不只是立刻动作，还需要更长节奏安排

### 13. 组织换挡 / 接管前后对照表

保留条件：

- 重点在组织换挡、承接、接管、新旧系统转换

删除条件：

- 变化不在“前后对照”，而只是单点调整

### 14. 方法出处模块

保留条件：

- 本次确实调用了明确方法来源，且展示出来有助于理解

填写要求：

- 建议保留 1 到 5 条
- 如果只有 1 条来源，就删掉第二条及其后的占位项
- 只说明“贡献了什么方法”，不要复述正文

## 七、模块去重的实操规则

- 关系图负责看全局结构，人物清单负责补细节，不要两边把同一组关系再写一遍。
- 证据链模块负责说明“为什么这样判断”，控制点表负责说明“关键控制点落在哪”，不要复制同一批事实。
- 谈判底线 / 程序检查表负责条款、程序、授权、底线；如果这些已经在证据链完整展开，就只保留更适合落地的一种。
- 资源与约束模块负责支点、底盘和约束；分区推进矩阵负责不同分区怎么推，不要把同一组资源说明重复写两遍。
- 组织换挡 / 接管前后对照表负责新旧系统对照；如果控制点表已经完整承担这件事，就不要两张表都把同一字段列一遍。
- 方法出处模块只交代来源，不再复述正文的方法逻辑。

## 八、编号和命名规则

- 区块编号只反映当前保留的区块顺序。
- 删除一个区块后，后续 `section-index` 文案应顺延。
- 文件名默认采用 `YYYY-MM-DD-topic.html`。
- 主题词要简短、可检索，不要过长。
- 报告正文如果是中文，所有用户可见的模板壳层文案也必须同步中文化，包括封面标识、`section-index`、模块标题、表头、按钮和提示语。
- 不要把模板里的英文标签原样留在中文报告里，例如 `Fixed Core`、`Main Route`、`Rollout Matrix`、`Procedure Check`。
- 案例本身的专有名词或缩写可以按实际需要保留，但通用结构名应优先写成中文，例如把 `节奏 / rollout` 改为 `推进节奏`。

## 九、关系图交互的最低要求

- 所有需要点击的节点或关系线，都必须保留 `graph-hotspot`。
- 每个热点至少要有：`data-kind`、`data-title`、`data-summary`、`data-points`。
- 如果删掉整个关系图模块，建议连同静态关系索引一并删掉。
- 如果页面已经没有任何图形热点，可进一步删掉弹层说明，但默认不强制。

## 十、交付前自查

至少检查下面这些：

- 固定骨架是否完整。
- 是否误保留了不需要的按需模块。
- 是否还有 `[]` 占位文字。
- 是否还有 `可删` 提示残留。
- 区块编号是否连续。
- 关系图点击后是否仍能正常弹层。
- 证据链、控制点表、程序检查表之间是否重复。
- 新增模块是否真的帮助理解，而不是增加噪音。
- 页面在桌面和移动端是否仍然可读。
- 最终文件是否仍是自包含单文件 HTML。
