让 AI 编程不再"失忆":planning-with-files 插件完全指南

0 阅读13分钟

让 AI 编程不再"失忆":planning-with-files 插件完全指南

GitHub 暴涨 11.7k Star! 复刻 Manus 核心秘诀的开源插件,让你的 AI 编程助手拥有持久化记忆能力

planning-with-files version stars


前言:AI 编程的"失忆"困境

你是否遇到过这样的场景:

你: "帮我构建一个 Next.js 博客系统,支持 Markdown 和暗黑模式"

AI: "好的!让我开始..." [进行 50+ 次工具调用]

你: "等一下,我们的目标是支持 Markdown 吗?"

AI: "对不起,我有点迷失了...你能再提醒我一下要做什么吗?"

这就是 AI 编程助手的核心问题:

问题症状影响
易失记忆TodoWrite 工具在上下文重置后消失下次会话从头开始
目标漂移50+ 次工具调用后忘记原始目标偏离用户需求
隐藏错误失败没有被记录,反复踩坑浪费时间和 tokens
上下文堆砌所有信息塞进上下文达到 token 上限

解决方案:Manus AI 的 20 亿美元秘密

2025 年 12 月 29 日,Meta 以 20 亿美元收购了 Manus AI。这家公司在短短 8 个月内从启动到 1 亿美元营收,他们的秘密是什么?

"Markdown 是我的'工作记忆'磁盘。由于我迭代式处理信息且活跃上下文有限,Markdown 文件作为笔记的草稿纸、进度的检查点、最终交付物的构建块。" — Manus AI

核心原理:

┌─────────────────────────────────────────────────────────────┐
│                    传统模式 vs 3-File 模式                  │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  传统模式:                        3-File 模式:               │
│  ┌─────────────┐                 ┌─────────────┐            │
│  │ 上下文窗口  │ ← 堆满 →      │ 上下文窗口  │ ← 只放当前需要│
│  │  (RAM)      │                 │  (RAM)      │            │
│  └─────────────┘                 └─────────────┘            │
│         ↓                              ↓                    │
│    ❌ 易失 (volatile)              ✅ 持久 (persistent)      │
│    ❌ 有限 (limited)               ✅ 无限 (unlimited)       │
│                                                                 │
│                                   ↓                            │
│                            ┌─────────────┐                    │
│                            │ 文件系统    │                     │
│                            │  (Disk)     │                     │
│                            │ task_plan   │                     │
│                            │ findings    │                     │
│                            │ progress    │                     │
│                            └─────────────┘                     │
└─────────────────────────────────────────────────────────────┘

核心公式:

Context Window = RAM (易失、有限)
Filesystem = Disk (持久、无限)

→ 任何重要信息都写入磁盘

什么是 planning-with-files?

planning-with-files 是一个开源 Claude Code 插件,实现了 Manus AI 的三文件持久化规划模式

核心机制:3-File 模式

your-project/
├── task_plan.md    ← 阶段划分 + 进度追踪 (checkbox)
├── findings.md     ← 研究发现 + 技术决策 (知识库)
└── progress.md     ← 会话日志 + 测试结果 (时间线)

三大文件详解

文件作用更新时机示例内容
task_plan.md任务分解和进度追踪创建时 + 每次决策前Phase 1: 初始化
- [x] 创建项目
- [ ] 配置 TS
findings.md研究发现和技术决策每两次查看操作后## 技术选型
- 选择 @mdx-js/loader
- 原因:需要自定义插件
progress.md会话日志和测试结果会话结束时### 2024-02-10
- ✅ Phase 1 完成
- ⚠️ 遇到 TS 配置问题

快速上手

安装(三种方式)

方式一:Claude Code 插件市场(推荐)
# 添加插件
/plugin marketplace add OthmanAdi/planning-with-files

# 安装
/plugin install planning-with-files@planning-with-files

