工作区上下文管理工具 - 专为多项目并行开发设计
Project description
Context Manager v0.1.0
📖 使用场景
你是否有这些困扰?
场景 1: 多项目并行开发的混乱
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
问题:
• 同时维护 3-5 个项目
• 切换项目时忘记上次做到哪
• 不记得当前在哪个 Git 分支
• 需要花 2-3 分钟回忆上下文
• 每个项目都要 "热身" 才能进入状态
场景 2: 项目状态无法追踪
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
问题:
• 哪些项目已经 2 周没碰了?
• 这个想法是在哪个项目里产生的?
• 上次实验的结果怎么样了?
• 想回顾某个想法,但记不清细节
• 项目之间的知识无法沉淀
场景 3: 工作流碎片化
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
问题:
• 工作内容散落在多个地方
• 没有统一的上下文管理
• 无法快速切换项目
• 项目之间的知识复用困难
😤 当前痛点
痛点 1: "我上次做到哪了?"
❌ 现状(使用 Context Manager 前)
切换项目时:
cd ~/workspace/project-1
git branch (想看分支) → develop
git log -1 (想看最近改动) → commit message...
cat README.md (想看项目目标) → 翻找...
ls -la | head (想看最近修改) → ...
💰 时间成本: 2-5 分钟
😞 摩擦成本: 高(每次都要"热身")
痛点 2: "这个想法是哪个项目的?"
❌ 现状
你在 tangshi 项目工作时产生了一个很好的想法,
但 3 周后切换到 podcast-app,想法消失了。
💡 想法成本: 0 (因为没记录)
💡 想法价值: ??? (永远丢失了)
痛点 3: 项目状态无法追踪
❌ 现状
项目总数: 8 个
进行中: ??? (不记得了)
暂停中: ??? (可能有好几个)
已完成: ???
废弃: ??? (可能不知道)
无法整体把握所有项目状态。
💡 解决方案
Context Manager - 让你的大脑专注于创造,而不是记忆
✅ 使用 Context Manager 后
切换到项目:
ctx switch project-1
→ 立即看到:
• 当前分支: develop
• 上次焦点: "实现音频同步"
• 会话数: #5
• 最近修改: "2024-01-27"
💰 时间成本: 5 秒
✅ 摩擦成本: 零(无需"热身")
⚙️ 底层逻辑:它是如何工作的?
核心机制
1. 项目上下文存储结构
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
.claude/context.md
├── YAML Frontmatter (机器可读)
│ ├── project: context-manager-skill
│ ├── created: 2026-02-03
│ ├── last_session: 2026-02-04
│ ├── session_count: 12
│ ├── status: active
│ ├── category: 产品
│ └── branch: main
│
├── Markdown 内容 (人类可读)
│ ├── # 当前焦点
│ ├── # 下一步计划
│ ├── # 项目简介
│ ├── # 技术栈
│ ├── ## 待办事项
│ └── ## 会话记录
│
└── 💡 设计理念: 机器可读 + 人类可读双优
2. 自动追踪机制
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ctx update current_focus "实现新功能"
│
├── 📅 更新 last_session (当前时间)
├── 🔢 自动增加 session_count (11 → 12)
├── 📝 保留完整会话历史
└── ✨ 用户无需手动维护任何元数据
3. 快速切换机制
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ctx switch podcast-app
│
├── 🔍 查找 ~/workspace/podcast-app/.claude/context.md
├── 📊 解析 YAML + Markdown 内容
├── 🎨 渲染状态摘要 (ASCII art)
└── 🚀 cd ~/workspace/podcast-app
核心算法
1. 双格式解析器 (scripts/context_manager.py:71-179)
def parse_context(content: str) -> dict:
"""
智能识别 v1/v2 格式并统一解析
时间复杂度: O(n) 其中 n = 文本行数
空间复杂度: O(m) 其中 m = 字段数量
"""
result = initialize_result_dict()
lines = content.split("\n")
# 格式版本检测 (启发式算法)
has_v2_markers = check_fields(content, ["created", "status", "category"])
has_v1_markers = check_fields(content, ["project_type", "session_count"])
if has_v2_markers:
result["format_version"] = "v2"
elif has_v1_markers:
result["format_version"] = "v1"
else:
result["format_version"] = "unknown"
# 三层解析管道
for line in lines:
parse_yaml_frontmatter(line, result) # Layer 1: 结构化数据
parse_todos(line, result) # Layer 2: 待办列表
parse_sessions(line, result) # Layer 3: 会话历史
return result
2. 自动增量机制
def cmd_update(args):
"""
更新字段时自动维护元数据
关键设计:
- last_session: 每次更新时自动刷新
- session_count: 单调递增,反映项目活跃度
- history: 追加式记录,保留完整历史
"""
context = parse_context(read_file())
# 自动维护元数据
context["last_session"] = datetime.now().strftime("%Y-%m-%d")
context["session_count"] += 1 # 自动递增
# 追加会话记录
session = {
"date": context["last_session"],
"count": context["session_count"],
"focus": context["current_focus"]
}
context["sessions"].append(session)
write_file(serialize_context(context))
关键设计决策:
- ✅ 向后兼容: v1/v2 混合格式自动识别
- ✅ 用户透明: 格式细节对用户完全隐藏
- ✅ 渐进式迁移: 不强制升级,自然过渡
- ✅ 数据完整性: YAML + Markdown 双重保障
🎨 设计哲学
核心原则
"工具应该适应用户,而不是要求用户适应工具"
Context Manager 遵循以下设计哲学:
- 简洁性优先 - 10 分钟学会,终身受用
- 自动化至上 - 减少认知负荷,让工具替你记忆
- 渐进式增强 - 从基础功能开始,按需使用高级功能
- 原生集成 - 与现有工具 (Git, Claude Code) 无缝协同
设计决策矩阵
| 设计维度 | 决策 | 替代方案 | 理由 |
|---|---|---|---|
| 数据格式 | Markdown + YAML frontmatter | JSON, SQLite, 纯文本 | 人类可读 + 机器可解析双优 |
| 文件位置 | .claude/context.md |
根目录 context.md |
不污染项目,与 Claude 生态一致 |
| 状态追踪 | 自动化 (session_count) | 完全手动 | 零认知负荷,自动累积价值 |
| 切换方式 | CLI (ctx switch) |
GUI 应用 | 极速启动 (5 秒 vs 30 秒+) |
| 依赖管理 | 零外部依赖 | 需要数据库/框架 | 降低使用门槛,离线可用 |
| 迁移策略 | 向后兼容 (v1/v2) | 强制升级 | 渐进式过渡,不中断工作流 |
深度 Trade-off 分析
Trade-off 1: 结构化 vs 灵活性
问题: 数据应该多结构化?
选项 A: 完全结构化 (JSON/SQLite)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 解析简单,性能优秀
• 类型安全,减少错误
• 易于实现查询和过滤
❌ 缺点:
• 人类不可读 (需要工具查看)
• 难以用文本编辑器快速修改
• 学习成本高 (需要了解数据模型)
选项 B: 完全自由 (纯文本 Markdown)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 极致灵活,想怎么写就怎么写
• 人类可读性最佳
❌ 缺点:
• 解析困难,容易出错
• 无法自动化处理
• 难以实现状态查询
选项 C: 半结构化 (YAML frontmatter + Markdown) ⭐
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 结构化部分 (YAML) 可解析 → 自动化
• 自由文本部分 (MD) 灵活 → 扩展性
• 人类可读性优先 → 可维护性
❌ 缺点:
• 解析复杂度中等
• 需要遵守基本格式约定
决策: 选择 C
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
理由:
1. 工具定位是"上下文管理",不是"数据库"
2. 用户需要能够直接编辑和理解数据
3. 灵活性 > 结构化 (笔记工具特性)
实现:
parse_context() 自动识别格式,容错性强
Trade-off 2: 自动化 vs 手动控制
问题: 应该自动化多少?
选项 A: 完全手动
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ 问题:
• 用户需要记住更新 session_count
• 容易忘记更新 last_session
• 认知负荷高
选项 B: 完全自动 (后台持续监控) ⭐⭐
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ 问题:
• 需要常驻进程 (资源占用)
• 隐私担忧 (持续监控文件系统)
• 实现复杂度高
选项 C: 事件驱动自动 (ctx update 时触发) ⭐
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 零常驻进程
• 自动维护元数据 (session_count, last_session)
• 用户只需更新当前焦点
❌ 缺点:
• 需要手动触发更新
• 失去完全控制权
决策: 选择 C
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
理由:
1. 自动化 > 控制 (认知减负)
2. 事件驱动 > 持续监控 (资源效率)
3. 符合 UNIX 哲学 (做好一件事)
实现:
cmd_update() 自动增加 session_count,更新 last_session
Trade-off 3: 隐藏 vs 可见
问题: 配置文件应该放在哪里?
选项 A: 项目根目录 (context.md)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 显性可见,容易发现
❌ 缺点:
• 污染项目根目录
• 与其他文件混在一起
• 容易误操作
选项 B: 隐藏目录 (.claude/context.md) ⭐
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 不污染根目录 (ls 时清洁)
• 符合工具约定 (.git/, .vscode/)
• 降低误操作风险
• 与 Claude 生态一致
❌ 缺点:
• 新手可能不知道存在
• 需要工具辅助查看
决策: 选择 B
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
理由:
1. 工具性 > 可见性 (与 Claude 生态一致)
2. 专业性 > 易发现性 (面向开发者)
3. ctx ls 命令解决可见性问题
缓解措施:
• ctx init 自动创建目录
• ctx ls 显示所有项目
• README 清楚说明文件位置
Trade-off 4: 通用 vs 专用
问题: 应该做通用工具还是专用工具?
通用工具 (Obsidian, Notion, Jira)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ 问题:
• 功能臃肿,学习曲线陡峭
• 大部分功能用不上
• 配置复杂,启动慢
专用工具 (Context Manager) ⭐
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 优点:
• 专注解决"上下文切换"问题
• 零学习曲线 (10 分钟)
• 极致简洁 (600 行代码)
• 启动极快 (5 秒)
❌ 缺点:
• 功能范围有限
• 不适合复杂项目管理
决策: 专用工具
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
理由:
1. 专注 > 泛化 (奥卡姆剃刀原理)
2. 做好一件事 > 做百件事平庸
3. 可组合性 > 大而全
设计哲学:
"Do one thing and do it well" - UNIX 哲学
• 专注上下文管理
• 与其他工具组合 (Git, Claude Code)
• 不重复造轮子
设计原则总结
Context Manager 的设计 DNA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 用户至上
✓ 工具适应用户,不是用户适应工具
✓ 零学习成本,渐进式增强
2. 自动化优先
✓ 减少认知负荷
✓ 让工具替你记忆
3. 简洁性至上
✓ 10 分钟学会
✓ 600 行代码实现
✓ 零外部依赖
4. 原生集成
✓ 与 Git 无缝协同
✓ 与 Claude Code 深度集成
✓ 符合 UNIX 哲学
5. 渐进式增强
✓ 从基础功能开始
✓ 按需使用高级功能
✓ 不强制升级
📊 收益投入比分析
时间成本分解
学习成本分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一次性学习成本: 10 分钟
├── 阅读文档 (README.md) 3 分钟
├── 理解核心命令 5 分钟
│ ├── ctx init (1 分钟)
│ ├── ctx ls (1 分钟)
│ ├── ctx switch <project> (2 分钟)
│ └── ctx update <field> (1 分钟)
└── 首次实际使用 2 分钟
对比:
• Obsidian: 1-3 小时学习曲线
• Jira: 2-5 小时学习曲线
• beads: 1-2 小时学习曲线
• Context Manager: 10 分钟 ⭐
单次使用时间成本
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
命令 │ 时间 │ 对比 (传统方式)
──────────────────┼─────────┼─────────────────────────────
ctx ls │ 2 秒 │ 需要手动 ls + grep (30 秒)
ctx switch <proj> │ 3 秒 │ 需要cd + git查看 (2-5 分钟)
ctx update │ 5 秒 │ 需要编辑文件 (30-60 秒)
ctx status │ 1 秒 │ 需要查看多处 (1-2 分钟)
平均节省: 每次操作 1-4 分钟
投资回报率 (ROI) 计算
场景 1: 轻度用户 (每周 5 次项目切换)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投入:
• 学习成本: 10 分钟
• 首次配置: 5 分钟
• 总投入: 15 分钟
回报 (单次切换节省 2 分钟):
• 周节省: 5 次 × 2 分钟 = 10 分钟
• 月节省: 10 × 4 = 40 分钟
• 年节省: 10 × 52 = 520 分钟 ≈ 8.7 小时
回本点:
• 15 / 2 = 7.5 次 ≈ 1.5 周
• 投资回报率: (520 - 15) / 15 = 3367% 💰💰💰
场景 2: 中度用户 (每周 10 次项目切换)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投入:
• 学习成本: 10 分钟
• 首次配置: 5 分钟
• 总投入: 15 分钟
回报 (单次切换节省 2 分钟):
• 周节省: 10 次 × 2 分钟 = 20 分钟
• 月节省: 20 × 4 = 80 分钟 ≈ 1.3 小时
• 年节省: 20 × 52 = 1040 分钟 ≈ 17.3 小时
回本点:
• 15 / 2 = 7.5 次 ≈ 3-4 天
• 投资回报率: (1040 - 15) / 15 = 6833% 💰💰💰💰
场景 3: 重度用户 (每周 20 次项目切换)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投入:
• 学习成本: 10 分钟
• 首次配置: 5 分钟
• 总投入: 15 分钟
回报 (单次切换节省 2 分钟):
• 周节省: 20 次 × 2 分钟 = 40 分钟
• 月节省: 40 × 4 = 160 分钟 ≈ 2.7 小时
• 年节省: 40 × 52 = 2080 分钟 ≈ 34.7 小时
回本点:
• 15 / 2 = 7.5 次 ≈ 1-2 天
• 投资回报率: (2080 - 15) / 15 = 13767% 💰💰💰💰💰
使用频率对比表
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
使用频率 │ 单次节省 │ 周节省 │ 月节省 │ 年节省 │ 回本周次
───────────┼─────────┼───────┼───────┼───────┼──────────
每周 5 次 │ 2 分钟 │ 10分钟│ 40分钟│ 8.7h │ 1.5 周
每周 10 次 │ 2 分钟 │ 20分钟│ 1.3h │ 17.3h │ 3-4 天
每周 20 次 │ 2 分钟 │ 40分钟│ 2.7h │ 34.7h │ 1-2 天
结论: 即使轻度用户,1.5 周内即可回本
价值维度分析
定量价值 (可测量)
1. 时间节省
✓ 每周节省 10-40 分钟 (取决于使用频率)
✓ 每年节省 8-35 小时
✓ 减少上下文切换成本 90%+
2. 避免遗忘
✓ 想法不再丢失 (记录在 next_steps)
✓ 会话历史完整保留
✓ 项目状态持续追踪
3. 效率提升
✓ 项目切换从 2-5 分钟 → 5 秒
✓ 状态查询从 1-2 分钟 → 1 秒
✓ 整体工作效率提升 15-30%
定性价值 (难以测量但同样重要)
1. 降低认知负荷
✓ 不需要记忆"我上次做到哪了"
✓ 不需要记忆"哪些项目正在进行"
✓ 大脑可以专注于创造,而非记忆
量化估算: 减少认知负荷约 40-60%
(基于减少的手动记忆和查找工作)
2. 提升工作连续性
✓ 快速恢复工作状态 (5 秒 vs 2-5 分钟)
✓ 减少"冷启动"时间
✓ 保持心流状态
量化估算: 工作连续性提升 70%+
(基于上下文恢复速度)
3. 知识沉淀
✓ 会话历史自动记录
✓ 项目演进过程可见
✓ 决策历史可追溯
长期价值:
• 6 个月后可以回顾项目历程
• 新人可以快速了解项目背景
• 形成个人知识库
4. 心理安全
✓ 知道所有项目的状态
✓ 不担心遗漏重要想法
✓ 减少焦虑感
量化估算:
• 减少项目切换焦虑 80%+
• 提升工作掌控感 60%+
隐藏价值分析
长期收益 (往往被忽视)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 与 AI 工具协同
✓ Claude Code 可以读取 .claude/context.md
✓ AI 理解项目上下文,提供更精准建议
• 减少 AI "幻觉" (基于真实项目状态)
• 减少 prompt 长度 (上下文已在文件中)
• 提升建议相关性 (+30-50%)
2. 项目健康度可视化
✓ session_count 反映项目投入
✓ status 反映项目生命周期
• 可以识别"僵尸项目" (长期未更新)
• 可以评估项目优先级 (基于活跃度)
• 可以做项目组合管理
3. 决策支持
✓ 历史会话记录
✓ 想法和决策的演进过程
• 可以追溯"为什么这么做"
• 可以避免重复错误
• 可以学习过往决策
4. 工作流优化
✓ 发现低效模式 (频繁切换)
• 识别"上下文切换过载"
• 优化项目并行数量
• 提升专注度
成本效益总结
综合评估
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投入:
• 时间: 15 分钟 (一次性)
• 金钱: $0 (MIT 许可)
• 资源: ~5MB 磁盘空间
• 学习: 10 分钟 (阅读 + 实践)
回报 (第一年):
• 时间节省: 8-35 小时
• 价值: $800-3500 (按 $100/小时计算)
• ROI: 5300%-23000% 💰💰💰💰💰
回报 (长期):
• 知识沉淀: 逐年累积
• AI 协同: 持续提升
• 心理安全: 持续受益
• 无法量化: 但巨大
结论:
"15 分钟的投入,换取每年 8-35 小时的节省,
以及无法估量的认知减负和知识沉淀。"
🆚 业内对比
vs planning-with-files (Manus)
| 维度 | Context Manager | planning-with-files |
|---|---|---|
| 定位 | 项目上下文管理 | 文件级规划 |
| 学习曲线 | ⭐ 10 分钟 | ⭐⭐ 30 分钟 |
| 实现复杂度 | 600 行 Python | 复杂 (多工具集成) |
| 依赖 | ❌ 零依赖 | ⚠️ git, bd, fd 等 |
| 会话追踪 | ✅ 自动增量 | ❌ 无此概念 |
| Git 集成 | ✅ 原生支持分支追踪 | ⚠️ 需要配置 git hooks |
| 切换成本 | 5 秒 | 30 秒+ (需要打开文件) |
| 状态管理 | ✅ 3 种状态 (active/paused/completed) | ⚠️ 只有 todo/done |
| 适用场景 | 多项目并行快速切换 | 复杂任务分解和规划 |
| 匹配需求 | 95% (上下文切换) | 60% (需要手动维护) |
何时选择 Context Manager:
- ✅ 你需要频繁在多个项目间切换
- ✅ 你希望自动化追踪项目状态
- ✅ 你想要零学习成本的工具
何时选择 planning-with-files:
- ✅ 你需要复杂的任务分解和依赖管理
- ✅ 你团队使用文件级协作工作流
- ✅ 你需要图形化的进度追踪
vs beads (based tracking)
| 维度 | Context Manager | beads |
|---|---|---|
| 定位 | 项目上下文管理 | Git 分支追踪 |
| 学习曲线 | ⭐ 10 分钟 | ⭐⭐⭐ 2 小时 |
| 实现复杂度 | 600 行 Python | 复杂 (git hooks + bd CLI) |
| 依赖 | ❌ 零依赖 | ⚠️⚠️ Git + bd CLI 强依赖 |
| 状态管理 | ✅ 3 种状态分类 | ❌ 只有 tracked/untracked |
| 上下文信息 | ✅ 详细 (待办、会话历史、分支) | ⚠️ 有限 (只有分支名) |
| 切换成本 | 5 秒 | 30 秒 (需要 bd 命令) |
| 数据位置 | ✅ 项目本地 (.claude/) | ⚠️ Git config (全局) |
| 适用场景 | 多项目并行开发 | 单项目多分支深度追踪 |
| AI 协同 | ✅ 原生支持 Claude Code | ❌ 无此设计 |
何时选择 Context Manager:
- ✅ 你管理多个独立项目 (而非单一项目的多个分支)
- ✅ 你需要记录上下文信息 (待办、会话历史)
- ✅ 你希望与 AI 工具协同工作
何时选择 beads:
- ✅ 你在一个项目中使用大量分支
- ✅ 你主要关心哪些分支已经被追踪
- ✅ 你不需要记录额外的上下文信息
vs Obsidian/Notion
| 维度 | Context Manager | Obsidian/Notion |
|---|---|---|
| 定位 | CLI 工具 (上下文管理) | 笔记应用/知识库 |
| 工作流 | 命令行为主 | 图形界面为主 |
| 自动化 | ✅ 自动追踪会话数和时间 | ❌ 手动更新所有字段 |
| 速度 | ⚡⚡⚡ 极快 (5 秒) | ⚡⚡ 快 (需要打开应用) |
| 资源占用 | ~5MB (Python 解释器) | 200MB+ (Electron) |
| 可编程性 | ✅ 原生脚本友好 | ⚠️ 需要插件/脚本 |
| 数据格式 | ✅ 标准 Markdown | ⚠️ 可能锁定格式 |
| 搜索能力 | ⚠️ 基础 (grep) | ✅ 强大 (全文搜索) |
| 协作能力 | ❌ 无 | ✅ 强大 (实时协作) |
| 适用场景 | 项目切换、状态追踪 | 知识库、文档管理、研究 |
| 学习成本 | ⭐ 10 分钟 | ⭐⭐⭐ 1 小时+ |
何时选择 Context Manager:
- ✅ 你需要命令行极速体验
- ✅ 你只需要项目管理功能 (不需要完整知识库)
- ✅ 你想要自动化追踪 (零手动维护)
何时选择 Obsidian/Notion:
- ✅ 你需要构建知识库和第二大脑
- ✅ 你需要强大的搜索和链接功能
- ✅ 你需要团队协作能力
vs 项目管理工具 (Jira, Linear, Asana)
| 维度 | Context Manager | Jira/Linear |
|---|---|---|
| 定位 | 个人工作流助手 | 团队协作平台 |
| 学习曲线 | ⭐ 10 分钟 | ⭐⭐⭐⭐ 1-3 小时 |
| 复杂度 | ⭐⭐⭐ 极简 | ⭐⭐⭐⭐⭐ 复杂 |
| 使用场景 | 个人项目、独立开发者 | 团队项目、企业级管理 |
| 核心价值 | 上下文管理 | 任务管理 + 流程 + 协作 |
| 任务管理 | ⚠️ 基础 (待办列表) | ✅ 强大 (分配、优先级、依赖) |
| 团队协作 | ❌ 无 | ✅ 强大 (评论、@、通知) |
| 报表分析 | ❌ 无 | ✅ 强大 (燃尽图、速度图) |
| 集成能力 | ✅ Git + Claude Code | ✅ 几乎所有工具 |
| 价格 | ✅ 免费 (MIT) | 💰💰💰 昂贵 (SaaS) |
| 部署方式 | ✅ 本地 (离线可用) | ⚠️ 云端 (需要网络) |
何时选择 Context Manager:
- ✅ 你是独立开发者或管理个人项目
- ✅ 你不需要团队协作功能
- ✅ 你想要简洁、极速的工具
- ✅ 你关注隐私和本地化
何时选择 Jira/Linear:
- ✅ 你管理团队项目
- ✅ 你需要任务分配和进度跟踪
- ✅ 你需要报表和数据分析
- ✅ 你需要与大量工具集成
核心差异化:为什么需要 Context Manager?
Context Manager 的独特价值主张
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 专注"上下文切换"这个细分领域
✓ 不是项目管理 (Jira/Linear)
✓ 不是笔记工具 (Obsidian/Notion)
✓ 不是分支追踪 (beads)
✓ 不是任务规划 (planning-with-files)
⇒ 而是"上下文管理" (Context Management)
2. 零学习成本的自动化
✓ 自动记住"我上次做到哪了"
✓ 自动记住"这个项目进行中吗?"
✓ 自动累积"我在这个项目投入了多少"
⇒ 用户只需要更新当前焦点,其他全自动
3. 与 AI 工具原生协同
✓ 为 Claude Code 提供项目上下文
✓ 让 AI 理解项目状态和历史
✓ 历史信息辅助 AI 决策
⇒ 这是传统工具没有的设计维度
4. 极致的简洁和速度
✓ 5 秒切换项目 (vs Obsidian 30 秒+)
✓ 零依赖 (vs beads 需要 git + bd)
✓ 10 分钟学习 (vs Jira 1-3 小时)
⇒ 符合 CLI 哲学:极速、高效、可组合
选择决策树
需要管理多个项目?
├─ 是 → 需要团队协作?
│ ├─ 是 → Jira/Linear
│ └─ 否 → 需要复杂任务分解?
│ ├─ 是 → planning-with-files
│ └─ 否 → Context Manager ⭐
└─ 否 → 单项目多分支?
├─ 是 → beads
└─ 否 → 需要知识库?
├─ 是 → Obsidian/Notion
└─ 否 → Context Manager
🎯 使用指南
快速上手(3 分钟)
# 1. 查看所有项目
ctx ls
# 输出:
# 🟢 进行中 (2)
# context-manager-skill # 会话#12 • "优化 README 结构"
# podcast-app # 会话#8 • "修复音频同步问题"
#
# 🟡 已暂停 (3)
# tangshi # 会话#5 • "诗词生成效果优化"
# short-video-remotion # 会话#3 • "视频渲染性能优化"
# notebooklm-skill # 会话#2 • "API 集成测试"
# 2. 切换到项目
ctx switch context-manager-skill
# 输出:
# ╔════════════════════════════════════════════════════════╗
# ║ 项目: context-manager-skill ║
# ║ 上次: 2026-02-04 ║
# ║ 会话: #12 ║
# ║ 分支: main ║
# ╠════════════════════════════════════════════════════════╣
# ║ 当前焦点: 优化 README 结构 ║
# ╠════════════════════════════════════════════════════════╣
# ║ 📋 待办列表: ║
# ║ - [x] 修复编码问题 ║
# ║ - [ ] 更新测试覆盖率 ║
# ║ - [ ] 优化 trade-off 分析 ║
# ╚════════════════════════════════════════════════════════╝
# 3. 开始工作,完成后更新状态
ctx update current_focus "完成了 README 结构优化和 trade-off 分析"
ctx update status active
进阶使用
# 初始化新项目
cd ~/workspace/new-project
ctx init
# 查看完整上下文
ctx
# 更新状态分类
ctx update category 产品
ctx update brief "AI 驱动的播客生成平台"
# 查看紧凑状态(单行)
ctx status
🔧 技术实现
核心架构
┌─────────────────────────────────────────────────────┐
│ CLI 入口 │
│ ctx / scripts/context_manager.py │
└──────────────────────┬──────────────────────────────┘
│
┌───────────────┴───────────────┐
↓ │
┌──────────────────────┐ ┌─────────────────────┐
│ 文件系统层 │ │ 解析器层 │
│ │ │ │
│ .claude/context.md │ │ parse_context() │
│ │ │ • v1 格式 │
│ │ │ • v2 格式 │
│ │ │ • 混合格式 │
└──────────────────────┘ └─────────────────────┘
│
┌───────────────────────────────────────────┐
↓ │
┌──────────────────────┐ ┌──────────────────────┐
│ 显示层 │ │ 配置层 │
│ │ │ │
│ ctx ls (分组显示) │ │ WORKSPACE_ROOT │
│ ctx status (紧凑) │ │ status 枚举值 │
│ ctx switch (切换) │ │ category 枚举值 │
└──────────────────────┘ └─────────────────────┘
数据结构设计
# 项目上下文的数据模型
project:
name: str
metadata:
created: date
last_session: date
session_count: int
status: Status # active/paused/completed
category: Category # 探索性/产品/临时/学习
content:
current_focus: str
next_steps: str
branch: str
brief: str
stack: List[str]
history:
todos: List[Todo]
sessions: List[Session]
关键算法
1. 双格式解析器
def parse_context(content: str) -> dict:
"""
智能识别格式版本
v1 特征:
- project_type 字段
- session_count 字段
- 分支字段
v2 特征:
- created 字段
- status 字段(active/paused/completed)
- category 字段
混合格式:
- 同时包含 v1 和 v2 特征
"""
# 自动检测并统一解析
2. 自动追踪机制
def cmd_update(args):
"""更新字段时自动维护元数据"""
# 1. 更新 last_session
# 2. 增加 session_count
# 3. 保留历史
# 用户无需手动维护
📚 相关资源
- 完整文档 (SKILL.md) - 技术参考
- 迁移指南 (MIGRATION.md) - 从旧格式升级
- 贡献指南 (CONTRIBUTING.md) - 如何贡献
📄 许可证
MIT License - 详见 LICENSE 文件
版本: v0.1.0 Python: 3.9+ 仓库: https://github.com/username/context-manager
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ctxmgr-0.1.3.tar.gz.
File metadata
- Download URL: ctxmgr-0.1.3.tar.gz
- Upload date:
- Size: 58.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f22d55ba94605ecc74e3d55c3de46a1fce88cb77e497d2f58e49e1177ebfa01a
|
|
| MD5 |
d62e385ee796d7b19155799f0a9e399b
|
|
| BLAKE2b-256 |
6d4fea0e806778197c0aa0a60932170069eee3913c7ed36a4fe30c3761d6154f
|
File details
Details for the file ctxmgr-0.1.3-py3-none-any.whl.
File metadata
- Download URL: ctxmgr-0.1.3-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd08aedb34a5ffc0d03f0823ae62af70b49de5b87e1e6c903515a4d775f2575d
|
|
| MD5 |
82a65289ef82603a4f44974509919a87
|
|
| BLAKE2b-256 |
8b7a443690bc984a7adde6b576bcbe4e5d32168bbade6881be4e157834a981c0
|