藏在《Harness Step 3 — 建立跨 Session 状态管理》里的Skill

技能描述

创建 init.sh(环境健康检查)、tasks.json(结构化任务队列)和 progress.md(会话日志),解决 Claude Code 每次新对话失忆的问题,让任意 session 在 30 秒内完全恢复工作状态。

Skill.md

Harness Step 3 — 建立跨 Session 状态管理

Claude Code 的会话是无状态的——每次对话结束,agent 对"上次做了什么"一无所知。传统解决方案是每次新对话手动解释背景,这既费时又不可靠。这个 skill 从根本上解决这个问题:状态写进文件,不放在 agent 的记忆里。

创建的三个文件

init.sh — 环境健康检查 每次 session 开始时运行。验证依赖已安装、配置文件存在、核心模块可导入。30 秒内发现环境问题,不让坏环境浪费整个 session。

tasks.json — 结构化任务队列 每个任务包含:idtitledescriptionstatuspriorityverify(可执行的完成验证步骤)、requires_eval(是否需要独立评审)。Agent 不猜下一步做什么,直接读任务队列。

progress.md — 追加式会话日志 每次 session 完成任务后在顶部追加一条记录。下次 session 读前 20 行,立即知道上次停在哪里。不删除历史,形成可追溯的工作流水账。

Session 启动流程(写入 AGENTS.md)

1. bash init.sh          → 验证环境
2. git log --oneline -10 → 了解最近历史
3. head -20 progress.md  → 看上次做到哪里
4. 读 tasks.json         → 选 priority=high 且 status=pending 的任务

verify 字段的设计原则

verify 必须是可执行的步骤,不能是模糊描述。检验标准:另一个完全不了解背景的人,能否按 verify 独立判断任务是否完成? 如果不能,继续拆分。

适用场景

  • Harness Step 1 + 2 完成后,建立完整的 agent 工作体系
  • 长期项目,多人/多 session 协作
  • 任何"agent 老是忘记上次做了什么"的场景

局限说明

tasks.json 不会自动执行任务,需要人工或 agent 手动触发。被搁置的任务应在 blocked_by 字段说明原因,让下一个 session 能直接跳到可执行的任务。