🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

三十天学习计划 moqifei/learn-dsh-ts

DeepSeek Harness
moqifei46 天前有提交已提供中文文档扫描:含敏感能力

按天推进 DeepSeek Harness 插件开发练习

30/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add moqifei/learn-dsh-ts
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/11/03·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 46 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/11/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 62 处,展示前 57 条)
  • 读取本地文件
    m14-preset-composition/preset.ts:50
    if (!existsSync(path)) {
  • 读取本地文件
    m14-preset-composition/preset.ts:58
    raw = JSON.parse(readFileSync(path, 'utf-8'))
  • 删除本地文件递归
    m15-skill-loading/runner.ts:59
    rmSync(skillDir, { recursive: true, force: true })
  • 写入本地文件
    m15-skill-loading/runner.ts:190
    writeFileSync(join(skillDir, 'incident-triage', 'SKILL.md'), newBody)
  • 读取本地文件
    m15-skill-loading/runner.ts:227
    if (existsSync(dir)) rmSync(dir, { recursive: true, force: true })
  • 删除本地文件递归
    m15-skill-loading/runner.ts:227
    if (existsSync(dir)) rmSync(dir, { recursive: true, force: true })
  • 写入本地文件
    m15-skill-loading/runner.ts:228
    mkdirSync(join(dir, 'incident-triage'), { recursive: true })
  • 写入本地文件
    m15-skill-loading/runner.ts:229
    mkdirSync(join(dir, 'release-notes'), { recursive: true })
  • 写入本地文件
    m15-skill-loading/runner.ts:230
    writeFileSync(
  • 写入本地文件
    m15-skill-loading/runner.ts:241
    writeFileSync(
  • 读取本地文件
    m15-skill-loading/skill.ts:76
    if (!existsSync(manifest)) continue
  • 读取本地文件
    m15-skill-loading/skill.ts:140
    if (!existsSync(root)) return []
  • 读取本地文件
    m15-skill-loading/skill.ts:141
    return readdirSync(root, { withFileTypes: true })
  • 读取本地文件
    m15-skill-loading/skill.ts:157
    const text = readFileSync(path, 'utf-8')
  • 读取本地文件
    m16-context-compaction/runner.ts:32
    const raw = readFileSync(join(process.cwd(), 'cordis.yml'), 'utf8')
  • 写入本地文件
    m17-persistence-projection/persistence.ts:34
    mkdirSync(dirname(path), { recursive: true })
  • 写入本地文件
    m17-persistence-projection/persistence.ts:40
    appendFileSync(this.path, JSON.stringify(event) + '\n')
  • 读取本地文件
    m17-persistence-projection/persistence.ts:44
    if (!existsSync(this.path)) return []
  • 读取本地文件
    m17-persistence-projection/persistence.ts:45
    const text = readFileSync(this.path, 'utf8')
  • 读取本地文件
    m17-persistence-projection/runner.ts:27
    const raw = readFileSync(join(process.cwd(), 'cordis.yml'), 'utf8')
  • 写入本地文件
    m17-persistence-projection/runner.ts:38
    mkdirSync(dir, { recursive: true })
  • 删除本地文件递归
    m17-persistence-projection/runner.ts:100
    rmSync(dir, { recursive: true, force: true })
  • 删除本地文件递归
    m17-persistence-projection/runner.ts:135
    rmSync(dir, { recursive: true, force: true })
  • 写入本地文件
    m17-persistence-projection/runner.ts:179
    writeFileSync(path, JSON.stringify({
  • 写入本地文件
    m17-persistence-projection/runner.ts:182
    writeFileSync(path, JSON.stringify({
  • 写入本地文件
    m17-persistence-projection/runner.ts:201
    writeFileSync(path2, JSON.stringify({
  • 删除本地文件递归
    m17-persistence-projection/runner.ts:213
    rmSync(dir, { recursive: true, force: true })
  • 删除本地文件递归
    m17-persistence-projection/runner.ts:214
    rmSync(dir2, { recursive: true, force: true })
  • 读取本地文件
    m17-persistence-projection/runner.ts:239
    if (!existsSync(path)) throw new Error('JSONL 后端未落盘')
  • 删除本地文件递归
    m17-persistence-projection/runner.ts:240
    rmSync(dir, { recursive: true, force: true })
  • 执行外部命令来自配置/变量
    m18-background-job-terminal/producers.ts:27
    const child = spawn(command, { shell: true, stdio: ['ignore', 'pipe', 'pipe'] })
  • 执行外部命令来自配置/变量
    m18-background-job-terminal/producers.ts:69
    const shell = spawn(String(spec.args.shell ?? 'bash'), [], { stdio: ['pipe', 'pipe', 'pipe'] })
  • 执行外部命令固定命令
    m18-background-job-terminal/producers.ts:154
    const child = spawn('echo', [`[docker-runner] 容器(${image}) 启动:${cmd}`], { stdio: ['ignore', 'pipe', 'pipe'] })
  • 读取本地文件
    m20-workflow-recoverable/workflow.ts:176
    if (existsSync(p)) writeFileSync(p, '')
  • 写入本地文件
    m20-workflow-recoverable/workflow.ts:176
    if (existsSync(p)) writeFileSync(p, '')
  • 读取本地文件
    m20-workflow-recoverable/workflow.ts:191
    if (!existsSync(p)) return []
  • 读取本地文件
    m20-workflow-recoverable/workflow.ts:192
    return readFileSync(p, 'utf8')
  • 写入本地文件
    m20-workflow-recoverable/workflow.ts:208
    appendFileSync(this.journalFile(def.workflowId), JSON.stringify(event) + '\n')
  • 读取本地文件
    m20-workflow-recoverable/workflow.ts:288
    const lines = existsSync(p) ? readFileSync(p, 'utf8').split('\n').filter(Boolean) : []
  • 读取本地文件
    m20-workflow-recoverable/workflow.ts:288
    const lines = existsSync(p) ? readFileSync(p, 'utf8').split('\n').filter(Boolean) : []
  • 写入本地文件
    m20-workflow-recoverable/workflow.ts:289
    writeFileSync(p, mutate(lines).join('\n') + '\n')
  • 执行外部命令来自配置/变量
    m22-external-capability/lsp-worker.ts:31
    const proc = spawn(process.execPath, [join(here, 'lsp-child.ts')], {
  • 执行外部命令来自配置/变量
    m22-external-capability/providers.ts:171
    this.child = spawn(this.command, this.args, { stdio: ['pipe', 'pipe', 'inherit'] })
  • 写入本地文件
    m23-integrated-harness/services.ts:265
    mkdirSync(this.rootDir, { recursive: true })
  • 写入本地文件
    m23-integrated-harness/services.ts:276
    writeFileSync(full, content)
  • 读取本地文件
    m23-integrated-harness/services.ts:281
    return readFileSync(full, 'utf8')
  • 删除本地文件递归
    m23-integrated-harness/services.ts:287
    rmSync(this.rootDir, { recursive: true, force: true })
  • 写入本地文件
    m23-integrated-harness/services.ts:288
    mkdirSync(this.rootDir, { recursive: true })
  • 读取本地文件
    m23-integrated-harness/services.ts:303
    if (!existsSync(this.rootDir)) return []
  • 读取本地文件
    m23-integrated-harness/services.ts:305
    for (const entry of readdirSync(this.rootDir, { withFileTypes: true })) {
  • 读取本地文件
    m23-integrated-harness/services.ts:308
    if (!existsSync(md)) continue
  • 读取本地文件
    m23-integrated-harness/services.ts:309
    const text = readFileSync(md, 'utf8')
  • 读取本地文件
    m23-integrated-harness/services.ts:321
    if (!existsSync(md)) throw new Error(`skill not found: ${name}`)
  • 写入本地文件
    m23-integrated-harness/services.ts:362
    mkdirSync(dirname(this.file), { recursive: true })
  • 写入本地文件
    m23-integrated-harness/services.ts:365
    if (!this.closed) appendFileSync(this.file, JSON.stringify(ev) + '\n', 'utf8')
  • 写入本地文件
    m23-integrated-harness/services.ts:369
    if (!this.closed) appendFileSync(this.file, JSON.stringify(ev) + '\n', 'utf8')
  • 发起网络请求
    m23-integrated-harness/services.ts:483
    execute: async () => (await fetch(`${this.cfg.baseUrl}${this.cfg.path}`)).json(),
扫描于 2026/11/4(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按天推进学习计划

README

该插件文档不完整,请到 GitHub 查看原文。 github.com/moqifei/learn-dsh-ts ↗
预览分享卡片长什么样 ↓moqifei/learn-dsh-ts
分享 · DeepSeek Harness Hub
moqifei/learn-dsh-ts

按天推进 DeepSeek Harness 插件开发练习

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部