<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 277479420@qq.com</title>
    <description>The latest articles on DEV Community by 277479420@qq.com (@277479420qqcom_5c9aa4d3).</description>
    <link>https://dev.to/277479420qqcom_5c9aa4d3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2050046%2Fe04b5e06-8bd0-4085-bf52-4781e0062e1a.png</url>
      <title>DEV Community: 277479420@qq.com</title>
      <link>https://dev.to/277479420qqcom_5c9aa4d3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/277479420qqcom_5c9aa4d3"/>
    <language>en</language>
    <item>
      <title>Claude Code 跨会话上下文恢复：从 8 次纠正到 0 次的工程实践</title>
      <dc:creator>277479420@qq.com</dc:creator>
      <pubDate>Sun, 01 Mar 2026 14:38:59 +0000</pubDate>
      <link>https://dev.to/277479420qqcom_5c9aa4d3/claude-code-kua-hui-hua-shang-xia-wen-hui-fu-cong-8-ci-jiu-zheng-dao-0-ci-de-gong-cheng-shi-jian-27i6</link>
      <guid>https://dev.to/277479420qqcom_5c9aa4d3/claude-code-kua-hui-hua-shang-xia-wen-hui-fu-cong-8-ci-jiu-zheng-dao-0-ci-de-gong-cheng-shi-jian-27i6</guid>
      <description>&lt;p&gt;如果你用 Claude Code 做过超过一周的项目开发，大概率遇到过这个场景：&lt;/p&gt;

&lt;p&gt;上午做了一半的功能，下午开新会话继续，结果 Claude 完全不记得之前的工作。你得花 10 分钟解释项目背景、当前进度、技术决策的理由。更糟的是，解释完了它还经常理解偏——你说"继续做登录模块的 token 刷新"，它开始给你重写整个认证系统。&lt;/p&gt;

&lt;p&gt;这不是偶发问题。Claude Code 是会话级工具，每次新建会话就是一张白纸。在短期任务中这没什么，但在持续迭代的项目开发中，跨会话的上下文断裂会造成三个累积问题：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;恢复成本递增&lt;/strong&gt;：项目越复杂，每次恢复需要的解释越多&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;纠正成本递增&lt;/strong&gt;：Claude 基于不完整上下文做出错误判断的概率随项目复杂度上升&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;一致性递减&lt;/strong&gt;：同一个功能跨会话开发时，技术方案、命名风格、架构决策会产生漂移&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;我做了一个量化测试：同一个中等规模项目（十几个功能模块），3 次模拟会话中断后恢复上下文，用手动维护 CLAUDE.md 的方案需要 &lt;strong&gt;8 次人工纠正&lt;/strong&gt;，才能让 Claude 准确对齐之前的工作进度和技术决策。&lt;/p&gt;

&lt;h2&gt;
  
  
  现有方案的局限
&lt;/h2&gt;

&lt;p&gt;目前社区常见的方案有两类：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;方案 A：手动维护 CLAUDE.md&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在 CLAUDE.md 中写项目说明、技术约束、当前进度。问题是：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;你得&lt;strong&gt;记得更新它&lt;/strong&gt;——做完一个功能忘了改进度，下次就会脱节&lt;/li&gt;
&lt;li&gt;格式不统一——每次手写的粒度不一样，Claude 解析不稳定&lt;/li&gt;
&lt;li&gt;只有"是什么"没有"在哪"——知道项目用 React，但不知道 token 刷新做到哪一步了&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;方案 B：TodoWrite 任务列表&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;用 Claude 内置的 TodoWrite 跟进度。问题是：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;任务完成就消失了——没有历史上下文&lt;/li&gt;
&lt;li&gt;不处理变更——你说"这个先不做了"，TodoWrite 没有"暂停并保留工作成果"的概念&lt;/li&gt;
&lt;li&gt;没有质量保障——Claude 跳过测试或者自己审批自己的事经常发生&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;两种方案的共同问题：&lt;strong&gt;它们管的是信息，不是流程。&lt;/strong&gt; 真正需要的是项目状态的自动维护 + 流程规则的强制执行。&lt;/p&gt;

