站点注册表
sites/registry.json 是站点域名、公司、负责人、部署状态和主站关系的唯一数据源。查看可视化列表时打开 独立站点注册表。
入口规则
- 根目录只保留
AGENTS.md作为 agent 入口;不要再新增README.md、CLAUDE.md、GEMINI.md等并列入口。 - 人类可读文档统一放在
docs/,快速开始维护在docs/guide/getting-started.md。 - 本页是站点目录、迁移、负责人、支付素材和部署红线的规则 SSOT;不要把同一规则复制回其他入口。
目录规则
新站和后续迁移统一使用:
text
sites/<公司名>/<域名>/<公司名>来自registry.json的companyName;缺失时才依次回退到displayCompany、company。- 公司目录统一使用大写并用下划线分隔单词,例如
DATA_NETWORK_SOLUTIONS,不要改成Data Network Solutions、DATA NETWORK SOLUTIONS、DataNetwork或其他派生名。 <域名>使用实际域名,例如thereliabletechnologies.com、inspireinnostore.com。legalEntity不是目录来源,SMC-PRIVATE这类法务类型或历史归档目录不能作为公司名。- 当前部署和安装脚本只认仓库内
sitePath/ 标准路径,不依赖../DataNetwork、../DateTech、../SMC-PRIVATE等外部老目录。 - 没有源码来源的 registry 记录不硬造目录;有源码的站点以
sitePath指向仓库内当前路径。 - 依赖包、编辑器配置、本地密钥不进仓库:
node_modules、.git、.vite、.wrangler、.vscode、.env*都必须排除;旧站源码包内已经作为站点内容使用的静态文件按来源保留,通用临时输出dist仍然排除。 - 项目目录单独维护站点运行所需资产;支付图片素材 SSOT 放在仓库内
pay-methods/。纯构建产物或旧dist包直接删除,不作为项目迁入。只有开发目录才按公司名移动进来,并在确认迁入后删除外部老项目。
示例
text
sites/
├── BOUNCENET/
│ └── techconsult.site/
├── TROUGHNET/
│ └── technologyconsult.org/
├── DATA_NETWORK_SOLUTIONS/
│ └── voltbit.pw/
├── DATA_TECH_SOLUTIONS/
│ └── portshop.xyz/
├── VERTEXFLOW_TECHNOLOGIES/
│ └── goodstore.fun/
├── INTELLISIGHT_SOLUTIONS/
│ └── swiftdeal.site/
├── RELIABLE/
│ └── thereliabletechnologies.com/
└── INSPIREINNO/
└── inspireinnostore.com/禁止项
- 不要使用
NORMALIZED_COMPANY_NAME这类占位名。 - 不要使用
Data Network Solutions、DATA NETWORK SOLUTIONS或DataNetwork这类非标准目录名。 - 不要用
legalEntity、SMC-PRIVATE、旧目录名或域名反推公司目录。
支付素材
- 支付图片素材 SSOT 是仓库内
pay-methods/。 - 当前标准文件为
pay-methods/jazzCash.png和pay-methods/easypaisa.png。 - 不要把支付图片来源指向外部旧项目目录,例如
../SMC-PRIVATE或../pk-web。 - 站点 logo、商品图和站点运行时资产由各项目目录单独维护,不和支付素材混为一个 SSOT。
品牌配置
- 统一入口:所有站点(无论电商还是咨询)在开发目录下均需使用
src/config/brand.js作为品牌配置入口。 - 配置目的:
brand.js用于解耦站点文案、Logo、联系方式和公司名称,方便在迁入新域名或更换公司主体时快速完成品牌替换。 - 来自
registry.json的字段不得在brand.js里另写一份硬编码真源。
构建与部署
- 统一产物目录:所有站点必须统一打包输出至
dist目录。这是部署脚本(scripts/deploy-web.mjs)的唯一识别路径。 - 提交前检查:pre-commit 会检查本次提交涉及的网站,发现
vite.config.*的outDir不是dist时会用中文报错并阻止提交。 - 开发态工程化:严禁在
sites/目录下存放纯 HTML。所有站点(包含静态展示站)必须是 Vite 驱动的项目,确保具备npm run build能力。 - 商品图统一用 Unsplash CDN URL 的
urls.regular,直接写入product.json,不下载本地。 - 挂靠站 footer 按
companyMainDomain选择 Powered by 公司名,不按域名单独猜公司。 thereliabletechnologies.com下的挂靠站使用Copyright © 2025 <店铺品类> Store. Powered by RELIABLE TECH NOLOGIES PRIVATE LIMITE。inspireinnostore.com下的挂靠站使用Copyright © 2025 <店铺品类> Store. Powered by INSPIRINNO TECH NOLOGIES PRIVATE LIMITE。<店铺品类>按该电商站实际售卖品类命名,例如PetCare Store。
迁移规则
- 已知公司名的开发目录迁入
sites/<公司名>/<域名>/,确认迁入后删除外部老项目。 - 纯构建产物或旧
dist包直接删除,不作为项目迁入。 - 依赖包、编辑器配置、本地密钥不进仓库:
node_modules、.git、.vite、.wrangler、.vscode、.env*都必须排除。 - 旧站源码包内已经作为站点内容使用的静态文件按来源保留,通用临时输出
dist仍然排除。
负责人规则
developerOwner记录项目开发提交/维护负责人;谁提交的新项目就写谁,不要只因为仓库内存在开发目录就改成webkubor。- 从本机老开发目录迁入、且由
webkubor维护的站点,developerOwner写webkubor。 - Cloudflare zone / 域名在
webkubor名下的站点,deploymentOwner写webkubor。 - Cloudflare zone / 域名不在
webkubor名下的站点,deploymentOwner按实际负责人写,例如老胡。
Registry 字段原则
- 不为对齐表结构而保留无意义的
null占位字段。 - 外部挂靠站
external-site只记录域名、公司主站关系和线上状态;没有明确业务价值时不要写notes、domainAssetSource、源码、负责人或任务来源等字段。
执行红线
- 站点对外 UI 文案必须使用英文;commit message 必须使用中文,类型前缀可保留,例如
fix: 修复站点构建输出目录。代码注释不强制英文。 - 价格统一
Rs.。 - 订单状态显示
Processing / Awaiting Review,不要显示Success。 brand.js不得硬编码来自registry.json的字段。- 部署必须完成 build、deploy、commit、fetch/rebase、push;优先使用
node scripts/deploy-web.mjs <domain>。 - 电商站
product.json商品数量不得少于 20 条,且每条商品的name和image必须唯一,不允许重复。