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

提示词增强工坊 fsrmqi/dsh-promptkit

DeepSeek Harness
fsrmqi41 天前有提交已提供中文文档扫描:未发现敏感能力

把粗糙草稿一键增强为结构化可执行提示词

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

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

自动兼容检查未通过:要求 dsh >=0.1.7-0 <0.1.8-0,而最新版为 0.2.1-rc.2。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add fsrmqi/dsh-promptkit
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · skill
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 41 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

要求 dsh >=0.1.7-0 <0.1.8-0,而最新版为 0.2.1-rc.2

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-promptkit(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.19 · 基线 Node 22.19 满足
✗dsh CLI 依赖要求 >=0.1.7-0 <0.1.8-0 · 最新 0.2.1-rc.2 不兼容
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 02:48:50

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 51 处,展示前 49 条)
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 发起网络请求
    ui/client.js:10
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 写入剪贴板
    ui/client.js:25
    if (katex?.renderToString) return h('span', { key: index, className: 'pk-latex', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText
  • 写入剪贴板
    ui/client.js:27
    return h('code', { key: index, className: 'pk-mono', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText(latex).catch(() => {}), sty
  • 发起网络请求
    ui/client.js:1163
    const res = await fetch(this.endpoint, {
  • 发起网络请求
    ui/client.js:1195
    const response = await fetch(`/dsh-promptkit/semantic-enhance?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 发起网络请求
    ui/client.js:1217
    const response = await fetch(`/dsh-promptkit/semantic-enhance/stream?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 写入剪贴板
    ui/client.js:1398
    try { await navigator.clipboard?.writeText(preview.prompt); setMessage('Prompt 已复制到剪贴板。') }
  • 写入剪贴板
    ui/client.js:3017
    try { await navigator.clipboard?.writeText(item.body); await assetProvider?.markUsed?.(item.id); setNotice(`已复制「${item.title}」。`) }
  • 发起网络请求
    ui/client.js:3831
    const response = await fetch(url)
  • 发起网络请求
    ui/client.js:3837
    const wiki = await fetch(wikiUrl).then(async value => value.ok ? value.json() : null).catch(() => null)
  • 写入剪贴板
    ui/client-lite.js:21
    if (katex?.renderToString) return h('span', { key: index, className: 'pk-latex', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText
  • 写入剪贴板
    ui/client-lite.js:23
    return h('code', { key: index, className: 'pk-mono', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText(latex).catch(() => {}), sty
  • 发起网络请求
    ui/client-lite.js:1159
    const res = await fetch(this.endpoint, {
  • 发起网络请求
    ui/client-lite.js:1191
    const response = await fetch(`/dsh-promptkit/semantic-enhance?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 发起网络请求
    ui/client-lite.js:1213
    const response = await fetch(`/dsh-promptkit/semantic-enhance/stream?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 写入剪贴板
    ui/client-lite.js:1394
    try { await navigator.clipboard?.writeText(preview.prompt); setMessage('Prompt 已复制到剪贴板。') }
  • 写入剪贴板
    ui/client-lite.js:3013
    try { await navigator.clipboard?.writeText(item.body); await assetProvider?.markUsed?.(item.id); setNotice(`已复制「${item.title}」。`) }
  • 发起网络请求
    ui/client-lite.js:3827
    const response = await fetch(url)
  • 发起网络请求
    ui/client-lite.js:3833
    const wiki = await fetch(wikiUrl).then(async value => value.ok ? value.json() : null).catch(() => null)
  • 写入剪贴板
    src/ui/studio.js:134
    try { await navigator.clipboard?.writeText(preview.prompt); setMessage('Prompt 已复制到剪贴板。') }
  • 写入剪贴板
    src/ui/quick-enhancer.js:425
    try { await navigator.clipboard?.writeText(item.body); await assetProvider?.markUsed?.(item.id); setNotice(`已复制「${item.title}」。`) }
  • 发起网络请求
    src/methods/builtin.js:11
    const res = await fetch(new URL('../../methods/builtin.json', import.meta.url))
  • 发起网络请求
    src/adapters/openai-enhancer.js:32
    const res = await fetch(this.endpoint, {
  • 写入剪贴板
    src/ui/foundation.js:14
    if (katex?.renderToString) return h('span', { key: index, className: 'pk-latex', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText
  • 写入剪贴板
    src/ui/foundation.js:16
    return h('code', { key: index, className: 'pk-mono', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText(latex).catch(() => {}), sty
  • 发起网络请求
    dsh/standalone-glue.js:15
    const response = await fetch(url)
  • 发起网络请求
    dsh/standalone-glue.js:21
    const wiki = await fetch(wikiUrl).then(async value => value.ok ? value.json() : null).catch(() => null)
  • 发起网络请求
    src/adapters/dsh-session-enhancer.js:9
    const response = await fetch(`/dsh-promptkit/semantic-enhance?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 发起网络请求
    src/adapters/dsh-session-enhancer.js:31
    const response = await fetch(`/dsh-promptkit/semantic-enhance/stream?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 请求外部主机www.w3.org
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 发起网络请求
    ui/embed.js:7
    !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeo
  • 写入剪贴板
    ui/embed.js:22
    if (katex?.renderToString) return h('span', { key: index, className: 'pk-latex', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText
  • 写入剪贴板
    ui/embed.js:24
    return h('code', { key: index, className: 'pk-mono', title: '点击复制 LaTeX 源码', onClick: () => navigator.clipboard?.writeText(latex).catch(() => {}), sty
  • 发起网络请求
    ui/embed.js:1160
    const res = await fetch(this.endpoint, {
  • 发起网络请求
    ui/embed.js:1192
    const response = await fetch(`/dsh-promptkit/semantic-enhance?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 发起网络请求
    ui/embed.js:1214
    const response = await fetch(`/dsh-promptkit/semantic-enhance/stream?session_id=${encodeURIComponent(this.getSessionId())}`, {
  • 写入剪贴板
    ui/embed.js:1395
    try { await navigator.clipboard?.writeText(preview.prompt); setMessage('Prompt 已复制到剪贴板。') }
  • 写入剪贴板
    ui/embed.js:3014
    try { await navigator.clipboard?.writeText(item.body); await assetProvider?.markUsed?.(item.id); setNotice(`已复制「${item.title}」。`) }
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:www.w3.org

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

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

功能亮点

  • 草稿增强为结构化提示词
  • 构建提示词工具包

DeepSeek Harness 的提示词构建与增强工具包:Studio + QuickEnhancer,开源。

README

由 DeepSeek 最新模型翻译生成
PromptKit License: MIT CI DSH Plugin Node: >=22.6 Listed on dsh-plugin.org English · 简体中文 当前仓库版本:0.2.1(本地版本收口,尚未执行发布)。升级记录:每版功能与注意事项 · 技术变更清单 把一段粗糙的草稿变成结构化、可直接执行的提示词——一键完成,就在 DeepSeek Harness 里。 dsh plugin --profile web add dsh-promptkit 写一段草稿,点 ✦ 增强,得到一份更清楚、仍保持原意与范围的提示词——流式出现在预览面板,完成后填入消息框,不自动发送。PromptKit 无需单独配置 API Key,语义增强复用 DSH 已配置的会话模型;没有模型路由时会提示先建立会话模型路由。本地轻量增强不需要模型。 为什么是 PromptKit ✦ 一键增强,保持任务粒度。 默认只做必要的表达整理,不擅自新增计划、验收或交付阶段。五维诊断(概念清晰 · 隐含前提 · 可证伪性 · 可行动性 · 语境契合)是当前界面中可主动开启的审阅工具;它只在确实阻塞原任务时给出简短澄清。 🎯 22 个思考方法,推荐不等于套用。 内置完整的 Markdown 方法库(苏格拉底式提问、第一性原理、双向钢人论证、最小实验、项目文档同步……)。
展开完整文档(README 剩余 1 节)
PromptKit

License: MIT
CI
DSH Plugin
Node: >=22.6
Listed on dsh-plugin.org

English · 简体中文

当前仓库版本:0.2.1(本地版本收口,尚未执行发布)。升级记录:每版功能与注意事项 · 技术变更清单

把一段粗糙的草稿变成结构化、可直接执行的提示词——一键完成,就在 DeepSeek Harness 里。

dsh plugin --profile web add dsh-promptkit

写一段草稿,点 ✦ 增强,得到一份更清楚、仍保持原意与范围的提示词——流式出现在预览面板,完成后填入消息框,不自动发送。PromptKit 无需单独配置 API Key,语义增强复用 DSH 已配置的会话模型;没有模型路由时会提示先建立会话模型路由。本地轻量增强不需要模型。

为什么是 PromptKit

✦ 一键增强,保持任务粒度。 默认只做必要的表达整理,不擅自新增计划、验收或交付阶段。五维诊断(概念清晰 · 隐含前提 · 可证伪性 · 可行动性 · 语境契合)是当前界面中可主动开启的审阅工具;它只在确实阻塞原任务时给出简短澄清。

🎯 22 个思考方法,推荐不等于套用。 内置完整的 Markdown 方法库(苏格拉底式提问、第一性原理、双向钢人论证、最小实验、项目文档同步……)。智能推荐只提供候选;只有你明确选中后才会用该方法组织改写。

📚 会闭环的灵感库。 在诊断卡上明确点「保存到知识区」后,诊断发现(隐含前提、不可证伪要求)才会成为「待验证」假设卡候选。之后补充证据完成验证;已验证的卡可在后续增强中作为上下文注入。

🔌 零遥测,支持零 Token 模式。 本地轻量模式离线可用;语义增强会把草稿和选定上下文交给宿主配置的模型服务。项目记忆必须先检索并预览,确认后才会注入;@ 文件引用由 DSH 原生提及提供,插件不重复实现。

兼容性: DSH 0.1.3-alpha.1(宿主仓库 HEAD 构建)已完成真实 profile 启动验证(安装本地 bundle 后启动 Web、Cookie HTTP 探测、正常退出);此前 0.1.2-alpha.2 已用同一烟测验证。运行 DSH 插件需要 Node >=22.6。保留旧版 0.1.0-rc 槽位适配,其覆盖来自模拟契约测试,不代表所有旧版本均已完成真机验证。

更多能力(点击展开)

- PromptStudio(方法工坊) — 高级工作台:浏览 22 个方法,填写事实/约束,发送前生成并预览结构化提示词。
- 灵感库(Vault) — 草稿与成品 Prompt 的本地库:搜索、收藏、项目分组、带版本对比的派生、JSON 备份恢复。
- 流式输出 — 增强结果逐段流式进入预览面板;开启诊断时显示「诊断中」,否则直接输出改写稿,带实时计时与取消按钮。
- 强度三档 — 低(润色)/ 中(细化)/ 高(详述);只控制表达细致度,不扩大任务范围。
- 发送前自动润色 — 自定义宿主注入 onSubmitDraft 并实现 composer.isInputTarget() 后可选开启;只拦截消息框 Enter,固定使用保守润色,失败可发送原文一次,发送失败不重试,取消或草稿变化时不发送。独立 DSH 插件未默认接入此发送钩子。
- 技能引用保留 — 改写丢失 /tdd 类技能记号时自动检测并补回;关闭提示不会再次改写草稿。
- /pk 快速插入 — 输入 /pk 关键词 弹出紧凑灵感候选菜单(方向键 + Enter),绝不抢占 DSH 原生命令。
- 私有方法 — 粘贴 Obsidian 风格 Markdown 提示词卡;仅存本地,可导出 JSON。
- 模板变量 — 灵感条目的 {{name}} 占位符在插入前弹出补值面板。

增强闭环

写一段粗糙草稿 │ ▼ ✦ 增强 ──► 保持原意的模型改写(流式) │ ├────► 可选:五维诊断(仅本次查看) │ └────► 用户主动保存并验证的卡,才可作为后续增强上下文

安装

npm(推荐)

dsh plugin --profile web add dsh-promptkit

GitHub(钉 commit,可复现安装)

dsh plugin --profile web add github:fsrmqi/dsh-promptkit#

构建产物已提交 Git——GitHub 安装开箱即用,无需本地构建。

tarball(离线 / 审计)

npm pack && dsh plugin --profile web add ./dsh-promptkit-0.2.1.tgz

安装后刷新浏览器:输入框旁出现 ✦ 增强,会话页顶部出现「高级方法工坊」标签。升级涉及 Node 插件时,还需通过宿主重载或重启 DSH,避免继续运行缓存的旧代码。npm 命令获取的是已发布版本;验证本仓库当前版本可使用 tarball。完整步骤见 升级记录。在独立 DSH 插件中,从增强器点「高级工坊 →」会把草稿预填到工坊并自动切换到对应会话标签。

界面

插件只保留一套稳定的完整配置界面:方式选择、对话/项目记忆参考、强度、方法切换及可选五维诊断始终可见。工具栏集中提供收藏草稿、打开灵感库、带入高级工坊与方法收集进度;快捷键 ⌘K 唤起面板,常用方法可从启动按钮扇形菜单直达。

作为 npm 库使用

核心零宿主依赖。四个解耦接口,宿主按契约替换实现:

| 接口 | 职责 | 默认实现 |
| MethodProvider | 方法源 / 组装 / 模板 / 历史 | StaticMethodProvider(21 内置 + 私有方法) |
| Composer | 读写目标输入框 | TextareaComposer |
| Enhancer | 语义模型调用 | OpenAIEnhancer(任意 OpenAI 兼容端点) |
| AssetProvider | 灵感库保存 / 搜索 / 备份 | StaticAssetProvider |

import { PromptStudio, QuickEnhancer, StaticMethodProvider, StaticAssetProvider, TextareaComposer } from 'dsh-promptkit/browser'

const methodProvider = new StaticMethodProvider()
const assetProvider = new StaticAssetProvider()
const composer = new TextareaComposer(document.querySelector('textarea'))

未注入的可选能力会隐藏或降级。支持 browser 条件的构建器也可导入根包;默认 Node 入口额外导出 DSH 插件注册能力。运行要求 Node >=22.6 / React 17+,源码开发测试使用 Node 24.15+。完整契约和已验证组合见 嵌入协议 与 升级记录。

嵌入其他宿主(Embed Protocol v1)

任何 React 宿主都可以通过标准产物 ui/embed.js 组合 PromptKit 组件:IIFE 只暴露 PromptKit 命名空间,pk-* 视觉命名空间与宿主主题隔离。契约由测试锁定。详见 docs/EMBED.md。

隐私

| 访问 | 用途 | 可关闭 |
| localStorage | 灵感库、收藏、历史、偏好与可选详细统计 | 详细统计默认关闭;清除浏览器数据会丢失本地资产,请先备份 |
| 目标输入框 | 按按钮或快捷键填入结果;自定义宿主可显式接入自动发送 | 未接入发送钩子时只写草稿;异步写回前检查草稿是否变化 |
| 本地插件请求 | 语义增强桥接、可选项目记忆检索 | 按对应功能触发 |
| 配置的模型端点 | 处理语义增强的草稿和所选上下文 | 使用轻量模式可避免模型调用 |

零遥测。 不上传使用统计。语义增强不是离线处理:模型服务可能位于第三方,提交前应检查草稿和所选上下文中是否含敏感信息。项目记忆与自定义 adapter 的数据处理由宿主实现决定。

参与贡献

欢迎 Issue 与 PR——见 CONTRIBUTING.md。新增思考方法只需在 methods/ 下放一个 Markdown 文件(frontmatter + ## Prompt 块)并运行 npm run build。

许可证

MIT
预览分享卡片长什么样 ↓fsrmqi/dsh-promptkit
分享 · DeepSeek Harness Hub
fsrmqi/dsh-promptkit

把粗糙草稿一键增强为结构化可执行提示词

这是你的仓库?认领条目

回到顶部