Files
workinf_Blender_Wasm/nextTask1.md
mes123456 f3e21c6b98
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer,
web workflow engine and protocol, tooling, docs and task records.
Large generated evidence, user-testing archives, build snapshots and
imported test assets remain untracked.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-10 11:18:01 +08:00

13 KiB
Raw Blame History

Corrective Continuous Task Handoff

This is the continuation entrypoint for the corrective execution plan. The authoritative legacy queue remains docs/EXECUTION_QUEUE.md; this file points only to the shadow corrective task and must never advance M16-GAP-*.

Current Task

Field Value
plan docs/BLENDER_WASM_CORRECTIVE_TASK_PLAN.json
current corrective task C6-003
task card docs/corrective/C6-003-reactivate-queue.md
lifecycle (plan) in_progress
checkpoint status (handoff) in_progress
blocker none; owner review approved
gate G5
write scope queue_reactivation
queue mutation true
execution mode corrective_continuous
auto continue after successful handoff true (conditional)
auto continue now true after post-handoff gates
fresh compact context after handoff required
stop on failure or drift true
handoff required before successor true
legacy queue checkpoint M16-GAP-00277 / parent nextTask=M16-GAP-00277
reserved legacy successor M16-GAP-00278
corrective handoff tests/golden/corrective/C6-003/handoff.json
handoff next task C6-003 (post-write verification)

Blocker

The durable corrective checkpoint is C6-003: its dry-run and write-preview bytes match, the explicit owner review is recorded, protected legacy hashes were verified before the write, and the atomic queue write exited 0. The handoff is in_progress for post-write verification with queueMutation=true; the legacy queue now points to M16-GAP-00277 and the rollback receipt is recorded. Do not run another queue write unless the post-write gates identify concrete drift.

The completed predecessor handoffs (C0-001 through C5-003, C6-001, and C6-002) remain immutable evidence. Their completion does not release the current G5 post-write verification gate.

Resume Prompt

按 nextTask1.md 接续执行。

激活 corrective continuous mode。只要用户消息要求“按 nextTask1.md 接续执行”、
“继续执行”或等价含义,就先做只读 checkpoint recovery,再开始当前 Current
Task;不要要求确认、不要只给计划。只有成功 handoff 才能自动开始下一轮;每轮
完成一个 corrective task 后进入 fresh compact context,重新读取本文件的新
Current Task。遇到阻塞、失败、环境缺失、预算耗尽、传输异常、闭合门或用户要求
停止时立即停在当前 checkpoint,不得为了保持连续而越过门禁。

每次请求的第一步固定为只读恢复(即使上一次请求只报告了 remote compact
错误):

