Skip to content

章节系统

章节(Chapter)是 NarraFork 的基本工作单元。每个章节对应一个独立的 git worktree,拥有自己的文件空间和 AI 叙述者会话。你可以把它理解为一个「带 AI 上下文的增强版 git 分支」。

章节的生命周期

一个章节从创建到结束,会经历以下状态:

创建 → 活跃(active)
        ├→ 休眠(dormant)── 唤醒 → 活跃
        ├→ 已合并(merged)── 唤醒 → 活跃
        ├→ 已废弃(abandoned)
        └→ 已冻结(frozen)
  • 活跃:正常工作状态,拥有 worktree,可以编辑代码、与 AI 对话
  • 休眠:暂时不用的章节。worktree 被删除以节省磁盘空间,但 git 分支和对话历史完整保留,随时可以唤醒
  • 已合并:代码已合并到目标章节。如果需要,也可以唤醒继续工作
  • 已冻结:拆分操作产生的前序章节,只读状态
  • 已废弃:彻底清理,worktree、分支、容器全部删除

NarraFork 还支持自动休眠 —— 当活跃的 worktree 数量超过配置上限时,会按最后访问时间自动休眠最久未使用的章节。

三种角色

每个章节有一个角色标签,用于表达它在项目中的语义定位:

角色说明
主线(trunk)项目的主干线,持续演进,接收其他章节的合并。不会被自动休眠
分支(branch)默认角色。从某个章节 fork 出来,完成后合并回去
探索(exploration)用于技术方案探索,可归入探索组进行横向对比

角色是语义标签,不限制操作能力 —— 任何角色都可以 fork、merge、cherry-pick。

Fork:分叉一个新章节

Fork 是创建新章节的主要方式。当你从一个章节 fork 时,会发生两件事:

Git 层面:

  1. 从指定的 commit 点创建新的 git 分支
  2. 为新分支创建独立的 worktree(位于 <项目>/.worktrees/<章节名>/
  3. 复制项目配置文件(如 .env 等)

AI 上下文层面: fork 时可以选择三种上下文继承模式:

模式说明适用场景
完整继承(full)新叙述者继承 fork 点之前的完整对话历史需要延续之前的讨论
压缩继承(compressed)自动生成上下文摘要注入新叙述者保留关键信息,节省 token
全新开始(fresh)新叙述者从零开始,无历史上下文想换个思路重新来

这意味着 fork 不只是代码层面的分支,AI 的记忆也跟着走。

Merge:合并章节

当一个章节的工作完成后,可以合并回目标章节。NarraFork 支持三种合并策略:

  • merge:标准三路合并,保留完整的分支历史
  • squash:将源分支的所有 commit 压缩为一个
  • cherry-pick:逐个挑选 commit 合并

合并前会自动进行冲突检测。如果存在冲突,你可以选择手动解决,也可以让 AI 叙述者辅助分析冲突并给出建议。

NarraFork 还支持批量合并 —— 将多个章节依次合并到同一个目标,遇到冲突时会暂停等待你的决策。

休眠与唤醒

休眠是 NarraFork 的资源管理机制。

休眠时:

  • 清理终端会话和文件监视
  • 自动提交未保存的更改
  • 删除 worktree 目录,释放磁盘空间
  • git 分支和所有对话历史完整保留

唤醒时:

  • 从 git 分支重建 worktree
  • 恢复到休眠前的代码状态
  • 对话历史完好无损,可以继续和 AI 叙述者交流

这让你可以同时维护大量章节而不用担心磁盘占用,需要时随时唤醒继续工作。