Files
osmWorkflow/.trellis/spec/guides/index.md

77 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 思考指南索引
> 目的:在改代码前补一遍"跨层会不会断、重复事实会不会漂、产物是否仍一致"。
> 本目录不替代包级 spec它用于那些单看一个文件容易误判的改动。
---
## 可用指南
| 指南 | 关注点 | 什么时候读 |
|---|---|---|
| [跨层思考指南](./cross-layer-thinking-guide.md) | JS、GDAL/QGIS、Blender Python、浏览器之间的数据契约 | 改图层、材质名、配置字段、stage 输出、外部工具调用 |
| [代码复用思考指南](./code-reuse-thinking-guide.md) | 单一事实源、重复解析、可接受重复与应抽取重复的边界 | 改 `parseArgs`、图层表、配置归一化、几何工具 |
| [产物一致性指南](./artifact-parity-guide.md) | `.blend` / `.glb` / metadata 的结构摘要校验 | 任何声称"纯重构、产物不变"的改动 |
---
## 本项目触发点
### 读跨层思考指南
- [ ]`scripts/lib/scene-layers.js:15``SCENE_LAYERS`
- [ ]`blender/osmassets/catalog.py:28``ROAD_LAYERS``catalog.py:56``MATERIALS`
- [ ]`blender/export_cesium.py:68` 等四张按材质名字符串匹配的覆盖表
- [ ]`build-area.js:74``normalizeAreaConfig()``config/examples/template.json`
- [ ] 改任何 `execFileSync` / `spawnSync` 调起的脚本或参数
- [ ]`SCENE_DONE` / `CESIUM_EXPORT_DONE` 的 stdout 标记
### 读代码复用思考指南
- [ ] 准备新增第二份或第三份图层、材质、配置字段枚举
- [ ] 修改三份重复的 `parseArgs` 之一:
`build-area.js:50``build-osm2streets-qgis.js:153``reimport-gpkg.js:93`
- [ ] 多个要素模块都要做同一件几何预处理,比如
`water.py:9``grass.py:9``scrub.py:8` 都先 `clip_polygon`
- [ ] 低层脚本想直接读取 `config/areas/*.json`,绕开派生配置
- [ ] 新增 helper 前没有先 `grep -rn` 找现有函数
### 读产物一致性指南
- [ ] 挪函数、拆模块、改导入,且声称产物不变
- [ ] 重排 `ROAD_LAYERS` / `MATERIALS`
- [ ] 改材质名或导出调色逻辑
- [ ] 改几何、采样、实例化、UV、材质构建
- [ ]`scripts/parity.js``scripts/glb-digest.js``blender/tools/scene_digest.py`
---
## 改值前的固定动作
```bash
grep -rn "要改的值" scripts blender config
```
本仓库跨 JS、Blender Python、浏览器 JS 和 JSON很多连接靠字符串或文件名约定。
例如 `scene-layers.js``catalog.py` 只靠 `id` 集合和顺序对账;
`generate_scene.py``export_cesium.py` 的材质覆盖目前靠材质名字符串,没有自动校验。
---
## 审查 AI 结果时
- 先看它有没有读到对应包的 index 和本目录指南
- 对任何"行为没变"的结论,要求说明是否需要 parity需要却没跑就是风险
- 对任何"可以合并重复"的建议,先判断重复是不是刻意边界:
三份 `parseArgs` 目前是可接受技术债JS/Python 图层颜色则是刻意不同步
- 对任何"加精度、加默认值、直接覆盖文件"的建议,回到真实代码注释验证;
`reimport-gpkg.js:152-156``reimport-gpkg.js:11-13` 都是反直觉约束
---
## 维护规则
- 发现新的跨层坑,优先补到相关指南,再补包级 spec
- 指南只写本项目已发生或代码已体现的约束,不写通用工程格言
- 每条新约束至少带两个真实路径或函数名,方便后续 grep 定位