一站式可视化 Prompt 资源包,专为 AI 培训现场演示和企业内网部署设计。
触发本 skill 的典型场景:
左右双栏对比同一需求下"普通问法"和"专业问法"的输出差距,覆盖 CodeBuddy 6 个研发场景 + WorkBuddy 6 个办公场景。
skill 资源位于 assets/ 目录:
index.html(主页面,~80 KB,含 12 场景对照 + 词典 + Top 榜三个 tab)prompts_data.js(词典数据,3.1 MB · 必须与 HTML 同目录)toplist_data.js(Top 榜数据,34 KB · 必须与 HTML 同目录)TARGET=/path/to/customer-folder
mkdir -p $TARGET
cp ~/.workbuddy/skills/nice-prompt/assets/index.html $TARGET/
cp ~/.workbuddy/skills/nice-prompt/assets/prompts_data.js $TARGET/
cp ~/.workbuddy/skills/nice-prompt/assets/toplist_data.js $TARGET/
主 HTML 中含客户专属占位符,使用前 必须 替换:
| 占位符 | 含义 | 示例 |
|---|---|---|
| --- | --- | --- |
{{客户公司名}} | 客户全称 | 圣诺生物医药(苏州)有限公司 |
{{客户名}} | 客户简称 | 圣诺生物 |
{{客户行业}} | 客户所在行业 | 生物医药 / 医疗信息化 / 金融科技 |
{{所在城市}} | 客户所在城市 | 苏州 / 南京 / 上海 |
{{覆盖区域}} | 客户业务覆盖区域 | 江苏全省 / 全国 |
{{业务系统}} | 客户的核心业务系统 | HIS / LIS、OMS、CRM |
{{典型设备}} {{设备型号}} | 涉及到的硬件 | 迈瑞 BC-6000 |
{{硬件厂商}} {{硬件厂商B}} | 硬件供应商 | 迈瑞 / 希森美康 |
{{合规法规}} | 行业合规要求 | PIPL / GDPR / 等保三级 |
{{客户的客户A/B/C/D/E}} | 客户的下游客户 | 苏州人民医院 |
{{讲师团队}} | 培训讲师团队 | 腾讯云 WorkBuddy 团队 |
{{培训日期}} | 培训日期 | 2026-05-28 |
可用 sed 批量替换(macOS/Linux):
cd $TARGET
sed -i.bak 's/{{客户公司名}}/圣诺生物医药(苏州)有限公司/g; s/{{客户名}}/圣诺生物/g; s/{{客户行业}}/生物医药/g; s/{{所在城市}}/苏州/g' index.html
rm index.html.bak
cd $TARGET
/Users/nickdliu/.workbuddy/binaries/python/versions/3.13.12/bin/python3 -m http.server 8090
# 浏览器打开 http://localhost:8090/index.html
或直接用浏览器打开 index.html 文件(部分浏览器 file:// 下数据加载可能受限,推荐起 server)。
将整个目录打包成 zip 发给客户,或部署到内网静态站点。
⚠️ 关键提醒:index.html、prompts_data.js、toplist_data.js 三个文件 必须放在同一目录,缺一不可。
打开 index.html,搜索 const scenes = [(约 781 行),按现有结构增删 12 个场景:
{
id: "cb-01", type: "cb", num: "CB-01",
title: "场景标题",
role: "适用:xxx · 可改写成你的客户场景",
bad: { prompt: "差 Prompt 文本", output: "AI 给的废话输出", verdict: "<b>问题:</b>..." },
good: { prompt: "好 Prompt 文本", output: "高质量结构化输出", verdict: "<b>结果:</b>..." },
gap: ["差距点 1", "差距点 2", "差距点 3", "差距点 4"]
}
直接编辑 toplist_data.js,结构:
{ id:1, cat:"office"|"dev",
sub:"email|meeting|report|ppt|hr|marketing|pm|codegen|review|debug|arch|sql|security|ops",
title:"标题", desc:"≤60字描述",
tags:["标签1","标签2"],
source:"来源名称", sourceUrl:"https://...",
stars:130, votes:8420, rating:4.9,
prompt:"完整 Prompt 文本"
}
⚠️ JS 字符串陷阱:prompt/desc 内若含中文双引号包裹的内容,必须改用 『』 替代,否则会触发 SyntaxError。修改后用 node -e "eval(require('fs').readFileSync('toplist_data.js','utf8'));console.log(TOPLIST_DATA.length)" 校验。
编辑 prompts_data.js 添加条目,结构:
{ cat:"dev"|"office", title:"...", desc:"...", tags:[...], hot:2500, rating:4.7,
source:"OpenAI Cookbook", sourceUrl:"https://...", prompt:"..." }
本 skill 推荐配置周度自动化任务(用户已设置过 automation-1779886535297 每周一 09:00 触发):
toplist_data.js 并 node 校验如需重设:使用 automation_update 工具创建 recurring 任务,rrule = FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0;BYSECOND=0。
打开页面顶部"提示词六要素"卡片:角色 / 任务 / 背景 / 输入 / 输出 / 约束。
切到 Tab 1,从 12 场景中挑 4 个最贴合客户业务的现场演示。
重点强调:左红右绿,同一个 AI、同一时间,输出差距 +200%。
切到 Tab 2:
zb 秒搜"周报"全部模板切到 Tab 3:
告诉客户:把这个 HTML 部署到内网,新人入职第一周必学,每周一自动更新。
index.html 找不到 prompts_data.js 或 toplist_data.js 时词典/Top 榜会显示空白python3 -m http.servergrep -n "{{" index.html 检查是否还有未替换的占位符toplist_data.js 修改时若 prompt 内含中文 "..." 引号必须改为 『...』,否则 JS 解析失败prompts_data.js 3.1MB,首次加载需要 1-2 秒,状态条会从"⏳ 加载中"变"✅ 已加载 3700 条"{{客户名}} 等占位符与顶部 banner 必须保持一致替换部署完成后,按顺序检查:
cd $TARGET
# 1. 三个文件都存在
ls -lh index.html prompts_data.js toplist_data.js
# 2. 占位符是否已全部替换
grep -c "{{" index.html # 应为 0
# 3. JS 数据语法正确
/Users/nickdliu/.workbuddy/binaries/node/versions/22.22.2/bin/node -e \
"const fs=require('fs');eval(fs.readFileSync('toplist_data.js','utf8'));console.log('TOP榜:',TOPLIST_DATA.length,'条')"
# 期望输出:TOP榜: 42 条
/Users/nickdliu/.workbuddy/binaries/node/versions/22.22.2/bin/node -e \
"const fs=require('fs');eval(fs.readFileSync('prompts_data.js','utf8'));console.log('词典:',PROMPT_DATA.length,'条')"
# 期望输出:词典: 3000+ 条
# 4. 浏览器打开预览
open http://localhost:8090/index.html
# - Tab 1:12 场景全部显示
# - Tab 2:底部状态显示"✅ 已加载 3xxx 条"
# - Tab 3:默认见 14 场景分组,每组 3 张卡片
# 5. 交互测试
# - 在 Tab 2 搜索框输入 zb,应秒搜出"周报"相关
# - 在 Tab 3 搜索 "code review",应高亮匹配
# - 任意卡片点"复制"按钮,看右下角 toast 提示
共 1 个版本