&lt;h2&gt;
  
  
  解决思路：让 Claude 自己维护项目状态
&lt;/h2&gt;

&lt;p&gt;核心设计思路有三条：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;状态自动维护&lt;/strong&gt;：每次会话结束时 Claude 自动更新项目状态文件，下次会话自动读取恢复。人不需要手动维护任何东西&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;结构化 Markdown&lt;/strong&gt;：所有状态文件是纯 Markdown，有明确的 Schema 约束。LLM 和人类都能读写，不依赖任何外部服务&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;规则驱动行为&lt;/strong&gt;：通过 Claude Code Plugin 的 Rules 机制注入行为规则，让 Claude 在特定场景下自动执行流程（创建变更请求、质量检查、等待人工审批等）&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;基于这个思路，做了 &lt;a href="https://github.com/arch-team/devpace" rel="noopener noreferrer"&gt;devpace&lt;/a&gt;——一个 Claude Code Plugin，v1.6.0，MIT 开源。&lt;/p&gt;

&lt;h2&gt;
  
  
  核心机制
&lt;/h2&gt;

&lt;h3&gt;
  
  
  双模式设计
&lt;/h3&gt;

&lt;p&gt;devpace 有两种工作模式：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore 模式&lt;/strong&gt;（默认）：自由读代码、分析、讨论。不触发任何流程，不修改状态文件。问问题、看代码时零摩擦。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advance 模式&lt;/strong&gt;（改代码时）：通过 &lt;code&gt;/pace-dev&lt;/code&gt; 触发。创建变更请求（CR），进入状态机（&lt;code&gt;created → developing → verifying → in_review → approved → merged&lt;/code&gt;），自动运行质量检查。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;你不需要主动想模式的事。问问题就是 Explore，开始实现功能就是 Advance。&lt;/p&gt;

&lt;h3&gt;
  
  
  .devpace/ 目录结构
&lt;/h3&gt;

&lt;p&gt;运行 &lt;code&gt;/pace-init&lt;/code&gt; 后生成最小状态目录：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.devpace/
├── state.md          # 项目状态快照（限制 15 行）
├── project.md        # 价值功能树：目标→功能→任务
├── backlog/          # 初始为空，开始开发后自动创建 CR 文件
│   └── CR-001.md     # （第一个任务时自动出现）
└── rules/
    ├── workflow.md   # CR 状态机规则
    └── checks.md     # 质量检查（从工具链自动检测）
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;关键：&lt;strong&gt;state.md 限制在 15 行&lt;/strong&gt;。过长的状态文件增加 token 消耗且降低恢复准确率。15 行包含：业务目标摘要、当前进行中的工作、下一步建议。&lt;/p&gt;

&lt;p&gt;11 个 Hook 管理完整的会话生命周期：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;session-start.sh&lt;/strong&gt;：读取 state.md，注入上下文。Claude 一句话报告现状。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;session-end.sh&lt;/strong&gt;：更新 state.md，记录工作进展和下一步。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pre-compact.sh&lt;/strong&gt;：上下文窗口压缩前保存状态，防止长对话丢失信息。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;intent-detect.mjs&lt;/strong&gt;：检测代码变更意图，建议进入 Advance 模式。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;渐进式披露&lt;/strong&gt;：初始化只有最小文件集。迭代文件在 &lt;code&gt;/pace-plan&lt;/code&gt; 时出现，度量文件在 &lt;code&gt;/pace-retro&lt;/code&gt; 时出现，发布文件在 &lt;code&gt;/pace-release&lt;/code&gt; 时出现。你不会看到不需要的复杂度。&lt;/p&gt;

