chore(全仓): @build/@test 旧文档别名清退为技能调用名

现状口径:/keil-build 与 /serial-boot-test 是 DSH 会话的技能调用名,
不是 shell 命令;「名 + 命令行参数」的命令形态改为可执行体
run_boot_test.py 的真实调用。

- AGENTS.md:别名说明重写为「技能调用名不是 shell 命令」,两条目改
  「编译(/keil-build)」「串口回归(/serial-boot-test)」
- keil-build / serial-boot-test 两 skill 调用名与示例同步;task-worktree
  方案文档去掉 @build/@test 惯例从句;@task 保留(不在点名范围)
- 123 文件现状陈述全改;台架捕获、变更记录/时间线、rename 映射输入
  等 41 行历史证据保留旧名
- gen_memory_svg.py 6 处措辞随改,3 张 SVG 产物同批重跑
- 顺手补并行方案同行漏网计数 51→52 钩子

验证:提交期快钩子对 123 文件实跑全 Passed;check_doc_links --all
rc=0(3038 处、无法判定 0);check_mermaid --all rc=0;YAML 解析 52
钩子不变;skill-size rc=0;py_compile 全过;字节卫生零漂移。
This commit is contained in:
2026-10-30 13:03:12 +08:00
parent dc964090ea
commit 4a4ad6bc5f
123 changed files with 455 additions and 455 deletions
+1 -1
View File
@@ -506,7 +506,7 @@ static int cmd_pass(lftpd_client_t *client, const char *arg)
send_simple_response(client->socket, 230, STATUS_230);
return 0;
}
/* 预期事件(爆破/配错口令):用 INFO 而非 ERROR——[ERR] 是 @test Forbidden 标记 */
/* 预期事件(爆破/配错口令):用 INFO 而非 ERROR——[ERR] 是 /serial-boot-test Forbidden 标记 */
if (res == FTP_AUTH_LOCKED) {
lftpd_log_info("auth locked after %u failures", (unsigned)FTP_AUTH_FAIL_MAX);
} else {
+1 -1
View File
@@ -8,7 +8,7 @@
* 对端行为级别(既不是缺陷,也不该长得像缺陷)——
* 控制连接被对端关闭 / 客户端连上就走 / PASV 之后不来数据连接 / 网络重建导致
* 监听重建,这些都是**外部输入决定的正常收尾**。它们原先记 error 级,代价实测:
* ① 本仓 @test 的 Forbidden 标记含 `[ERR]`(它同时是四个 Fault 崩溃日志的前缀),
* ① 本仓 /serial-boot-test 的 Forbidden 标记含 `[ERR]`(它同时是四个 Fault 崩溃日志的前缀),
* 于是"FileZilla 关了个窗口"就能把一次启动测试判 FAIL;② 任何人对着 21 端口
* 连一下就走,就能无限制造固件级 ERROR 日志(日志面 + 门禁面都能被外部驱动)。
* 所以这一类降为 info,并单独起一个名字,让"谁是真故障"在读代码时就一目了然。
+1 -1
View File
@@ -446,7 +446,7 @@ void sb_link_on_error(UART_HandleTypeDef *p_huart)
* 2. 上报每 SB_LINK_REPORT_MS 一次,**只有计数有变化才打**;RX 与 TX 各一行,
* 分开是因为控制台单行上限 192 字符,塞一行会被截断(截断的行比不打印更误导)。
* 3. 第一帧成功收到时立刻单独打一行,台架刚上电就能确认"链路通了、长度对、CRC 过"。
* 4. ⚠ TX 行的字段名**不能含 fail**:`@test` 的 forbidden 模式是
* 4. ⚠ TX 行的字段名**不能含 fail**:`/serial-boot-test` 的 forbidden 模式是
* `FAIL;ERROR;HardFault;[ERR]` 且**大小写不敏感**,写 `fail=0` 会让每次启动
* 自检都判红(2026-10-29 实测,被自己的日志字段坑了一次)。故用 kerr / abor。
*/
+3 -3
View File
@@ -20,7 +20,7 @@
* 自洽假绿(见 test/host/net_socket/run_unit_test.py 的注释)。
* ⚠ 本注释块内禁止出现"斜杠紧跟星号"的连写(Markdown 粗体收尾在路径末尾时最容易
* 撞上,例如目录通配那种写法):ARMCC 报 #9-D nested comment is not allowed,
* 而 @build 的验收口径是 0 错误 **0 警告**(2026-10-25 首编即中招,已改)。
* 而 /keil-build 的验收口径是 0 错误 **0 警告**(2026-10-25 首编即中招,已改)。
* 适用平台:STM32F407ZGTx(ARMCC v5,C99);PC 模拟器与主机侧单测(MSVC)同标准
* 作者:王建锋
* 创建日期:2026-10-25
@@ -43,7 +43,7 @@ extern "C" {
* 开关:**默认关闭 = 产品构建**。
* 打开方式 = 取消下一行注释。策略与 test/board/test_config.h 的
* ENABLE_DESTRUCTIVE_TESTS 同级:默认必须关闭,严禁以打开态提交。
* ⚠ 关闭态是 @build 的验收口径:"0 错误 0 警告" 且 .map 无新增符号
* ⚠ 关闭态是 /keil-build 的验收口径:"0 错误 0 警告" 且 .map 无新增符号
* (规格 §2.1 完成判据)。本宏不新增任何 .c,故不涉及双端注册。
*/
//#define APP_ASSERT_ENABLE
@@ -119,7 +119,7 @@ extern void vApplicationAssertFailed(const char *file, long line);
* 里打开,**跑完必须还原成注释态**。
* 4. 断言条件**不得带副作用**:关闭态不求值、打开态才求值,带副作用等于让行为
* 随开关漂移——这是本宏唯一真正危险的误用形态。
* 5. 台架口径:MCU 钩子打印以 [ERR] 开头 → 真机上断言一旦触发,@test 必然判本次
* 5. 台架口径:MCU 钩子打印以 [ERR] 开头 → 真机上断言一旦触发,/serial-boot-test 必然判本次
* 失败,这是刻意的(AGENTS「Forbidden 标记含 [ERR]」/ 出现 Fault 即不通过)。
*/