故障排查
按症状查:看到什么现象,多半是什么原因,怎么修。
按症状查
| 症状 | 多半是 | 怎么修 |
|---|---|---|
| 中文输出变成乱码 | 控制台代码页是 GBK | 先执行 $env:PYTHONIOENCODING = "utf-8" |
| 改了插件行为却不变 | 本地依赖不会自动重拷 | 先移除再加入该依赖,然后比对文件哈希 |
| 技能加了却不出现在列表 | 名字里有大写字母 | 只用小写连字符,例如 dsha |
| 写待办清单被拦 | 工具名正则撞车 | 用显式工具名列表,别用宽泛正则 |
| 命令能跑但说找不到文件 | PATH 陈旧 | 新开一个终端;或用 dsha envfeel 看实际解析到的路径 |
| 提示缺少某工具 | 依赖确实没装 | 去装。DSHA 不会替你装 |
看到 NOT_RUN | 不是故障 | 这是拒绝执行的设计行为,任务没开始 |
ERR_TARGET_OUTSIDE_SANDBOX | 目标不在受信根目录内 | 见协议与拒绝码 |
两个最容易误判的现象
现象一:dsha envfeel 说某工具"未在 PATH,靠已知目录找到"。
这不是没装,是你的进程 PATH 陈旧。DSHA 会继续去已知安装目录里找,所以工具照常可用。新开一个终端,PATH 就正常了。
现象二:报告被拦下来,但你觉得措辞没问题。
先别急着改锁。跑一遍机械校验:
python <技能目录>/scripts/englock.py check <你的报告.md>
它会指出具体是哪一句、哪个词命中的。看清楚了再决定是改措辞还是调词表。
注意:引用别人的话也被算命中。校验器不区分"这是我在主张"还是"这是我在引用"——所以引用禁用词时,放进代码围栏里。
还是不行
一个报告应当包含这些内容,缺了就很难定位:
- 你跑的确切命令
- 完整的输出(不要截断报错)
dsha envfeel的输出- 你的宿主与版本
按工程锁 L1–L9 的话说:交报告要配复现命令,否则别人只能猜。