diff --git a/skills/ack/SKILL.md b/skills/ack/SKILL.md index bdbf05f..c5137e3 100644 --- a/skills/ack/SKILL.md +++ b/skills/ack/SKILL.md @@ -84,7 +84,7 @@ python3 /scripts/validate_agents.py .pouch/ack/agents.yaml 2. 读 `project.md`;若存在 `agents.yaml`,先用 `validate_agents.py` 校验并读取其 `defaults`;用 `select_tasks.py`(已知任务加 `--task-id`)和 `select_knowledge.py` 取当前任务相关 `active` 条目。超预算时缩小选择,不回退为完整 yaml。 3. 新需求或尚未确认的计划:读 [kickoff.md](references/kickoff.md)。修 bug 写短问题说明、复现和可观测验收,不写大 PRD。 4. 用户已确认后,先读取并按 [closed-loop.md](references/closed-loop.md) 执行;使用 Orca 时同时读取 [orca-adapter.md](references/orca-adapter.md)。当前会话担任 Coordinator,不亲自写代码或跑测试;worker profile 按 `agents.yaml`(若存在)否则按任务板配置选择。 - 这不是 fire-and-forget:Coordinator 不得在 `launch` / `dispatch` 后只回复“已派发”并结束当前会话。每个任务都必须在同一轮持续执行 `check --wait` 与 `worker_probe.py`,直到 Developer 回报 `worker_done` 或 `escalation`;随后写回 `fixed_by_dev`,主动派发 Test,并继续等待 `retest_result`。只有完成 Test 终检、重试/`leftover` 决策、回归决定和 worker 回收后,才可以结束本轮 ACK。 + 这不是 fire-and-forget:Coordinator 不得在 `launch` / `dispatch` 后只回复“已派发”并结束当前会话。每个任务都必须在同一轮持续执行默认 90 秒窗口的 `check --wait`,并按 60–120 秒节奏运行 `worker_probe.py`,直到 Developer 回报 `worker_done` 或 `escalation`;随后写回 `fixed_by_dev`,主动派发 Test,并继续等待 `retest_result`。只有完成 Test 终检、重试/`leftover` 决策、回归决定和 worker 回收后,才可以结束本轮 ACK。 5. 存在 `project.bugIntake` 时先完成「飞书收件」。创建或更换 worker 走「启动 worker」。若 `intents.testEnvironment` 已启用,派 Test 前先走「运行测试环境」。 6. 知识 `verification.ref` 只经 `run_verification.py`。不把 `worker_done` 或 Test 自报成功当作完成。环境失败先有界恢复并报告 `userAction`;三轮产品失败记 `leftover`。 7. 任务 `verified` 且改了可见行为或 API 后,转入「运行回归」收获用例。若本次计划含交付,再走对应交付模式;默认最多到 `validation_ready` 或 `review_ready`。 diff --git a/skills/ack/references/orca-adapter.md b/skills/ack/references/orca-adapter.md index 0665d96..6d0fb59 100644 --- a/skills/ack/references/orca-adapter.md +++ b/skills/ack/references/orca-adapter.md @@ -215,7 +215,7 @@ EOF 且终端进入工作指示(Working / Running)。 - 手动投递路径:`orca terminal send` 必须带 `--enter`;投递后同样 read 确认。 - 确认失败或终端仍停在欢迎提示:按「消息未投递」记录环境失败,不消耗产品轮次。 -2. 等待期间滚动 probe(每 60–120 秒一次): +2. 等待期间滚动 probe(每 60–120 秒一次;不要在 30 秒窗口后每次都 probe): ```bash python3 /scripts/worker_probe.py \ @@ -229,8 +229,10 @@ EOF - `not-started`:检查是否漏投递或未回车;重新投递或记录环境失败,不占轮次。 - `running` / `progress`:继续滚动 wait。 - `unknown`:按 `dispatch-show` 与 Orca live state 人工核对,不自动重试。 -4. `check --wait` 使用短窗口(60–90 秒)而不是 15 分钟:窗口超时是检查点,先 probe - 再决定继续等待、恢复或上报。 +4. `check --wait` 默认使用 90 秒窗口而不是 30 秒或 15 分钟:窗口超时是检查点, + 仅在达到 probe 间隔后再探测,然后决定继续等待、恢复或上报。新鲜 heartbeat 才能 + 说明 progress;按 worker 每 5 分钟一次的约定,连续三个周期(超过 15 分钟)未更新、 + 格式非法或时间在未来的 heartbeat 只能报告 `unknown`,不得当作持续进展。 ```bash orca orchestration check \ diff --git a/skills/ack/scripts/worker_probe.py b/skills/ack/scripts/worker_probe.py index dc5dbf7..d277be3 100755 --- a/skills/ack/scripts/worker_probe.py +++ b/skills/ack/scripts/worker_probe.py @@ -16,6 +16,7 @@ Output (single JSON document on stdout): "status": "running | progress | stall | not-started | unknown", "stallReason": "