# FDE Fieldnotes：内容驱动的静态研究网站

## 选择

采用结构化 JSON + 可编辑 Markdown + 无框架静态前端。无需数据库、运行时服务、账户或模型 API，浏览器端完成检索、筛选、比较、收藏、笔记和阅读进度。内容更新通过 Git 审阅和构建发布。动态内容不要求动态服务器。

## 信息结构

- 案例库：123条，按行业、来源、详细度、证据、研究状态与实施模式筛选。
- 案例阅读页：业务背景、方案、技术、人机责任、结果、针对性研究、实施参考、来源账本。
- 原文阅读室：Datawhale 全部246页；24篇访谈、前言和附页；文字层、OCR及原页预览并存。
- 方法手册：8类流程的前提、步骤、验收、失败处理、责任分工；明确为编辑建议。
- 研究与证据：逐案例核验边界、来源获取状态、更正记录。
- 我的书架：仅保存在本浏览器的收藏、笔记、阅读进度；支持JSON备份与恢复。

## 数据契约

`data/cases.json` 保持稳定ID和原始来源边界。`data/research-notes.json` 保存专项研究，不覆写未证实事实。`data/playbooks.json` 保存跨案例方法。`data/source-reader.json` 保存逐页转录与OCR标识。`data/source-audit.json` 只记录来源定位和获取状态，不将HTTP 200当成事实核验。

`content/cases/` 是从结构化源生成的完整Markdown镜像；`content/source-text/` 是原材料文字转录。不得手改派生文件。数据更新后运行 `npm run classify:detail && npm test && npm run build`。

## 更新与验证

新增内容沿用稳定ID，来源与编辑建议分离。构建检查ID、字段、引用、研究关联、Markdown覆盖、双语对应和静态链接。内容更新经PR审核，发布为不可变静态版本；回滚重新部署上一版本。图片页OCR必须保留识别状态，不冒充逐字人工校对。

第三方原文与图像不在仓库MIT许可内。默认公开发布包不包含第三方全文转录与原页图片；本地研究完整版本包含这些材料。公开部署时优先发布原创摘要、研究和官方链接；具备再分发授权后才启用 `--include-source-text` 全文构建。

## 将来何时增加后端

多人在线编辑、跨设备私人笔记、权限资料或审核工作台出现时，再增加内容管理和认证。保持当前ID和JSON契约不变，通过构建钩子生成静态公开站；私人笔记独立存储，避免与公开资料混在一起。

## 当前部署

本轮完成本地网站、完整研究阅读包和默认公开静态构建。没有把内容推送或发布到现有线上站点。原英文站保留 `index.en.html`，旧中文站保留 `legacy.html`；新增深度研究与访谈阅读为中文，源材料英文不被自动冒充成人工翻译。

## 源材料再生成

本地全文和图像被Git忽略。导入Datawhale官方PDF时：

```bash
python3 scripts/import-pdf.py /absolute/path/datawhale.pdf /absolute/path/ocr
```

第二参数可选，目录内使用 `page-007.png.txt` 等物理页名存放OCR结果。`scripts/ocr-page.swift`使用系统Vision识别中文/英文。以`pdftoppm`按物理页生成 `content/source-pages/page-001.jpg` 至 `page-246.jpg`。`scripts/collect-sources.py`把来源缓存与获取账本写入指定任务证据目录；随后 `python3 scripts/import-source-documents.py /absolute/path/sources` 提取其中已取得的PDF。不要把来源抓取放进每次构建。

`data/document-catalog.json`纳入版本；`data/documents/`全文保留本地。参考文献目前14份501页，每页保留原文文字层，不含图表结构重建。`npm run test:sources`严格检查本地246页访谈、27页OCR、完整章节与原页图片，以及全部参考文献。普通`npm test`无需本地第三方全文，适合新克隆和CI。

## 内容优先与手机阅读约定

新版工作区不再使用宣传式首屏；栏目名称只保留一个语义标题，手机端已有底部导航时不重复占位。真正的案例/访谈/文献标题保持可见。案例搜索、列表与正文优先，筛选、导出、阅读设置和通用说明采用原生details按需展开。

`assets/reading-layout.css`集中维护内容密度和手机规则：850px以下使用底部导航及安全区、56px顶部栏、17px案例正文、16–20px可调原文、至少44px主要触控目标。输入控件至少16px，避免iOS聚焦放大。手机表格转为带列标签的记录卡，对比按维度纵向排列；不靠隐藏业务信息实现紧凑布局。章节跳转预留固定导航空间，研究台账提供搜索和分节直达。

本轮以IAB检查9类主页面、6种宽度（320/375/390/430/768/1440）；旧中文归档及原英文界面继续保留，未替换其既有结构。模拟屏幕验证不代表iOS/Android真机、输入法或读屏器专项认证。

## 综合分析首页

`#/home` 为默认首页，导航名称为“总览与洞见”。`#/library` 继续直达案例检索，已有详情链接保持有效。

- 编辑内容：`data/executive-analysis.json`。每项综合判断包含依据案例、推理、边界和行动建议；趋势同时包含可推翻判断的信号。外部观点保留作者、日期、原文链接、采用方式和限制。
- 生成：`scripts/build-analysis.mjs` 在案例与研究数据构建后执行。由当前案例计算来源分布、方法主分类和财务披露数量，生成 `data/analysis.js`、全量盘点及 `content/research/executive-analysis.md`。包含案例文件 SHA-256，便于确认分析使用的资料版本。
- 数字表示馆藏结构，不是市场统计。新增案例会更新计数与盘点，但不会自动产生新的研究判断；实质性材料变动后，应人工复核判断和研究日期。
- 页面：`assets/home.js`、`assets/home.css`。现金节省情景模型独立在 `assets/value-model.js`，使用教学假设，不使用案例均值。无服务端写入。
- 验证：`scripts/test-analysis.mjs` 检查全部案例覆盖、分布总数、引用、Markdown 内容一致和边界算例。移动端采用六项导航与可展开角色建议，避免增加首屏空白。
