admin 74b407ccba session-mechanism:加「锁根不得落进技能包」红线判据
按决策方法论自决(加判据属"实现路径",⛔ 不列入待拍板)。

新增 `session-rules-check.py::check_lockroot_in_pkg()`,注册进体检 A 组:
查 `<技能包>/05-交接单/` 与 `<技能包>/scripts/05-交接单/` 是否被创建
(三个根都查:脚本所在包根、全局技能根下的 session-mechanism、本区技能根下的同名目录)。

为什么是红线:`lock/handoff-guard.sh` 与 `lock/preflight-lock.sh` 的 `DOCS_ROOT`
原先回落到 `$_SM_HERE/..`(=技能包自己的 `scripts/`)⇒ 取不到文档库根时锁目录长在包里
(另一环境实测已出现 `<技能包>/scripts/05-交接单/.locks/`)。后果两条:污染只读发布物;
换工作区后锁跟错地方 ⇒ 域锁静默失效。
两处回落实已改为「取不到就报错 + 留痕 + 退出码 2」(9b839e7 / 22799fc);本条是兜底判据。

变异对照(⛔ 证明它抓得住、不是恒绿):
· 常态 ⇒ `✓ [A] 锁根未落进技能包`
· `mkdir -p <技能包>/scripts/05-交接单` 后 ⇒ `✗ [A] 锁根落进了技能包 ⇒ …`
· `rmdir` 复原 ⇒ 回到 ✓

⛔ 未做成 selftest 自动化用例:那要求真在技能包里造目录,用例中断会把 `05-交接单`
永久留在包里(不可逆污染)。⇒ 保留为判据 docstring 里可手工复现的步骤。

验收:语法 OK;全量自测 PASS 110 / FAIL 0。
2026-10-15 22:50:46 +08:00
S
Description
No description provided
46 MiB
0 Stars 1 Watchers 0 Forks
Languages
HTML 78%
Python 13.3%
CSS 6.8%
JavaScript 1.2%
TypeScript 0.4%
Other 0.3%