39 lines
1.9 KiB
Markdown
39 lines
1.9 KiB
Markdown
# 项目配置规则
|
|
|
|
`.craftkit/project.json` 是可共享的结构化项目元数据,不是依赖锁文件或秘密配置中心。
|
|
|
|
## 字段原则
|
|
|
|
- `initialization.mode` 使用 `existing` 或 `new`。
|
|
- `project` 记录名称、用途和项目类型。
|
|
- `technology` 记录语言、框架、构建工具和数据库类型,不记录连接信息。每个框架使用 `name`、`version`、`profile` 对象;精确版本未知或公共 profile 不存在时不得猜测。
|
|
- `code` 记录相对源码根、包根和模块。
|
|
- `dependencies.internal` 只记录用户确认可在当前仓库共享的依赖标识和用途。
|
|
- `commands` 只记录经过项目文件或用户确认的命令。
|
|
- `documents.archiveRoot` 记录可共享的文档归档根;`documents.archiveRules` 记录项目确认的匹配、目标模板、转换和校验规则,不写入公司固定目录或外部系统凭据。
|
|
- `guidance` 指向 `.craftkit/` 内的索引入口。
|
|
- `initialization.references` 记录参考项目名称、用途、允许提炼范围和可共享的相对位置。
|
|
|
|
## 合并规则
|
|
|
|
- 未在本次扫描中验证的既有字段不得删除。
|
|
- 新证据与旧值冲突时保留旧值并展示差异,用户确认后修改。
|
|
- 数组按语义去重,不因大小写或路径分隔符制造重复项。
|
|
- 所有项目路径使用正斜杠相对路径。
|
|
- 模板中的空值表示待补充,不代表扫描失败。
|
|
|
|
## 框架版本
|
|
|
|
```json
|
|
{
|
|
"name": "framework-name",
|
|
"version": "已确认的精确版本或空字符串",
|
|
"profile": "已存在且匹配的公共 profile 或空字符串"
|
|
}
|
|
```
|
|
|
|
- 先从构建清单和锁文件探测,再由用户确认。
|
|
- 普通项目只选择当前 profile,不登记无关版本。
|
|
- 升级计划中的目标版本属于项目决策或迁移资料,不得冒充当前运行版本。
|
|
- 内部框架可以记录名称和版本,但其规则只能位于项目 `.craftkit/standards/`。
|