关于 trellis-finish-work
trellis-finish-work 是用于结束 Trellis 开发会话的技能,可检查任务与 Git 状态、归档已完成任务并记录会话日志。它将代码提交留在此前的工作流阶段,而非纳入任务收尾。
主要功能
- 01检查活动任务与 Git 状态
- 02分类未提交路径
- 03归档当前及已确认任务
- 04记录会话日志
适用场景
- 01代码提交后完成任务收尾
- 02判断脏文件是否属于并行工作
- 03归档已完成任务并记录会话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mindfold-ai/ trellis --skill trellis-finish-work安装后在 Claude Code 中输入/trellis-finish-work确认已加载。
详细介绍
完成工作
收尾当前会话:归档当前任务(以及用户想在本轮一并清理的其他已完成但尚未归档的任务),并记录会话日志。这里不会提交代码——代码提交会在工作流第 3.4 阶段、调用此命令之前完成。
步骤 1:检查当前状态
python3 ./.trellis/scripts/get_context.py --mode record
此命令会显示:
- 我的活动任务 — 检查当前任务之外是否还有其他任务已完成(代码已合并,且满足 AC),应在本轮归档。
- Git 状态 — 快速查看工作区有哪些未提交的更改。
- 最近提交 — 第 4 步需要用到这些提交的哈希,并传给
--commit。
如果 --mode record 显示当前会话之外还有其他已完成的任务,请向用户一次性确认是否也要归档:「这 N 个任务看起来已完成——要在本轮一并归档吗?[y/N]」。默认为否;无论如何,第 3 步都会归档当前活动任务。
步骤 2:健全性检查——分类未提交更改的路径
运行:
git status --porcelain
过滤掉 .trellis/workspace/ 和 .trellis/tasks/ 下的路径——这些路径由 add_session.py 和 task.py archive 管理,脚本会自动提交,因此作为此技能自身工作的一部分,它们会显示为有更改。
对于剩余的每个路径,判断它属于当前任务还是其他并行工作(例如,另一个终端窗口正在编辑同一仓库)。判断依据:
- 当前任务的
prd.md/implement.jsonl/check.jsonl中提到的路径 → 当前任务 - 与任务所述范围相符的代码目录中的路径,或你记得本次会话编辑过的路径 → 当前任务
- 属于无关目录且你不记得本次会话碰过的路径 → 其他并行工作
然后按以下方式处理:
-
有任何剩余路径看起来属于当前任务 — 停止操作,并提示:
「工作区中有此任务尚未提交的代码更改:
<list>。请返回工作流第 3.4 阶段,在运行 ``finish-work`(Trellis 命令)前先提交这些更改。」此处不要运行
git commit。不要提示用户提交。用户应返回第 3.4 阶段,由 AI 在那里执行批量提交。 -
所有剩余路径看起来都无关(属于其他并行窗口的工作)— 报告一次并继续第 3 步:
「提醒:这些未提交文件不属于此任务的范围——将留给另一个窗口处理:
<list>。」 -
确实无法确定 — 只询问用户一次:「
<list>是此任务中忘记提交的工作,还是另一个窗口的工作?(提交 / 忽略)」——然后根据用户的回答处理。
步骤 3:归档任务
python3 ./.trellis/scripts/task.py archive <task-name>
至少归档当前活动任务(如果有)。此外,还要归档用户在第 1 步确认的其他任务。每次归档都会由脚本自动提交一次 chore(task): archive ... 提交。
如果没有活动任务,且用户未确认要清理归档任何任务,则跳过此步骤。
步骤 4:记录会话日志
python3 ./.trellis/scripts/add_session.py \
--title "Session Title" \
--commit "hash1,hash2" \
--summary "Brief summary"
使用第 3.4 阶段产生的工作提交哈希(可在第 1 步的「最近提交」列表中查看,也可通过 git log --oneline 查询)作为 --commit 的参数。不要包含第 3 步中的归档提交哈希。此操作会生成一次 chore: record journal 提交。
最终 Git 日志顺序:<第 3.4 阶段的工作提交> → chore(task): archive ...(一个或多个)→ chore: record journal。