feat(ship): merge short-ship and long-ship into one entry
Promote ship to the user-facing delivery skill. Kind is short or long from an explicit mode, then self-judgment, then a question, defaulting to short. Old names remain deprecation stubs.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Ship 主会话:只编排
|
||||
|
||||
入口 `short-ship` / `long-ship` / `pr-ship` 的**当前会话是管理员**。它跟用户说话、
|
||||
维护账本、按 `next_step.py` 开新 agent,然后等待结果。它不把具体步骤的 skill
|
||||
读进自己的上下文,也不亲自做那些步骤。
|
||||
入口 `ship` / `pr-ship` 的**当前会话是管理员**。它跟用户说话、维护账本、按
|
||||
`next_step.py` 开新 agent,然后等待结果。它不把具体步骤的 skill 读进自己的上下文,
|
||||
也不亲自做那些步骤。
|
||||
|
||||
## 目录
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
## 主会话可以做
|
||||
|
||||
- 跟用户确认范围、停止点、批准 PRD、授权生产部署,并写完成报告。
|
||||
- 跟用户确认范围、kind、停止点、批准 PRD、授权生产部署,并写完成报告。
|
||||
- 跑 ship 脚本:`new_ship_id.py`、`create_ship.py`、`next_step.py`、`append_evidence.py`(仅当 worker
|
||||
已给出指针而漏写时)、`validate_ship.py`。
|
||||
- 读写 `.pouch/ship/<id>/` 账本:`spec.md`、`tasks.yaml`、`current.yaml` 的
|
||||
@@ -31,23 +31,26 @@
|
||||
- 不要改业务代码、跑测试、开/合 PR、obtain、发版、部署、写 HTML PRD。
|
||||
- 不要在开不出新 agent 时改由自己做该步。
|
||||
- 不要 fire-and-forget:派出去就回复“已派发”并结束本轮。
|
||||
- 不要让 worker 再去调 `short-ship` / `long-ship` / `pr-ship`。
|
||||
- 不要让 worker 再去调 `ship` / `pr-ship` 入口。
|
||||
|
||||
`next_step.py` 的 `actor` 为 `manager` 时,这一步就是跟用户说话或改账本,不是去加载
|
||||
执行类 skill。
|
||||
|
||||
## 循环
|
||||
|
||||
1. 没有 `ship-id`:先用 `new_ship_id.py --phrase <短语>` 生成
|
||||
`YYYYMMDD-短语`,再跑 `create_ship.py`,写 `spec.md` 四段(short)
|
||||
或进入 long 的 specifier 步。功能任务不要写入 `.pouch/ack/tasks.yaml`。
|
||||
1. 没有 `ship-id`:先按入口 SKILL.md 判定 `kind`(用户点名 short/long 模式优先;没说则自判;
|
||||
判断不了再问;默认 `short`)。再用 `new_ship_id.py --phrase <短语>` 生成
|
||||
`YYYYMMDD-短语`,跑 `create_ship.py --kind <short|long>`。功能任务不要写入
|
||||
`.pouch/ack/tasks.yaml`。`kind: short` 写 `spec.md` 四段;`kind: long` 进入 specifier 步。
|
||||
2. 跑:
|
||||
|
||||
```bash
|
||||
python3 <ship-skill>/scripts/next_step.py \
|
||||
--project-root <root> --ship-id <id> --entry short|long|pr
|
||||
--project-root <root> --ship-id <id>
|
||||
```
|
||||
|
||||
`pr-ship` 加 `--entry pr`。其它情况不要传 `--entry`,脚本按账本的 `kind` 和 `source` 推断。
|
||||
|
||||
3. 按 JSON 行动:
|
||||
- `status: done`:写完成报告,结束。
|
||||
- `status: blocked` / `ask_user`:告诉用户缺口或问题,等回复。生产部署(`stopAt:
|
||||
@@ -82,5 +85,4 @@
|
||||
- worker `fail` / `blocked`:停在现场,报告摘要和证据。主会话不要接手做该步。
|
||||
用户明确说重试时,再开一个**新** agent,不要复用刚失败的会话。
|
||||
- 校验失败:先修账本再继续,不要假装阶段已完成。
|
||||
- 范围涨到需要 PRD 或多条任务:同一 `ship-id` 把 `kind` 改为 `long`,之后 `--entry
|
||||
long`。
|
||||
- 范围涨到需要 PRD 或多条任务:同一 `ship-id` 把 `kind` 改为 `long`。
|
||||
|
||||
@@ -214,4 +214,4 @@ delivery-loop 阶段与指针:
|
||||
2. 只有 `.pouch/specifier/features/<id>/`:把它移到 `.pouch/ship/<id>/spec/`,按旧
|
||||
`current.yaml` 生成 ship `current.yaml`(`kind: long`),用 `brief.md` 补
|
||||
`spec.md` 摘要,再校验。
|
||||
3. 两处都没有:由入口 skill 调用 `create_ship.py` 新建。
|
||||
3. 两处都没有:由 `ship` / `pr-ship` 调用 `create_ship.py` 新建。
|
||||
|
||||
@@ -15,7 +15,7 @@ Ship 目录:.pouch/ship/<ship-id>/
|
||||
先读已安装的 skill:<skill 或「无,按 spec.md / 本任务改代码」>。
|
||||
需要写证据指针时读 ship 的 references/record.md,用
|
||||
scripts/append_evidence.py 追加后跑 scripts/validate_ship.py。
|
||||
不要读取 short-ship、long-ship、pr-ship,不要再开 ship 入口,不要派下一个步骤。
|
||||
不要读取 ship/SKILL.md 或 pr-ship,不要再开 ship 入口,不要派下一个步骤。
|
||||
|
||||
范围:<goal>
|
||||
验收:见 spec.md 与 tasks.yaml 里该任务的 expected / verification。
|
||||
|
||||
Reference in New Issue
Block a user