命名与兼容性
新标识采用易读、稳定、与本地位置无关的名称。保留已经公开或被工具依赖的旧名称;工程标准不代表批准批量改名。
推荐格式
| 对象 | 推荐默认 | 示例 |
|---|---|---|
| 项目展示名 | 保留成熟品牌 | Sample Platform |
| 稳定项目 ID | 小写 kebab-case | sample-platform |
| 主仓库 | 与项目 ID 一致,含义明确时使用 | sample-platform |
| 附加仓库 | 项目 ID 加职责 | sample-platform-web、sample-platform-docs |
| 语言 SDK | 项目 ID 加 sdk 和语言 | sample-platform-sdk-go |
| 看板 | 产品名加用途 | Sample Platform — Delivery |
| 文档 | 稳定主题名,使用小写 kebab-case | docs/operations/backup-recovery.md |
| ADR | 序号加主题 | docs/adr/0007-public-events.md |
| 本地 checkout | 尽量使用仓库名 | sample-platform-web/ |
文档站仓库只有在具备独立发布、维护或权限需要时才单独建立。避免用 Dev、new、final、copy 或环境名来区分新源码仓库;环境一般共享源码,只使用明确配置。重写项目只有在确实并行维护时才使用有意义的后缀,并明确旧项目支持和迁移关系。
源码、分支和工作项
独立应用、服务、包和文档目录可以使用 kebab-case;源码遵循其语言和框架约定,例如 Python snake_case 或 React 组件 PascalCase。文件大小写应在 Windows 和 Linux 一致,避免仅靠大小写区分、平台保留名、路径尾部句点或脆弱的超深路径。
测试名称描述行为。模块使用清楚的领域名词,避免无限膨胀的 utils、common、misc 和 manager。分支可用 feat/142-session-expiry、fix/208-tenant-filter、docs/97-runbook;若现有工具使用 codex/ 前缀则保留。
跨仓库引用使用 owner/repository#number。Issue 标题表达可验证的结果或问题;PR 标题和提交信息应符合仓库已有自动化,可选用 type(scope): outcome 形式。
公开接口、数据库字段、事件、环境变量和包名具有兼容性责任。改名前记录现名、新名、URL/导入/镜像/CI/消费者影响、迁移或弃用期、验证和回退。版本号不得用于覆盖已发布版本内容。