skill-forge-hub 0.5.0 → 0.5.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  SkillForge(技能锻造坊)npm 包 `skill-forge-hub`(命令名 `skill-forge`)版本变更记录。
4
4
 
5
+ ## 0.5.2(2026-11-11)
6
+
7
+ **锦囊 mono 主题换装 JetBrains Darcula**
8
+
9
+ - 从「Linear 式纯黑」改为 Darcula 官方色板:背景 `#2b2b2b` / 面板 `#3c3f41` / 卡片渐变 `#313335` / 正文蓝灰 `#a9b7c6` / 边框 `#4e5254`——深灰底 + 蓝灰字 + 灰阶面板,与 JetBrains IDE 观感一致,久看不累
10
+ - 组件适配全面蓝灰化:魔法棒/图标滤镜、标签、星标、弹层、输入区、卡片内描边与 hover 描边、换肤坞色点
11
+ - 主题名同步:「极简黑白」→「Darcula 深灰蓝」(SKILL.md / user-config.md / usage-guide.md / 换肤坞 title)
12
+
13
+ ## 0.5.1(2026-11-11)
14
+
15
+ **自检闭环补全**(交付前硬门禁,四技能全覆盖)
16
+
17
+ - magic-deck:SKILL.md 加「2.5 交付前自检」(Playwright 零报错 + 逐页翻完 + 首中末三页截图自查),新增 `resources/content-guide.md` 内容适配手册(内容气质→版式 / 领域→成套模板 / 页数节奏 / 图表选型)
18
+ - 锦囊:SKILL.md 加「2.5 交付前自检」(json 机器校验 + 页面零报错 + 卡片数等于数据条数)
19
+ - deck-stage:步骤 5 校验强化为「交付前自检」硬门禁(slide XML 数量与 pages 一致、每页非空)
20
+ - template:新技能模板加「3.5 交付前自检」占位(按技能类型选自检手段)
21
+
5
22
  ## 0.5.0(2026-11-11)
6
23
 
7
24
  **新增**
@@ -48,7 +48,7 @@ disable-model-invocation: false
48
48
  2. **结构化提炼** → 读 `resources/data-schema.md`(schema + 段落映射:年报五段/周报四段/日报四段 → 页类型与节色)
49
49
  3. **封面/结尾截图**(无现成素材时)→ 读 `resources/cover-template.html` 说明:复制模板到临时目录 → 替换 `COVER` 对象(title/subtitle/info/stats 或 mode:closing)→ Chrome headless 截图 1280x720(macOS:`/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --headless --disable-gpu --no-sandbox --hide-scrollbars --screenshot=cover.png --window-size=1280,720 --virtual-time-budget=3000 "file:///<临时html>"`;Windows 按序探测 chrome.exe/msedge.exe,URL 用 node url.pathToFileURL)
50
50
  4. **生成 pptx**:写 data.json → `cd <skill目录> && node resources/pptx-builder.js --data <data.json绝对路径> --out <DIR>/<文件名>.pptx` → 输出 `PPTX_OK <路径>`
51
- 5. **校验**:文件存在、大小 > 20KB、`unzip -l` 页数与 pages 数一致
51
+ 5. **交付前自检**(硬门禁,不可跳过):文件存在、大小 > 20KB;`unzip -l <pptx>` 校验——`ppt/slides/slideN.xml` 数量与 data.json pages 数一致、每页 slide XML 均存在且非空;builder 已报 `PPTX_OK` 才算通过。未通过 → 修 data.json 后重跑 builder,禁止跳过直接交付
52
52
  6. **落盘与打开**:按配置 DIR 落盘;`OPEN_PPTX: true` 时打开(macOS:`open <pptx>`;Windows:`start <pptx>`)
53
53
  7. **使用咨询**(用户只问「登台怎么用」「报告转 PPT 怎么用」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「登台 deck-stage 使用指南」),不执行任何生成动作
54
54
 
@@ -13,9 +13,14 @@ disable-model-invocation: false
13
13
  ## 生成流程
14
14
 
15
15
  0. **读用户配置**(TEMPLATE/THEME/TRANSITION/ANIM/WIDTH/HEIGHT/SEC/FILENAME/DIR 等)→ 先 Read 同目录 `user-config.md`
