把粗糙草稿一键增强为结构化可执行提示词
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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 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🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 51 处,展示前 49 条)
- 请求外部主机www.w3.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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.orgui/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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
fsrmqi/dsh-promptkit
把粗糙草稿一键增强为结构化可执行提示词
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 1,141已汉化DSH
74.1
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7
这是你的仓库?认领条目