&lt;h3&gt;
  
  
  state.md 示例
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; 目标：用户权限系统 → 成效指标：支持 RBAC + OAuth 登录&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; 迭代：ITER-002（核心权限模块）| 进度：3/5 产品功能已完成&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; &lt;span class="gs"&gt;**进行中**&lt;/span&gt;：Token 刷新机制 → 步骤 3/5：middleware 实现
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**待 Review**&lt;/span&gt;：角色权限矩阵
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**决策**&lt;/span&gt;：选择 JWT 而非 Session | Redis 缓存 Token 黑名单
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**下一步**&lt;/span&gt;：完成 middleware 后运行集成测试，然后提交 Review
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;会话开始时 Claude 读到这个，输出："上次停在 Token 刷新的 middleware 实现，角色权限矩阵在等 Review。继续？"——不输出 ID、状态机术语，只说人话。&lt;/p&gt;

&lt;h3&gt;
  
  
  三级质量门
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;级别&lt;/th&gt;
&lt;th&gt;触发时机&lt;/th&gt;
&lt;th&gt;执行者&lt;/th&gt;
&lt;th&gt;可跳过？&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gate 1&lt;/td&gt;
&lt;td&gt;开发完成 → 进入验证&lt;/td&gt;
&lt;td&gt;Claude 自动&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gate 2&lt;/td&gt;
&lt;td&gt;验证通过 → 提交审查&lt;/td&gt;
&lt;td&gt;Claude 自动&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gate 3&lt;/td&gt;
&lt;td&gt;审查 → 批准合并&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;人工审批&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;不可跳过&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Gate 3 是硬约束——写死在规则里，无论 Claude 认为变更多简单，都必须等人确认。&lt;/p&gt;

&lt;h3&gt;
  
  
  三个专业子代理
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pace-engineer&lt;/strong&gt;：处理实现（&lt;code&gt;/pace-dev&lt;/code&gt;、&lt;code&gt;/pace-test&lt;/code&gt;）。技术视角，关注代码和测试。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pace-pm&lt;/strong&gt;：处理规划和变更（&lt;code&gt;/pace-change&lt;/code&gt;、&lt;code&gt;/pace-plan&lt;/code&gt;）。业务视角，关注价值和优先级。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pace-analyst&lt;/strong&gt;：处理回顾（&lt;code&gt;/pace-retro&lt;/code&gt;）。数据视角，关注度量和趋势。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  数据对比
&lt;/h2&gt;

&lt;h3&gt;
  
  
  跨会话恢复测试
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标&lt;/th&gt;
&lt;th&gt;devpace&lt;/th&gt;
&lt;th&gt;手动 CLAUDE.md&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3 次中断后纠正次数&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 次&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;8 次&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;恢复方式&lt;/td&gt;
&lt;td&gt;自动读取 state.md&lt;/td&gt;
&lt;td&gt;手动解释&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7 维度能力对比
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;devpace&lt;/th&gt;
&lt;th&gt;手动方案&lt;/th&gt;
&lt;th&gt;TodoWrite&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;跨会话恢复&lt;/td&gt;
&lt;td&gt;自动&lt;/td&gt;
&lt;td&gt;手动&lt;/td&gt;
&lt;td&gt;无持久化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;变更管理&lt;/td&gt;
&lt;td&gt;5 种场景 + 影响分析&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;质量保障&lt;/td&gt;
&lt;td&gt;3 级质量门，人审不可跳过&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;价值追溯&lt;/td&gt;
&lt;td&gt;OBJ→BR→PF→CR 全链路&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;任务→完成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;度量能力&lt;/td&gt;
&lt;td&gt;DORA 代理指标&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;风险管理&lt;/td&gt;
&lt;td&gt;预飞行扫描 + 分级响应&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;角色适配&lt;/td&gt;
&lt;td&gt;5 种角色视角&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;总分：&lt;strong&gt;devpace 21/21&lt;/strong&gt; vs &lt;strong&gt;手动方案 7/21&lt;/strong&gt; vs &lt;strong&gt;TodoWrite 4/21&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  变更管理：核心差异化
&lt;/h2&gt;

&lt;p&gt;开发中途需求变了是常态，但现有工具都没有真正处理这个问题。&lt;/p&gt;