16
- 1. **收集内容**:解析用户提供的内容(文字/文件/结构化要点),确定页数与每页版式
16
+ 1. **收集内容**:解析用户提供的内容(文字/文件/结构化要点),确定页数与每页版式 → 先 Read `resources/content-guide.md` 按内容气质选版式骨架 / 按领域选成套模板 / 按用途定页数节奏 / 按数据挑图表形式
17
17
  2. **生成 HTML**(每页写语义结构——.s-head 标题 / .card 卡片 / .points 要点 / .bignum 数据,按 TEMPLATE 在对应页 slide 挂 data-template 声明默认版式;十六主题 CSS 变量、主题面板、动画库(deck 标签 data-transition 翻页八套 + 元素 data-anim 入场十二式 / data-anim-leave 离场 / data-anim-emphasis 强调 + 标题文字拆分 + 边栏 ⚙ 工具 Tab 控制)、模板面板(16 套 + 预览本页)、编辑能力(撤销/重做/页面管理边栏:新页/复页/排序/删页)、播放引擎、热键、截图/复制、全屏纯净模式)→ 先 Read `resources/reference.html` + `resources/deck-spec.md` 两份,以 reference.html 为骨架逐处替换内容
18
- 3. **落盘与命名**:写 `<文件名>.html` 到 DIR 目录,自动打开浏览器供用户放映。命名三级优先:①用户口头指定文件名 → 用指定名;②未指定且 FILENAME=auto → 按本次内容主题+用途总结中文名(如「智能探针系统-产品介绍」,让用户日后能按名找回继续改);③FILENAME 写死固定名 → 用固定名。重名一律自动加日期后缀,绝不覆盖;落盘目录复用不清空、不改动目录内既有文件
18
+ 2.5 **交付前自检**(落盘前必做,硬门禁不可跳过):写工作区 `outputs/<文件名>.html` 后——
19
+ - Bash 起 `python3 -m http.server 8941`(后台,端口占用换 8942/8943…)
20
+ - Playwright headless 自检(缺则 `pip3 install --user playwright`;用系统 Chrome,无需 playwright install 下载浏览器):`p.chromium.launch(channel="chrome", headless=True)` → goto 页面 → 挂 pageerror 监听(零容忍)→ 按页数循环 `go(i)` 把每一页翻完
21
+ - 截首 / 中 / 末三页 PNG,Read 自查:版式正常、文字无溢出截断、图表数据到位、无豆腐块缺字
22
+ - 任何报错或视觉问题:修 HTML → 重检;全绿才进第 3 步
23
+ 3. **落盘与命名**:自检通过后 `cp` 到 DIR 目录,自动打开浏览器供用户放映。命名三级优先:①用户口头指定文件名 → 用指定名;②未指定且 FILENAME=auto → 按本次内容主题+用途总结中文名(如「智能探针系统-产品介绍」,让用户日后能按名找回继续改);③FILENAME 写死固定名 → 用固定名。重名一律自动加日期后缀,绝不覆盖;落盘目录复用不清空、不改动目录内既有文件
19
24
  4. **使用咨询**(用户只问「怎么用 / 使用说明 / 能干什么」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「魔法幻灯生成器使用指南」),不生成 HTML
20
25
 
21
26
  ## ⚙️ 配置与自定义
