# Project Memory

## 代码阅读规范（必须严格遵守的三步阅读流程）

每次接到任务时，**必须**按以下顺序渐进式地理解项目，禁止跳步：

1. **第一步：阅读 `docs/spec.md`** — 全面了解项目整体架构、核心概念与模块划分，建立全局认知。
2. **第二步：根据用户问题，阅读 `docs/` 下对应模块的详细文档** — 例如用户问 merge 相关功能，则阅读 `docs/merge.md`；问 config 相关则阅读 `docs/config.md` 和 `docs/config-file.md`，以此类推。
3. **第三步：阅读具体的源代码** — 在前两步建立充分上下文后，再深入代码实现，确保方案设计不会因阅读代码不全面而产生缺陷。

>  **重要提示：文档可能滞后于代码。当文档描述与实际代码实现存在冲突时，以代码为准。**

## 编码规范

- JSON 序列化必须使用项目封装的 `safeStringify`（位于 `src/utils/json.ts`），禁止直接使用原生 `JSON.stringify`。`safeStringify` 已通过 `src/utils/index.js` 统一导出。
- 构造输出对象时，使用 `{ ...obj }` 解构展开而非逐字段列举，避免源类型新增字段后遗漏。