&lt;p&gt;devpace 的 &lt;code&gt;/pace-change&lt;/code&gt; 支持 5 种变更场景：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;场景&lt;/th&gt;
&lt;th&gt;触发方式&lt;/th&gt;
&lt;th&gt;Claude 的处理&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;需求插入&lt;/td&gt;
&lt;td&gt;"加一个 XX 功能"&lt;/td&gt;
&lt;td&gt;影响分析 → 容量评估 → 创建 CR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;需求暂停&lt;/td&gt;
&lt;td&gt;"这个先不做了"&lt;/td&gt;
&lt;td&gt;保留工作成果 → CR 暂停 → 解除依赖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;需求恢复&lt;/td&gt;
&lt;td&gt;"之前暂停的继续做"&lt;/td&gt;
&lt;td&gt;从暂停点恢复 → 检查上下文是否过期&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;优先级重排&lt;/td&gt;
&lt;td&gt;"XX 先做"&lt;/td&gt;
&lt;td&gt;重排计划 → 更新 state.md&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;需求修改&lt;/td&gt;
&lt;td&gt;"XX 的要求变了"&lt;/td&gt;
&lt;td&gt;识别返工 → 质量检查重置 → 更新验收标准&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;还支持 &lt;code&gt;undo&lt;/code&gt;（撤销上次变更）和 &lt;code&gt;batch&lt;/code&gt;（批量变更）。&lt;/p&gt;

&lt;h2&gt;
  
  
  安装与试用
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Marketplace 安装&lt;/strong&gt;（推荐）：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add arch-team/devpace
/plugin install devpace@devpace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;从源码安装&lt;/strong&gt;：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/arch-team/devpace.git
claude &lt;span class="nt"&gt;--plugin-dir&lt;/span&gt; ./devpace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;然后：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/pace-init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude 问你一个问题："用一句话描述项目做什么"。然后自动检测工具链，创建 &lt;code&gt;.devpace/&lt;/code&gt;。开始工作，关会话，开新会话。看 Claude 是否还记得。&lt;/p&gt;

&lt;h2&gt;
  
  
  局限与诚实评价
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;价值感知延迟&lt;/strong&gt;：第一个会话感受不明显，需要 2-3 次跨会话恢复才能体会&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;概念门槛&lt;/strong&gt;：BizDevOps 的价值链对不熟悉的开发者有理解成本（但日常只用 3-4 个命令）&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;适用范围&lt;/strong&gt;：不适合一次性脚本。目标是多会话持续迭代的项目&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;平台限制&lt;/strong&gt;：目前只支持 Claude Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub：&lt;a href="https://github.com/arch-team/devpace" rel="noopener noreferrer"&gt;github.com/arch-team/devpace&lt;/a&gt;&lt;br&gt;
许可：MIT | 版本：v1.6.0 | 18 Skills | 34 场景验证&lt;/p&gt;




&lt;p&gt;&lt;em&gt;一个受够了每天早上对 Claude 说三遍"不对，我们已经决定过了"的开发者做的。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai编程</category>
      <category>开源</category>
      <category>devpace</category>
    </item>
    <item>
      <title>Claude Code Keeps Forgetting Your Project? Here's a Fix</title>
      <dc:creator>277479420@qq.com</dc:creator>
      <pubDate>Sun, 01 Mar 2026 06:37:20 +0000</pubDate>
      <link>https://dev.to/277479420qqcom_5c9aa4d3/claude-code-keeps-forgetting-your-project-heres-a-fix-2c4j</link>
      <guid>https://dev.to/277479420qqcom_5c9aa4d3/claude-code-keeps-forgetting-your-project-heres-a-fix-2c4j</guid>
      <description>&lt;p&gt;You close your Claude Code session at 6 PM. You open it back up the next morning. And the first thing you type is a three-paragraph explanation of what you were doing yesterday.&lt;/p&gt;

&lt;p&gt;Sound familiar?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Claude Code is one of the most capable AI coding assistants available. It can write whole modules, refactor complex systems, and reason through architecture decisions. But it has a blind spot that costs developers real time every single day: &lt;strong&gt;it forgets everything between sessions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This isn't a bug. It's how the tool works. Claude Code operates in isolated sessions. There is no persistent project memory. No state carried over. When you start a new session, Claude sees your codebase, your &lt;code&gt;CLAUDE.md&lt;/code&gt; if you have one, and nothing else. It doesn't know what you were working on, what state your feature is in, which tests were passing, what your acceptance criteria are, or what you decided in the last three sessions.&lt;/p&gt;

