Files
cnc_wams/work/working4/03-progress-ledger.md

513 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 03 推进台账
生成日期2026-06-26
说明:本台账保留历史推进记录。早期条目中的“遗留问题”和“下一步”已由后续 W4-IMPL-002
和 W4-DOC-002 收口;当前状态以 `04-task-matrix.md``05-acceptance-evidence.md` 为准。
## 1. 台账规则
每轮结束必须追加一条记录,格式保持一致:
```text
轮次:
日期:
目标:
做了什么:
改了哪些文件:
验证了什么:
结果:
遗留问题:
下一步:
```
如果一轮只写文档,没有改代码,也必须明确写出“未改代码”。如果运行了测试,必须记录命令和结果。如果没有运行测试,必须说明原因。
## 2. 当前台账
### W4-DOC-001
日期2026-06-26
目标:
使用 `working3` 资料,为 `web-rtcp-5axis-sim-plan` 下一阶段功能完善建立文档包。
做了什么:
- 梳理 `working3/gmoccapy_XYZAB_execution_analysis.md`,提取 gmoccapy_XYZAB native 启动顺序、NML command/status/error、HAL/postgui、G-code 运行互锁和按钮控制逻辑。
- 梳理 `working3/gmoccapy_button_icons/`确认按钮清单、CSV、112 个图标资源和 211 行按钮/状态记录。
- 对照 `web-rtcp-5axis-sim-plan` 当前 README、docs、working_run、app/src、tests确认已有 gmoccapy shell、xyzac/xyzbc profile、kinematics/interpreter/task-HAL runtime 和 RUN 验证。
- 建立 `working4` 文档集,覆盖功能内容、开发步骤、推进台账、任务矩阵、验收证据、决策记录。
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/README.md
/home/meswork/cnc_wams/work/working4/01-function-content.md
/home/meswork/cnc_wams/work/working4/02-program-development-steps.md
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
/home/meswork/cnc_wams/work/working4/06-decision-records.md
```
验证了什么:
- 验证 `working3` 输入文件存在。
- 验证 `working4` 起始为空,可作为本轮输出目录。
- 验证目标项目已有构建、Node smoke、browser smoke、QA evidence 目录和相关文档。
- 本轮以文档生成为主,未修改 `web-rtcp-5axis-sim-plan/app/src` 代码。
结果:
- 文档规划完成。
- 任务矩阵建立,后续实施可按任务编号推进,避免重复做。
遗留问题:
- 尚未把 `working3` 图标复制到 app assets。
- 尚未新增 `gmoccapy-xyzab` profile。
- 尚未新增图标 manifest、HAL diagnostics、XYZAB gate 测试和浏览器报告。
下一步:
`04-task-matrix.md``W4-A01` 开始,将资料和图标资产落库。
### W4-IMPL-001
日期2026-06-26
目标:
`working4` 从 W4-A01 开始实施资料落库、gmoccapy_XYZAB reference profile、通信/HAL 诊断模型和 Node 验收。
做了什么:
- 新增 `docs/gmoccapy-xyzab-reference.md`,记录 native 启动顺序、NML command/status/error、HAL/postgui、互锁和图标资产边界。
-`working3/gmoccapy_button_icons/button_icon_inventory.csv` 转成 `app/src/ui-reference/gmoccapy-button-icons.json`,保留 211 行清单。
-`working3/gmoccapy_button_icons/files/` 的 112 个 PNG/SVG 图标复制到 `app/src/assets/gmoccapy-icons/`
- 新增 `gmoccapy-xyzab` profile坐标为 XYZAB标记 `trivkins coordinates=xyzab``tcpCapable=false``rtcpProof=false``promotionAllowed=false`
- 新增 gmoccapy communication model 和 HAL/postgui model。
- 在 UI/store 层阻止 `gmoccapy-xyzab` 这种 reference-only profile 被切到 TCP/RTCP。
- 修正 fallback RTCP frame 的 joint pose 轴映射,使 XYZAB 显示 B 轴而不是误用 C 轴。
- 新增并接入 Node 测试XYZAB profile、icon manifest、communication model、HAL model。
- 更新 `docs/traceability-matrix.md``04-task-matrix.md``05-acceptance-evidence.md`
改了哪些文件:
```text
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/docs/gmoccapy-xyzab-reference.md
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/docs/traceability-matrix.md
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/package.json
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui-reference/gmoccapy-button-icons.json
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/assets/gmoccapy-icons/
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/profiles/index.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/profiles/source-reference-map.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/rtcp-frame.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/store.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_manifest.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_profile_boundary.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
```
验证了什么:
```bash
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_manifest.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_profile_boundary.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs
npm --prefix web-rtcp-5axis-sim-plan/app run build
npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_dist_browser.sh
git diff --check -- web-rtcp-5axis-sim-plan work/working4
```
结果:
- 新增 Node 测试全部通过。
- `npm run build` 通过。
- `npm run smoke:node` 通过。
- browser shell smoke 和 dist browser smoke 均通过。
- `git diff --check` 通过。
遗留问题:
- 尚未建立 icon registry也未将图标接入实际按钮 DOM。
- communication/HAL model 已有数据和测试,但尚未接入信息面板页面。
- 尚未新增 gmoccapy_XYZAB gate 独立测试。
- 尚未生成 QA JSON/PDF/截图报告。
下一步:
继续 `W4-U01`,建立 `app/src/ui/gmoccapy-icon-registry.js`,并将 manifest 资产接入右侧栏、底部栏、Auto 栏、spindle/coolant 和 preview controls。
### W4-IMPL-002
日期2026-06-26
目标:
继续 `working4` 的 UI/icon、gmoccapy_XYZAB gate、browser smoke 和 QA 报告任务。
做了什么:
- 新增 `gmoccapy-icon-registry.js`,为核心 gmoccapy 按钮提供 icon name、asset path、variant 和 fallback。
- 将右侧状态栏、底部控制栏、preview toolbar、spindle/coolant 控件接入 gmoccapy 图标,并保留 `aria-label``data-icon-name`、blocked reason。
- 将 gmoccapy communication model 和 HAL/postgui model 接入信息面板,显示 NML command/status、Web runtime path、postgui 顺序和 HAL pins/nets。
- 扩展 `linuxcnc-task-policy.js`,为 `gmoccapy-xyzab` RUN gate 增加 INI、machine-file、opened program、interp idle、task/HAL runtime ready 检查;补齐 MDI、JOG/HOME、spindle/coolant/override gate。
- 在 store 中新增 spindle direction 行为,并对 coolant/spindle/override 操作应用 gate。
- 新增 icon registry 和 gmoccapy_XYZAB gate Node 测试。
- 更新 browser smoke断言核心按钮 icon 和 gmoccapy NML/HAL diagnostics。
- 新增 QA capture 脚本,生成 gmoccapy_XYZAB JSON/PDF 报告和 6 张截图。
- 更新 `04-task-matrix.md``05-acceptance-evidence.md`
改了哪些文件:
```text
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/package.json
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-icon-registry.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/styles/gmoccapy.css
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/linuxcnc-task-policy.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/store.js
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_registry.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
```
验证了什么:
```bash
node --check web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js
node --check web-rtcp-5axis-sim-plan/app/src/state/store.js
node --check web-rtcp-5axis-sim-plan/app/src/state/linuxcnc-task-policy.js
node --check qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_registry.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_run_preconditions.mjs
npm --prefix web-rtcp-5axis-sim-plan/app run build
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
node qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
```
结果:
- 新增 Node 测试全部通过。
- `verify_rtcp_store``verify_run_preconditions` 回归通过。
- 静态 build 通过。
- browser shell smoke 通过。
- QA capture 返回 `gmoccapy_xyzab_function_status=PASS`,最新 job_id 为 `xyzab-20260626190724-7b80b3aa`,生成 JSON、PDF 和 6 张截图。
遗留问题:
- `gmoccapy-xyzab` 仍为 `trivkins` reference-only profile不提供 TCP/RTCP proof。
- 本轮 QA 证明 profile、图标、diagnostics 和 blocked gate不证明 native `linuxcncsvr/milltask/HAL` 实机运行。
下一步:
完整 `npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node`、build、browser smoke、dist browser smoke、QA capture 和 `git diff --check` 已作为本轮最终回归执行。
### W4-DOC-002
日期2026-06-26
目标:
继续收口 `working4`,消除状态文档中仍停留在初始规划阶段的过期描述。
做了什么:
- 更新 `README.md`,明确 `working4` 当前是已实施、已验证、已归档状态,不再描述为仅生成规划文档。
- 更新 `01-function-content.md`,将 F-XYZAB-01 到 F-XYZAB-07 的状态对齐到当前完成情况,并保留 `gmoccapy-xyzab` reference-only 边界。
- 更新 `02-program-development-steps.md`,标明阶段 A 到 G 已收口QA capture JSON/PDF 已生成。
- 更新 `02-program-development-steps.md` 的阶段文件清单措辞,从规划口径调整为已归档的主要新增/更新文件。
- 更新 `04-task-matrix.md`,新增 W4-D08 状态文档收口任务并标记 `done`
- 更新 `05-acceptance-evidence.md`,修正“只创建文档、没有 job_id/report_id”的旧说明并补充 W4-U01、W4-V04、W4-V05 证据行。
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/README.md
/home/meswork/cnc_wams/work/working4/01-function-content.md
/home/meswork/cnc_wams/work/working4/02-program-development-steps.md
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
```
验证了什么:
```bash
rg -n "\\| W4-[A-Z0-9-]+ \\| (todo|in_progress|blocked|deferred) \\|" work/working4/04-task-matrix.md
node -e "const r=JSON.parse(require('fs').readFileSync('qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json','utf8')); if(r.status!=='PASS') process.exit(1); console.log(r.status, r.steps.length, r.checks.length)"
git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4
```
结果:
- `04-task-matrix.md` 未发现 `todo``in_progress``blocked``deferred` 的任务行。
- 过期状态扫描未发现当前 README、功能内容、开发步骤或验收证据中的待实施/待验证旧口径命中项仅为状态词定义、README 的“当前没有待执行任务”说明,以及早期台账的历史遗留记录。
- QA JSON 保持 `PASS`,包含 6 个步骤和 10 个检查。
- `git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4` 返回 0。
遗留问题:
- `gmoccapy-xyzab` 仍为 `trivkins` reference-only profile不提供 TCP/RTCP proof。
- 本阶段不证明 native `linuxcncsvr/milltask/HAL` 实机运行。
下一步:
- `working4` 当前无剩余任务;后续新增工作需先在 `04-task-matrix.md` 新增任务编号。
### W4-DOC-003
日期2026-06-26
目标:
继续完成 `working4` 收口,清理剩余会让读者误判为规划阶段的措辞。
做了什么:
- 更新 `README.md` 文档清单说明,将“要完善/应改”口径改为“已完善/已改”口径。
- 更新 `02-program-development-steps.md`,将各阶段“建议新增或更新文件”统一改为“主要新增或更新文件”。
- 更新 `03-progress-ledger.md` 说明,明确早期条目的“遗留问题/下一步”是历史记录,当前状态以矩阵和验收证据为准。
- 更新 `04-task-matrix.md`,将 W4-D01 验收标准改为后续维护入口,将 W4-T07 验收标准改为已输出 JSON、PDF 和截图。
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/README.md
/home/meswork/cnc_wams/work/working4/02-program-development-steps.md
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
```
验证了什么:
```bash
rg -n "\\| W4-[A-Z0-9-]+ \\| (todo|in_progress|blocked|deferred) \\|" work/working4/04-task-matrix.md
rg -n "待实施|待验证|待生成|PDF 任务保持 todo|本轮只创建文档|没有生成新的 job_id|后续新增:|建议新增|建议新增或更新|必要时输出 PDF|后续执行入口|拟完善功能包|TODO" work/working4/README.md work/working4/01-function-content.md work/working4/02-program-development-steps.md work/working4/04-task-matrix.md work/working4/05-acceptance-evidence.md
node -e "const r=JSON.parse(require('fs').readFileSync('qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json','utf8')); if(r.status!=='PASS') process.exit(1); console.log('qa_report_status='+r.status); console.log('qa_report_steps='+r.steps.length); console.log('qa_report_checks='+r.checks.length);"
git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4
```
结果:
- 未发现未完成 W4 任务行。
- 当前状态文档未发现规划阶段残留关键词。
- QA JSON 保持 `PASS`,包含 6 个步骤和 10 个检查。
- `git diff --check` 返回 0。
遗留问题:
- 无新的 `working4` 剩余任务。
- 保留既定边界:`gmoccapy-xyzab``trivkins` reference-only profile不证明 TCP/RTCP 或 native LinuxCNC realtime 执行。
下一步:
- 当前无需继续执行;后续新增需求先在 `04-task-matrix.md` 新增任务编号。
### W4-DOC-004
日期2026-06-26
目标:
继续复核 `working4` 验收证据,确认 QA report 编号字段与归档表一致。
做了什么:
- 重新扫描 `04-task-matrix.md`,确认没有未完成 W4 任务行。
- 重新扫描当前状态文档,确认没有规划阶段残留关键词。
- 读取 `gmoccapy-xyzab-function-report.json`,确认报告字段为 `jobId``reportId`
- 读取 QA capture 脚本,确认控制台输出为 `gmoccapy_xyzab_function_job_id``gmoccapy_xyzab_function_report_id`,来源是同一组 report 字段。
- 更新 `05-acceptance-evidence.md`,说明 JSON camelCase 字段与归档表 `job_id/report_id` 标签的对应关系。
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
```
验证了什么:
```bash
rg -n "\\| W4-[A-Z0-9-]+ \\| (todo|in_progress|blocked|deferred) \\|" work/working4/04-task-matrix.md
rg -n "待实施|待验证|待生成|PDF 任务保持 todo|本轮只创建文档|没有生成新的 job_id|后续新增:|建议新增|建议新增或更新|必要时输出 PDF|后续执行入口|拟完善功能包|TODO" work/working4/README.md work/working4/01-function-content.md work/working4/02-program-development-steps.md work/working4/04-task-matrix.md work/working4/05-acceptance-evidence.md
node -e "const r=JSON.parse(require('fs').readFileSync('qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json','utf8')); if(r.status!=='PASS') process.exit(1); console.log(r.jobId, r.reportId, r.status, r.steps.length, r.checks.length)"
git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4
```
结果:
- 未发现未完成 W4 任务行。
- 当前状态文档未发现规划阶段残留关键词。
- QA JSON 保持 `PASS`,包含 `jobId=xyzab-20260626190724-7b80b3aa``reportId=report-xyzab-20260626190724-7b80b3aa`、6 个步骤和 10 个检查。
- `git diff --check` 返回 0。
遗留问题:
- 无新的 `working4` 剩余任务。
- 保留既定边界:`gmoccapy-xyzab``trivkins` reference-only profile不证明 TCP/RTCP 或 native LinuxCNC realtime 执行。
下一步:
- 当前无需继续执行;后续新增需求先在 `04-task-matrix.md` 新增任务编号。
### W4-DOC-005
日期2026-06-26
目标:
建立 `working4` 一眼可读的最终收口入口,避免完成状态分散在 README、任务矩阵、验收证据和台账中。
做了什么:
- 新增 `07-final-closure.md`汇总收口结论、最终证据、QA identifiers、最终校验命令、保留边界和后续变更规则。
- 更新 `README.md`,将 `07-final-closure.md` 标为最终收口入口,并加入文档清单和后续维护步骤。
- 更新 `04-task-matrix.md`,新增 W4-D09 并标记 `done`
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/07-final-closure.md
/home/meswork/cnc_wams/work/working4/README.md
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/04-task-matrix.md
```
验证了什么:
```bash
rg -n "\\| W4-[A-Z0-9-]+ \\| (todo|in_progress|blocked|deferred) \\|" work/working4/04-task-matrix.md
# stale wording scan command is recorded in 07-final-closure.md
node -e "const r=JSON.parse(require('fs').readFileSync('qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json','utf8')); if(r.status!=='PASS') process.exit(1); console.log(r.jobId, r.reportId, r.status, r.steps.length, r.checks.length)"
git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4
```
结果:
- 未发现未完成 W4 任务行。
- 当前状态文档未发现规划阶段残留关键词;`07-final-closure.md` 中的示例扫描命令已使用 escaped pattern 和拆分 token避免自命中。
- QA JSON 保持 `PASS`,包含 `jobId=xyzab-20260626190724-7b80b3aa``reportId=report-xyzab-20260626190724-7b80b3aa`、6 个步骤和 10 个检查。
- `git diff --check` 返回 0。
遗留问题:
- 无新的 `working4` 剩余任务。
- 保留既定边界:`gmoccapy-xyzab``trivkins` reference-only profile不证明 TCP/RTCP 或 native LinuxCNC realtime 执行。
下一步:
- `working4` 已有最终收口入口;后续新增需求先在 `04-task-matrix.md` 新增任务编号,并同步更新 `07-final-closure.md`
### W4-VERIFY-006
日期2026-06-26
目标:
接续上一轮中断后的 `working4` 收口状态,重新运行关键验收链路,确认当前代码、报告和最终证据仍一致。
做了什么:
- 读取 `AGENTS.md``working4` README、任务矩阵、推进台账、最终收口说明确认当前范围和日志规则。
- 扫描 `04-task-matrix.md`,确认没有未完成 W4 任务行。
- 扫描当前状态文档,确认没有规划阶段残留关键词。
- 重新运行 build、Node smoke、gmoccapy shell browser smoke、dist browser smoke 和 QA capture。
- QA capture 重新生成 `gmoccapy-xyzab-function-report.json``.pdf` 和截图目录内容。
- 更新 `05-acceptance-evidence.md``07-final-closure.md`,将当前最终证据编号对齐到最新 QA report。
改了哪些文件:
```text
/home/meswork/cnc_wams/work/working4/03-progress-ledger.md
/home/meswork/cnc_wams/work/working4/05-acceptance-evidence.md
/home/meswork/cnc_wams/work/working4/07-final-closure.md
```
验证了什么:
```bash
rg -n "\\| W4-[A-Z0-9-]+ \\| (todo|in_progress|blocked|deferred) \\|" work/working4/04-task-matrix.md
TD_WORD="$(printf '%s%s' TO DO)"; STALE_W4_PATTERN="$(printf '\\u5f85\\u5b9e\\u65bd|\\u5f85\\u9a8c\\u8bc1|\\u5f85\\u751f\\u6210|PDF \\u4efb\\u52a1\\u4fdd\\u6301 todo|\\u672c\\u8f6e\\u53ea\\u521b\\u5efa\\u6587\\u6863|\\u6ca1\\u6709\\u751f\\u6210\\u65b0\\u7684 job_id|\\u540e\\u7eed\\u65b0\\u589e\\uff1a|\\u5efa\\u8bae\\u65b0\\u589e|\\u5efa\\u8bae\\u65b0\\u589e\\u6216\\u66f4\\u65b0|\\u5fc5\\u8981\\u65f6\\u8f93\\u51fa PDF|\\u540e\\u7eed\\u6267\\u884c\\u5165\\u53e3|\\u62df\\u5b8c\\u5584\\u529f\\u80fd\\u5305|%s' "$TD_WORD")"; rg -n "$STALE_W4_PATTERN" work/working4/README.md work/working4/01-function-content.md work/working4/02-program-development-steps.md work/working4/04-task-matrix.md work/working4/05-acceptance-evidence.md work/working4/07-final-closure.md
node -e "const r=JSON.parse(require('fs').readFileSync('qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json','utf8')); if(r.status!=='PASS') process.exit(1); console.log(r.jobId, r.reportId, r.status, r.steps.length, r.checks.length)"
npm --prefix web-rtcp-5axis-sim-plan/app run build
npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_dist_browser.sh
node qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4
```
结果:
- 未发现未完成 W4 任务行。
- 当前状态文档未发现规划阶段残留关键词。
- `npm --prefix web-rtcp-5axis-sim-plan/app run build` 返回 0输出 `gmoccapy_static_build=ok`
- `npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node` 返回 0覆盖既有 smoke 和新增 gmoccapy_XYZAB profile/icon/communication/HAL/gate smoke。
- gmoccapy shell browser smoke 返回 `gmoccapy_shell_smoke=ok`
- dist browser smoke 返回 `gmoccapy_dist_smoke=ok`
- QA capture 返回 `gmoccapy_xyzab_function_status=PASS`,最新 `job_id=xyzab-20260626214346-f4b4aa36``report_id=report-xyzab-20260626214346-f4b4aa36`,生成 JSON、PDF 和 6 张截图。
- `git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4` 返回 0。
遗留问题:
- 无新的 `working4` 剩余任务。
- 保留既定边界:`gmoccapy-xyzab``trivkins` reference-only profile不证明 TCP/RTCP 或 native LinuxCNC realtime 执行。
下一步:
- 当前无需继续执行;后续新增需求先在 `04-task-matrix.md` 新增任务编号,并同步更新 `05-acceptance-evidence.md``07-final-closure.md`
## 3. 后续追加模板
### W4-XXX
日期:
目标:
做了什么:
改了哪些文件:
```text
```
验证了什么:
```bash
```
结果:
遗留问题:
下一步: