# DMTX / Iemail 方案合集维护规范

本目录是 Cloudflare Pages 项目 `jack-solutions` 的唯一内容源。Cloudflare Pages 只是部署结果，不是事实源。

## 核心规则

1. 所有方案必须先保存到本目录，再由统一脚本发布。
2. 禁止只上传 HTML 到 Cloudflare 而不回写本目录。
3. 禁止把线上 Cloudflare 页面当作源文件；线上页面只用于发布后验收。
4. 首页 `index.html` 必须保持业务层级、摘要和设计感，不要退化成纯文件列表。
5. 每个方案必须同时保留 Markdown 源文档、可阅读 HTML 版本和 `meta.json`。

## 分类目录

- `data-governance/`：数据治理、存储、归档、成本优化。
- `email-infrastructure/`：邮件 DNS、SPF、DKIM、DMARC、多供应商、追踪域名。
- `_incoming/`：不确定分类或外部 agent 临时投递区。

新增业务类型时，创建清晰的 kebab-case 英文目录，并同步更新 `_catalog.json` 和 `index.html`。

## 新方案目录规范

每个方案一个目录：

```text
solutions/<category>/YYYY-MM-DD-[english-slug]/
├── solution.md
├── solution.html
└── meta.json
```

`meta.json` 必填字段：

```json
{
  "title": "方案标题",
  "slug": "english-slug",
  "date": "YYYY-MM-DD",
  "category": "data-governance",
  "summary": "一句话摘要",
  "businessTags": ["DMTX", "Iemail"],
  "sourceMarkdown": "solution.md",
  "html": "solution.html",
  "status": "review-ready"
}
```

## 新增/修改方案流程

1. 读取本 README、`_catalog.json` 和 `index.html`，理解现有分类和首页风格。
2. 选择分类目录；不确定时放入 `_incoming/`。
3. 写入 `solution.md`、`solution.html`、`meta.json`。
4. 更新 `_catalog.json`。
5. 更新 `index.html`。
6. 校验所有链接和文件存在性。
7. 发布到 Cloudflare Pages：
   - 优先依赖全局 PostToolUse hook 自动发布。
   - 如果 hook 未热加载，手动运行 `/Users/jack/.claude/hooks/upload-solutions-to-cf.sh`。

## 禁止事项

- 禁止直接修改线上 Cloudflare 内容而不更新本目录。
- 禁止覆盖历史方案；同名目录存在时追加 `-v2`、`-v3`。
- 禁止只提交 HTML、不提交 Markdown。
- 禁止删除 `meta.json` 或让 `_catalog.json` 与文件结构不一致。
