narrative-prompt-polish

DSH PLUGIN模型与账号接入

仓库 shengyvself/narrative-prompt-polish

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

这款 DeepSeek Harness 插件在主输入框加 ✨ 按钮,一键把草稿润色成清晰可执行的提示词,并可在侧栏对话多轮打磨后回填。

一句话选型结论

按资料字段整理

narrative-prompt-polish 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-15 创建于 2026-08-28
README 10.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:shengyvself/narrative-prompt-polish#v0.2.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 7 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

narrative-prompt-polish:DeepSeek Harness 的提示词润色侧栏打磨插件

  • 主框 ✨ 一键润色草稿
  • 侧栏对话多轮打磨提示词
  • 复刻主会话前缀命中缓存
  • full→partial→none 降级链
  • JSONL trace 记录每次调用

上游标签

deepseekdeepseek-harnessdshdsh-better-sidebardsh-pluginsidebar

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 7 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
narrative-prompt-polish当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 7 个 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方shengyvself仓库 narrative-prompt-polish · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-28 · 2026-09-15最后推送 2026-09-15
本站收录2026-09-01首次进入本站目录的时间

README 全文

10.2 KB
作者原文,中文版优先;只做安全转义,不改内容

> [!IMPORTANT]
> 本仓已迁移 → 请使用 dsh-prompt-only-forge(v0.3.0+,2026-09-14 首发)。
> 旧仓 narrative-prompt-polish 保持只读状态,不再接受新提交;历史版本(v0.0.26 / v0.0.27 / v0.1.0 / v0.2.0)仍可通过 Releases 页获取。
> 新仓定位:纯注入(no send action)提示词润色,独立于 better-sidebar 侧栏对话,架构与 API 完全重写。
>
> — shengyv, 2026-09-14

narrative-prompt-polish

Shengyv's Writing Architecture 的提示词优化插件:主会话输入框右座 ✨ 一键起一个
可对话的子代理,把草稿打磨成清晰、具体、可直接交给 AI Agent 执行的提示词——
在子代理会话里多轮追问,满意后手动复制回主输入框。

核心特性

  • 主框 ✨ → 可对话子代理打磨(默认主流程,0.2.0+):点击主框 ✨ 不直接改草稿,
    而是由服务端 POST /api/polish.start 在主会话下起一个 continuable 子代理
    (ctx.subagents.startContinuable,provider 默认 fork:seed 主会话已完成轮、
    继承父 Agent 的 provider/model/推理档与预设),把「任务书 + 草稿」投进它的首轮;
    客户端随后 ctx.sessions.openSubagent 打开该子代理会话——它是原生会话界面,
    输入框可写,可多轮追问,满意后复制回主输入框。子代理起不来时显式报错
    (红线 9:绝不静默降级到单次 polish)。
  • 0.2.0 前该主流程依赖 better-sidebar 的 sidechat;better-sidebar 已从本部署架构移除
    (0.1.5 起右侧栏面板一律走官方 keyed 槽位),故主路径改为内核原生子代理。
  • C 方案(full,默认):ctx.sessions.get() → deriveMessages() + requestHeader().system/config,
    完整复刻 [system]+[...history] 前缀直调 ctx.llm.stream——前缀与主会话一致即命中 prompt cache,
    只增量计算草稿与润色指令。非 live 会话走 sessionQuery.readSession() 离线折叠兜底。
  • 降级链:full → partial(readSurface 近期对话)→ none(裸草稿),
    每次降级在响应 fallbackReasons 与 trace 中留痕;strictFull: true 可改为硬失败(no-session)。
  • 意图骨架:本地正则分类 debug/implement/explain/chat;partial/none 下骨架进 system,
    full 下骨架折进末尾 user 指令(不动 system 前缀以保缓存)。
  • CAS 写回(历史单次 polish 路径):点击时捕获草稿指纹,返回后若草稿已变则弹
    「草稿已变,未应用润色」且不覆盖。
  • 错误细分:rejected(empty/references/too-large)、no-session、route-unavailable、
    stream-failed、empty-result、context-fallback、settings-unavailable。
  • trace:每次调用追加 JSONL 到 lore/traces/prompt-polish/YYYY-MM-DD.jsonl
    (intent/contextMode/fallbacks/cacheHit/tokens/hash 等;hash 不落全文)。设置页可关。
  • 事件总线(外部模块联动,0.2.0 收窄):window 上广播
    narrative:prompt-polish:trigger({triggerSource, draft?, targetElement?})→ 本插件代跑
    单次 /api/polish(不占用子代理)→ CAS 回写 target → 广播 …:result;不带
    targetElement 则只广播、模块自理回写。契约见 docs/sidebar-integration.md。
  • sidebar 浮按钮(0.2.0 已移除):随 better-sidebar 一并删除(宿主 DOM 标记
    [data-dsh-better-sidebar] 在本部署已不存在);配置键 sidebarFloatingButtonEnabled
    仅保留以免已存设置文档失配,无任何行为。

