跳转到内容

核心概念

Slipway 将用户意图、宿主执行和持久 Run 状态分开。理解以下术语即可使用产品,无需先阅读机器协议。

Slipway Run 生命周期:主动启动后进入每次一个 Action 的 Action/Outcome 循环;CLI 校验并独立观察 Git 后遵循 typed next;answer、confirm 或 skip 可能进入 Active,也可能因 budget exhaustion 保持 Paused,source refresh 可能产生 paused candidate,stop 可以把 Paused 变为 Stopped,只有 stop 或当前 next.operation = resume 才授权 resume,结果可能是 Active 或 Paused;ended 只表示自动 Action 队列为空。

Run 是在一个 Git worktree 中实现一个目标的一次可中断尝试。它有范围明确 Action budget、恢复历史和固定的初始 workspace identity。一个任务可以有多个 Run;一个 Run 最多有一个 primary source。

Run 必须主动启动。Slipway 不监听聊天,不把普通对话自动转换成工作,也不通过 ambient hook 启动。

CLI 每次返回一个 Action:

Action 宿主职责
orient 检查仓库事实、Git 状态和约定,选择下一步。
clarify 只有仓库事实无法解决时,才询问一个真正的人类决策。
implement 执行范围明确技术修改,并报告实际活动和文件。
review 只读检查观察到的变化,报告意图或质量问题,不修改代码。
summarize 汇总观察到的变化、活动、findings、known issues 和不确定性。

Review 默认启用,但只有 Slipway 观察到代码变化后才会签发;--no-review 会对该 Run 禁用 Review。

宿主使用结构化 Outcome 回答。Slipway 验证并记录 Outcome,独立观察 Git,再选择下一个 Action。宿主报告某项活动不等于活动成功;观察到 diff 也不能证明是谁创建了它。

Run 有两种来源:

  • Ad hoc: 用户给出的 goal 即来源。
  • GitHub Change: 宿主导入自包含 Change Issue,CLI 按 digest 固定已接受章节。

Run 中的 source snapshot 不会静默变化。刷新 Change Issue 后若已接受内容不同,Slipway 会暂停,要求明确选择保留 pinned snapshot 或采用 candidate。若 amendment 基于另一条 history,则必须启动新 Run。

Objective 是可选的规划结构,用于需要多个独立交付 Change 的结果;它不可执行。

Change 是一个有单一连贯结果、可独立实现和交付的工作项。它必须自包含;Run 执行时不会依靠读取父 Objective 来补齐需求。

这些概念与 GitHub 仓库属于个人账号还是 Organization 无关。详见 GitHub Issue 工作流。

Action budget 只限制 CLI 可签发多少个 Action,不是时间估算或质量分数。Run 还会因人类决策、来源选择、环境不可用或精确破坏性确认而暂停。

用户可以 skip Action、stop 或 resume Run、调整顺序或接管。Skip 无需理由。Resume 会重新验证初始 worktree identity,并按协议使过期的 pending work 失效。

Review 是只读建议。Finding 进入 summary;Slipway 不会自动修复后再次 Review。

ended 只表示自动 Action 队列为空,不表示测试通过、Review 无 finding、branch protection 已满足、PR 已批准或 release 已就绪。Slipway 报告事实,由用户和仓库策略决定下一步。

恢复数据保存在 <git-common-dir>/slipway/runs/ 下。追加式 journal 记录状态转换;可替换 projection 加速读取;已接受 Issue 章节按内容寻址保存。详见 Run、恢复与隐私。

精确 JSON 形状见机器协议。