&lt;p&gt;For a one-off script, this is fine. For sustained product development across days or weeks, it's a serious friction point. You end up repeating yourself. You correct Claude when it makes wrong assumptions. You re-explain decisions you already made. And every interruption — lunch break, meeting, end of day — resets the clock.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Manual Solutions Look Like (and Where They Break)
&lt;/h2&gt;

&lt;p&gt;The most common workaround is a well-crafted &lt;code&gt;CLAUDE.md&lt;/code&gt; file. You write down your project structure, conventions, current goals, maybe a list of TODOs. Some developers keep a separate notes file that they paste into the conversation at the start of each session. Others manually update a "project status" section after each work block.&lt;/p&gt;

&lt;p&gt;These approaches help — up to a point. They cover the static parts: "this is a TypeScript project, we use Vitest, here are the coding conventions." But they fail at the dynamic parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What's in progress right now?&lt;/strong&gt; A &lt;code&gt;CLAUDE.md&lt;/code&gt; doesn't update itself. By your third session, the "current work" section is stale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What are the acceptance criteria for this feature?&lt;/strong&gt; You wrote them down somewhere, but did you paste them into the context? Probably not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What's the quality gate status?&lt;/strong&gt; Did the last session's tests pass? Were there lint issues? What about the intent check — does the code match what you originally planned? Manual notes don't capture this.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What changed since last time?&lt;/strong&gt; If you or someone else pushed commits between sessions, your manual context is now out of sync with reality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fundamental issue is maintenance. Keeping manual context accurate requires effort proportional to your project's complexity. And the whole point of using an AI coding assistant is to reduce effort, not create new bookkeeping tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens When Context Is Actually Maintained
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://github.com/arch-team/devpace" rel="noopener noreferrer"&gt;devpace&lt;/a&gt;, a Claude Code plugin, partly to solve this problem. The core idea is simple: maintain project state as plain Markdown files in a &lt;code&gt;.devpace/&lt;/code&gt; directory, and have Claude read them automatically at every session start.&lt;/p&gt;

&lt;p&gt;But instead of just claiming it works, let me show you numbers from an actual comparison test.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Test Setup
&lt;/h3&gt;

&lt;p&gt;I took the same project and ran it through three deliberate interruption points — simulating a developer closing their laptop, taking a call, switching projects, and coming back. I ran this twice: once with devpace managing the state, once with a manually maintained &lt;code&gt;CLAUDE.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;At each interruption recovery, I counted how many times I had to correct Claude's understanding of the project state. A "correction" means Claude either assumed something wrong, forgot something important, or started working in the wrong direction.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Results
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;devpace: 0 user corrections across 3 interruption points.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual approach: 8 user corrections across 3 interruption points.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eight times I had to stop Claude and say "no, that's not where we were" or "we already decided against that approach" or "the acceptance criteria require X, not Y."&lt;/p&gt;

&lt;p&gt;But the raw correction count only tells part of the story. I also ran a 7-dimension analysis comparing what each approach actually preserved across sessions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;devpace (auto)&lt;/th&gt;
&lt;th&gt;Manual CLAUDE.md&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;D1: Current work status&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D2: Feature context (what and why)&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D3: Acceptance criteria state&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Fail&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D4: Quality gate status&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Fail&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D5: Decision history&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D6: Dependency/blocker state&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D7: Next step recommendation&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Fail&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;devpace scored 21/21. Manual scored 7/21.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The critical gap is D3 and D4. Acceptance criteria and quality gate state are completely uncovered by manual approaches. No developer is going to manually write "Gate 1 passed, Gate 2 pending, lint passed on 14 files, type check failed on auth.ts line 42" in their &lt;code&gt;CLAUDE.md&lt;/code&gt; after every session. It's too granular, too tedious, and too easy to forget. But that's exactly the information Claude needs to resume work without false starts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How devpace Does It
&lt;/h2&gt;

