progress-manager
本 skill 管理项目级工作进度。目标是把当前会话中已经探索清楚的代码认知、执行计划、下一步动作固化下来,让后续会话可以直接接手,少做重复搜索。
路径可见性:解析并锁定进度根目录后,在首次扫描、读取、创建或更新前,必须先显式告知用户本次操作的
.work-progress/绝对路径,然后直接继续,无需等待确认。save 输出本次进度目录(读取/写入):<绝对路径>/.work-progress/;resume 输出本次进度目录(读取):<绝对路径>/.work-progress/。
动作路由
本 skill 是统一入口,具体执行细则拆分为两个参考文档(references),按意图分流后读取对应细则执行:
- 用户要保存、记录、更新当前进度时:读取并执行保存任务细则 save-progress.md。
- 用户要恢复、继续、查看上次进度时:读取并执行恢复任务细则 resume-progress.md。
- 用户意图不明确时:先根据语义判断是 save 还是 resume;仍不明确再简短询问。
共享约定
- 任何扫描、读取或写入前,先按下文解析并锁定本次操作的“进度根目录”;不得直接把命令执行所在目录当作进度根目录。
- 进度目录固定为进度根目录下的
.work-progress/。 - 未完成任务放在
.work-progress/。 - 完成任务放在
.work-progress/archive/。 - 不维护额外状态目录;暂停、卡住、风险写入进度文件内容。
- 文件名格式由
save-progress.md定义;状态以目录位置为准,文件头部状态只是便于扫描的摘要。
进度根目录解析
按以下优先级只选择一个根目录:
- 用户显式指定:用户给出项目根目录时直接使用;给出
.work-progress/目录时使用其父目录;给出进度文件时向上定位最近的.work-progress/并使用其父目录。将结果转为绝对路径。 - 宿主项目根目录:否则优先使用宿主为当前任务分配的 project root(项目根目录);没有 project root 时使用 workspace root(工作区根目录)。有多个 workspace root 时,先选择包含任务目标文件或模块的根目录,否则选择包含当前目录的根目录;嵌套候选中选路径最深的一个。
- Git 仓库根目录:宿主未提供根目录时,以用户指定的任务相关路径为起点,否则以当前目录为起点;起点是文件时先取其父目录。运行
git -C "<起点目录>" rev-parse --show-toplevel,该命令输出 Git(分布式版本控制系统)当前工作树的绝对根目录。 - 最后降级:宿主未提供根目录且起点不在 Git 仓库内时,才使用当前目录的绝对路径。
解析后将 <进度根目录>/.work-progress/ 记为本次操作的唯一进度目录。后续即使切换目录或在子包内运行命令,也不得重新解析。
失败处理:
- 显式路径不存在或不具备当前操作所需权限时(save 需要读写,resume 需要读取),报告该绝对路径并停止;不得悄然降级到当前目录。
- 宿主给出多个根目录时,选择包含任务目标文件或模块的根目录;仍有多个候选则列出绝对路径让用户选择,不得同时扫描或写入多个
.work-progress/。 - 操作前按顶部“路径可见性”告知进度目录;输出摘要时再给出实际使用的进度文件绝对路径,便于下次会话显式指定。
匹配优先级
保存和恢复都按同一优先级定位目标文件:
- 文件名优先:用户给出完整文件名时,只操作该文件。
- 关键词次优先:用户给出任务关键词时,只在匹配该关键词的进度文件中选择。
- 自动选择最后:用户未给文件名或关键词时,按子流程规则自动新建、更新或恢复。
恢复时如果找不到明确目标,直接返回“无可恢复项”或列出候选让用户选择;不要猜测,也不要为了恢复而新建文件。
质量约束
- 保存时优先服务下次恢复,不写流水账。
- 恢复时优先复用进度文件中的代码认知资产,不全库重新探索。
下一步必须是动作级语句,包含要改的文件、要跑的命令或要验证的对象。- 如果任务卡住,
当前卡点 / 风险必须写出解除条件;无卡点时写“暂无”。 - 默认不删除历史文件;只有用户明确要求清理时才删除。
- 文件内容细则以对应子文档为准,避免在
SKILL.md里重复维护模板。
微信扫一扫