← 返回扫描报告总表 · ← dshlib 图书馆

扫描报告 · walkinglabs/learn-harness-engineering

认证等级L2
验证状态self-declared(单方声明,待独立验证)
验证方法未登记 structured verifiedBy
运行级实测未做运行级实测
内容锚git commit 77e7a3e21469 · walkinglabs/learn-harness-engineering · git ls-remote / clone 复现可对账
DIDdid:cha2a:package:walkinglabs/learn-harness-engineering
身份锚点npm 未声明 GitHub 仓库——装前请自行核验来源
来源git
插件版本—
安装dsh plugin add github:walkinglabs/learn-harness-engineering
扫描日期2026-08-28(35 天前)
扫描层级静态扫描(自研规则 + GuardDog 复核 + OSV 依赖)
扫描器版本dshlib-scan v0.1 · GuardDog 3.2.0 · OSV.dev

自研扫描:⚠️ 待审 · GuardDog 复核:未扫描 · OSV 依赖:未扫描

⚠️ 结论待复核:上次扫描距今 35 天(2026-08-28),插件或运行时更新后结论可能过期,建议重新扫描后再安装。
语义:扫描是提示信号,非安全审查。✅ 通过=无命中;⚠️ 待审=有命中需人工判断;❌ 失败=无法扫描。人工确认恶意→下架。本页全部内容由 dshlib 数据库派生(验证报告 可核对证据)。认证等级与依赖漏洞正交:L4 认证覆盖插件包内容/来源/生态,不覆盖依赖安全(见收录与验证标准)。结论有有效期:插件或运行时更新后,本页结论可能过期(>30 天将标注待复核)。本库能力与边界:披露页。

1. 自研扫描(dshlib-scan)

verified

True

findings

{'excessive_permissions': [{'file': 'learn-harness-engineering-main/docs/ar/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/de/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/en/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/es/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/fr/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/ja/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/ko/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/pt-BR/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/ru/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/tr/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/uk/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/uz/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/vi/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/zh-TW/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/docs/zh/lectures/lecture-06-why-initialization-needs-its-own-phase/code/init-check.ts', 'line': 93, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/solution/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/solution/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/solution/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-01/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/solution/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/solution/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/solution/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-02/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/solution/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/solution/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/solution/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-03/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/solution/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/solution/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/solution/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-04/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/gen-eval/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/gen-eval/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/gen-eval/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/plan-gen-eval/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/plan-gen-eval/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/plan-gen-eval/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/single-role/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/single-role/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/solution/single-role/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-05/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/solution/scripts/dev.js', 'line': 22, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/solution/scripts/dev.js', 'line': 30, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/solution/scripts/dev.js', 'line': 38, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/starter/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/starter/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/project-06/starter/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/shared/scripts/dev.js', 'line': 8, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/shared/scripts/dev.js', 'line': 16, 'match': 'execSync(', 'label': '命令执行'}, {'file': 'learn-harness-engineering-main/projects/shared/scripts/dev.js', 'line': 24, 'match': 'execSync(', 'label': '命令执行'}], 'dangerous_commands': [{'file': 'learn-harness-engineering-main/docs/ar/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/de/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/en/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 79, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/es/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/fr/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/ja/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/ru/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/uz/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 75, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/docs/vi/lectures/lecture-11-why-observability-belongs-inside-the-harness/index.md', 'line': 79, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/projects/project-06/solution/docs/ARCHITECTURE.md', 'line': 45, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/skills/harness-creator/references/lifecycle-bootstrap-pattern.md', 'line': 249, 'match': 'shutdown', 'label': '系统关机'}, {'file': 'learn-harness-engineering-main/skills/harness-creator/references/tool-registry-pattern.md', 'line': 32, 'match': 'rm -rf build/\n  ', 'label': 'rm -rf 危险删除'}, {'file': 'learn-harness-engineering-main/skills/harness-creator/references/tool-registry-pattern.md', 'line': 148, 'match': 'rm -rf*', 'label': 'rm -rf 危险删除'}, {'file': 'learn-harness-engineering-main/skills/harness-creator/references/tool-registry-pattern.md', 'line': 7, 'match': 'DROP TABLE', 'label': '数据库破坏'}, {'file': 'learn-harness-engineering-main/skills/harness-creator/references/tool-registry-pattern.md', 'line': 149, 'match': 'DROP TABLE', 'label': '数据库破坏'}], 'manifest_contract': [{'file': 'package.json', 'line': 0, 'match': 'main: dist/main/main.js', 'label': 'main 入口「dist/main/main.js」在包内不存在——加载会报 Cannot find module'}]}

mode

git-refresh

branch

main

2. 第三方复核(GuardDog 3.2.0)

未复核。

3. 依赖漏洞(OSV.dev)

未查询。