Jumpstart: Long-Running Agent Harness
A skill for setting up and running a two-command agent harness that enables sustained, incremental progress across many context windows — based on Anthropic's Effective Harnesses for Long-Running Agents.
Commands
| Command | When to use | What it does |
|---|
| INLINECODE0 | Once, at project start | Reads design files, scaffolds the environment, generates INLINECODE1 |
| INLINECODE2 |
Every subsequent session | Orients from
progress.txt, picks one feature, implements, commits, logs |
|
jumploop --n | Batch implementation sessions | Like
jumpsession but loops through up to
n features without stopping |
|
jumpfree | Ad-hoc or exploratory sessions | Orients from
progress.txt, implements based on user input, commits, logs |
Input: Design Files
Before running jumpstart, the project directory should contain these three files. If jumpstart is called and any of these files are missing, create blank versions of them:
| File | Contents |
|---|
| INLINECODE11 | High-level product vision, goals, non-goals, target users |
| INLINECODE12 |
User flows, interface descriptions, interaction patterns |
|
ENG_DESIGN.md | Technical architecture, components, data models, APIs, constraints |
INLINECODE14 derives feature_list.json primarily from ENG_DESIGN.md, cross-referencing the other two for completeness.
Environment Files Created by jumpstart
| File | Purpose |
|---|
| INLINECODE18 | Starts the dev server and runs a basic smoke test |
| INLINECODE19 |
Exhaustive feature list derived from
ENG_DESIGN.md, all initially
not_started |
|
progress.txt | Running log of what each session accomplished |
| Initial git commit | Baseline snapshot the agent can always revert to |
jumpstart Prompt
Use for the very first session only.
CODEBLOCK0
jumpsession Prompt
Use for every session after the first.
CODEBLOCK1
jumploop Prompt
Use when you want to implement multiple features in a single session without manual intervention. Invoke as jumploop --n where n is the number of features to complete.
CODEBLOCK2
jumpfree Prompt
Use for ad-hoc sessions where the objective is defined by immediate user input rather than the pre-planned feature list.
CODEBLOCK3
feature_list.json Format
CODEBLOCK4
Entry Types
| Field | Feature entry | Checkpoint entry |
|---|
| INLINECODE30 | INLINECODE31 | INLINECODE32 |
| INLINECODE33 |
(absent or "feature") |
"checkpoint" |
|
description | What the feature does | What milestone was just reached |
|
steps /
verify |
steps — verification steps |
verify — items for a human to check |
|
status | See status table | See status table |
|
notes | Agent observations | Human feedback |
Status Values
| Status | Meaning |
|---|
| INLINECODE43 | Default. No work has begun. |
| INLINECODE44 |
Actively being worked on in the current session. Never persist this across sessions. |
|
complete | Implemented and verified end-to-end. Do not revisit unless a regression is found. |
|
blocked | Cannot proceed — dependency missing, design unclear, or unresolvable bug. Document reason in notes. |
|
deferred | Intentionally postponed by agreement. Document reason in notes. |
|
awaiting_review | Checkpoint only. Human review requested — agent must stop and wait. |
Key rules:
- - JSON only (not Markdown) — models are less likely to accidentally overwrite JSON
- Agents may only change
status and notes — never description or steps/ INLINECODE53 - INLINECODE54 must never persist across sessions — end each session with
complete or INLINECODE56 - Checkpoints gate progress — agents must not skip past an
awaiting_review or not_started checkpoint
progress.txt Format
CODEBLOCK5
Session Startup Checklist (Quick Reference)
CODEBLOCK6
Jumpstart: 长时间运行代理框架
用于设置和运行双命令代理框架的技能,该框架能够在多个上下文窗口中实现持续、渐进式的进展——基于Anthropic的《长时间运行代理的有效框架》。
命令
| 命令 | 使用时机 | 功能说明 |
|---|
| jumpstart | 项目开始时,仅一次 | 读取设计文件,搭建环境,生成feature_list.json |
| jumpsession |
每次后续会话 | 从progress.txt获取方向,选择一个功能,实现、提交、记录日志 |
| jumploop --n | 批量实现会话 | 类似于jumpsession,但循环处理最多n个功能,无需停止 |
| jumpfree | 临时或探索性会话 | 从progress.txt获取方向,基于用户输入实现、提交、记录日志 |
输入:设计文件
在运行jumpstart之前,项目目录应包含以下三个文件。如果调用jumpstart时缺少其中任何一个文件,则创建其空白版本:
| 文件 | 内容 |
|---|
| GENERALDESIGN.md | 高层产品愿景、目标、非目标、目标用户 |
| UXDESIGN.md |
用户流程、界面描述、交互模式 |
| ENG_DESIGN.md | 技术架构、组件、数据模型、API、约束条件 |
jumpstart主要从ENGDESIGN.md推导出featurelist.json,并交叉参考其他两个文件以确保完整性。
jumpstart创建的环境文件
| 文件 | 用途 |
|---|
| init.sh | 启动开发服务器并运行基本冒烟测试 |
| featurelist.json |
从ENGDESIGN.md推导出的详尽功能列表,初始状态均为not_started |
| progress.txt | 记录每个会话完成内容的运行日志 |
| 初始git提交 | 代理始终可以回退的基线快照 |
jumpstart提示词
仅用于第一次会话。
你正在初始化一个长时间运行的编码项目。你的工作不是构建应用——而是读取设计文档并设置好下一个代理所需的一切。
第1步 — 读取设计文档:
- - 读取GENERALDESIGN.md了解产品愿景和目标
- 读取UXDESIGN.md了解用户流程和界面模式
- 读取ENG_DESIGN.md了解技术架构和组件分解
- 重要提示:如果这三个设计文件中的任何一个不存在,请先创建为空白文件再继续。
第2步 — 创建init.sh:
一个启动开发服务器并运行基本端到端冒烟测试的脚本
(例如,验证服务器启动、应用加载、一个核心交互完成)。
使其可运行:chmod +x init.sh
第3步 — 创建feature_list.json:
从ENGDESIGN.md推导出全面的功能列表,并由UXDESIGN.md补充。
每个功能必须包含:
- id:唯一字符串,例如feat-001
- category:functional | ui | performance | security | infrastructure
- description:用通俗英语描述,具体且可测试
- steps:人类测试人员为验证端到端功能而遵循的步骤数组
- status:notstarted ← 初始始终为notstarted
- notes: ← 空字符串,供代理留下观察记录
要详尽。对于真实应用,50–200+个功能。模糊的功能是无用的。
好的:用户可以使用有效凭据提交登录表单并重定向到仪表板
差的:登录功能正常
第3b步 — 插入人工验证检查点:
生成功能列表后,在逻辑里程碑边界处插入检查点条目——即人类应暂停并验证应用后再继续的位置。
检查点必须放置在代表有意义集成点的过渡处,例如:
- 所有核心UI组件实现后
- 基本导航/路由工作后
- 后端API功能正常后
- 前后端集成连接后
- 认证/授权连接后
- 开始性能或优化工作前
每个检查点必须包含:
- id:唯一字符串,例如checkpoint-001
- type:checkpoint ← 与常规功能区分
- description:刚刚达到的里程碑,例如核心UI外壳完成
- verify:人类此时应检查的简短项目数组
- status:not_started
- notes:
在典型项目中放置3–6个检查点。它们必须出现在功能列表中的正确位置(在其所控制的功能之后)。不要集中放置——将它们分散在自然断点处。
第4步 — 创建progress.txt:
以标题开头:PROJECT: [项目名称]和今天的日期。
添加一个条目:Session 0 — 初始化完成。feature_list.json已生成,包含[N]个功能和[M]个检查点。
第5步 — 初始git提交:
git add -A && git commit -m init: 项目脚手架、功能列表和环境设置
规则:
- - 不要实现任何功能。
- 不要将任何功能的状态从not_started更改。
- 不要修改设计文件。
jumpsession提示词
用于第一次之后的每次会话。
你是一个恢复进行中项目工作的编码代理。
会话开始 — 按顺序执行以下步骤:
- 1. 运行pwd确认你的工作目录。
- 读取progress.txt — 关注最近的会话条目。
- 运行git log --oneline -20查看最近的提交。
- 运行init.sh启动开发服务器并确认没有构建损坏。
如果已损坏,在开始新工作前修复回归问题。
- 5. 读取featurelist.json。选择状态为notstarted的最高优先级功能。
优先选择能解锁其他功能的功能。
如果下一个项目是检查点(type: checkpoint),先处理它(见下文)。
会话期间:
- - 每次会话只处理一个功能。解决后停止。
- 当你开始一个功能时,将其状态更新为in_progress。
- 实现,然后验证功能正常工作。优先检查DOM或读取服务器输出,而不是打开浏览器URL——不要让无法打开URL阻碍你。
- 验证后,将状态设置为complete并立即提交:
git add -A && git commit -m feat([id]): [功能名称] — [简要摘要]
- - 如果遇到硬阻塞(缺少依赖、设计歧义、无法解决的错误),将状态设置为blocked,提交当前状态,并在notes中记录原因。
- 切勿删除或编辑功能的描述或步骤——只更新状态和备注。
- 未经验证,切勿将功能标记为complete。
检查点:
- - 如果功能列表中的下一个项目是检查点(type: checkpoint),
不要跳过它。向用户展示检查点的verify列表,并请他们
确认一切正常后再继续。
- - 将检查点的状态设置为awaiting_review并停止会话。
- 用户将在下次会话前将其标记为complete(或提供反馈)。
会话结束 — 提交功能后,执行以下最终步骤:
- 1. 追加到progress.txt:
- 日期和会话编号
- 处理的功能及其最终状态
- 发现的任何错误及其是否已修复
- 阻塞或未解决的问题
- 建议下次会话处理的下一个功能
- 2. 停止。不要开始第二个功能。
规则:
- - 未经验证就将功能标记为完成是不可接受的。
- 编辑或删除功能描述或步骤是不可接受的。
- 除非每个功能都是complete或deferred,否则声明项目完成是不可接受的。
- 始终使代码库处于可合并状态——没有构建损坏,没有半实现的功能。
- 切勿以功能处于in_progress状态结束会话——解决为complete或blocked。
- 每个功能必须在会话结束前有自己的git提交。
- 每次会话一个功能——解决第一个功能后不要开始第二个功能。
jumploop提示词
当你想在单个会话中无需人工干预地实现多个功能时使用。调用方式为jumploop --n,其中n是要完成的功能数量。
你是一个恢复进行中项目工作的编码代理。你将在本次会话中实现多个功能——最多共[N]个功能。
会话开始 — 按顺序执行以下步骤:
- 1. 运行pwd确认你的工作目录。
- 读取progress.txt — 关注最近的会话条目。
- 运行git log --oneline -20查看最近的提交。
- 运行init.sh启动开发服务器并确认没有构建损坏。
如果已损坏,在开始新工作前修复回归问题。
- 5. 读取featurelist.json。选择状态为notstarted的最高优先级功能。
优先选择能解锁其他功能的功能。
功能循环 — 重复直到完成[N]个功能或没有not_started功能剩余:
- 1. 将所选功能的状态设置为