用途:同步 DeepSeek Harness 文档站点。仓库 Markdown 是唯一可编辑内容源,网站视为可测试的投影:website/docs.ts 选择公开页面,scripts/project-doc-site.ts 重写至一次性的 website/.generated/ 目录,再由 VitePress 构建。构建同时为每个路由生成原始 Markdown 孪生页(页面 URL 去掉尾部斜杠加 .md,index 路由另有父级别名)和根 llms.txt 索引,二者由同一清单与投影器派生,发布、移动或删除页面时自动更新;缺失时 docs:build 失败。
翻译遵循同级配对约定:英文 foo.md、中文 foo.zh.md 与 foo.i18n.yaml 放在一起,不要为站点内容创建 zh-CN/ 等语言目录。站点路由树独立于源布局:foo.zh.md 投影到根路由,foo.md 投影到对应 /en/ 路由。
修改前应先读 docs/AGENTS.md 与 dsh-doc-standards,查阅 website/docs.ts 现有的 DocsPage 类型与条目,并在新增章节、侧边栏、语言或顶层导航前读 website/.vitepress/config.ts。
变更分类:编辑已发布页面只改其规范 Markdown 源;发布新页面在其所属 docs/ 层级创建后添加一条清单条目;重命名、移动或删除需原子地更新规范文件、清单条目与仓库内入链,并移除过时条目(docs:check 会拒绝缺失源);生成类目录应改生成器或源元数据而非手改;站点结构变更优先改清单,仅在现有侧边栏、章节或语言模型无法表达时才改 VitePress 配置。
禁止编辑或提交 website/.generated/、website/.cache/、website/.dist/;除 website/AGENTS.md 外不要在 website/ 下添加 Markdown,website/zh-CN/、website/en/、website/api/ 等布局无效。清单条目需逐项设置 source、route、label、sidebar、section、order,必要时 sourceAliases;完整双语对用 pairedPages(),仅在有意的同语言回退时用 mirroredPages()。清单是显式公开白名单,不要因存在于 docs/ 就发布 RFC、复盘、测试指南、AGENTS.md 或维护者流程。
链接规则:清单内目标变为站点相对路由,清单外已有目标变为 GitHub 源链接,图片文件被复制到生成树后引用,外部、站点绝对、邮件与纯片段链接保持不变,缺失的仓库相对目标会导致投影失败。跨页片段以英文 GitHub 标题 id 为规范 id,必要时插入显式 <a id="..."></a>。不要为迎合 VitePress 在规范 Markdown 中写站点专用路由,目录式链接用 sourceAliases。
预览与校验:pnpm docs:dev 本地预览(改清单后可能需重启),pnpm docs:check 做站点门禁,提交前运行 pnpm run doc-sync、pnpm run lint、git diff --check,推送前用 dsh-pre-push-checks。
部署独立:同步到 VitePress 构建不等于发布上线,除非用户明确要求部署并确认托管策略,否则不要添加 GitHub Pages 权限、部署工作流、自定义域名或公开托管。