用途
scartill-session 用于在开发任务之间进行“交接”,把多个并行或先后开展的工作会话以文件形式记录下来,方便随时切换和续接。所有记录都放在仓库的 .context/ 目录下,以纯 Markdown 保存,可随仓库一起提交,并能在 git 中清晰 diff。
主要能力
- 多会话跟踪:每个会话对应
.context/sessions/<name>.md文件,文件名由用户提供的名称规范化生成(小写、空格与非法字符转连字符),文件名本身不含日期,开始时间只记录在 frontmatter 的 Started 字段中。 - 单一活动会话指针:
.context/.current_session保存一行,即当前活动会话文件的相对路径,是判断哪个会话处于活动状态的唯一依据。 - 会话索引:
.context/SESSIONS.md以 Markdown 表格维护全部会话,列为| Session | Started | Status |,Session 单元格链接到对应会话文件;首次使用时自动创建表头。 - 时间戳:使用用户本地时区,在会话 frontmatter 和 Log 条目中记录完整的
YYYY-MM-DD HH:MM。
使用方式
命令格式:/scartill-session [new <name> | save | resume <id> | close | remove]
- new <name>:生成
.context/sessions/<name>.md;若重名则追加数字后缀而不覆盖。将路径写入.current_session,在SESSIONS.md中添加 Active 行,并以固定模板初始化会话文件(含 Started、Status、Objective、Key Changes、Blockers / Open Questions、Immediate Next Step、Log 等区块),最后报告创建路径并确认其为活动会话。 - save:从
.current_session解析活动会话,刷新 Key Changes、Blockers / Open Questions、Immediate Next Step,并追加带时间戳的 Log 条目;状态保持 Active,不关闭会话,并报告更新内容。 - resume <id>:从
<id>解析目标会话文件(<id>可带或不带.context/sessions/前缀与.md后缀)。若不存在,则列出SESSIONS.md中的可用会话并停止。存在时将其设为活动会话,并在索引中恢复为 Active;读取文件并向用户简报 Objective、最新 Log、未解决阻塞项与 Immediate Next Step,随后追加一条恢复 Log。 - close:对活动会话做最终整理,将会话状态设为 Closed 并追加关闭 Log,同步更新
SESSIONS.md中对应行为 Closed,然后清空.current_session,报告已关闭且当前无活动会话。 - remove:删除当前活动会话(不接受参数)。删除前必须先向用户确认(并说明文件名),同时提示因
.context/已提交,文件仍可从 git 历史恢复;确认后删除会话文件、从SESSIONS.md移除对应行并清空.current_session,报告已移除且当前无活动会话。若需要保留完成会话的记录,应使用 close 而非 remove。
使用约定
- 一切以
.context/下的纯 Markdown 为准,结构稳定、便于 diff,适合提交;但不会代替用户提交,除非用户明确要求。 - 同一时间只允许一个活动会话:new 与 resume 使目标成为活动会话,close 后无活动会话。
- 当需要活动会话而
.current_session缺失或指向不存在的文件时,应提示用户先执行 new <name> 或 resume <id>,不得静默创建。 - 存在同名会话文件时绝不覆盖,而是追加序号。
适用场景
适合需要在多个开发任务之间频繁切换、并希望把进度、阻塞项与下一步计划随代码一起版本化保存的开发者。
限制
资料未说明该技能的具体运行环境、依赖条件、性能指标或收费方式,暂未提供。