Skip to content

新站分支克隆执行 SOP(分享版)

此版本面向内部分享,保留可执行脚本名、命令结构和仓库路径,已去除具体站点、品牌和历史迁移细节。

1. 适用场景

这份 SOP 用于把当前仓库快速克隆成一个新的独立站分支。

适用前提:

  • 你是从当前项目最新提交切出新分支
  • 当前基线已经包含历史清理能力和站点切换脚本
  • 本文只保留新分支真正需要执行的步骤

2. 先明确三个概念

每个新站都必须先明确下面三个概念:

  1. 品牌主体
  • 页面品牌名
  • 例如:<Brand Name>
  1. 核心关键词
  • SEO 主打关键词
  • 例如:<Core Keyword>
  1. 模型语义
  • 真实模型名
  • 例如:<Model Name><Another Model Name>
  • 模型页里必须保留真实模型名,不能粗暴改掉

3. Step 1:创建新分支

直接从当前基础站分支切出新分支。

示例:

bash
git checkout -b <siteKey>

如果远端也要新建:

bash
git push -u origin <siteKey>

4. Step 2:创建 site profile

路径:

  • scripts/website/site-profiles/<siteKey>.json

模板:

json
{
  "siteKey": "<siteKey>",
  "siteName": "<Brand Name>",
  "brandName": "<Brand Name>",
  "coreKeyword": "<Core Keyword>",
  "domain": "<new-site-domain>",
  "baseUrl": "https://<new-site-domain>",
  "supportEmail": "support@<new-site-domain>",
  "hiddenLegacyRoutes": [
    "/<legacy-hidden-route>"
  ],
  "primaryKeywords": [
    "<Core Keyword>",
    "<Brand Name>",
    "AI video generator",
    "text to video",
    "image to video"
  ],
  "protectedTerms": [
    "<Model Name 1>",
    "<Model Name 2>",
    "<Provider Name>",
    "<Technical Term>"
  ],
  "legacyBrandTerms": [
    "<old brand term 1>",
    "<old brand term 2>"
  ],
  "legacyDomainTerms": [
    "<old-site-domain>",
    "support@<old-site-domain>"
  ]
}

字段说明:

  • siteName
    • 站点显示品牌
  • brandName
    • 脚本里的品牌主体
  • coreKeyword
    • SEO 核心关键词
  • protectedTerms
    • 模型名和技术词保护清单
  • legacyBrandTerms
    • 需要从旧站清理掉的品牌词
  • legacyDomainTerms
    • 需要从旧站清理掉的域名/邮箱

5. Step 3:改新站基础配置

这一步不跑 AI,不跑文案改写,先处理确定性配置。

需要修改的文件:

  • .github/workflows/deploy-push-dokploy.yml
  • Dockerfile
  • src/config/website.tsx
  • src/monitoring/search-traffic.ts

这一步的目标是:

  • 新域名
  • 新邮箱
  • workflow / environment
  • 站点监控配置

说明:

  • 当前基线已包含历史清理能力
  • 若新分支后续检查到历史残留回归,再单独处理

6. Step 4:运行品牌归一脚本

脚本:

  • scripts/website/normalize-brand-keywords.ts

命令:

bash
pnpm tsx scripts/website/normalize-brand-keywords.ts --profile=<siteKey> --write

作用:

  • 清理旧品牌词
  • 清理旧域名和旧邮箱
  • 清理机械残留
  • 修正高曝光 title/meta
  • 模型页去掉多余平台口癖

这一步是规则型替换,优先于大模型改写。


7. Step 5:运行品牌页整文件改写

脚本:

  • scripts/website/rewrite-site-copy.ts

品牌页文件包括:

  • messages/en/metadata.json
  • messages/en/home-page.json
  • messages/en/pages.json

命令:

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=site-shell --write

这一步逻辑:

  • 品牌主体必须明显
  • 核心关键词必须明显
  • 旧品牌不能继续占据主叙事位

8. Step 6:运行功能聚合页整文件改写

这两个文件不按首页品牌页逻辑处理,而按模型页同类逻辑处理:

  • messages/en/video-page.json
  • messages/en/image-page.json

命令:

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=models --files=video-page.json,image-page.json --write

这一步逻辑:

  • 不强打品牌
  • 更接近模型页 / 功能页写法
  • 重点是功能说明、FAQ、场景、模型选择逻辑

9. Step 7:运行模型页整文件改写

模型页目录:

  • messages/en/models/*.json

命令:

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=models --concurrency=40 --write

说明:

  • 当前脚本默认支持并发
  • 推荐直接用 40 并发
  • 模型页逻辑是:
    • 保留真实模型名
    • 轻量品牌归属感
    • 不要把品牌词硬塞到每一个字段里

10. Step 8:运行结果检查

10.1 先查旧域名/旧邮箱残留

bash
rg -n "<old-site-domain>|support@<old-site-domain>" src messages .github

10.2 查明显错误替换

bash
rg -n "__KEEP_|<repeated-brand-pattern>|<old brand term>" messages/en

10.3 本地构建检查

bash
pnpm build

必须通过。

10.4 本地页面检查

先启动本地站点后,再从用户视角检查:

  • /
  • /about
  • /pricing
  • /prompts
  • /works
  • /feedback
  • /video
  • /image
  • 2-3 个模型页样本

重点看:

  • <title>
  • <meta description>
  • 页面主标题
  • CTA
  • 提示文案

11. Step 9:最后人工补刀

如果脚本跑完后还剩少量不自然文案:

  • 不要再全量重跑
  • 直接人工定点修改

最常见的补刀文件:

  • messages/en/home-page.json
  • messages/en/pages.json
  • messages/en/video-submission.json
  • messages/en/landing.json
  • messages/en/marketing.json
  • messages/en/pricing.json
  • messages/en/feedback.json

目标:

  • 页面最终可读
  • 品牌清晰
  • 不再有旧站残留
  • 不再有机械替换痕迹

12. Step 10:提交策略

推荐每完成一个阶段就提交一次,避免出错后不好回滚。

建议提交顺序:

  1. docs
  2. config
  3. normalize
  4. site-shell copy
  5. generator pages copy
  6. models copy
  7. manual cleanup

示例:

bash
git add .
git commit -m "feat: initialize <siteKey> profile"

git add .
git commit -m "feat: update site config for <siteKey>"

git add .
git commit -m "feat: rewrite english site copy for <siteKey>"

13. Step 11:最终上线前确认

最后确认这 4 件事:

  1. 旧品牌词已清理
  2. 旧域名/旧邮箱已清理
  3. pnpm build 通过
  4. 本地页面访问正常

补充说明:

  • 如果新分支里意外重新出现历史残留问题,说明当前分支没有从最新基线正确继承,需要作为回归问题单独处理

通过后再执行:

bash
git push

如需强推,请在确认团队约定后再执行。


14. 当前可直接运行的脚本列表

品牌归一脚本

bash
pnpm tsx scripts/website/normalize-brand-keywords.ts --profile=<siteKey> --write

整文件改写脚本:品牌页

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=site-shell --write

整文件改写脚本:功能页

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=models --files=video-page.json,image-page.json --write

整文件改写脚本:模型页

bash
pnpm tsx scripts/website/rewrite-site-copy.ts --profile=<siteKey> --group=models --concurrency=40 --write

构建验证

bash
pnpm build

15. 一句话版本

先建 profile -> 先改固定配置 -> 跑品牌归一脚本 -> 跑品牌页整文件改写 -> 跑功能页整文件改写 -> 跑模型页整文件改写 -> build -> 页面检查 -> 手工补刀 -> 提交。

Released under the MIT License.