# 完成!现在可以使用:
/plan          # 开始规划
/plan:status   # 查看进度
方式二:手动安装到本地 skills
# macOS/Linux
cp -r ~/.claude/plugins/cache/planning-with-files/planning-with-files/*/skills/planning-with-files ~/.claude/skills/

# Windows (PowerShell)
Copy-Item -Recurse -Path "$env:USERPROFILE\.claude\plugins\cache\planning-with-files\planning-with-files\*\skills\planning-with-files" -Destination "$env:USERPROFILE\.claude\skills\"
方式三:其他 IDE
IDE支持状态安装方式
Gemini CLI✅ 完整支持Agent Skills
Cursor✅ 完整支持Skills + Hooks
OpenClaw✅ 完整支持Workspace Skills
Kiro✅ 完整支持Steering Files
Continue✅ 完整支持Skills + Prompts
Codex✅ 完整支持Personal Skill

使用方法深度解析

1. 三种启动命令

命令一:/plan - 开始新规划(推荐)
你: /plan

Claude: 太好了!让我们开始规划会话。

请描述您想要完成的任务,我会帮您:
1. 创建结构化的任务计划
2. 跟踪研究发现和中间结果
3. 记录进度和测试结果

您的任务是什么?

你: 我想用 Next.js 构建一个博客系统,需要支持 Markdown、暗黑模式和评论功能

Claude: 明白了!我将帮您构建 Next.js 博客系统。

正在创建规划文件...

✅ task_plan.md - 任务分解和进度追踪
✅ findings.md - 研究发现和技术决策
✅ progress.md - 会话日志和测试结果

现在让我们从 Phase 1 开始...
命令二:/plan:status - 查看当前进度
你: /plan:status

Claude:
┌─────────────────────────────────────────┐
│  📋 当前规划状态                        │
├─────────────────────────────────────────┤
│  任务: Next.js 博客系统                 │
│  进度: ████████░░░░░░░░ 40%             │
│                                         │
│  ✅ Phase 1: 项目初始化                 │
│  ✅ Phase 2: 基础页面                   │
│  🔄 Phase 3: Markdown 支持 (进行中)     │
│  ⏳ Phase 4: 暗黑模式                   │
│  ⏳ Phase 5: 评论系统                   │
└─────────────────────────────────────────┘
命令三:/planning-with-files:start - 传统启动
# 兼容旧版本的启动方式
/planning-with-files:start
# 或简写
/planning

2. 首次使用完整流程

Step 1: 命令触发

你: /plan

Claude: 让我们设置您的规划会话!
请描述您想要完成的任务...

Step 2: AI 分析并创建文件

Claude: 正在创建规划文件...

✅ task_plan.md - 任务分解和进度追踪
✅ findings.md - 研究发现和技术决策
✅ progress.md - 会话日志和测试结果

Step 3: 文件结构预览

your-project/
├── task_plan.md
│   ├── Phase 1: 项目初始化
│   │   ├── [ ] 创建 Next.js 项目
│   │   ├── [ ] 配置 TypeScript
│   │   └── [ ] 设置 ESLint/Prettier
│   ├── Phase 2: 基础页面
│   ├── Phase 3: Markdown 支持
│   └── ...
├── findings.md
│   └── ## 技术选型
│       - 使用 next-mdx-renderer
│       - 使用 rehype 插件
└── progress.md
    └── ### 2024-02-10 14:30
        - ✅ 创建项目骨架
        - 🔄 配置 TypeScript 中...

3. Hooks 自动化工作流(核心机制)

planning-with-files 的魔力来自三个自动触发的 Hooks:

PreToolUse Hook - 决策前重读计划
┌─────────────────────────────────────────────────────────────┐
│                     PreToolUse Hook                         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  用户操作 → Hook 触发 → 读取 task_plan.md → AI 了解进度 → 执行 │
│                                                              │
│  示例场景:                                                   │
│  ─────────────────────────────────────────────────────────  │
│  用户: "添加评论功能"                                         │
│                                                               │
│  Hook: 📋 读取 task_plan.md...                                │
│        Phase 3 还在进行中,Phase 5 是评论功能                 │
│        建议先完成 Phase 3                                     │
│                                                               │
│  AI: "我注意到 Phase 3 (Markdown 支持) 还未完成。            │
│       建议先完成 Markdown 渲染,再添加评论功能。              │
│       要继续 Phase 3 还是直接跳到 Phase 5?"                  │
│                                                              │
└─────────────────────────────────────────────────────────────┘
PostToolUse Hook - 操作后提醒保存
┌─────────────────────────────────────────────────────────────┐
                    PostToolUse Hook                         
├─────────────────────────────────────────────────────────────┤
                                                              
  AI 操作完成  Hook 检查计数  提醒保存 findings             
                                                              
  示例场景:                                                   
  ─────────────────────────────────────────────────────────  
  AI: [读取了 2 个文件]                                       
                                                               
  Hook: 📝 检测到连续 2 次查看操作                             
        建议将发现保存到 findings.md                          
                                                               
  AI: "我查看了两个文档配置文件。                              │
│       我发现 next.config.js 需要 experimental 特性。         │
│       让我将这个发现记录到 findings.md..."                    
                                                              
└─────────────────────────────────────────────────────────────┘
Stop Hook - 完成前验证
┌─────────────────────────────────────────────────────────────┐
                       Stop Hook                             
├─────────────────────────────────────────────────────────────┤
                                                              
  用户退出  Hook 触发  检查所有 Phase  生成报告            
                                                              
  示例输出:                                                   
  ─────────────────────────────────────────────────────────  
  📊 会话完成报告                                             
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                              
                                                               
  任务完成度: 60%                                             
                                                               
   已完成:                                                  
     - Phase 1: 项目初始化 (3/3)                              
     - Phase 2: 基础页面 (2/2)                                
                                                               
  🔄 进行中:                                                  
     - Phase 3: Markdown 支持 (2/4)                           
        已安装 next-mdx-renderer                             
        已配置 rehype 插件                                   
        待处理: 代码高亮                                     
        待处理: 图片优化                                     
                                                               
   未开始:                                                  
     - Phase 4: 暗黑模式                                      
     - Phase 5: 评论系统                                      
                                                               
  下次继续时使用: /plan:status                                
                                                              
└─────────────────────────────────────────────────────────────┘

最佳实践深度指南

实践 1: 任务拆分的艺术

❌ 错误拆分 - 太粗糙

## Phase 1: 开发博客
- [ ] 完成所有功能

✅ 正确拆分 - 粒度适中

## Phase 1: 项目初始化
- [ ] 创建 Next.js 项目 (使用 `npx create-next-app@latest`)
- [ ] 配置 TypeScript (启用严格模式)
- [ ] 设置 ESLint 和 Prettier
- [ ] 配置 Git (.gitignore, husky)

## Phase 2: 核心布局
- [ ] 创建 Layout 组件
- [ ] 实现响应式导航栏
- [ ] 添加暗黑模式切换
- [ ] 配置全局样式

## Phase 3: Markdown 系统
- [ ] 选择 MDX 处理器
- [ ] 实现代码高亮
- [ ] 添加图片优化
- [ ] 配置 frontmatter 解析

拆分原则:

  • 每个 Phase 2-6 个任务
  • 每个任务 30 分钟 - 2 小时可完成
  • 按逻辑依赖顺序排列
  • 使用动词开头(创建、配置、实现)

实践 2: Findings 的黄金结构

标准 findings.md 模板:

# Research Findings

## 技术选型
### MDX 处理器对比
| 方案 | 优点 | 缺点 | 结论 |
|------|------|------|------|
| next-mdx | 官方支持 | 功能有限 | ❌ 不够灵活 |
| next-mdx-enhanced | 功能丰富 | 维护较少 | ⚠️ 备选 |
| @mdx-js/loader | 生态成熟 | 配置复杂 | ✅ 选择此方案 |

**决策原因:** 需要自定义 rehype/recaka 插件

## 关键发现
### Next.js 15 Breaking Changes
- `next/image` 现在需要配置 domains
- `getStaticPaths` 改名为 `generateStaticParams`
- `next/link` 不再需要 `<a>` 包裹

### 性能优化点
- 使用 `dynamic` import 减少初始 bundle
- 图片使用 `next/image` 自动优化
- 启用 ISR 增量静态再生

## 遇到的问题
### 问题 1: MDX 代码高亮不工作
**错误:** SyntaxHighlighter 无法解析 TSX
**原因:** rehype-highlight 与 shiki 冲突
**解决:** 移除 rehype-highlight,只使用 shiki
**命令:** `npm uninstall rehype-highlight`

## 待研究事项
- [ ] 评论系统集成 (Giscus vs Utterances)
- [ ] RSS 订阅生成方案
- [ ] 搜索功能实现

Findings 书写原则:

  • ✅ 使用表格对比,一目了然
  • ✅ 记录失败原因和解决方案
  • ✅ 标注决策原因
  • ✅ 保留待办事项

实践 3: 进度记录的最佳节奏

什么时候更新 progress.md?

触发条件动作示例
完成 Phase 任务打勾并记录✅ 完成首页布局,耗时 45 分钟
遇到阻塞问题详细记录问题⚠️ ESLint 配置与 Prettier 冲突,需要解决
产生新想法记录到 findings💡 考虑使用 contentlayer 替代 MDX
发现 Bug记录复现步骤🐛 暗黑模式切换时页面闪烁
测试通过记录测试覆盖✅ 单元测试覆盖率达到 80%

进度记录模板:

### 2024-02-10 14:30 - Session 1
**目标:** 完成项目初始化

**完成事项:**
- ✅ 创建 Next.js 项目 (TypeScript 模板)
- ✅ 配置 Tailwind CSS
- ✅ 设置 Git 仓库

**遇到的问题:**
- ⚠️ TypeScript 严格模式下 props 类型报错
  - 解决: 添加 `interface Props` 定义

**时间消耗:** 1.5 小时

**下次继续:** Phase 2 - 核心布局开发

实践 4: 会话恢复的正确姿势

场景:上下文满了,执行 /clear

自动恢复流程:

Claude: 检测到之前的规划会话!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 会话恢复报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

上次活动: 2024-02-10 16:45 (2小时前)

任务进度: ████████░░░░░░░ 40%

 已完成阶段:
    Phase 1: 项目初始化 (4/4)
    Phase 2: 核心布局 (3/3)

🔄 进行中阶段:
    Phase 3: Markdown 支持 (2/4)
      MDX 处理器配置
      代码高亮设置
      图片优化 (待处理)
      Frontmatter 解析 (待处理)

💡 最近发现:
    next-mdx-enhanced 已停止维护
    考虑迁移到 @mdx-js/loader

🚧 未解决问题:
    rehype 插件与 Next.js 冲突

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

是否继续 Phase 3 的工作?

恢复后的智能建议:

Claude: 根据进度记录,我建议:

1. 优先处理 rehype 插件冲突
2. 然后完成图片优化
3. 最后实现 frontmatter 解析

要继续吗?还是想先看看 findings.md 了解之前的发现?

实践 5: 多项目并行管理

目录结构:

├── project-a/
│   ├── task_plan.md
│   ├── findings.md
│   └── progress.md
├── project-b/
│   ├── task_plan.md
│   ├── findings.md
│   └── progress.md
└── project-c/
    ├── task_plan.md
    ├── findings.md
    └── progress.md

切换项目时:

# 项目 A 工作中...
你: 切换到项目 B

Claude: 明白,切换到 project-b。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 Project-B 状态
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

上次活动: 昨天 10:30

任务进度: ████████████████░ 80%

🔄 进行中: Phase 4 - API 集成

要继续吗?先快速看一下 plan 还是 findings?

实践 6: 团队协作模式

共享 findings.md:

# Team Findings

## @Alice - 2024-02-10
发现 Vercel 部署时环境变量问题...
[详细记录]

## @Bob - 2024-02-11
修复了 Alice 的问题,需要添加 `.env.production`...

## @Charlie - 2024-02-12
基于 Alice 和 Bob 的发现,创建了部署脚本...

Git 集成最佳实践:

# .gitignore
task_plan.md.local  # 个人任务顺序
progress.md.local   # 个人进度

# Git commit 前检查
git diff task_plan.md  # 查看计划变更
git diff findings.md   # 查看新增发现

实践 7: 性能优化技巧

减少不必要的文件读取:

// Hook 优化示例
if (action === 'write_file' && file.endsWith('.md')) {
  // 只在写入 Markdown 时提醒
  remindToUpdateFindings();
}

if (action === 'run_command' && command.includes('test')) {
  // 测试命令后记录结果
  remindToLogTestResults();
}

智能缓存策略:

┌─────────────────────────────────────────────────────────────┐
│                    文件读取策略                             │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  task_plan.md    → 每次决策前读取 (PreToolUse Hook)          │
│  findings.md     → 每 2 次操作后读取 (PostToolUse Counter)   │
│  progress.md     → 会话结束时读取 (Stop Hook)                │
│                                                              │
│  避免过度读取 → 节省 tokens                                  │
│  关键时刻读取 → 确保一致性                                  │
│                                                              │
└─────────────────────────────────────────────────────────────┘

实践 8: 常见陷阱与避坑指南

陷阱症状解决方案
过度规划花 1 小时写 plan,代码没写几行10-15 分钟快速规划,边做边调整
忽视 findings重复搜索相同问题每次查资料后立即记录
checkbox 恐惧不敢开始因为任务太多先拆成 3 个大 Phase,细化再说
完美主义findings 写得像博客关键信息优先,格式可以粗糙
不检查 status忘记进度每 30 分钟 /plan:status 一次

实战对照表:传统方式 vs 3-File 模式

场景传统方式3-File 模式
中途退出❌ 下次从头解释/plan:status 快速恢复
遇到错误❌ 重复犯相同错误✅ findings.md 记录解决方案
多步任务❌ AI 忘记原始目标✅ task_plan.md 持续追踪
研究发现❌ 散落在上下文中✅ findings.md 结构化存储
进度可视化❌ 无法直观看到✅ checkbox 进度条
团队交接❌ 口头解释很累✅ 共享 findings 文档

使用场景决策树

                    开始任务
                       │
                       ▼
              ┌────────────────┐
              │ 任务是否复杂?   │
              └────────────────┘
                 │          │
                否          是
                 │          │
                 ▼          ▼
          ┌──────────┐  ┌─────────────────┐
          │ 直接执行  │  │ 是否 >3 步骤?   │
          │ 不用 plan │  └─────────────────┘
          └──────────┘     │          │
                          否          是
                           │          │
                           ▼          ▼
                    ┌──────────┐  ┌─────────────┐
                    │ 简单记录  │  │ 启动 /plan  │
                    │ todo list │  │ 3-File 模式 │
                    └──────────┘  └─────────────┘

示例判断:
• "修复一个 bug"        → 直接执行
• "添加一个按钮"        → 直接执行
• "重构一个组件"        → 简单记录
• "构建完整功能模块"    → /plan
• "研究新技术并实现"    → /plan
• "多步骤系统集成"      → /plan

社区生态与扩展

planning-with-files 已催生多个社区 Fork 项目:

项目作者特色功能
devis@st01cs面试优先工作流,/devis:intv/devis:impl 命令
multi-manus-planning@kmichels多项目支持,SessionStart git 同步
plan-cascade@Taoidle多级任务编排,并行执行,多代理协作

常见问题解答

Q: 和内置 /plan 命令有什么区别?

A: 内置命令进入 plan mode 后退出,本插件持久化到文件,支持会话恢复和进度追踪。

Q: 支持 Windows 吗?

A: 完全支持!v2.2.0 开始提供 PowerShell 脚本。

Q: 会增加很多 token 消耗吗?

A: 不会。Hooks 只在关键时刻(决策前、写文件后、退出时)读取文件,相比传统模式反而更节省 tokens。

Q: 可以自定义模板吗?

A: 可以!修改 ~/.claude/plugins/.../templates/ 下的模板文件即可。

Q: 如何查看当前进度?

A: 使用 /plan:status 命令快速查看进度报告。


快速参考卡片

╔═══════════════════════════════════════════════════════════════╗
║           planning-with-files 快速参考                        ║
╠═══════════════════════════════════════════════════════════════╣
║                                                               ║
║  🚀 启动命令                                                  ║
║     /plan          开始新规划                                ║
║     /plan:status   查看当前进度                              ║
║                                                               ║
║  📁 三个文件                                                  ║
║     task_plan.md    ← 任务分解 + checkbox 进度               ║
║     findings.md     ← 研究发现 + 技术决策                     ║
║     progress.md     ← 会话日志 + 时间记录                     ║
║                                                               ║
║  🔄 Hooks 自动化                                              ║
║     PreToolUse    → 决策前重读 plan                          ║
║     PostToolUse   → 操作后提醒保存                           ║
║     Stop          → 退出前验证完成度                         ║
║                                                               ║
║  ⚡ 关键规则                                                  ║
║     1. 先创建 Plan,再开始执行                               ║
║     2. 每两次查看操作保存 findings                           ║
║     3. 所有错误必须记录原因                                  ║
║     4. 失败后改变方法,不要重复                              ║
║                                                               ║
║  ✅ 适合场景                                                 ║
║     ✓ 多步骤任务 (3+)                                        ║
║     ✓ 研究性任务                                             ║
║     ✓ 长周期项目                                             ║
║     ✓ 多次会话完成                                           ║
║                                                               ║
║  ❌ 不适合场景                                               ║
║     ✗ 简单问答                                               ║
║     ✗ 单文件编辑                                             ║
║     ✗ 快速查找                                               ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

总结

planning-with-files 通过 Manus AI 的三文件模式,解决了 AI 编程助手的核心痛点:

  1. 持久化记忆 - 用文件系统作为 AI 的外部记忆
  2. 进度可视化 - checkbox 进度条清晰展示任务状态
  3. 自动恢复 - 上下文重置后无缝接续工作
  4. 知识沉淀 - findings.md 积累技术决策和经验
  5. ** Hooks 自动化** - 无需手动干预,智能追踪进度

核心理念:

Context Window = RAM (易失、有限)
Filesystem = Disk (持久、无限)
→ 任何重要信息都写入磁盘

立即开始:

# 一键安装
/plugin marketplace add OthmanAdi/planning-with-files
/plugin install planning-with-files@planning-with-files

# 开始你的第一个规划会话
/plan

相关链接:


文章标签: #ClaudeCode #AI编程 #开发工具 #效率提升 #Manus #上下文工程 #开源项目

如果这篇文章对你有帮助,欢迎点赞收藏,也欢迎在评论区分享你的使用经验!


作者简介: 全栈开发者,专注于 AI 辅助编程工具的研究与实践。

版权声明: 本文原创,转载请注明出处。