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

插件栈编排器 Tim-ReJet/dsh-stack-composer

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

按用途自动挑选并组合一套可用的插件栈

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · market
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
  • 写入本地文件
    bin/dsh-stack-composer.mjs:161
    writeFileSync(options.out, output)
  • 读取本地文件
    src/registry.js:84
    const parsed = parseRegistry(readFileSync(options.path, 'utf8'))
  • 读取本地文件
    src/registry.js:88
    if (existsSync(cacheFile)) {
  • 读取本地文件
    src/registry.js:89
    const age = now.getTime() - statSync(cacheFile).mtimeMs
  • 读取本地文件
    src/registry.js:92
    const parsed = parseRegistry(readFileSync(cacheFile, 'utf8'))
  • 读取本地文件
    src/registry.js:93
    return { ...parsed, source: cacheFile, fresh: age < ttl, fetchedAt: new Date(statSync(cacheFile).mtimeMs).toISOString() }
  • 写入本地文件
    src/registry.js:117
    mkdirSync(dirname(cacheFile), { recursive: true })
  • 写入本地文件
    src/registry.js:118
    writeFileSync(cacheFile, text)
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按用途挑选插件栈
  • 对照角色逐一打分
  • 只读注册表数据

按用途(DevOps、内容创作、研究)挑选可用的 DeepSeek Harness 插件栈:拿 dsh-plugin 精选注册表的分类、描述、能力标记和红线,对照该用途需要的角色逐一打分。只读。

README

由 DeepSeek 最新模型翻译生成
dsh-stack-composer 按用途组合出一套可用的 DeepSeek Harness 插件栈。你说一句「来一套装备齐全的 DevOps 栈」或者「给单打独斗的 YouTube 频道来一套内容创作栈」,它就会理清这个用途需要哪些角色,拿精选的 dsh-plugin 注册表里的每个插件去逐个角色打分,依据是注册表公布的分类、描述、能力标记和红线,最后返回选中的插件,连同选中它们的信号、风险、填不上的角色,以及每个插件一条安装命令。 它不安装任何东西,也不改动它报告的任何东西。它写入的只有自己的注册表缓存——按注册表 URL 各存一个文件,放在 DSH home 下——以及你要求的任何 --out 文件;除非需要注册表,否则它不发网络请求。 它依据什么来推理 精选注册表有 4,412 条插件条目(2026-10-04),每条包含:一个分类、一句描述、一条 install 命令、star 数和下载量、检查其源码时对照的十个能力标记(fs-read、fs-write、env、network、llm、shell、dynamic-code、host-runtime、credentials、subagent),以及该检查提出的任何红线。 不抓取任何插件源码。能力标记是注册表记录下来的结果,标记缺失只说明检查没观察到该行为——并不代表插件安全。
展开完整文档(README 剩余 1 节)
dsh-stack-composer

按用途组合出一套可用的 DeepSeek Harness 插件栈。你说一句「来一套装备齐全的 DevOps 栈」或者「给单打独斗的 YouTube 频道来一套内容创作栈」,它就会理清这个用途需要哪些角色,拿精选的 dsh-plugin 注册表里的每个插件去逐个角色打分,依据是注册表公布的分类、描述、能力标记和红线,最后返回选中的插件,连同选中它们的信号、风险、填不上的角色,以及每个插件一条安装命令。

它不安装任何东西,也不改动它报告的任何东西。它写入的只有自己的注册表缓存——按注册表 URL 各存一个文件,放在 DSH home 下——以及你要求的任何 --out 文件;除非需要注册表,否则它不发网络请求。

它依据什么来推理

精选注册表有 4,412 条插件条目(2026-10-04),每条包含:一个分类、一句描述、一条 install 命令、star 数和下载量、检查其源码时对照的十个能力标记(fs-read、fs-write、env、network、llm、shell、dynamic-code、host-runtime、credentials、subagent),以及该检查提出的任何红线。

不抓取任何插件源码。能力标记是注册表记录下来的结果,标记缺失只说明检查没观察到该行为——并不代表插件安全。

一套栈是怎么组合出来的

1. 用途 → 角色。 23 个角色描述一套栈承担的工作(版本控制、容器、密钥、可观测性、告警、采集、发布、记忆、编排……)。用途命中 8 个预设之一,就采用该预设的角色;否则按用途用到了角色关键词中的多少个来选角色,再用通用角色补齐,这样模糊的用途也能给出可用的结果。
2. 每个插件都对着每个角色打分。 打分是累加的,每一项贡献都留成一条打印出来的理由:

| 信号 | 权重 |
| 分类是角色点名的分类之一 | +6 |
| 名称中命中角色关键词,最多 2 个,每个 | +5 |
| 描述中再命中角色关键词,最多 3 个,每个 | +2 |
| 角色需要的能力,已声明 | +2 |
| 角色需要的能力,未声明 | −1 |
| 命中「这是在说另一件事」的片段,最多 2 个,每个 | −4 |
| 热度 | min(2, log₁₀(stars+1) + log₁₀(downloads+1)/2) |

3. 阈值。 角色得分 6 及以上算填上;3 到 6 之间显示为松散匹配;低于 3 就报成缺口,并列出最接近的候选。热度上限 +2,低于松散匹配的阈值,所以 star 数永远没法单靠自己填上一个角色;一套栈绝不会为了显得完整而注水。
4. 组装。 一个插件即使被多个角色看中,也只选一次;风险提示来自注册表记录的红线;报告列出能力并集、安装前值得复查的标记,以及每个插件一条安装命令。

$ dsh-stack-composer "a fully equipped DevOps stack" --per-role 1
stack: a fully equipped DevOps stack
preset: DevOps / platform (devops) · 9 roles · 9 plugins · registry: 4412 entries, updated 2026-10-01

1. Version control and review — Track changes, inspect diffs, and review work before it lands [ok]
• HaoyueQin/dsh-git-review — git — score 24.11 Review tab for DeepSeek Harness sessions: workspace changes versus HEAD or any two refs as a filterable file tree with side-by-side diffs, …
why: category git; name contains "git"; name contains "review"; description mentions "commit"
capabilities: runs shell commands, writes files, reads files, makes network requests, reads environment variables
install: dsh plugin --profile web add dsh-git-review
…
risk notes
! Ox0400/dsh-vault: reads credentials or secrets and has network access

从实时 registry 组合出的两个 stack 已作为证据提交: DevOps ·内容创作。用 npm run check:live 重新生成。

安装

dsh plugin --profile web add dsh-stack-composer
from this repository, before any npm release:
dsh plugin --profile web add github:Tim-ReJet/dsh-stack-composer

确认这一层已组合:

dsh --profile web --dump-config | grep -A 5 stack-composer

针对源码 checkout 做本地开发:

composer.overlay.yml
- insert:
- id: stack-composer
name: '/absolute/path/to/dsh-stack-composer/src/index.js'
config:
perRole: 2

使用

两个工具,在任何组合了该插件的会话里都能用:

- stack_compose —— purpose(必填)、perRole、refresh。返回 stack、它的角色与数量,以及完整报告。
- plugin_capabilities —— query(必填)、limit、category、capability。报告匹配的插件能做什么、它们的能力标志、红线、安装命令和页面。在挑选之前,用它来推理单个插件。

在会话里试试:「组合一个安全审查 stack,并告诉我哪些选择会读取凭证。」

命令行跑的是同一个引擎:

dsh-stack-composer "a fully equipped DevOps stack" --per-role 2
dsh-stack-composer "a content creation stack" --json > stack.json
dsh-stack-composer --capabilities "browser automation" --limit 5
dsh-stack-composer --capabilities "secrets" --capability credentials
dsh-stack-composer --presets # list the 8 presets
dsh-stack-composer --roles # list the 23 roles

| 参数 | 作用 |
| --per-role <n> | 每个角色提供的插件数(默认 2,范围 1–8) |
| --refresh | 重新拉取 registry,而不是用缓存了一天的版本 |
| --offline | 从不拉取;只用缓存,没有缓存就失败 |
| --registry <path\|url> | 改从这里读取 registry(本地文件从不缓存) |
| --json | 把组合出的 stack 以 JSON 打印 |
| --capabilities <query> | 报告插件能力,而不是组装 |
| --category、--capability、--limit | 过滤 --capabilities |
| --out <file> | 把报告写入文件 |

成功时退出状态为 0,用法错误或注册表读不出来时为 2。

配置

dsh.bundle.patch 指向这里:cordis.patch.yml 插入一行 stack-composer,带 perRole、registryUrl、registryPath(本地快照,供测试或离线机器使用)和 offline。

值得了解的局限

- 词表是最弱的一环,而它是数据。 src/roles.js 存放角色、各自的关键词、它们刻意不想要的东西,以及预设。关键词匹配会认错朋友——某个语言专用的写作插件可能排在通用插件前面,而注册表的 usage 分类主要讲的是 harness 自己的 token,不是受众。报告会打印每次挑选的理由,所以挑错了是词表 bug,改一个文件就行,而不是黑箱。
- 这里不读插件源码。 能力标记来自注册表自己的观察,注册表没检查过的条目写的是「not checked by the registry」,而不是「none declared」——2026-10-04 那天,4,412 个条目里有 394 个没带能力数据。
- 这不是质量排名。 stars 和 downloads 只用来打破平局,而「在注册表里」是组装器继承的唯一质量信号。
- 它不安装任何东西,也不检查两个挑选结果是否冲突。

验证

- npm test 在 node:test 上跑 45 个测试,不用网络:打分、去重、缺口、风险提示、monorepo slug、能力搜索、注册表缓存与离线行为,以及从本地快照接入宿主工具的那条缝。
- npm run check:live 从实时注册表组装两个示例 stack,写入 samples/。
- npm run verify:install 把 github:Tim-ReJet/dsh-stack-composer 装进一个用完就扔的 DSH home,断言 bundle 层组装成功(需要网络)。
- 在真实 harness 里端到端跑过,由模型调用工具,harness 版本为 0.1.1-rc.2 和 0.2.0-rc.2。

如何被收录

目录是 awesome-dsh-plugin/awesome-dsh-plugin。本仓库带有 dsh-plugin topic;收录只需在 pull request 里加一个条目文件(data/plugins/Tim-ReJet__dsh-stack-composer.yml)。

许可证

MIT
预览分享卡片长什么样 ↓Tim-ReJet/dsh-stack-composer
分享 · DeepSeek Harness Hub
Tim-ReJet/dsh-stack-composer

按用途自动挑选并组合一套可用的插件栈

回到顶部