307 lines
13 KiB
Markdown
307 lines
13 KiB
Markdown
# 05 验收证据
|
||
|
||
生成日期:2026-06-26
|
||
|
||
## 1. 证据规则
|
||
|
||
每个功能完成时必须至少提供一种证据:
|
||
|
||
- 命令输出:Node、npm build、browser smoke、QA capture。
|
||
- 页面证据:本地 URL、云端 URL、页面状态说明。
|
||
- JSON:机器可读 PASS/FAIL 报告。
|
||
- 截图:关键页面状态。
|
||
- PDF/DOCX/Markdown 报告:适合人工归档的报告。
|
||
- job_id/report_id:如果由 CI、云端任务或报告生成器产生,必须记录。
|
||
|
||
本目录先由文档规划创建;后续 W4-IMPL-001、W4-IMPL-002 和收口检查已补齐实现、QA 证据和最新
|
||
job_id/report_id。
|
||
|
||
注:QA JSON 内部字段使用 camelCase:`jobId`、`reportId`;控制台输出和本归档表使用
|
||
`job_id`、`report_id` 标签,两者指向同一组编号。
|
||
|
||
## 2. 本轮文档证据
|
||
|
||
本轮输入资料确认:
|
||
|
||
```bash
|
||
find /home/meswork/cnc_wams/work/working3 -maxdepth 3 -type f | sort
|
||
find /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan -maxdepth 3 -type f | sort
|
||
find /home/meswork/cnc_wams/work/working4 -maxdepth 2 -type f -print | sort
|
||
```
|
||
|
||
本轮读取的核心资料:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/work/working3/gmoccapy_XYZAB_execution_analysis.md
|
||
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/README.md
|
||
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/button_icon_inventory.md
|
||
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/button_icon_inventory.csv
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/README.md
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/docs/technical-roadmap.md
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/docs/traceability-matrix.md
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/main.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/state/store.js
|
||
```
|
||
|
||
本轮输出文件:
|
||
|
||
```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
|
||
/home/meswork/cnc_wams/work/working4/07-final-closure.md
|
||
```
|
||
|
||
## 3. 可复用的现有项目证据
|
||
|
||
### 3.1 Node 和 build 命令
|
||
|
||
项目已有命令:
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
`smoke:node` 当前覆盖:
|
||
|
||
```text
|
||
verify_linuxcnc_kinematics_runtime.mjs
|
||
verify_linuxcnc_interpreter_runtime.mjs
|
||
verify_linuxcnc_ini_runtime.mjs
|
||
verify_run_preconditions.mjs
|
||
verify_run_feedback_loop.mjs
|
||
verify_linuxcnc_task_hal_runtime.mjs
|
||
verify_native_task_hal_audit.mjs
|
||
verify_full_linuxcnc_5axis_source.mjs
|
||
verify_real_linuxcnc_5axis_program_cases.mjs
|
||
verify_full_execution_boundary.mjs
|
||
verify_machine_file_staging.mjs
|
||
verify_five_axis_session.mjs
|
||
verify_rtcp_store.mjs
|
||
verify_profile_boundary.mjs
|
||
verify_linear_unit_conversion.mjs
|
||
```
|
||
|
||
### 3.2 项目内已有 JSON/截图/PDF/DOCX
|
||
|
||
可复用证据路径:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/build/readiness/native-task-hal-readiness.json
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/working_run/run-feedback-evidence/run-feedback-local.json
|
||
/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/working_run/run-feedback-evidence/run-feedback-local.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/toolpath-preview-cases.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/run-preconditions-feedback.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/meter-scene-evidence.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/native-task-hal-comparison-report.md
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/button-control-evidence-report.pdf
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-button-control-evidence-report.pdf
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report-2026-06-22.docx
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/test-linuxcnc-source-run-report-2026-06-23.docx
|
||
```
|
||
|
||
云端 RUN 截图目录:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-after-deploy/
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-stop-after-deploy/
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-debug/
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/cloud-run-debug-current/
|
||
```
|
||
|
||
## 4. working4 已生成的证据
|
||
|
||
| 任务 | 证据类型 | 目标路径 | 状态 |
|
||
| --- | --- | --- | --- |
|
||
| W4-A02 icon manifest | JSON | `web-rtcp-5axis-sim-plan/app/src/ui-reference/gmoccapy-button-icons.json` | 已生成,211 行清单 |
|
||
| W4-P01 XYZAB profile | Node output | `tests/node/verify_gmoccapy_xyzab_profile.mjs` 控制台输出 | 已通过 |
|
||
| W4-P03 communication model | Node output | `tests/node/verify_gmoccapy_communication_model.mjs` 控制台输出 | 已通过 |
|
||
| W4-P04 HAL model | Node output | `tests/node/verify_gmoccapy_hal_model.mjs` 控制台输出 | 已通过 |
|
||
| W4-U01 icon registry | Node output | `tests/node/verify_gmoccapy_icon_registry.mjs` 控制台输出 | 已通过 |
|
||
| W4-G01 到 W4-G05 gate | Node output | `tests/node/verify_gmoccapy_xyzab_gates.mjs` 控制台输出 | 已通过 |
|
||
| W4-U02 到 W4-U05 UI | Browser screenshot | `qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/*.png` | 已生成 6 张截图 |
|
||
| W4-T07 QA report | JSON/PDF | `qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json`、`.pdf` | 已生成,PASS |
|
||
| W4-V01 build | 命令输出 | `npm --prefix ... run build` | 已通过 |
|
||
| W4-V02 node smoke | 命令输出 | `npm --prefix ... run smoke:node` | 已通过 |
|
||
| W4-V03 browser smoke | 命令输出和截图 | `verify_gmoccapy_shell_browser.sh` | 已通过 |
|
||
| W4-V04 dist browser smoke | 命令输出 | `verify_gmoccapy_dist_browser.sh` | 已通过 |
|
||
| W4-V05 whitespace check | 命令输出 | `git diff --check -- web-rtcp-5axis-sim-plan qa/web-rtcp-5axis-site-test work/working4` | 已通过 |
|
||
|
||
## 5. W4-IMPL-001 实施证据
|
||
|
||
日期:2026-06-26
|
||
|
||
本轮新增和更新的关键产物:
|
||
|
||
```text
|
||
web-rtcp-5axis-sim-plan/docs/gmoccapy-xyzab-reference.md
|
||
web-rtcp-5axis-sim-plan/app/src/ui-reference/gmoccapy-button-icons.json
|
||
web-rtcp-5axis-sim-plan/app/src/assets/gmoccapy-icons/
|
||
web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js
|
||
web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js
|
||
web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_manifest.mjs
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
|
||
```
|
||
|
||
资产证据:
|
||
|
||
```bash
|
||
find web-rtcp-5axis-sim-plan/app/src/assets/gmoccapy-icons -maxdepth 1 -type f | wc -l
|
||
# 112
|
||
|
||
node -e "const m=JSON.parse(require('fs').readFileSync('web-rtcp-5axis-sim-plan/app/src/ui-reference/gmoccapy-button-icons.json','utf8')); console.log(m.rowCount,m.copiedIconCount)"
|
||
# 211 112
|
||
```
|
||
|
||
新增 Node 测试证据:
|
||
|
||
```bash
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs
|
||
# gmoccapy_xyzab_profile_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_manifest.mjs
|
||
# gmoccapy_icon_manifest_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs
|
||
# gmoccapy_communication_model_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs
|
||
# gmoccapy_hal_model_smoke=ok
|
||
```
|
||
|
||
全局验收命令:
|
||
|
||
```bash
|
||
npm --prefix web-rtcp-5axis-sim-plan/app run build
|
||
# gmoccapy_static_build=ok
|
||
|
||
npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node
|
||
# linear_unit_conversion_smoke=ok
|
||
# 全链路返回 0,并包含 gmoccapy_xyzab_profile/icon_manifest/communication_model/hal_model smoke。
|
||
|
||
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
|
||
# gmoccapy_shell_smoke=ok
|
||
|
||
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_dist_browser.sh
|
||
# gmoccapy_dist_smoke=ok
|
||
|
||
git diff --check -- web-rtcp-5axis-sim-plan work/working4
|
||
# 返回 0
|
||
```
|
||
|
||
## 6. job_id 和 report_id 台账
|
||
|
||
### 6.1 W4-IMPL-002 UI/gate/QA 证据
|
||
|
||
日期:2026-06-26
|
||
|
||
本轮新增和更新的关键产物:
|
||
|
||
```text
|
||
web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-icon-registry.js
|
||
web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js
|
||
web-rtcp-5axis-sim-plan/app/src/styles/gmoccapy.css
|
||
web-rtcp-5axis-sim-plan/app/src/state/linuxcnc-task-policy.js
|
||
web-rtcp-5axis-sim-plan/app/src/state/store.js
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_registry.mjs
|
||
web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs
|
||
web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html
|
||
qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
|
||
```
|
||
|
||
新增 Node 测试证据:
|
||
|
||
```bash
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_icon_registry.mjs
|
||
# gmoccapy_icon_registry_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs
|
||
# gmoccapy_xyzab_gates_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs
|
||
# rtcp_store_smoke=ok
|
||
|
||
node web-rtcp-5axis-sim-plan/tests/node/verify_run_preconditions.mjs
|
||
# run_preconditions_ini_profile_smoke=ok
|
||
# run_preconditions_kinematics_smoke=ok
|
||
# run_preconditions_machine_file_smoke=ok
|
||
```
|
||
|
||
Build/browser/QA 证据:
|
||
|
||
```bash
|
||
npm --prefix web-rtcp-5axis-sim-plan/app run build
|
||
# gmoccapy_static_build=ok
|
||
|
||
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
|
||
# gmoccapy_shell_smoke=ok
|
||
|
||
node qa/web-rtcp-5axis-site-test/capture-gmoccapy-xyzab-function-cases.mjs
|
||
# gmoccapy_xyzab_function_status=PASS
|
||
# gmoccapy_xyzab_function_job_id=xyzab-20260626214346-f4b4aa36
|
||
# gmoccapy_xyzab_function_report_id=report-xyzab-20260626214346-f4b4aa36
|
||
```
|
||
|
||
QA 报告路径:
|
||
|
||
```text
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.pdf
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/01-loaded.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/02-profile-selected.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/03-run-blocked-power.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/04-run-blocked-reference-evidence.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/05-controls-active.png
|
||
/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab/06-hal-diagnostics.png
|
||
```
|
||
|
||
QA JSON 检查结果:
|
||
|
||
```text
|
||
PASS XYZAB profile selected
|
||
PASS Reference profile blocks RTCP promotion
|
||
PASS RUN blocked before power
|
||
PASS RUN blocked by reference evidence
|
||
PASS Core icons rendered
|
||
PASS Spindle/coolant state updates
|
||
PASS NML command diagnostic
|
||
PASS Web runtime diagnostic
|
||
PASS HAL postgui diagnostic
|
||
PASS Screenshots are nonblank
|
||
```
|
||
|
||
### 6.2 job_id/report_id 表
|
||
|
||
归档表:
|
||
|
||
| 日期 | job_id | report_id | 来源 | 对应任务 | 结果 | 证据路径 |
|
||
| --- | --- | --- | --- | --- | --- | --- |
|
||
| 2026-06-26 | N/A | N/A | 本轮文档生成和状态收口 | W4-D01 到 W4-D09 | done | `/home/meswork/cnc_wams/work/working4/` |
|
||
| 2026-06-26 | N/A | N/A | 本轮本地实施 | W4-A01 到 W4-A04、W4-P01 到 W4-P04、W4-T01 到 W4-T04、W4-V01 到 W4-V05 | done | `web-rtcp-5axis-sim-plan/app/src/`、`docs/`、`tests/node/` |
|
||
| 2026-06-26 | xyzab-20260626190724-7b80b3aa | report-xyzab-20260626190724-7b80b3aa | 本轮 QA capture | W4-U01 到 W4-U05、W4-G01 到 W4-G05、W4-T05 到 W4-T07 | PASS | `qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json`、`.pdf`、`output/gmoccapy-xyzab/` |
|
||
| 2026-06-26 | xyzab-20260626214346-f4b4aa36 | report-xyzab-20260626214346-f4b4aa36 | 继续复核 QA capture | W4-U01 到 W4-U05、W4-G01 到 W4-G05、W4-T05 到 W4-T07、W4-V01 到 W4-V05 | PASS | `qa/web-rtcp-5axis-site-test/output/gmoccapy-xyzab-function-report.json`、`.pdf`、`output/gmoccapy-xyzab/` |
|
||
|
||
## 7. 验收缺口
|
||
|
||
当前缺口:
|
||
|
||
- `gmoccapy-xyzab` 仍是 `trivkins` reference-only profile,不是 RTCP/TCP proof;真实 RTCP promotion 仍只来自 source-derived `xyzac-trt`、`xyzbc-trt`。
|
||
- 本轮 QA 对 `gmoccapy-xyzab` 证明 profile、图标、diagnostics 和 gate blocked reason,不证明 native `linuxcncsvr/milltask/HAL` 实机运行。
|
||
|
||
本轮新增证据已补齐原先 UI icon、communication/HAL diagnostics、XYZAB gate 和 QA JSON/PDF 缺口。
|