&lt;p&gt;devpace is a Claude Code plugin with 18 skills, 11 automated hooks, and 3 specialized sub-agents. But for cross-session continuity, only a few pieces matter:&lt;/p&gt;

&lt;h3&gt;
  
  
  Two Work Modes
&lt;/h3&gt;

&lt;p&gt;devpace operates in two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore mode&lt;/strong&gt; (default): Claude freely reads, analyzes, and discusses your code. No process triggered, no state files modified. This is important — devpace doesn't get in your way when you're just asking questions or exploring ideas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advance mode&lt;/strong&gt; (when changing code): Triggered by &lt;code&gt;/pace-dev&lt;/code&gt;. Claude creates a Change Request (CR), tracks progress through a state machine (&lt;code&gt;created → developing → verifying → in_review → approved → merged&lt;/code&gt;), and runs quality checks automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't have to think about modes. Ask a question, you're in Explore. Start implementing, you're in Advance. The overhead is zero until you actually need the structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  The State Files
&lt;/h3&gt;

&lt;p&gt;When you run &lt;code&gt;/pace-init&lt;/code&gt;, devpace creates a minimal &lt;code&gt;.devpace/&lt;/code&gt; directory:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.devpace/
├── state.md          ← Session anchor (capped at 15 lines)
├── project.md        ← Value-feature tree: goals → features → tasks
├── backlog/          ← Empty at init, CRs auto-created as you work
│   └── CR-001.md     ← (appears when you start your first task)
└── rules/
    ├── workflow.md   ← CR state machine
    └── checks.md     ← Quality checks (auto-detected from your toolchain)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;state.md&lt;/code&gt; is the key file for cross-session continuity. It's capped at 15 lines — not a brain dump but a structured checkpoint containing your current goal, active work, and next step. Eleven hooks manage the session lifecycle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;session-start.sh&lt;/code&gt;&lt;/strong&gt;: Reads &lt;code&gt;state.md&lt;/code&gt;, injects context. Claude reports one sentence on the current situation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;session-end.sh&lt;/code&gt;&lt;/strong&gt;: Updates &lt;code&gt;state.md&lt;/code&gt; with what's in progress and what comes next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;pre-compact.sh&lt;/code&gt;&lt;/strong&gt;: Saves state before context window compaction, so nothing is lost when the conversation gets long.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;intent-detect.mjs&lt;/code&gt;&lt;/strong&gt;: Detects when you're about to change code and suggests entering Advance mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is Markdown. You can read it, edit it, commit it to git, diff it. No proprietary formats, no external services, no database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three Quality Gates
&lt;/h3&gt;

&lt;p&gt;When you're in Advance mode, every CR passes through three gates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gate 1&lt;/strong&gt; (developing → verifying): Code quality checks and requirement completeness. Claude handles this autonomously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gate 2&lt;/strong&gt; (verifying → in_review): Integration checks and intent consistency — does the code match what you originally asked for? Also autonomous.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gate 3&lt;/strong&gt; (in_review → approved): &lt;strong&gt;Human approval required.&lt;/strong&gt; This is an iron rule in devpace — Claude cannot bypass it. You review the work, approve or reject, and only then does the CR merge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters for cross-session continuity because gate status is tracked in each CR file. When you resume a session, Claude knows exactly which gates passed, which are pending, and what needs your attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three Sub-Agents
&lt;/h3&gt;

&lt;p&gt;devpace routes work to specialized sub-agents, each with a distinct perspective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pace-engineer&lt;/strong&gt;: Handles implementation (&lt;code&gt;/pace-dev&lt;/code&gt;, &lt;code&gt;/pace-test&lt;/code&gt;). Thinks in code, tests, and technical constraints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pace-pm&lt;/strong&gt;: Handles planning and changes (&lt;code&gt;/pace-change&lt;/code&gt;, &lt;code&gt;/pace-plan&lt;/code&gt;). Thinks in business value, priorities, and scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pace-analyst&lt;/strong&gt;: Handles retrospectives (&lt;code&gt;/pace-retro&lt;/code&gt;). Thinks in metrics, trends, and process improvements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you say "add SSO support," pace-pm assesses the impact on existing work before pace-engineer starts coding. This prevents the chaos of requirements changing mid-build — which is a separate article's worth of content.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 30-Second Experience
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# First time (once per project)
/pace-init my-app

# Claude asks one question: "Describe what this project does in one sentence."
# Then auto-detects your toolchain, creates .devpace/, injects into CLAUDE.md.
# Done. Start working:

"Help me implement user authentication"
# Claude enters Advance mode, creates CR-001, writes code, runs quality checks

# --- session break ---

# Next session, Claude reports:
# "Last session stopped at auth module, JWT refresh token pending. Continue?"

"continue"
# Picks up exactly where it left off. No re-explanation.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For existing projects with a PRD or requirements doc:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/pace-init --from prd.md
# Parses your doc → generates a goal-feature-task tree → you confirm → start working
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key design principle is &lt;strong&gt;progressive disclosure&lt;/strong&gt;. At init, you get a minimal &lt;code&gt;.devpace/&lt;/code&gt; with just &lt;code&gt;state.md&lt;/code&gt;, &lt;code&gt;project.md&lt;/code&gt;, and an empty &lt;code&gt;backlog/&lt;/code&gt;. Features appear only when you need them: iteration files appear when you run &lt;code&gt;/pace-plan&lt;/code&gt;, metrics when you run &lt;code&gt;/pace-retro&lt;/code&gt;, release tracking when you run &lt;code&gt;/pace-release&lt;/code&gt;. You never see complexity you haven't asked for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Isn't
&lt;/h2&gt;

&lt;p&gt;devpace is not a CI/CD platform. It's not a replacement for GitHub Issues or Jira. It doesn't have a web dashboard or team collaboration features. It's a plugin that runs inside Claude Code and maintains the project state that Claude needs to work autonomously across sessions.&lt;/p&gt;

&lt;p&gt;It does more than just cross-session continuity — there's change management (&lt;code&gt;/pace-change&lt;/code&gt; with 9 sub-commands including undo and batch), iteration planning, DORA metric proxies, risk scanning, and a full traceability chain from business goals to code. But the cross-session problem is the entry point. It's the pain you feel every morning.&lt;/p&gt;

&lt;p&gt;Honest caveats: it's opinionated about workflow (a BizDevOps-inspired value chain from business goals to code), and the full 18-skill surface has a learning curve. But day-to-day you really only use 3–4 commands: &lt;code&gt;/pace-init&lt;/code&gt;, &lt;code&gt;/pace-dev&lt;/code&gt;, &lt;code&gt;/pace-status&lt;/code&gt;, and &lt;code&gt;/pace-next&lt;/code&gt;. The rest is there when you need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Marketplace install&lt;/strong&gt; (recommended):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add arch-team/devpace
/plugin install devpace@devpace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;From source&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/arch-team/devpace.git
claude &lt;span class="nt"&gt;--plugin-dir&lt;/span&gt; ./devpace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/pace-init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll see a &lt;code&gt;.devpace/&lt;/code&gt; directory appear with your project's state files. Work for a while, close the session, open a new one. See if Claude remembers.&lt;/p&gt;

&lt;p&gt;The repo is MIT licensed and open source: &lt;a href="https://github.com/arch-team/devpace" rel="noopener noreferrer"&gt;github.com/arch-team/devpace&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the full feature set: &lt;a href="https://github.com/arch-team/devpace/blob/main/docs/user-guide.md" rel="noopener noreferrer"&gt;User Guide&lt;/a&gt; | &lt;a href="https://github.com/arch-team/devpace/blob/main/examples/todo-app-walkthrough.md" rel="noopener noreferrer"&gt;End-to-end walkthrough&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by a developer tired of saying "no, we already decided that" to Claude for the third time in one morning.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>devtools</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
