# awesome-dsh-plugin 收录核对(dsh-prompt-boost-pro) 对照 `https://github.com/awesome-dsh-plugin/awesome-dsh-plugin/blob/main/contributing.md` 的逐条核对。 「证据」列指仓库里可直接查到的位置或可复现的命令。 ## 一、硬性要求(CI 会查) | 要求 | 状态 | 证据 | |---|---|---| | `package.json` 声明 `dsh.bundle`(**只声明 `dsh.client` 会被拒**) | ✅ | `dsh.bundle.patch = ./cordis.patch.yml`;`node scripts/verify-pack.mjs` 有专门断言 | | 仓库根有 `cordis.patch.yml`,内容为 `insert` 一行 | ✅ | `cordis.patch.yml`:`- insert: - id: prompt-boost-pro / name: dsh-prompt-boost-pro` | | 真实可用代码(非占位、非纯 README) | ✅ | 两个半边(宿主路由 + 浏览器插槽)、4 个测试套件、离线端到端 28+28+40+27 项 | | 仓库创建满 **1 天** | ⏳ 重新计时 | 目标仓库 `xiaoshengliang2002/dsh-prompt-boost-pro` 建于 2026-09-12T03:31Z(空仓库)→ 以 GitHub 的时钟满 24h 后再提 PR | | 仓库加 `dsh-plugin` topic | ⏳ 自动设置 | 新仓库暂无 topics;`npm run release:github` 会(best-effort)用 API 写入 `dsh-plugin` 等,失败则在仓库页手动加 | | 一个 PR 最多 3 条 | ✅ | 我们只提 1 条 | | 是否已在列表里 | ❌ 尚未 | `data/plugins/xiaoshengliang2002__dsh-prompt-boost-pro.yml` 不存在 → 只差提 PR | ## 二、内容与评审要求 | 要求 | 状态 | 说明 | |---|---|---| | 描述属实、无营销词 | ✅ | 见下方条目草稿:只陈述功能(两个模式 + 对比预览),不含「最好/最强」这类措辞 | | 分类贴合实际 | ✅ | `ui`(输入框工具栏的 UI 入口)。维护者若认为更合适可直接改,不会打回 | | 不是纯聚合包 | ✅ | 自带全部行为:宿主路由 + LLM 调用 + 插槽 UI;无任何插件依赖 | | 依赖指向原作者 | ✅ | 没有任何 `dependencies`;官方包一律走 `peerDependencies` | | 源码无可疑行为 | ✅ | 无混淆、无凭据读取、无安装期脚本(没有 `prepare`/`postinstall`) | ## 三、推荐项(影响安装体验) | 推荐 | 状态 | 说明 | |---|---|---| | 官方 `@deepseek-ai/*` 用 `peerDependencies` 而非 `dependencies` | ✅ | 10 个 peer,全部 `optional: true` | | **peer 范围不能静默排除预发布构建** | ✅ 已修 | 见下一节:原来写的 `"*"` 匹配不到 `0.1.5-rc.2`,已换成显式预发布分支 | | 预构建产物(`lib/` 入库),源码安装无需构建授权 | ✅ | `lib/` 会随仓库提交;无 `prepare` 脚本 → 用户不必走 pnpm 的 `allowBuilds` | | 预构建 tarball(GitHub Release + `tarball:` 字段) | ✅ 流程已就绪 | `npm run release:pack` → `npm run release:github`;附件名刻意用不带版本的 `dsh-prompt-boost-pro.tgz`,避免 `latest/download/` 下次发版 404 | | 截图:仓库里放 `screenshots.json`(1–8 张、相对路径、不出目录) | ✅ | `screenshots.json` 已声明 8 张 `preview/shots/*.png`(校验:数量、存在、无 `..`、无绝对路径) | | 发布 npm 时 `repository` 指回被收录的仓库 | ✅ | `repository`/`homepage`/`bugs` 已指向 `xiaoshengliang2002/dsh-prompt-boost-pro`(不发 npm 时这条也不影响收录) | ## 四、peer 范围那条陷阱(实测数据) 文档警告:范围里必须有**落在同一 `major.minor.patch` 元组、且自身带预发布标签**的比较符, 否则该元组的预发布版本被静默排除。用 `semver@7.7.4` 实测: | 范围 | 0.1.0-rc.6 | 0.1.5-rc.2(当前 harness) | 0.1.9-rc.1 | 0.1.5 稳定 | |---|---|---|---|---| | `"*"`(我们原来) | ❌ | ❌ | ❌ | ✅ | | `">=0.1.2-alpha.1"` | ❌ | ❌ | ❌ | ✅ | | `">=0.1.0-rc.1 <0.2.0-0"` | ✅ | ❌ | ❌ | ✅ | | `"^0.1.5-rc.1"` | ❌ | ✅ | ❌ | ✅ | | **逐元组分支 + `>=0.1.10-0`(现在采用)** | ✅ | ✅ | ✅ | ✅ | 现在 10 个 peer 用的都是这一形式: ``` >=0.1.0-rc.1 <0.1.1-0 || >=0.1.1-rc.1 <0.1.2-0 || … || >=0.1.9-rc.1 <0.1.10-0 || >=0.1.10-0 ``` 两点补充: 1. 同时给全部 peer 加了 `"peerDependenciesMeta": { "": { "optional": true } }` —— 本插件运行时 **从不解析自己的 node_modules**(宿主半边把 `dsh-llm`/`dsh-brand` 内联,浏览器半边的 `react`、 `ui-primitives` 来自内核模表),所以"可选"是事实;这样即便未来出现没列举到的元组,也不会把安装挡住, 只会少一条警告。生态里 `dshmarket`、`@wingsky-1/dsh-notifier` 同样这么做。 2. **维护提示**:harness 将来若进入 `0.1.11-rc.x` 这类新元组,需要按同一形式补一段分支 (`|| >=0.1.11-rc.1 <0.1.12-0`)。这是 node-semver 的规则决定的,不存在更紧凑的写法。 ## 五、投稿条目(PR 只加这一个文件) 文件已备好:[`docs/awesome-entry.yml`](awesome-entry.yml)(内容如下),PR 时复制成 `data/plugins/xiaoshengliang2002__dsh-prompt-boost-pro.yml`。 ```yaml url: https://github.com/xiaoshengliang2002/dsh-prompt-boost-pro name: xiaoshengliang2002/dsh-prompt-boost-pro category: ui description: en: Adds an Enhance prompt button to the DSH composer that rewrites the draft in a structured or light mode and shows an original-versus-enhanced preview before applying it. zh: 在 DSH 输入框工具栏加入「增强提示词」按钮:可选结构化或轻度模式改写草稿,并给出原文与增强结果的对比预览,确认后才写回。 tarball: https://github.com/xiaoshengliang2002/dsh-prompt-boost-pro/releases/latest/download/dsh-prompt-boost-pro.tgz ``` - 英文描述不含 `: `(冒号加空格),无需引号;中文用的是全角冒号,不受影响。 - `tarball` 不是必填(本仓库可从源码安装),但配上更好;资产名刻意不带版本号。 ## 六、发布与提交流程 ```powershell # 1) 打包并自检(离线可跑) npm run check # typecheck + build + 4 个离线测试套件(123 项断言) npm run release:pack # 同步文档 + 构建 + npm pack → dsh-prompt-boost-pro-0.1.0.tgz npm run release:verify # 解包校验 34 项(契约 + 收录条件) node scripts/publish-github.mjs --dry-run # 离线演练:列出将提交的文件与计划 # 2) 发布到 GitHub(需要带 Contents 写权限的 PAT) $env:GH_TOKEN = 'github_pat_…' npm run release:github ``` `release:github` 做的事:在临时目录 `git init -b main` → 用本目录内容(排除 node_modules / *.tgz / scratch / *.map / *.log)提交 → 首推 `main`(远端已有 `main` 时改为以其为父提交做整树替换)→ 打 `v0.1.0` tag → 建 Release 并上传 `dsh-prompt-boost-pro.tgz` 附件 → best-effort 设置仓库描述与 topics。 凭据只从环境变量读,只出现在 git 的 argv 里,不写 `.git/config`、不落盘。 ```powershell # 3) 提 PR:fork awesome-dsh-plugin/awesome-dsh-plugin,只加一个文件 # data/plugins/xiaoshengliang2002__dsh-prompt-boost-pro.yml(内容见上一节) # 不要手工编辑两个 README(它们由脚本生成) # ⚠️ 仓库年龄从新仓库的创建时间重新计算:满 24h 后再提 ``` ## 七、命名冲突备忘(已通过改名解决) - 改名前叫 `dsh-prompt-boost`,但该 npm 包名已被第三方占用(`nikoutianxiadiyi`,0.1.0,2026-08-29 发布), 另有一个同名 GitHub 仓库 `060625dfy/dsh-prompt-boost`(另一位作者,2026-08-15 建,同名的近似插件)。 - 因此本插件改名为 **`dsh-prompt-boost-pro`**(包名、Loader 行、客户端模块 id、Wire 路径 `/api/prompt-boost-pro/enhance`、locale 命名空间、插槽 entry id 全部随之更新)。 **npm 上 `dsh-prompt-boost-pro` 未被占用**,将来若想发 npm 可以直接用;当前仍以 GitHub 分发为主 (`dsh plugin add github:…` 或 Release tarball)。 - 工作区目录名仍是 `D:\deepseek-harness-work\dsh-prompt-boost`(profile 的 `link:` 指向它,目录名与包名不必一致)。