```bash
node tools/web/print-task-context.mjs
node tools/web/check-task-context.mjs
git status --short
jq '{task,status,queueMutation,nextCorrectiveTask,inputDigest,commandExitCodes}' \
  tests/golden/corrective/C6-003/handoff.json

随后运行 node tools/web/check-corrective-plan.mjs。若 plan、task card、handoff 的当前任务/状态/ready/next 不一致,或 handoff status=blocked,只记录精确 阻塞并停止;不得重跑未知结果的生成、构建、保存或 queue-write 命令。恢复请求 最多重试一次;再次出现 stream disconnect、error decoding response body 或 remote compact 失败时保持当前状态并结束本轮。

本文件只驱动 corrective shadow plan。docs/EXECUTION_QUEUE.md 是 legacy M16 指针;两者不可混用。当前 corrective task、依赖、状态、ready 标志和下一任务只 接受 docs/BLENDER_WASM_CORRECTIVE_TASK_PLAN.json、当前 task card 和最新 durable handoff manifest(成功或阻塞)的交叉证明,禁止从历史编号或 Markdown 猜测。

每个 iteration 只完成一个 C0-C6 任务,并严格按以下顺序执行:

  1. 读取 docs/EXECUTION_QUEUE.md。
  2. 运行 node tools/web/print-task-context.mjs。
  3. 运行 node tools/web/check-task-context.mjs。
  4. 运行 node tools/web/check-corrective-plan.mjs。
  5. 只读取当前 C task card、其明确列出的输入和最小必要 fixture。
  6. 若当前 task 为 planned,在所有 preflight 通过后将当前 task/card 标记为 in_progress;若 handoff 为 blocked,保持当前 task/card 和 pointer 不变, 不得提前把任何 successor 标记为 ready 或修改 next pointer。
  7. 执行任务卡中的真实命令,把长日志写入 tests/golden/corrective/<task>/,并记录每个命令的退出码。
  8. 完成 focused、negative、persistence、hash、determinism 和 governance gate。
  9. 在所有 evidence 文件最终化后运行 node tools/web/write-corrective-handoff.mjs,更新该任务的 handoff.json 和 manifest.json;同时更新该 C task 的 status 文档。 handoff 命令不要用会在 hash 扫描后再次截断/写入同一个日志的重定向;若日志 属于 evidence,先写完日志,再运行 handoff,handoff 完成后不得再编辑 evidence。
  10. 校验 handoff 的 artifact SHA-256、inputDigest、queueMutation、 nextCorrectiveTask 和命令退出码。dry-run、write、handoff 三者的 inputDigest 必须一致。
  11. 只有 handoff 完整成功且所有必需 gate 通过后,才将当前 task 标记为 done, 仅按 handoff manifest 的 nextCorrectiveTask 从依赖图选择 successor;为 successor 创建/校验 task card,并将唯一 successor 标记为 ready。若 handoff 为 blocked,只更新本文件的 durable checkpoint 字段并保留同一 current task, 不创建 successor、不推进 pointer。成功 handoff 后再更新本文件 Current Task 表,重新执行第 1-4 步,开始下一 iteration。
  12. 任何状态迁移、task card、plan 或 Current Task 更新都必须由已通过的 handoff 支持;禁止先改指针再补证据。

下一任务只能来自 corrective plan 的依赖图,不能猜测。

严格遵守以下边界:

  • C0-C5 期间禁止修改旧 M16 queue、parent manifest、completion registry、 catalog、index、旧 M16 task card 和历史 evidence;corrective task card 只可 按本协议在对应 handoff 前后更新生命周期。
  • 禁止手工推进 legacy nextTask、offset、completion 状态或 parent pointer; corrective lifecycle 和 nextCorrectiveTask 只能由通过 handoff 的 evidence 与 corrective dependency graph 支持。
  • queueMutation 必须保持 false,直到 C6-003 且 G5 通过。
  • --write 只能写入明确的 corrective staging 目录,不能覆盖正式生成物。
  • 不得把 CANCELLED、UNSUPPORTED、EXTERNAL_REQUIRED、metadata-only、 snapshot/read-only 或 negative-only evidence 当作正向功能完成。
  • 浏览器验收永久只使用 Chromium;禁止 Firefox 和 WebKit。
  • 不要删除、重置或回滚用户已有改动;失败证据必须保留。

任何命令失败、hash drift、plan/index/catalog/queue 不一致、parent pointer 失配、digest 不一致、预算异常、环境缺失、传输异常或 gate 阻塞,都立即停止 自动迭代;当前 task 保持 in_progress/blocked,不得创建 successor handoff, 保留失败证据并报告精确路径。不得用重跑覆盖失败日志来伪造通过状态。

当前从 C6-003 checkpoint 恢复。C0-001 至 C5-003、C6-001 和 C6-002 的 handoff 均已完成;明确的 owner review 已记录,queue write 已完成, M16-GAP-00277 现在是唯一 active legacy successor。

上下文大小必须按仓库预算管理:每个 iteration 只保留当前任务卡、parent manifest、parent status、print-task-context 输出和任务卡列出的最小输入;不要 把完整 next-task-plan.json、全部 docs/status/、历史 transcript、完整 parity ledger 或长命令日志带入上下文。默认上下文上限约为 3,500 tokens,serialized context envelope 上限为 1,024 tokens;先运行 check-task-context,只有报告 withinBudget 才能继续。大 JSON 使用 jq 读取指定字段,大日志使用 sed/tail 读取窄范围;完整日志只保存在 evidence root,不复制到对话中。每个命令返回后只 保留退出码、关键摘要、证据路径和 hash。

每次 handoff 后开始 fresh compact context:丢弃上一轮长输出,下一轮只从新 manifest 的 nextCorrectiveTask、status、evidenceRoot、commandExitCodes、sourceHashes、 inputDigest 和 queueMutation 恢复,不依赖上一轮对话。若上下文接近预算,先 停止读取、写入摘要并重新运行 print-task-context;不得用扩大读取范围来解决预算 问题。若 compact、resume 或传输发生异常,先检查已有日志、manifest 和 hash, 从第一个缺失步骤继续;不要盲目重复成功的写入或推进指针。


## Context Budget Protocol

每轮执行前必须建立最小上下文,并把上下文治理本身视为 gate:

1. 只读 `docs/EXECUTION_QUEUE.md`、`print-task-context` 输出列出的文件,以及当前
   task card 的 `inputPaths`、`commands` 和 `exitCriteria`。
2. 先运行 `node tools/web/check-task-context.mjs`;`withinBudget=false`、
   `estimatedContextTokens > 3500` 或 `envelopeTokens > 1024` 时保持当前任务不变,
   缩小读取范围后重试。
3. 不打开完整 `next-task-plan.json`、全部历史 status、完整 generated report、
   完整 git diff 或完整命令输出;需要判断时用 `jq -e/-r` 提取字段、用
   `sha256sum` 校验来源、用 `rg` 定位小节。
4. 将长输出直接写入 `tests/golden/corrective/<task>/`,对话和下一轮上下文只保留
   `exitCode`、一行结果、报告路径、artifact count/hash 和失败原因。
5. 一个 iteration 结束时,必须形成可独立恢复的 compact handoff:
   `task`、`status`、`gate`、`evidenceRoot`、`commandExitCodes`、`sourceHashes`、
   `inputDigest`、`queueMutation`、`nextCorrectiveTask`。
6. 下一 iteration 丢弃上一轮的临时解释和长日志,只读取该 handoff 及新任务卡;
   不把完整历史 transcript 作为隐式输入。
7. 出现 compact/remote transport error 时,停止自动推进,按 Resume Prompt 的
   只读顺序检查磁盘上的证据和 handoff;只在 checkpoint 明确显示某命令缺失且
   不存在未知状态时重跑一次,确认 digest/hash 后再继续。不得用旧 transcript
   或完整日志填充下一轮上下文。

## Iteration Contract

1. Run `node tools/web/print-task-context.mjs` and
   `node tools/web/check-task-context.mjs`.
2. Run `node tools/web/check-corrective-plan.mjs` before editing.
3. Read only the current C task card and its named inputs.
4. Keep all corrective outputs under `tests/golden/corrective/<task>/`.
5. Before and after every task, compare the protected legacy source hashes; a changed
   protected hash is a hard stop, not a reason to re-sign history.
6. A task is complete only when its card's commands, evidence hashes, deterministic
   output check, handoff fields, and all gates pass.
7. Run `node tools/web/write-corrective-handoff.mjs` only after all evidence files
   are final; do not add or edit evidence afterward without regenerating the handoff.
8. Update this file only from a durable successful or blocked corrective handoff. The
   current value and any successor come from the handoff manifest and corrective plan
   dependency graph, never from a guessed legacy task number. A blocked handoff may
   refresh the checkpoint fields but must keep the same task and pointer.

## Stop Rules

- Never run a queue-writing command before `C6-003` and `G5`.
- Never count `CANCELLED`, `UNSUPPORTED`, `EXTERNAL_REQUIRED`, metadata-only, or
  negative-only evidence as positive parity.
- Never edit `docs/EXECUTION_QUEUE.md`, legacy `next-task-plan.json`, task
  catalog/index, parent manifest, parent status, or legacy task cards as part of
  C0-C5. Corrective cards and shadow plan state may change only after the
  preflight/handoff rules above are satisfied.
- Stop on the first failed command or inconsistent hash; keep the current task
  `in_progress`/`blocked` and preserve all evidence.
- `owner_review_required` is cleared by the recorded review artifact; any post-write
  hash or pointer drift remains a hard stop and requires rollback receipt review.

## Handoff Fields

Completed handoffs: `C0-001` through `C5-003`, `C6-001`, and `C6-002` are `done`.
The current evidence is under `tests/golden/corrective/C6-003/`; its handoff is
`in_progress`, with `queueMutation=true` and `nextCorrectiveTask=C6-003` while
post-write G5 verification remains active.

After each successful iteration, record `task`, `status`, `gate`, `evidenceRoot`,
`commandExitCodes`, `sourceHashes`, `queueMutation`, and `nextCorrectiveTask` in the
task's machine-readable handoff. Then replace the Current Task table above with the
new corrective task before starting the next iteration.