新站分支克隆执行 SOP(分享版)
此版本面向内部分享,保留可执行脚本名、命令结构和仓库路径,已去除具体站点、品牌和历史迁移细节。
1. 适用场景
这份 SOP 用于把当前仓库快速克隆成一个新的独立站分支。
适用前提:
- 你是从当前项目最新提交切出新分支
- 当前基线已经包含历史清理能力和站点切换脚本
- 本文只保留新分支真正需要执行的步骤
2. 先明确三个概念
每个新站都必须先明确下面三个概念:
- 品牌主体
- 页面品牌名
- 例如:
<Brand Name>
- 核心关键词
- SEO 主打关键词
- 例如:
<Core Keyword>
- 模型语义
- 真实模型名
- 例如:
<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.ymlDockerfilesrc/config/website.tsxsrc/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.jsonmessages/en/home-page.jsonmessages/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.jsonmessages/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 .github10.2 查明显错误替换
bash
rg -n "__KEEP_|<repeated-brand-pattern>|<old brand term>" messages/en10.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.jsonmessages/en/pages.jsonmessages/en/video-submission.jsonmessages/en/landing.jsonmessages/en/marketing.jsonmessages/en/pricing.jsonmessages/en/feedback.json
目标:
- 页面最终可读
- 品牌清晰
- 不再有旧站残留
- 不再有机械替换痕迹
12. Step 10:提交策略
推荐每完成一个阶段就提交一次,避免出错后不好回滚。
建议提交顺序:
docsconfignormalizesite-shell copygenerator pages copymodels copymanual 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 件事:
- 旧品牌词已清理
- 旧域名/旧邮箱已清理
pnpm build通过- 本地页面访问正常
补充说明:
- 如果新分支里意外重新出现历史残留问题,说明当前分支没有从最新基线正确继承,需要作为回归问题单独处理
通过后再执行:
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 build15. 一句话版本
先建 profile -> 先改固定配置 -> 跑品牌归一脚本 -> 跑品牌页整文件改写 -> 跑功能页整文件改写 -> 跑模型页整文件改写 -> build -> 页面检查 -> 手工补刀 -> 提交。