@@ -0,0 +1,58 @@
1
+ # 内容适配手册(生成前选版式)
2
+
3
+ > 生成 HTML 前必读:按内容气质挑版式骨架、按领域挑成套模板、按用途定页数节奏、按数据挑图表形式。拿不准时用 AskUserQuestion 让用户在候选里挑,不替用户做风格决策。
4
+
5
+ ## 一、内容气质 → 版式骨架(十六套怎么挑)
6
+
7
+ | 内容类型 | 首选版式 | 备选 | 理由 |
8
+ |:---|:---|:---|:---|
9
+ | 产品发布 / 路演 | keynote 黑金发布 | classic 经典商务 | 大观点单页冲击力强,黑金适合发布场 |
10
+ | 数据汇报 / 财报 | finance 金融报表 | bento 模块网格 | 仪表环 + 数据卡原生就位 |
11
+ | 高管简报 | executive 高管简报 | minimal 极简留白 | 一页一结论,克制利落 |
12
+ | 教学培训 | education 教学板书 | steps 流程步骤 | 板书分栏 + 目标/讲解/练习三段 |
13
+ | 技术分享 / 架构 | blueprint 蓝图工程 | metro 扁平磁贴 | 工程感线条与图纸气质 |
14
+ | 时间线叙事 / 复盘 | timeline 时间线叙事 | vintage 复古报纸 | 节点卡片天然承载阶段演进 |
15
+ | 文艺 / 故事 / 品牌 | magazine 杂志画册 | poster 海报宣传 | 左文右图分栏 + 大幅留白 |
16
+ | 新闻通讯 / 资讯 | vintage 复古报纸 | classic 经典商务 | 双栏报纸排版信息密度高 |
17
+ | 活动海报 / 单页宣传 | poster 海报宣传 | magazine 杂志画册 | 要点转斜切色带,视觉先行 |
18
+ | 极简个人页 / 简历 | minimal 极简留白 | bento 模块网格 | 居中大字 + 要点列表 |
19
+ | 暗色氛围 / 发布会备选 | dark 暗夜深色 | keynote 黑金发布 | 深底高对比,适合屏幕放映 |
20
+ | 清新生活 / 公益 | nature 自然清新 | minimal 极简留白 | 绿色系温和感 |
21
+
22
+ ## 二、领域成套模板(二十一 套,六分类怎么挑)
23
+
24
+ 用户内容主题与某套高度契合时,优先推荐领域模板(一键生成整套:封面 + 目录 + 内容页 + 图表页 + 结束页,每套 6-8 页):
25
+
26
+ | 分类 | 模板 | 适用场景 |
27
+ |:---|:---|:---|
28
+ | 教育学术 | thesis 毕业答辩 / proposal 开题报告 / teaching 教学课件 | 学位答辩、课题申报、课堂 |
29
+ | 职场商务 | report 年终汇报 / competition 竞聘述职 / plan 商业计划书 / hiring 求职简历 | 述职、融资、求职 |
30
+ | 企业运营 | product 产品发布 / tech 科技发布会 / marketing 营销方案 / training 企业培训 / ceremony 年会盛典 | 发布会、培训、年会 |
31
+ | 专业领域 | finance 金融分析 / medical 医疗科普 / law 法律合规 | 行业分析、科普、合规宣贯 |
32
+ | 党政政务 | gov 政务汇报 / party 党建汇报 | 政府汇报、党建活动 |
33
+ | 生活场景 | food 餐饮品牌 / travel 旅游攻略 / festival 节日庆典 / charity 公益慈善 | 探店、攻略、节庆、公益 |
34
+
35
+ 生成后领域模板与版式 / 主题正交:每页仍可挂 data-template 运行时换十六版式、主题照常换肤,不是死骨架。
36
+
37
+ ## 三、页数与节奏
38
+
39
+ | 用途 | 建议页数 | 结构 |
40
+ |:---|:---|:---|
41
+ | 工作汇报 / 述职 | 6-8 页 | 封面 1 + 目录 1 + 正文 3-4 + 图表 1 + 结束 1 |
42
+ | 教学培训 | 8-10 页 | 封面 + 目标 + 讲解 4-6 + 练习 + 小结 |
43
+ | 路演 / 发布会 | 8-12 页 | 封面 + 痛点 + 方案 3-5 + 数据 + 里程碑 + 结束 |
44
+ | 单页海报 | 1 页 | 大字标题 + 3-5 条要点 + 落款 |
45
+
46
+ **页内纪律**:单页要点 ≤ 5 条;单页数据指标 ≤ 3 个;页标题 ≤ 12 字;超量自动拆页,禁止一页塞满。
47
+
48
+ ## 四、图表选型(挂 data-anim-chart)
49
+
50
+ | 数据形态 | 图表 | 容器挂法 |
51
+ |:---|:---|:---|
52
+ | 趋势 / 变化 | line 折线描画 | `data-anim-chart="line"` |
53
+ | 占比 / 构成 | pie 饼图扇入 | `data-anim-chart="pie"` |
54
+ | 对比 / 排名 | bars 柱状生长 | `data-anim-chart="bars"` |
55
+ | 完成率 / 进度 | ring 仪表扫弧 | `data-anim-chart="ring"` |
56
+ | 大数字 / 里程碑 | count 数字滚动 | `data-count="128"`(可带 `data-count-dec`) |
57
+
58
+ 数值纪律:业务结果指标优先、git 统计兜底;数字必带对比基准(同比 / 环比)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skill-forge-hub",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "SkillForge (技能锻造坊) — a curated collection of AI craft skills. Install once, then pick skills interactively: daily/weekly/annual reports, article-to-HTML, magic-deck slides, deck-stage PPTX, prompt-pouch manager, Pandoc doc converters, meta-forge.",
5
5
  "bin": {
6
6
  "skill-forge": "cli.js"
@@ -2,7 +2,7 @@
2
2
  name: prompt-pouch
3
3
  description: >
4
4
  锦囊(prompt-pouch)提示词管理 Skill:生成并维护一个本地 HTML 提示词管理页面(锦囊管理台),
5
- 暖棕金/深蓝科技/极简黑白/薄荷绿四套主题(右下角换肤坞随时切换,THEME 配置可设默认),功能为分组侧栏(带计数徽章)+ 搜索(关键词高亮)+ 卡片网格 + 四种排序(最新添加默认/最近使用/使用频率/手动,
5
+ 暖棕金/深蓝科技/Darcula 深灰蓝/薄荷绿四套主题(右下角换肤坞随时切换,THEME 配置可设默认),功能为分组侧栏(带计数徽章)+ 搜索(关键词高亮)+ 卡片网格 + 四种排序(最新添加默认/最近使用/使用频率/手动,
6
6
  拖拽与 ▲▼ 自动切手动)+ 使用统计 + 收藏星标 + {变量} 插值填充面板 + 一键复制 + 卡片「👁 详情」弹窗
7
7
  (全文滚动查看 / 复制 / 修改 / 创建修改时间线);数据存 <DIR>/cache/prompts.json(DATA_DIR 可配),
8
8
  页面与数据严格分离,双笔协作(页面经授权目录直写,AI 代笔维护)。三类任务:①初始化——目标目录无页面时确认目录(默认用户配置 DIR)
@@ -42,6 +42,10 @@ disable-model-invocation: false
42
42
  - 收尾提示启动方式:`cd <DIR> && python3 -m http.server <PORT>`(Windows 无 python3 时 `py -m http.server`),浏览器访问 `http://localhost:<PORT>/prompt-pouch.html`(HTTP 才能读 prompts.json;file:// 直开回退缓存快照)
43
43
  2. **维护**(页面已存在时):读 `<DIR>/<DATA_DIR>/prompts.json` → 按用户意图修改 → 写回(UTF-8、2 空格缩进、保留 version 字段)→ 提醒用户刷新页面
44
44
  - **分类交互**:用户说「添加 XX」但未说分组 → AskUserQuestion 列出全部现有分组(加「新建分组」选项)让用户选;用户指定的分组不存在 → 明确告知该分组不存在,并问是否新建(新建则补 groups 条目:id 16 位数字主键(雪花规则见 data-format.md)、name 中文、icon 一个 emoji)
45
+ 2.5 **交付前自检**(初始化与每次维护落盘后必做,硬门禁不可跳过):
46
+ - **json 机器校验**:`python3 -c "import json;json.load(open('<DIR>/<DATA_DIR>/prompts.json',encoding='utf-8'))"`(Windows 用 py)解析通过,且 schema 自查无缺(version/groups/prompts 齐全、group 引用存在、order 连续、新增条目 createdAt 到时分秒)
47
+ - **页面零报错验证**:Playwright headless(缺则 `pip3 install --user playwright`;用系统 Chrome,channel="chrome" 无需下载浏览器)→ 起本地服务 `cd <DIR> && python3 -m http.server <PORT>` → goto `http://localhost:<PORT>/prompt-pouch.html` → 挂 pageerror 监听(零容忍)→ 断言卡片数 `document.querySelectorAll('.card').length` 等于 prompts.json 的 prompts 条数(证明数据被正确读到;落回内置示例种子即自检失败)→ 收尾停服务
48
+ - 未通过 → 修复后重跑,禁止跳过直接交付
45
49
  3. **打开页面**:用户说「打开锦囊 / 打开提示词页面」→
46
50
  - 目标目录无页面时先执行步骤 1(初始化)
47
51
  - 后台起本地服务(`cd <DIR> && python3 -m http.server <PORT>`,Windows 用 `py -m http.server`;端口被占则换 PORT+1 再试)
@@ -58,7 +62,7 @@ disable-model-invocation: false
58
62
 
59
63
  **执行本 skill 前必须先 Read 同目录 `user-config.md`**:目录(DIR/DIR_WIN)、端口(PORT)、初始化数据(INIT_DATA)、确认开关(CONFIRM)、主题(THEME)等默认配置都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
60
64
 
61
- **THEME 主题机制**:页面内置四套主题——gold 暖棕金(默认)/ tech 深蓝科技 / mono 极简黑白 / mint 薄荷绿。初始化复制 reference.html 后,将 html 根标签 `data-theme` 属性值设为配置 `THEME`(仅此一处修改);页面右下角「换肤坞」色点可随时切换主题,选择经浏览器 localStorage 持久(key: sf-pouch-theme),刷新后保持;localStorage 优先级高于根标签 data-theme。已初始化的页面改配置 THEME 不追溯——用户手动换过主题即以其选择为准。
65
+ **THEME 主题机制**:页面内置四套主题——gold 暖棕金(默认)/ tech 深蓝科技 / mono Darcula 深灰蓝(JetBrains IDE 同款观感)/ mint 薄荷绿。初始化复制 reference.html 后,将 html 根标签 `data-theme` 属性值设为配置 `THEME`(仅此一处修改);页面右下角「换肤坞」色点可随时切换主题,选择经浏览器 localStorage 持久(key: sf-pouch-theme),刷新后保持;localStorage 优先级高于根标签 data-theme。已初始化的页面改配置 THEME 不追溯——用户手动换过主题即以其选择为准。
62
66
 
63
67
  **配置版本机制(升级保护)**:user-config.md 头部 `CONFIG_VERSION` 标识结构版本。升级 skill 后若发现新版本结构(如 v2 新增 THEME 字段)而用户配置是旧版:先备份旧配置为 `user-config.md.bak-时间戳`,将旧值迁移进新结构(保留用户已有 DIR/PORT/INIT_DATA/CONFIRM,缺失字段补默认值),更新 CONFIG_VERSION,最后用一句话告知用户配置已升级、旧文件备份在哪。 **无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三绝不——绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在备份)、一次说清(升级报告三段式:⚠️ 版本与备份路径 / ✅ 已自动迁移 / 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件(prompts.json)迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层(旧 id 兼容保留即范例)或留备份提示手动整理
64
68
 
@@ -30,34 +30,34 @@
30
30
  --btn-ink:#041018;
31
31
  --bar-hi:rgba(10,25,41,.96); --bar-lo:rgba(10,25,41,.88);
32
32
  }
33
- /* ═══ mono 深黑极简:Linear 式黑画布 + 纯白强调 + 灰阶层次(黑底白字,货真价实的黑色主题) ═══ */
33
+ /* ═══ mono 深灰蓝:JetBrains Darcula 色系(深灰底 + 蓝灰文字 + 灰阶面板,IDE 同款观感) ═══ */
34
34
  [data-theme="mono"]{
35
- --bg:#0a0a0b; --bg2:#121215;
36
- --panel:#17171a; --panel2:#1e1e22;
37
- --text:#f5f5f7; --muted:#9b9ba4;
38
- --gold:#ffffff; --gold2:#d9d9de; --gold-dim:rgba(255,255,255,.09);
39
- --border:rgba(255,255,255,.11);
40
- --tag-bg:rgba(255,255,255,.07);
41
- --star:#f5f5f7;
42
- --glow:rgba(255,255,255,.16);
43
- --btn-ink:#0a0a0b;
44
- --bar-hi:rgba(10,10,11,.96); --bar-lo:rgba(10,10,11,.88);
35
+ --bg:#2b2b2b; --bg2:#313335;
36
+ --panel:#3c3f41; --panel2:#313335;
37
+ --text:#a9b7c6; --muted:#808080;
38
+ --gold:#a9b7c6; --gold2:#6b7280; --gold-dim:rgba(169,183,198,.12);
39
+ --border:#4e5254;
40
+ --tag-bg:#3c3f41;
41
+ --star:#d7dce3;
42
+ --glow:rgba(169,183,198,.18);
43
+ --btn-ink:#2b2b2b;
44
+ --bar-hi:rgba(43,43,43,.96); --bar-lo:rgba(43,43,43,.88);
45
45
  }
46
- /* mono 深黑组件适配:魔法棒黑白化、白标签、白星标、深色弹层、输入区半透明白、黑点白描边 */
47
- [data-theme="mono"] .lg{ filter:grayscale(1) brightness(.3); }
46
+ /* mono 深灰蓝组件适配:魔法棒灰化、蓝灰标签、浅蓝灰星标、深灰弹层、输入区微亮蓝灰、色点蓝灰描边 */
47
+ [data-theme="mono"] .lg{ filter:grayscale(1) brightness(.45); }
48
48
  [data-theme="mono"] .nav-item .icon,
49
- [data-theme="mono"] .search .kw{ filter:grayscale(1) brightness(1.35); }
50
- [data-theme="mono"] .tpl-badge{ color:#f5f5f7; background:rgba(255,255,255,.12); }
51
- [data-theme="mono"] .op.star-on{ color:#ffffff; border-color:rgba(255,255,255,.42); background:rgba(255,255,255,.15); }
52
- [data-theme="mono"] .gpop{ background:#1e1e22; border-color:rgba(255,255,255,.13); box-shadow:0 12px 32px rgba(0,0,0,.55); }
49
+ [data-theme="mono"] .search .kw{ filter:grayscale(1) brightness(1.15); }
50
+ [data-theme="mono"] .tpl-badge{ color:#a9b7c6; background:rgba(169,183,198,.14); }
51
+ [data-theme="mono"] .op.star-on{ color:#d7dce3; border-color:rgba(169,183,198,.45); background:rgba(169,183,198,.16); }
52
+ [data-theme="mono"] .gpop{ background:#3c3f41; border-color:#4e5254; box-shadow:0 12px 32px rgba(0,0,0,.6); }
53
53
  [data-theme="mono"] .fp-preview,
54
54
  [data-theme="mono"] .fp-field input,
55
55
  [data-theme="mono"] .fp-field textarea,
56
56
  [data-theme="mono"] .fp-field select,
57
57
  [data-theme="mono"] .fp-live textarea,
58
58
  [data-theme="mono"] .bk-item,
59
- [data-theme="mono"] .detail-content{ background:rgba(255,255,255,.05); }
60
- [data-theme="mono"] .theme-dock .th-dot[data-theme="mono"]{ border:1.5px solid rgba(255,255,255,.5); }
59
+ [data-theme="mono"] .detail-content{ background:rgba(169,183,198,.07); }
60
+ [data-theme="mono"] .theme-dock .th-dot[data-theme="mono"]{ border:1.5px solid rgba(169,183,198,.55); }
61
61
  [data-theme="mint"]{ /* 薄荷绿 */
62
62
  --bg:#0d1a12; --bg2:#12241a;
63
63
  --panel:#182f22; --panel2:#1e3a2a;
@@ -197,8 +197,8 @@ main{ flex:1; min-width:0; }
197
197
  cursor:grab; display:flex; flex-direction:column; gap:8px;
198
198
  }
199
199
  .card:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.35); border-color:var(--glow); }
200
- [data-theme="mono"] .card{ box-shadow:0 1px 0 rgba(255,255,255,.05) inset; }
201
- [data-theme="mono"] .card:hover{ box-shadow:0 10px 30px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.09); }
200
+ [data-theme="mono"] .card{ box-shadow:0 1px 0 rgba(169,183,198,.07) inset; }
201
+ [data-theme="mono"] .card:hover{ box-shadow:0 10px 30px rgba(0,0,0,.55),0 0 0 1px rgba(169,183,198,.14); }
202
202
  .card.dragging{ opacity:.35; cursor:grabbing; }
203
203
  .card.drop-target{ border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-dim); }
204
204
  .card-top{ display:flex; align-items:center; gap:8px; }
@@ -473,7 +473,7 @@ footer.open .ht-arrow{ transform:rotate(180deg); }
473
473
  .theme-dock .th-dot.on{ border-color:var(--text); }
474
474
  .theme-dock .th-dot[data-theme="gold"]{ background:#e8b04b; }
475
475
  .theme-dock .th-dot[data-theme="tech"]{ background:#0ea5e9; }
476
- .theme-dock .th-dot[data-theme="mono"]{ background:#111; }
476
+ .theme-dock .th-dot[data-theme="mono"]{ background:#2b2b2b; }
477
477
  .theme-dock .th-dot[data-theme="mint"]{ background:#4ade80; }
478
478
  @media print{ .theme-dock{ display:none; } }
479
479
  </style>
@@ -2031,7 +2031,7 @@ footer.open .ht-arrow{ transform:rotate(180deg); }
2031
2031
  <div class="theme-dock" id="themeDock">
2032
2032
  <button class="th-dot" type="button" data-theme="gold" title="gold 暖棕金"></button>
2033
2033
  <button class="th-dot" type="button" data-theme="tech" title="tech 深蓝科技"></button>
2034
- <button class="th-dot" type="button" data-theme="mono" title="mono 极简黑白"></button>
2034
+ <button class="th-dot" type="button" data-theme="mono" title="mono Darcula 深灰蓝"></button>
2035
2035
  <button class="th-dot" type="button" data-theme="mint" title="mint 薄荷绿"></button>
2036
2036
  </div>
2037
2037
  </body>
@@ -1,6 +1,6 @@
1
1
  # 锦囊使用指南
2
2
 
3
- 锦囊(prompt-pouch)是一个本地 HTML 提示词管理台:暖棕金默认配色,内置四套主题(暖棕金/深蓝科技/极简黑白/薄荷绿,右下角换肤坞随时切换),分组侧栏 + 搜索 + 卡片网格,妙计入囊、随取随用。页面与数据分离——页面可直写、AI 可代笔(双笔协作),你只管说,刷新即见。
3
+ 锦囊(prompt-pouch)是一个本地 HTML 提示词管理台:暖棕金默认配色,内置四套主题(暖棕金/深蓝科技/Darcula 深灰蓝/薄荷绿,右下角换肤坞随时切换),分组侧栏 + 搜索 + 卡片网格,妙计入囊、随取随用。页面与数据分离——页面可直写、AI 可代笔(双笔协作),你只管说,刷新即见。
4
4
 
5
5
  ## 怎么用
6
6
 
@@ -15,7 +15,7 @@ BACKUP_DIR: backup
15
15
  INIT_DATA: example
16
16
 
17
17
  # 页面主题(初始化时写入页面根标签 data-theme;页面右下角换肤坞可随时切换)
18
- # 可选:gold 暖棕金(默认)/ tech 深蓝科技 / mono 极简黑白 / mint 薄荷绿
18
+ # 可选:gold 暖棕金(默认)/ tech 深蓝科技 / mono Darcula 深灰蓝 / mint 薄荷绿
19
19
  THEME: gold
20
20
 
21
21
  # 初始化/落盘前是否先确认目标目录
package/template/SKILL.md CHANGED
@@ -14,6 +14,7 @@ disable-model-invocation: false
14
14
  1. **阶段一(做什么)** → 读 `resources/xxx.md`
15
15
  2. **阶段二(做什么)** → 读 `resources/yyy.md`
16
16
  3. **阶段三(做什么)** → 读 `resources/zzz.md`
17
+ 3.5 **交付前自检**(落盘前必做,硬门禁不可跳过):<按技能类型写自检手段——页面类用 Playwright headless 零报错(channel="chrome");文档类检查结构与数据纪律;产物类校验文件完整性与内容一致>——未通过修复后重跑,禁止跳过直接交付
17
18
  4. **使用咨询**(用户只问用法、未要求生成)→ 读 `resources/usage-guide.md` 原样输出(首行标题改为「XX使用指南」),不执行任何生成动作
18
19
 
19
20
  ## ⚙️ 默认配置(用户可手动修改;临时口头要求永远优先)