Install
openclaw skills install @holdyounger/ctx-lockstep管理 git/非 git 项目的长期上下文与断点恢复。触发场景:继续/恢复之前的项目、提交代码后更新项目进度、会话结束前保存项目状态、接手或纳管一个已有项目、为长期推进的任务建立项目档案。Manage long-term project context and session-resume checkpoints for git and non-git projects. Use when resuming a project, updating progress after commits, saving state before ending a session, adopting an existing project, or archiving a long-running task.
openclaw skills install @holdyounger/ctx-lockstep基于文件的长期项目管理机制。核心特性:项目状态收敛到项目内单目录 <项目>/.ctx-lockstep/(尊重个人隐私与仓库整洁),漂移检测由事件驱动机械完成(git hook + mtime 扫描),不依赖心跳、不依赖模型自觉。
本文件的示例均为通用占位数据。真实项目登记在注册表,不写死在 skill 本体。
本 skill 管理项目上下文,不假装把共享主会话变成隔离的原生项目会话。
.ctx-lockstep/PROJECT.md),不靠翻聊天记录每个项目只有一个状态目录,可选 commit 或 gitignore(推荐 gitignore,属 agent 工具产物):
<项目>/.ctx-lockstep/
├── PROJECT.md # 唯一恢复入口:主线/断点/决策/索引/固化记录 三合一
├── checkpoints/ # 阶段快照(YYYY-MM-DD-主题.md)
└── commits.log # git 项目: post-commit hook 自动追加;固化后清空
00_*/01_*/99_* 文件(v1 遗留,见下方迁移规则)PROJECT.md 头部 HTML 注释携带机器可读元数据:last_checkpoint: <时间戳>同一项目在 Linux(含 WSL) 与 Windows 两端访问时:
/mnt/d/...)PROJECT.md 元信息区同时记录 posix 与 win 双路径posix_path 与 win_path~/.openclaw/workspace/.ctx-lockstep/projects-registry.json{
"projects": [
{
"name": "project-a",
"posix_path": "/mnt/d/workspace/project-a",
"win_path": "D:\\workspace\\project-a",
"note": "示例"
}
]
}
PROJECT_SYSTEM.md 与注册表python3 {baseDir}/scripts/check_drift.py '<项目路径>'
.ctx-lockstep/commits.log 积压(post-commit hook 写入)last_checkpoint 的文件扫描(近似值).ctx-lockstep/PROJECT.md(恢复入口)checkpoints/<最新>.md用户说"固化/更新恢复文件/保存断点/保存阶段进展"时立即执行。固化动作(轻量化):
.ctx-lockstep/PROJECT.md:断点、决策、里程碑、固化记录;更新头部 last_checkpoint 时间戳checkpoints/YYYY-MM-DD-主题.md 快照(小步进度只改 PROJECT.md,不产生快照文件)commits.log(积压归零)主动建议固化的时机:完成关键文档后、断点明显变化后、新决策形成后、进入新阶段、会话将暂停前。用户拒绝后本次会话不再催,但下次进入项目时 drift 检测仍会如实报告。
python3 {baseDir}/scripts/init_project.py '<JSON>'
{"projects_root": "...", "project_name": "..."}(项目目录不存在时自动创建){"existing_path": "/path/to/project"}create_workspace_rule(默认 true)、workspace_root、overwrite脚本行为:创建 .ctx-lockstep/ 单目录结构 + 幂等安装 git post-commit hook + 非 git 项目给出 mtime 模式提示(不擅自 git init)。
| 项目类型 | 事实来源 | 精度 |
|---|---|---|
| git 项目 | .ctx-lockstep/commits.log(hook 每次 commit 追加一行 JSON) | 精确(commit 级) |
| 非 git 项目 | mtime 扫描(排除 node_modules/build 等,阈值 = PROJECT.md 的 last_checkpoint) | 近似(文件级) |
发现项目根目录有 v1 平铺文件(00_恢复入口.md、00_文档总索引与当前进度.md、01_项目会话与恢复机制说明.md、99_关键决策记录.md)时:
.ctx-lockstep/PROJECT.md 单目录(内容合并:恢复原则→删(流程在 SKILL.md);索引+断点+决策→合并进 PROJECT.md 对应章节)init_project.py --existing_path 补 hook 与目录scripts/init_project.py — 初始化/接管(.ctx-lockstep/ 结构 + hook)scripts/check_drift.py — 漂移检测(git/mtime 双模式)