红线遵守

  • 不写主会话历史:无 append、llm.stream 不传 sessionId(不进会话调度)。
  • 无野生 DOM 注入:UI 走官方 slot conversation.input.right + settings.section。
  • 服务端零 @deepseek-ai/* 静态 import(dsh-session 仅离线路径动态 import 且失败自动降级),
    杜绝缺依赖崩 web。

API

方法 说明
POST /narrative-prompt-polish/api/polish.start {sessionId,text,triggerSource?,provider?} → {childId,messageId,intent,subagentProvider}(主路径:起可对话子代理,任务书投首轮)
POST /narrative-prompt-polish/api/polish {sessionId,text,mode?,strictFull?,triggerSource?,mergeSidebarContext?,sidebarContext?}(单次直调路径:事件总线 / headless / 自动化)
POST .../api/config /config.get /config.update 配置读改(settings 服务缺位时 update 返回 503)
POST .../api/traces.recent {limit} 最近 trace
POST .../api/apply-report 客户端 CAS 结果回传(applied/changed),trace 行按 traceTs 配对

独立安装(GitHub)

dsh plugin --profile web add github:shengyvself/narrative-prompt-polish
# 或克隆后:
dsh plugin --profile web add ./narrative-prompt-polish

安装后重启 DSH Web 即生效。无第三方依赖:主路径走内核原生 ctx.subagents(continuable)
+ ctx.sessions.openSubagent,要求内核版本含子代理编排服务(DSH ≥ 0.1.5 实测)。
默认配置开箱即用(子代理继承当前会话的 provider/model/预设;trace 写入
/lore/traces/prompt-polish/,可在设置页改为绝对路径锚定你的工作区)。

License

本项目以 MIT 发布。

开发

npm run build   # src → lib 直拷
npm test        # node --test tests/

验证链(改插件红线):node --check → preflight 4 关 → build → import 冒烟 → 加 bundle → 重启 → 3 连测 200 → dump-config → 日志扫描。

文件结构

src/index.js            host 入口(围栏路由 + settings 防御式注册)
src/api.js              方法表 + polish 主流程(校验→意图→上下文→直调→清洗→trace)
src/context-assembler.js C 方案探测链 full→partial→none
src/surface-fold.js     readSurface 过滤折叠(纯函数)
src/intent.js           4 类意图骨架
src/polish.js           流组装/输出清洗/usage 提取(纯函数)
src/trace-recorder.js   JSONL trace
src/trust-fence.js      浏览器信任围栏
src/wire.js             JSON 信封
src/taskbook.js         主路径任务书文本(服务端;与 /api/polish 共用意图判定)
src/client.bundle.js    客户端(PolishButton/PolishSettings + 事件总线 + startPolishSubagent 子代理打磨)
tests/unit.test.mjs     32 例单测(node --test)
scripts/smoke-apply.mjs 服务端 apply 冒烟(真 apply + 假 cordis ctx,16 断言)
docs/decisions.md       设计决策记录
docs/sidebar-integration.md  联动层集成指南

架构概览

本插件按职责划分为以下子层:

层 文件 职责
入口 src/index.js DSH host 半边挂载点 + trust fence 围栏
API 路由 src/api.js /api/polish /api/config /api/traces.recent /api/apply-report 方法表
上下文 src/context-assembler.js C 方案: deriveMessages + requestHeader 复刻 [system]+[history]
表面 src/surface-fold.js partial 降级时 readSurface 读近期对话
意图 src/intent.js 4 类意图骨架: debug / implement / explain / chat
流组装 src/polish.js 拼请求 + 调 ctx.llm.stream + 清洗
Trace src/trace-recorder.js 每次调用追加 JSONL 到 lore/traces/prompt-polish/YYYY-MM-DD.jsonl
错误细分 src/wire.js + src/api.js rejected / no-session / route-unavailable / stream-failed / empty-result / context-fallback / settings-unavailable
主路径 src/taskbook.js + src/api.js#polish.start 任务书 → ctx.subagents.startContinuable(continuable 子代理)
客户端 src/client.bundle.js PolishButton + PolishSettings + 事件总线 + startPolishSubagent

构建流程: src/*.js → scripts/build.mjs 直拷 → lib/*.js (md5 一致; 用 scripts/preflight.sh 防回归)。

测试策略

  • 单元测试: node --test tests/unit.test.mjs (32 用例, 全绿)
  • Preflight: bash scripts/preflight.sh (build 前 5 关: 语法 / 大小无异常翻倍 / 单一 ModuleLoader.load / 核心防御未丢 / better-sidebar 耦合为 0)
  • apply 冒烟: node scripts/smoke-apply.mjs (真 apply + 假 cordis ctx: 围栏 403 / 405 / polish.start 200 / no-live-agent 409 / rejected 400)
  • 端到端: DSH web 装上 plugin → 主框输入草稿 → 点 ✨ → 子代理会话被打开(任务书进首轮)→ 多轮追问 → 手动复制回填
  • 回归: 8/27 incident 教训——client.bundle.js 56K 重复 bug, 由 preflight 关 3 (单一 __ModuleLoader__.load) 防回归; 关 4 守 slots 服务防御

故障排查

现象 可能原因 处置
点 ✨ 报「sessions 服务未注入」 客户端插件未挂载(0.1.5 需重启生效) 重启 DSH Web 后刷新页面
点 ✨ 报「主会话没有 live agent」 会话未激活 / agent 已被回收 在当前会话里重试
报「子代理已创建但客户端目录未就绪」 客户端会话目录刷新延迟 在会话列表的「子代理」目录里手动打开该 childId
子代理起不来 内核缺 ctx.subagents / provider 未注册 dsh --profile web --dump-config \| grep subagent 核对
提示词无变化 strictFull=true 但会话非 live 改 strictFull=false (允许降级到 partial/none)
草稿被覆盖 草稿在 polish 期间被用户改了 CAS 拒绝覆盖, 重试时用最新草稿
TRACE 太大 没设置 pageSize 限制 设置页可关 / 设保留天数
slots 注入失败 (console.warn) DSH 启动顺序 race 正常降级, 主壳照常加载, ✨ 与设置页暂时不可见

前置依赖

无第三方依赖(0.2.0 起)。主路径需要内核提供 ctx.subagents(continuable 子代理)与
ctx.sessions.openSubagent;本部署(DSH 0.1.5-rc.2)已具备。子代理 provider 默认 fork
(dsh-subagent-fork-in-process,seed 母会话已完成轮),可在设置里切 spawn(全新子代理)。

# 自检:两个 provider 在组合树里
dsh --profile web --dump-config | grep -A2 subagent

降级说明: /api/polish 单次直调路径仍在(事件总线 / headless / 自动化用),但主框 ✨
不会
在子代理失败时退到它(红线 9)。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
narrative-prompt-polish 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:shengyvself/narrative-prompt-polish#v0.2.0` 即可。

narrative-prompt-polish 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

narrative-prompt-polish 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

narrative-prompt-polish 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

narrative-prompt-polish 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。

narrative-prompt-polish 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

narrative-prompt-polish 有哪些功能?

主框 ✨ 一键润色草稿、侧栏对话多轮打磨提示词、复刻主会话前缀命中缓存、full→partial→none 降级链、JSONL trace 记录每次调用。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

shengyvself 的其它插件

3 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。