关于 log-session
log-session 是用于记录工作会话目标、决策和后续步骤的 Agent 技能,将叙述背景与经 Git 核实的事实结合,并要求追加日志后提交。
主要功能
- 01以追加方式记录会话
- 02核实会话的 Git 事实
- 03生成并提交日志条目
- 04提供恢复工作的指引
- 05支持其他 Agent 的工作流
适用场景
- 01清除 Agent 会话前保存上下文
- 02在暂停时记录决策和后续步骤
- 03帮助团队成员从项目日志恢复工作
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gtrabanco/ agentic-workflow --skill log-session安装后在 Claude Code 中输入/log-session确认已加载。
详细介绍
会话日志
记录工作会话的缘由和后续计划——这些上下文单靠 git 历史永远无法留存。提交说明了改了什么;会话日志则说明你当时想做什么、做了哪些决定,以及下次该从哪里继续。
刻意保持低成本(qwen3.6/reasoning_config: none——不限量;NaN 集群模型没有令牌计数器,因此这项技能消耗的是字节,而非配额):进行结构化摘要,而非判断。绝不能调用昂贵的模型。
回合约定——结束回合前核对
✓ The entry was APPENDED to docs/LOGS.md (file edited, not just drafted) with accurate git facts
✓ `bun scripts/session-close.mjs close` RAN and exited 0 (or 2, with the leftover paths named) — the entry is committed, not left riding along
✓ No past entry was edited
✓ Artifact language: explicit user instruction > the project's declared docs language > English. The CONVERSATION language never decides — a Spanish prompt still produces English PRs/issues/commits/SPECs unless one of the first two says otherwise
✓ The closing `→ Next:` block is printed as the ABSOLUTE last output
准备结束回合,但仍有任何一项未勾选?回合就尚未完成——先完成缺失项(能力较弱的模型会漏掉文档末尾的职责;因此特意把这份清单放在最前面)。
何时使用
- 执行
/clear前(或 Agent 的等效上下文重置操作前)——你即将清除上下文;先记录下来。 - 当天关闭 Agent 前。
- 在自然的停顿点——例如功能做到一半暂停,或有一段你希望之后能在没有上下文的情况下接续的工作。
- 长时间会话结束后,尤其是其中有多个值得记住的决定时。
这是对 template/ 提供的轻量自动日志钩子的手动、详尽补充(参见 template/.claude/)。钩子会在每次退出时免费记录机械性事实;而在你需要时,这项技能会写下经过深思熟虑的记录。
步骤 0 — 了解项目(始终先做)
根据 Agent 指南中的工作流约定和文档地图,找到会话日志。默认路径:docs/LOGS.md。如果文档地图指定了其他位置,就使用该位置。如果日志文件尚不存在,就按照 template/docs/LOGS.md 中的结构(简短的标题和下方的条目格式)创建,并说明这一点。
如果存在会话开始标记(由模板的 SessionStart 钩子写入的 .claude/.session-*.start),请读取它,以精确界定会话范围——其中包含会话开始时的 HEAD SHA 和开始时间。
流程
-
确定会话边界。
- 如果存在标记,会话范围为
marker_sha..HEAD,以及所有未提交的工作。 - 否则,以你自己的对话上下文为准,确定本次会话中发生的事情,并通过近期提交的
git log和未提交更改的git status/git diff --stat进行佐证。
- 如果存在标记,会话范围为
-
收集机械事实(用 git 快速完成):
- 分支(
git branch --show-current), - 本次会话的提交(
git log --oneline <since>..HEAD), - 修改的文件(
git diff --stat <since>..HEAD+ 未提交更改)。
- 分支(
-
撰写叙述——这是只有你能补充的部分:
- **摘要:**用 1–3 句话说明本次会话旨在完成什么,以及实际完成了什么。
- **决策:**记录不显而易见的选择及其理由(否则这些理由会丢失)。链接相关文档/问题。
- **下一步:**具体的后续步骤——要运行的命令、尚未完成的事项或待解答的问题。写清楚,让刚接手的读者确切知道从哪里继续。
- **状态词须经代码托管平台核实。**写入任何 PR/问题的状态声明前,都要在同一轮中通过代码托管平台进行核实(
gh pr view <N> --json state,mergedAt)。如果日志记录的状态与平台不符,就是错误记录,下一次审查还得追查(修复 #157 的 F14)。写实际状态:“PR #N 仍处于开放状态,等待人工合并”。
-
生成条目——机械事实(时间戳、分支、提交数和范围、修改的文件)会自动计算:
bun scripts/session-close.mjs render --summary "<what this session did>" \ --decisions "<key choices + why>" --next "<the concrete next step>"它不会写入任何内容:使用编辑工具将其输出追加到
docs/LOGS.md末尾(仅追加,按时间顺序)。没有实际内容时,省略--decisions/--next——脚本会删除对应行,而不会输出空行。用户提供的备注会放在摘要前面。 -
结束会话——提交条目并证明工作区干净:
bun scripts/session-close.mjs close除非
docs/LOGS.md有追加内容(重写或截断日志不算会话条目),否则脚本会拒绝执行;脚本会将该文件作为唯一文件提交,提交信息为docs(log): <the appended summary>,并报告所有仍未提交的路径:工作区干净时退出码为0,列出的遗留更改仍未提交时为2,拒绝执行时为1。不要仅为日志条目创建 PR,也绝不要在这里运行git add -A——否则可能会把并行对话中的工作一并纳入日志提交。
规范的职责划分——本技能负责的部分(功能 66,D2)
有意设置两种记录方式;两者互不照搬:
docs/LOGS.md(本技能)是团队人工日志——记录会话旨在完成什么、做出了哪些决定,以及后续从哪里继续。它随 git 一同流转,因此队友或全新克隆的仓库都能在没有本地状态的情况下读取。- Engram(
mem_session_summary,以及该单元的unit/<NN-slug>/doc主题)是按单元 ID 索引的本地决策和易错点记录,由unit-lane和execute-phase在单元边界处写入。它保留在本机。
Engram 不会照搬此日志,此日志也不会照搬 Engram:团队记忆随 git 流转,Agent 回忆保留在本地。在此记录团队日志部分;协议部分(边界、回忆顺序、降级处理)位于工作通道的记忆参考文档 ../unit-lane/references/MEMORY.md 中。
规范
- 绝不为此使用昂贵的模型。 这是摘要任务;在集群计划中,
qwen3.6(reasoning_config: none→ 零思考令牌)是合理的上限,而 hooks 会免费完成机械化操作。 - 不要编造事实。 决策和后续步骤必须来自实际会话(你的上下文 + git),而不是听起来合理的填充内容。如果某个部分没有真实内容,就省略那一行,不要凑数。
- 只追加,绝不重写。 以往条目是历史记录——不要编辑或“整理”它们。理由与不重写已交付功能的规划文档相同。
- 只用一个文件,只追加。 不要把会话日志分散到多个文件中。
可移植性(Claude Code 以外的 Agent)
工作流是约定;Claude Code 功能只是便利工具。如果 Agent 缺少某项功能,就使用备用方案——绝不要跳过该功能所支持的步骤:
- 没有 Claude Code hooks——模板的自动日志 hooks(SessionStart 标记、SessionEnd 条目)不会在其他 Agent 上运行,因此不会有标记文件,也不会自动生成条目:此技能是唯一的日志撰写者。每次会话结束前都要运行此技能,并且仅用 git 界定会话(Process 步骤 1 中无标记文件的路径)。
- 没有
/clear——在触发条件和收尾部分中,都将其理解为你的 Agent 的上下文重置/新对话等效操作。 - 没有按技能设置的
model:/effort:——意图不变:为此使用最便宜的可用模型。这是摘要任务,而非判断任务。在 NaN 上,集群模型(qwen3.6、gemma4)没有令牌计数器——设置reasoning_config: none,这样追加条目不会消耗思考令牌。
与其他技能的关系
- 与
template/的 SessionEnd hook(免费、机械化;在/clear和退出时自动运行)以及选择启用的 SessionStart 恢复 hook(重新注入上一条目以恢复上下文)相辅相成。此技能负责撰写内容丰富的手动条目。 - 与
execute-phase的按功能划分的progress.md配合使用:它记录单个功能内部的进度;会话日志则是跨功能的——记录本次会话中你处理的所有内容,跨越功能和修复。 - 不属于 PR 门禁——它是工作记忆辅助工具,不是合并产物。
完成条件
-
已在
docs/LOGS.md中追加新条目,至少包含 Summary 和 Next。 -
机械事实(分支、提交、文件)与 git 记录相符。
-
已打印收尾的
→ Next:区块:→ Next: /clear (or your agent's context reset) is now safe — the session is captured · resume later → the command named in the entry's **Next** line