# AI blog delivery kit

本入口用于复用本站的“Git 内容源 -> 编辑门禁 -> 静态构建 -> 签名镜像 -> 受控部署”链路。它不是可直接复制的主题模板；应先决定是否需要账户、评论、CMS 和生产部署，再按边界裁剪。

## 最小路径

1. 阅读 `docs/editorial-standard.md`，确定文章日期、来源、证据等级和项目关系合同。
2. 在 `src/content/posts/` 与 `src/content/projects/` 中写入内容，保持 Markdown 为权威源。
3. 运行 `npm run editorial:check`、`npm run check` 和 `npm run build`。
4. 准备提交或发布时运行 `npm run preflight`；失败项不能用人工口头确认替代。
5. 生产发布遵循 `docs/deployment-runbook.md`，只部署 allowlist 与 Cosign 验证通过的不可变镜像 digest。

## 输入替换点

- `src/site.ts`：站点名称、域名、作者、仓库和社交信息。
- `src/content/`：公开文章和项目；历史日期必须来自证据，不使用提交或部署日期。
- `.env.example` 与 `deploy/*.env.example`：只作为字段合同，真实秘密不得提交。
- `deploy/`：反向代理、Compose、Agent、备份、监控和 CMS 运行边界。

## 权威输出

- `dist/`：静态 HTML、RSS、Sitemap、Pagefind 与公开内容清单。
- `scripts/generate-project-reuse-manifest.mjs`：在项目 frontmatter 已迁移为结构化合同后，显式生成 `dist/project-reuse-manifest.json`、公开入口和冻结工件副本；未完成迁移时必须 fail closed。
- `state/current-image`、备份文件和 `state/monitor/current.json`：生产部署与运行状态；它们不进入公开镜像。

## 边界

公开 Markdown 会编译进镜像，生产数据库只保存在线业务状态。不要在服务器容器内编辑正文，也不要把数据库或镜像快照当作文章权威源。单实例 readiness 通过不等于高可用。
