Files
cms-website/README.md
T
浅念 07483b5ae2 docs: ADR 001–015 落档 + README
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-20 20:56:26 +08:00

47 lines
2.3 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.
# SiteForge
WordPress 站点到静态站点迁移引擎:读取 WXR/Sitemap/媒体归档 → 清洗入不可变内容库 → 主题化构建为自包含静态站点(Astro),全程可审计、可复现、契约冻结。
## 快速开始
前置:Node.js >= 22、Docker、[corepack](https://nodejs.org/api/corepack.html)。
```bash
corepack enable # 激活 pnpm(或自行安装 pnpm@10)
pnpm install # 安装依赖
pnpm db:up # 启动 PostgreSQL 16(宿主端口 5434,等 healthcheck 就绪)
pnpm db:migrate # 开发库全量迁移(apps/api/drizzle)
pnpm db:test # 一键验收:起库 + 跑全部测试(测试用临时库,开发库零写入)
```
日常质量门(等价于 CI):
```bash
pnpm lint && pnpm typecheck && pnpm test
```
说明:集成测试由 vitest `globalSetup` 自动创建临时库 `sf_test_<ts>` 并注入 `DATABASE_URL_TEST`,结束即 DROP——勿在 `.env` 手动设置该变量。
## 目录结构
```
apps/api/ NestJS standalone 骨架 + Drizzle schema/迁移(21 表,数据库约束即规格)
packages/contracts/ UniversalRow / Route / Render / Theme 跨源契约(冻结,变更须升版)
tests/ 单元 + 集成测试(fixtures:WXR/Sitemap/媒体样例)
infra/ docker-compose:PostgreSQL 16(端口 5434,避开 cms 项目 5433)
scripts/ migrate-test.sh 等运维脚本
docs/ adr/ 决策记录 · evidence/ 基线证据 · superpowers/ 规格与计划
```
## 文档导航
- 设计基线(表结构/技术决策/阶段划分):`docs/superpowers/specs/2026-10-20-siteforge-vertical-slice-design-v2.md`
- 阶段 0+1 实施计划:`docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md`
- 架构决策记录(ADR-001~015):`docs/adr/`
- 基线证据(环境/真实 WXR):`docs/evidence/`
## 当前状态
- **阶段 1 已完成**:契约冻结、21 表数据模型全量落地(不可变触发器/唯一约束/CHECK 均落数据库并被 75 项测试锁定)、空环境一键启动+迁移验收通过。
- **下一步:阶段 2**——WXR 适配器(流式 SAX 解析 → UniversalRow),计划基于阶段 1 经验另立。