dsh-ppt-studio 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent-presets/ppt/agent.cordis.yml +0 -1
- package/docs/03-/346/233/264/346/226/260/346/227/245/345/277/227.md +12 -0
- package/docs/15-1.2.0 /345/217/221/345/270/203/346/212/245/345/221/212.md" +15 -0
- package/examples/smoke/imported/source.pptx +0 -0
- package/examples/smoke/out-smoke.pptx +0 -0
- package/package.json +1 -1
- package/scripts/check-preset.mjs +11 -0
- package/skills/ppt-studio-diagram/pitfalls.md +4 -0
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
- id: persona
|
|
5
5
|
name: '@deepseek-ai/dsh-persona'
|
|
6
6
|
config:
|
|
7
|
-
suffix: Your working directory is {{cwd}}.
|
|
8
7
|
prefix: >-
|
|
9
8
|
You are the presentation engineer of PPT Studio, powered by the {{model}} model.
|
|
10
9
|
You treat a deck as an engineered deliverable, not a pile of slides: settle the outline and the
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
> 格式:`## [版本号] 日期` → 目的(为什么改,引测试反馈编号)→ 改动 → 验证 → 影响/后续。
|
|
4
4
|
|
|
5
|
+
## [1.2.3] 2026-10-18 —— 修复:预设 persona 段使用未注册模板变量(回合直接失败)
|
|
6
|
+
|
|
7
|
+
**现象**(用户实测,2026-10-18):进入「PPT 工作室」预设后发送消息,回合直接失败:
|
|
8
|
+
`unknown prompt variable "{{cwd}}" in section "deployment:persona-suffix"; registered variables: provider, model`
|
|
9
|
+
|
|
10
|
+
**根因**:本预设的 `persona` 段(早期版本沿用的自定义人格)带了一行 `suffix: Your working directory is {{cwd}}.`;
|
|
11
|
+
而 DSH 0.2.1 的 `deployment:persona-suffix` 段(`dsh-system-prompt` 的 `PERSONA_SUFFIX_SECTION`)**只注册 `provider` / `model`** ⇒ 未注册变量在**回合开始**即报错。0.2.1 的 standard 预设 persona **没有 suffix**(只有 `prefix` 里的 `{{model}}`)。
|
|
12
|
+
|
|
13
|
+
**修法**:移除该 `suffix` 行;并在 `scripts/check-preset.mjs` 增加**模板变量守卫**——预设正文里的 `{{变量}}` 只允许 `model` / `provider`,出现其它变量即失败(把"回合才炸"变成"本地门禁就红")。
|
|
14
|
+
|
|
15
|
+
**验证**:`check-preset` 通过;`npm test` 322/0;预设内仅剩 `{{model}}`。**发布**:1.2.3(2026-10-18),经 GitHub Release 触发 OIDC 发布。
|
|
16
|
+
|
|
5
17
|
## [1.2.2] 2026-10-18 —— 适配 DSH 0.2.1-rc.2 + CI 稳定性
|
|
6
18
|
|
|
7
19
|
**环境事实(实测 2026-10-17)**
|
|
@@ -57,3 +57,18 @@
|
|
|
57
57
|
| 发布证据 | `npm view dsh-ppt-studio version` → **1.2.1** ✓;Release 资产 `dsh-ppt-studio-1.2.1.tgz`(含 **17** 个 skill)✓ |
|
|
58
58
|
| 发布前检查 | `npm test` 322/0 ✓、`verify:package` ✓、`verify:products` 13/13 ✓、痕迹扫描 0 ✓、`lib ⟷ src` 39/39 ✓ |
|
|
59
59
|
| 回滚 | 上一版 `v1.2.0`;撤回流程见 `docs/14` §8.3(仅未发布时可用) |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 8. 1.2.2 发布小节(2026-10-18)
|
|
64
|
+
|
|
65
|
+
| 项 | 值 |
|
|
66
|
+
|---|---|
|
|
67
|
+
| 版本 | **1.2.2**(`package.json`,git tag `v1.2.2` → `ea121c7`) |
|
|
68
|
+
| 内容 | 适配 DSH 0.2.1-rc.2(预设按 0.2.1 标准组合重写,仅保留 persona 有意差异;17 本技能仍在预设作用域)+ **CI 稳定性**(被测 DSH 版本单源 `dsh-target.json`、一致性守卫、工作流语法守卫、`@next` 周检只告警、PR 不跑安装链) |
|
|
69
|
+
| 发布通道 | 创建 **GitHub Release `v1.2.2`** ⇒ `publish.yml` 以 **OIDC 受信发布**(**未使用本机 `npm publish`**) |
|
|
70
|
+
| 发布证据 | `npm view dsh-ppt-studio version` = **1.2.2** ✓;`dist-tags.latest = 1.2.2` ✓;Publish 工作流 **success** ✓;Release 资产 `dsh-ppt-studio-1.2.2.tgz`(1195KB,内含 **17** 个 skill)✓ |
|
|
71
|
+
| 发版前检查 | `npm test` **322/0** ✓(含 `check-preset` 0/0/1、工作流语法 3/3、dsh 目标版本一致);`verify:package` 252 文件 ✓;`verify:products` 13/13 ✓ |
|
|
72
|
+
| 两端安装 | **desktop**:`plugin_manager install_bundle dsh-ppt-studio@1.2.2` ⇒ `version: 1.2.2`、`application: applied` ✓;**web**:`dsh plugin --profile web add dsh-ppt-studio@1.2.2` ⇒ 依赖 `1.2.2`(非链接)、实装 1.2.2 ✓ |
|
|
73
|
+
| 踩到的坑 | 从 `link:`(本地路径)切回 registry 规格时,profile 残留旧符号链接 ⇒ pnpm `importPackage` 报 **ERR_PNPM_EPERM**;删除残留链接与 `node_modules/.pnpm/*dsh-ppt-studio*` 后安装成功(已记入 pitfalls **H7**) |
|
|
74
|
+
| 回滚 | 上一版 `v1.2.1`;撤回流程见 `docs/14` §8.3(仅未发布时可用) |
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-ppt-studio",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "在 DeepSeek Harness 里做 PPT:说需求 → 逐页制作 → 导出可编辑的 .pptx。含布局检查、Office 真渲染复核,以及可扩展的本地模板库",
|
|
5
5
|
"//publish": "2026-09-18 定:发 npm,**无 scope** 包名 `dsh-ppt-studio`。**状态(2026-09-26):已发布** —— `dsh-ppt-studio@1.1.0` 在 npm 上(`dist-tags.latest`、public,发布者 `zbsph`),registry 的 tarball 与 GitHub Release 资产**逐字节相同**(sha256 `9303cc5c…`)。首个版本是 `npm publish <发版 tgz>` 直发的;**从下一版起改走 Trusted Publishing(OIDC)全自动通道**:`.github/workflows/publish.yml` 由 release 事件触发 → 下载 Release 资产 → OIDC `npm publish` → 发后自证 integrity —— 零长期 token、零手工(npm 已公告:Bypass-2FA 直发 2027-01 移除)。发布纪律不变:**用发版时那个 tgz**(`.sync-state.json` 的 `localTgz`),**别在 main 前进后跑裸 `npm publish`**(会按当前工作区重新打包 ⇒ 破坏'两条通道同一份字节')。手动补发入口:Actions → Publish to npm → Run workflow。见 README §10 与 docs/05「发布-同步纪律」。",
|
|
6
6
|
"repository": {
|
package/scripts/check-preset.mjs
CHANGED
|
@@ -187,3 +187,14 @@ if (fail > 0) {
|
|
|
187
187
|
console.log('若这是**有意**差异,请加进本脚本顶部的 INTENTIONAL 白名单并写明理由(否则它会在下次升级时被当成漂移)。')
|
|
188
188
|
}
|
|
189
189
|
process.exit(fail > 0 ? 1 : 0)
|
|
190
|
+
|
|
191
|
+
// ── 模板变量守卫(2026-10-18 真实事故)──────────────────────────────────────────
|
|
192
|
+
// DSH 的 prompt 段按 section 注册变量:`deployment:persona-suffix` 只注册 provider/model,
|
|
193
|
+
// 写 {{cwd}} 这类未注册变量会在**回合开始**直接失败("unknown prompt variable")。
|
|
194
|
+
// 预设正文只应出现已知可用变量;新增变量前先去 dsh-system-prompt 的注册点确认。
|
|
195
|
+
const ALLOWED_VARS = new Set(['model', 'provider'])
|
|
196
|
+
const badVars = [...new Set([...presetText.matchAll(/\{\{\s*([a-zA-Z_][\w.]*)\s*\}\}/g)].map((m) => m[1]))]
|
|
197
|
+
.filter((v) => !ALLOWED_VARS.has(v))
|
|
198
|
+
if (badVars.length > 0) {
|
|
199
|
+
fail.push(`预设里出现未注册的模板变量:${badVars.join(', ')}(只允许 ${[...ALLOWED_VARS].join(', ')};未注册变量会让回合直接失败)`)
|
|
200
|
+
}
|
|
@@ -105,3 +105,7 @@ node scripts/smoke.mjs
|
|
|
105
105
|
- **H5 历史生成器会写 skills** ✗ —— `examples/hand-drawn/gen/s3.cjs` 曾直接写 `skills/*`;已加 `ALLOW_HISTORICAL=1` 保护、默认跳过,防误跑覆盖正式 skill。
|
|
106
106
|
|
|
107
107
|
- **H6 CI 被测的 DSH 版本必须是单源、并与目标端一致** ✗ —— 版本写在 `dsh-target.json`(唯一事实源),CI 用 `node -p` 读它;`docs/14` 的 `dsh-target:` 行与 `dsh.engines.dsh` 下限由 `scripts/check-dsh-target.mjs`(并入 `npm test`)强制一致。历史上曾把手写死版钉在 `0.1.6-alpha.2`,而预设来自 0.2.1 ⇒ 旧 mount base 解析不到新行 ⇒ 安装自证 27/1 假红;另设 `dsh-next-probe.yml` 用 `@next` 周检(只告警、不拦 PR),提前暴露「上游已变、该适配了」。
|
|
108
|
+
|
|
109
|
+
- **H7 link: ↔ registry 规格切换会留下符号链接残骸** ✗ —— 把本地 `link:` 安装换成 npm 规格时,pnpm 的 `importPackage` 会尝试导入旧链接目标(内含符号链接)⇒ Windows 普通用户报 `ERR_PNPM_EPERM`。修法:删掉 profile 的 `node_modules/dsh-ppt-studio` 链接与 `node_modules/.pnpm/*dsh-ppt-studio*`,再重新安装。
|
|
110
|
+
|
|
111
|
+
- **H8 prompt 段模板变量越界会在回合开始直接失败** ✗ —— DSH 的 prompt section 按 section 注册变量:`deployment:persona-suffix` 只有 `provider`/`model`。写 `{{cwd}}` 这类未注册变量 ⇒ `unknown prompt variable`,**整轮对话起不来**(静态检查与装配探针都不一定发现)。现由 `check-preset.mjs` 的模板变量守卫在 `npm test` 拦住(白名单 `model`/`provider`)。
|