skill-forge-hub 0.5.4 → 1.0.1
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 +46 -0
- package/README.md +5 -4
- package/annual-report/SKILL.md +4 -3
- package/annual-report/resources/disk-and-html.md +1 -1
- package/annual-report/resources/reference.html +33 -18
- package/annual-report/user-config.md +1 -1
- package/article-to-html/SKILL.md +1 -39
- package/article-to-html/resources/usage-guide.md +41 -0
- package/cli.js +40 -7
- package/daily-report/SKILL.md +4 -3
- package/daily-report/resources/disk-and-html.md +1 -1
- package/daily-report/resources/reference.html +42 -18
- package/daily-report/user-config.md +1 -1
- package/deck-stage/SKILL.md +24 -4
- package/deck-stage/resources/cover-template.html +3 -2
- package/deck-stage/resources/data-schema.md +1 -1
- package/deck-stage/resources/pptx-builder.js +1 -1
- package/deck-stage/resources/usage-guide.md +2 -2
- package/deck-stage/user-config.md +2 -2
- package/magic-deck/SKILL.md +8 -3
- package/magic-deck/resources/deck-spec.md +15 -8
- package/magic-deck/resources/reference.html +18 -10
- package/magic-deck/resources/usage-guide.md +2 -2
- package/magic-deck/user-config.md +2 -2
- package/package.json +1 -1
- package/prompt-pouch/SKILL.md +12 -11
- package/prompt-pouch/resources/data-format.md +2 -1
- package/prompt-pouch/resources/reference.html +345 -32
- package/prompt-pouch/resources/usage-guide.md +11 -4
- package/prompt-pouch/user-config.md +1 -1
- package/spec-doc2spec/SKILL.md +1 -0
- package/spec-spec2doc/SKILL.md +1 -0
- package/weekly-report/SKILL.md +4 -3
- package/weekly-report/resources/disk-and-html.md +1 -1
- package/weekly-report/resources/reference.html +43 -19
- package/weekly-report/user-config.md +1 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
- 每次生成落盘哪些文件读取顶部「默认配置」的 `FORMATS`(默认 md/txt/html/content-png 四个,md/txt/html 文件名 `daily-report-YYYYMMDD.<格式>`、截图文件名 `daily-report-YYYYMMDD-content.png`;txt 为纯文本版);`DISK: false` 时全部不落盘
|
|
9
9
|
- 对话中照常输出 md 正文(不受 FORMATS 影响);`OPEN_HTML: true` 且本次落盘了 html 时,自动打开浏览器(macOS:`open <html文件>`;Windows PowerShell:`Start-Process <html文件>`)
|
|
10
10
|
- FORMATS 含 content-png 时额外生成内容区截图 `daily-report-YYYYMMDD-content.png`:整页内容区截图一张(头部标题卡片 + 今日任务进度/明日计划/风险阻塞点三张分节卡片整体截出,头部卡片必须带上,图片四周保留对称合适的外边距约 40px 留白):html 内置 `?shot=content` 参数(页面 JS 检测后仅统一 body 四周 padding 40px、除右下角主题换肤坞外不隐藏任何元素(头部标题卡/三张分节卡/页脚全部保留),正常浏览不受影响);用 Chrome headless 访问带参 URL 截图(路径按系统选:macOS=`/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`;Windows 按序探测 `C:\Program Files\Google\Chrome\Application\chrome.exe` → `C:\Program Files (x86)\Google\Chrome\Application\chrome.exe` → `%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe`,经 node child_process 执行 `--headless --disable-gpu --no-sandbox --hide-scrollbars --user-data-dir=<临时目录> --screenshot=<png路径> --window-size=760,<估算高度> --virtual-time-budget=4000 "file:///<html路径>?shot=content"`(Windows 下 URL 写作 file:///C:/...,用 node url.pathToFileURL 生成),跑完删除临时目录;禁止用 `--headless=new`(单例模式会静默失败生成占位图);若 Chrome 不存在则换 Edge(macOS=`/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge`;Windows=`C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe` → `C:\Program Files\Microsoft\Edge\Application\msedge.exe`),都找不到时跳过截图并在对话注明);高度按整页内容区估算(body 上下留白~80 + 头部标题卡片~180 + 每节卡片(45+条目数×70+40,含各卡片 margin-bottom 18) + 余量~15,底部留白仅 body 下 padding 40px、与顶部对称,余量只防截断不可多给),截图后用 Read 校验:头部标题卡片与三张分节卡片整体完整在图内、四周留白对称合适、不截断,底部留白过大则减高度、截断则加高度重截
|
|
11
|
-
- md/txt/html 均含生成时间行,精确到时分秒(如 2026-10-22 19:10:38);HTML 采用参考图式深蓝面板风格 + ask 同款发光动效的融合样式(不换其它色系,颜色全部用 CSS 变量统一主题令牌:29 令牌 × 4 主题(tech 深蓝科技(默认,色值与旧 ask 色板一致)/biz 浅色商务/mono 极简黑白/warm 温暖渐变,html[data-theme] 运行时切换;12 核心契约 --bg/--bg2/--panel/--panel-solid/--text/--muted/--accent/--accent2/--border/--glow/--title-grad/--tag-bg + 报告扩展 --glow-soft/--scan/--scan-dim/--heat/--green/--orange/--rose + 流星粒子 --cp-a/--cp-b/--cp-tip/--cp-glow0/--cp-glow1 与 --cpd-a/--cpd-b/--cpd-tip/--cpd-glow0/--cpd-glow1(跨主题统一白色系:本体白热尖端 + 柔和白青光晕,深浅两带只差光晕强度);生成时按 THEME 配置写 data-theme 定默认,页面右下角换肤坞四色点随点随换、localStorage 记忆、?shot 截图模式与打印隐藏):禁用任何 CDN 与外部网络引用(@import、外链 CSS/JS/图片/网络字体一律禁止,页面必须公司内网离线双击可打开、零外部依赖),字体全用系统本地字体栈 ui-monospace/'SF Mono'/SFMono-Regular/Menlo/Consolas/'Microsoft YaHei'/monospace(macOS 走 SF Mono/Menlo、Windows 走 Consolas,中文回退 Microsoft YaHei;字母数字等宽自带科技感),正文同栈 400、标题同栈 900 渐变文字(var(--title-grad),background-clip:text,发光用 ask-result 模板同款 text-shadow 双圈(titleGlow 动画 3s 呼吸:基线 20px/.4 + 60px/.15 ↔ 峰值 30px/.7 + 80px/.3,h1 留静态基线;24px 小字同参数观感与官方一致,禁止改三圈小模糊——会糊在字内边界不清));页面背景纯深蓝黑 #0a1929(参考图同款色值)、正文浅青 #bae6fd、全屏极轻微噪点纹理(body::before fixed 覆盖层,background-image 用 SVG feTurbulence data URI(<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(#n)'/></svg>),opacity .04,pointer-events:none,z-index 0 在卡片之下,消除大面积纯色死板感),body 纯 #0a1929 背景不加径向辉光(onboarding 同款);全屏背景叠加 speccore dashboard 同款三层科技感底纹:60px 网格底纹(.grid-pattern fixed inset 0,background-image linear-gradient(var(--scan-dim) 1px, transparent 1px) 纵横双向、background-size 60px 60px、z-index 0)+ 彩色星点层(.stars fixed inset 0,8 个 1-1.5px 星点 radial-gradient(1px 1px at <位置>, <色>, transparent) 多背景组合:白色 rgba(255,255,255,.3-.4) 与青色 rgba(0,240,255,.45-.5)、紫色 rgba(168,85,247,.4)、绿色 rgba(0,255,136,.4),位置分散 10%-90%,z-index 0)+ 全屏 2px 周期细扫描线(.scanlines fixed inset 0,repeating-linear-gradient(0deg, transparent 0 2px, var(--scan-dim) 2px 4px),z-index 999 罩最上层,pointer-events none;三层均 fixed 不随滚动,营造星野+网格+扫描的科技氛围,不破坏参考图纯深蓝黑质感);内容区宽度响应窗口自适应(.wrap width:clamp(640px, 60%, 1200px) + margin:0 auto:最小 640px、最大 1200px、中间按窗口 60% 缩放,页面左右留白对称);头部卡片参考图式实心深蓝底(var(--panel-solid) 实心 #0b1e37,略亮于背景、更偏蓝)+ 8px 周期细密水平条纹(background-image 叠加 repeating-linear-gradient(180deg, rgba(255,255,255,.012) 0 1px, transparent 1px 8px))+ 上下边缘 1px 微亮描边(border-top/border-bottom 1px solid #0f3350,参考图「边缘点亮一线」效果,与 ask 四边浮光扫描线动画共存、动画层在上)+ 圆角 6px + 外发光与 inset 内发光(0 0 20px rgba(14,165,233,.08) + inset 0 1px 24px rgba(14,165,233,.04)),overflow:hidden,标题区仅标题与青色胶囊生成时间徽章(badge 后直接收尾,不加底部细线/装饰光带,避免悬空多余线);标题与徽章下加 TL;DR 一句话摘要行(.summary-line flex 布局 max-width 540px 居中:左侧 .summary-tag「TL;DR」青色小标签 系统等宽 10px 粗体、rgba(14,165,233,.35) 细边圆角 4px、rgba(14,165,233,.07) 底、青色 text-shadow 光晕 + 右侧 .summary-text 12.5px 浅青正文 line-height 1.75 text-align left;摘要带判断给结论——整体节奏/主要风险/明日重点,不罗列条目);分节卡片同参考图式质感(实心深蓝底 #0b1e37 + 8px 周期细密水平条纹 + 上下边缘 1px 微亮描边 #0f3350 + 圆角缩小至 6px + overflow:hidden,保留阴影与 inset 内发光,去掉原全框青色细边),每张分节卡片左侧带参考图式左缘色条(8px 宽竖线贯穿整卡高度,节色渐变带同色光晕:完成 linear-gradient(180deg,#5eead4,#14b8a6) / 计划 linear-gradient(180deg,#fdba74,#f97316) / 风险 linear-gradient(180deg,#fda4af,#e11d48),box-shadow 0 0 12px 同色 30% 透明度;卡片内容 padding-left 24px 避让色条),节标题带 18px 同色渐变 SVG 语义图标+文字微光晕(h2 flex 布局 gap 10px,图标替换原竖向短条:完成=圆形对勾、计划=日历、风险=三角警示;inline SVG 内 linearGradient 同节色系渐变 完成 #5eead4→#14b8a6 / 计划 #fdba74→#f97316 / 风险 #fda4af→#e11d48 + 白色描边细节 + drop-shadow 同色光晕;标题色:完成青绿 #5eead4、计划橙 #fdba74、风险玫红 #fda4af + h2 文字同色双圈发光字 3s 呼吸 secGlow 动画(基线 14px/.45+40px/.18 ↔ 峰值 22px/.75+60px/.3,各节动画用本节主题色,与主标题同节奏;仅节标题文字发光,SVG 图标与日期徽章不加))+ 「今日任务进度」节标题右侧带目标日期小胶囊徽章 sec-date(margin-left:auto 推右、flex:0 0 auto;11px var(--muted) 字、padding 3px 10px、圆角 999px、青色细边 var(--border)、背景 var(--tag-bg),如 2026-10-22;仅完成节显示、计划/风险节不加,让截图自带具体日期)+ 条目 3D 立体圆球序号徽章(28px 白字,立体感克制的柔和球面——弱化版三段收窄色阶:受光球面渐变 radial-gradient(受光点 circle at 30% 28%,浅亮→主色→深色:完成 #7dd9cf→#14b8a6→#0d9488、计划 #fdc69a→#f97316→#ea580c、风险 #fdaab4→#f43f5e→#e11d48)+ inset 右下内暗影 -3px -4px 6px rgba(0,0,0,.3) 与左上内亮缘 1px 2px 3px rgba(255,255,255,.2) + ::before 左上椭圆高光点(position:relative 定位,top 5px/left 7px、8x6px、rotate -28deg、白色径向渐隐 rgba(255,255,255,.7)→0)+ 底部投影 0 2px 4px rgba(0,0,0,.25) 与同色光晕 0 0 8px + 数字 text-shadow 0 1px 1px rgba(0,0,0,.25) 贴球面) + 条目内部留白:li 水平 padding 10px(hover 淡青底 var(--tag-bg) 与文字间留 10px 间距)+ 序号圆形徽章 28px(数字距圆边约 8px,不贴圆边)+ 列表轻微缩进 12px(ol/ul padding 0 12px)+ 描述与进度双层错落排版(描述 15px、进度用时 12px 青灰小字 #5b7fa5、百分比加粗强调且两侧 margin 0 2px 呼吸留白、进度与用时之间用「 - 」连接(与 md/txt 版一致,不用 · )、条目间青色虚线分隔);风险节条目四环展开:desc 主行(问题)+ meta 影响行(12px 青灰小字「影响:xxx」)+ .advice 建议行(12px 青色小字,「建议:」加粗前缀,margin-top 6px)+ .owner 责任与时间行(12px 紫色 #a78bfa 小字,「责任与时间:」加粗前缀,margin-top 4px,口述无责任信息时省略此行);md/txt 版同条目依次写问题、影响、建议、责任与时间(第四项口述有时必写),文本格式不变+ 青色渐变 40px 大胶囊「一键复制」按钮(var(--accent)→var(--accent2),30px 青色光晕,hover 45px 光晕上浮,模板同款;flex 居中布局,内置 16px 内联 SVG 双矩形复制图标(白色 currentColor 描边、图标与文字 gap 8px、禁用 emoji 图标),复制成功后图标切换为对勾 SVG、文字短暂变「已复制」);头部 speccore ask 风格发光特效(与 ask 页面完全同款):四边 1px 青色浮光线,渐变 transparent→var(--accent)→transparent 整条线平移扫动(亮段长、无 box-shadow 光晕,四边亮段构成顺时针环绕循环,与 ask 看板卡片完全同款(上横线 scanX 左→右、右竖线 scanY 上→下、下横线 scanX-rev 右→左、左竖线 scanY-rev 下→上,四线同周期同速度 3s linear 单向平移);实现为 1px 整线渐变元素平铺整条边(上/下横线 left:0/right:0 + height:1px + linear-gradient(90deg, transparent, var(--accent), transparent);左/右竖线 top:0/bottom:0 + width:1px + linear-gradient(180deg, transparent, var(--accent), transparent)),随线体 translateX/translateY 平移 ±100%(相对线长):scanX -100%→100%、scanX-rev 100%→-100%、scanY -100%→100%、scanY-rev 100%→-100%;亮段(线中央渐变段)完整穿越卡片后消失于两端界外(卡片 overflow:hidden 裁剪),带「出现→穿越→消失」节奏;禁止自创 background-position 滚动/常驻辉光/往返摆动/亮段半嵌常驻等变体)+ 顶部光斑 ask 同款 cardGlow(radial-gradient ellipse at 50% 10% var(--glow)→transparent 70%,opacity .5→1 + scale 1→1.6,transform-origin top center,3s 循环;头部卡片与每张分节卡片内均放 .card-glow 光斑层,覆盖整卡顶部)+ 标题文字青色光晕呼吸(text-shadow 双圈 3s 循环);入场动画:头部淡入下滑、卡片依次错峰上浮淡入(完成 0.26s/计划 0.4s/风险 0.54s)、按钮弹入(卡片入场动画 fadeDown/fadeUp/riseIn 的 fill-mode 必须用 backwards 严禁 both——both 使动画结束后最后一帧 transform:none 永久覆盖 hover 的 3D 偏转 transform,CSS 动画 applied 值优先级高于普通声明,hover 偏转会完全失效;cometFade 与按钮 pop 保持 both 不受此限);hover 微交互:卡片上浮+阴影加深+inset 发光增强、条目淡青底、序号徽章放大微旋(li:hover .idx transform:scale(1.18) rotate(-4deg)、球内数字放大 12→14px、数字必须用 <b> 包裹(.idx b{display:inline-block;transition:transform .2s ease})+ li:hover .idx b{transform:rotate(-6deg)} 数字在球内独立微旋;用户澄清 hover 变大的字体仅小球内数字,desc 正文保持 15px 不变不加斜体;销售 demo 版类名 .num:li:hover .num scale(1.22) rotate(-6deg)、数字 13→15px 同样 <b> 包裹 + rotate(-6deg))、按钮上浮/按压回缩;页脚 10px muted 文字(无分隔线、不加边框),署名固定 GENERATED BY SPECCORE TEAM · <目标日期>(日期动态,如 GENERATED BY SPECCORE TEAM · 20261022);三段分节列表,任务点保持中文顿号序号;当日节奏条(.day-strip 任务进度节内三时段横条:上午/下午/晚上按提交数分段高亮、.strip-item position:relative、hover 弹出 .strip-tip 浮层(bottom:calc(100% + 6px) 向上弹出避卡片 overflow:hidden 裁剪;position:absolute、translateX(-50%) scale(.85)→hover scale(1)、opacity 0→1、pointer-events:none、z-index:30、background:#0b2a4a、border:1px solid rgba(14,165,233,.4)、圆角、小字两行「时段 · N 次提交」+主题词));数字选择:用户口述的业务结果指标(响应时间/错误率/转化率/成功率等)优先写入,提交统计(提交数/文件数/行数)仅在无业务指标时兜底,两者都有时业务指标在前、提交统计后置或省略;数字凡有对比基准必带(环比/同比/目标完成度至少其一,如「+18%」「达目标 90%」),无基准来源时不作要求 - 节奏条下量化指标行(.day-metrics flex 居中 gap:22px、10.5px muted 字、数字用 .day-metrics b 青色等宽加粗(3 次提交 / 56 个文件 / +1.8k −285 行,删行数字 .minus 用 --rose 玫红);纯文字模式无 提交数据时省略此行);进度条终点圆点 + 流星扫描填充(.pbar-fill 必须 display:block + position:relative——行内 span 忽略 width/height 会变成 0×0,填充与圆点全部不可见;.pbar-fill::before 终点圆点 7px 径向渐变圆 right:0 + transform:translate(50%,-50%) 骑在填充右缘(done 青绿 radial-gradient(circle at 35% 30%,#a7f3d0,#2dd4bf 62%,#0d9488)、plan 橙 #fdba74/#f97316/#c2410c,box-shadow 同色光晕、z-index:2;.pbar-track/.pbar-fill 均不得加 overflow:hidden——圆点右半伸出填充 3.5px 骑边渲染);流星 = JS 注入 .pbar-track 内的 .pbar-sweep(absolute 左贴轨道、width:0 起点隐藏、height:16px、transform:translateY(-50%) 垂直居中、z-index:1、pointer-events:none)+ sweep 右缘 .pbar-comet 光体(absolute left:100% 贴 sweep 右缘随宽度移动,严禁 right:62%/right:100% 等右侧定位——彗星会停在轨道中段、进度 100% 时也到不了终点;子弹头形光核:20×11px 横向泪滴 border-radius:55% 100% 100% 55% / 85% 100% 100% 85%(右端全圆弧=前进弹头、左端 55%/85% 大圆角=后部饱满钝圆接尾不露尖(比 35%/60% 更钝,禁尖窄收尾),严禁 13×7 小椭圆方块感、严禁 20px 大圆球形态)background 三层:底层 linear-gradient(90deg,rgba(224,254,255,.3),rgba(224,254,255,.6) 55%,#fff) 铺底(形状内不得透底)+ 右前缘白青冷光 radial-gradient(ellipse 70% 85% at 74% 45%,rgba(224,254,255,.85),transparent) + 青白核 radial-gradient(circle 12px at 66% 50%,#fff,rgba(224,254,255,.95) 45%,rgba(224,254,255,.5) 75%,transparent)(circle 半径必须显式 12px——自动半径按最远角计、四角渐隐至透明会露出轨道深色背景成「黑三角」,显式半径让光核饱满),box-shadow 双圈柔光 0 0 5px 2px rgba(186,230,253,.75) + 0 0 12px 4px rgba(224,254,255,.35)——光晕总高控制在 2~2.5 倍条高以内,不用 drop-shadow;整体前大后收窄的扫帚流星:头部 20×11 大头 → ::after 彗尾 right:40%、84×12px 细长锥形拖尾 linear-gradient(90deg,transparent,rgba(224,254,255,.25) 26%,rgba(224,254,255,.75) 64%,rgba(255,255,255,.9)) + clip-path:polygon(4% 40%,16% 24%,100% 0,100% 100%,16% 76%,4% 60%)(左端收成 2.4px 高平口钝头、右端全高平接光核、16% 处起渐收——远窄近宽,禁矩形方块形、禁 1px 尖点)+ blur 1px + z-index:0——长度约 4 倍头宽;剥落粒子流(JS 为每颗 .pbar-comet 注入 30 个 span.cp,绝对定位在光核中后段出生):30 粒三带分布(上方飘散带 17 粒 by -6~-0.5 向上飘散 + 中部渗漏带 6 粒 by +0.5~+5.2 + 深色带 7 粒 by +5.5~+8 贴光核下缘)椭圆小块前大后小(3.2×2.2 → 1.2×0.9px,宽高不等 + rotate -12°~12° 不规则椭圆,禁用标准圆形、禁用 box-shadow 静态星屑——静态点没有剥落飘散的生命感),出生点从头部稍靠后(left 9~17px)开始,y 紧贴中心水平线(中线 ±2.5px,各粒角度基本一致不散乱),cpFlow 1.5~1.8s cubic-bezier(.2,.05,.55,1) infinite + 负延迟 -0.1~-1.5s 错峰:0%→10% 淡入渐现(渐渐出现)、10%→100% 沿水平线加速向后飘 translate3d(-45~-62px, dy, 0)(加速向后)、55% 后 opacity 渐隐 + scale(.16) 渐小(向尾部消失)、dy 三带取值:上方 -3.5~-7 上飘展开(用户反馈上方粒子少且飘散不够远,13→17 再加密、dy 再扩大,下方相对合适不增)、中部 +1.5~+3.5 向下渗漏、白带 +5~+7 向后甩出(全白发光带 cp-deep 与浅带同为白色系(本体白热 + 柔和白青光晕、光晕略强分层,跨主题统一)、dur 1.06~1.25s 更久停留),box-shadow 光晕 0%→55% 增强再减弱(每粒生命期一次明灭=呼吸发光,周期 1.5~1.8s 与主体 1.8s 呼吸非整数倍错开,禁止同频齐步闪);粒子 z-index:1 在彗尾之上(尾 z-index:0)、opacity:0 起步呼吸发光分层不同频:主体光核 1.8s 与彗尾 2.4s 周期呼吸(comet 双动画 cometFade + glowPulse 1.8s ease-in-out infinite:纯白晕光晕 0%↔50% 周期扩缩(50% 时白晕最盛 = 白色呼吸,扫过 1.1s 内可见一轮明暗);::after 挂 tailGlow 2.4s ease-in-out infinite:filter blur(1px) brightness(1) ↔ blur(1.5px) brightness(1.28) 亮度呼吸),粒子 1.5~1.8s 明灭与主体 1.8s 呼吸非整数倍错开(视觉错落不同频);opacity:0 常驻隐藏);.pbar-track.sheen-on 时 sweep transition:width 1.1s cubic-bezier(.3,.8,.4,1) 生长(comet 贴 sweep 右缘 left:100% 随宽度从左扫到右),comet 的 animation 严禁写在 .pbar-comet 基类(基类动画页面加载 t=0 即播、1.1s 后 both 定格 opacity:0,而扫动 setTimeout 1.5s 才开始——时序错位会让流星全程不可见);必须挂在 .pbar-track.sheen-on .pbar-comet 选择器上(cometFade 1.1s ease-out both, glowPulse 1.8s ease-in-out infinite 逗号并列双动画:cometFade 7% 淡入、86% 保持、100% 到终点消失、glowPulse 白晕呼吸循环;::after 彗尾另挂 tailGlow 2.4s ease-in-out infinite 亮度呼吸),靠 playSweep 内 remove/add sheen-on 类切换重启动画,与 dotPulse 同机制;扫动终点按各条目标进度 data-w:sheen 内 sweep inline width 终点 = data-w(done 条 100% 扫满轨道、有进度的 plan 条如 30% 即 30% 停在进度点不越界)——sweep 宽度过渡与 fill 宽度过渡同参数天然同步,comet 与彗尾/星屑无需任何反向补偿(scaleX 压缩方案会把彗尾一同拉长数倍,禁用);填充同步生长:入场 sheen(el,'wave') 给 fill 设 transition width 1.1s 同 easing + width 0→data-w,与流星同步——流星扫到哪、填充长到哪,流星到终点消失、留下各自进度,之后填充保持不再变化;圆点 .pbar-done/.pbar-plan .pbar-track.sheen-on .pbar-fill::before animation:dotPulse 1.1s(90% 处 filter:brightness(2) + 白光 drop-shadow 爆亮,done/plan 通用)流星到达终点时爆亮——dotPulse 选择器必须与 JS 加类位置一致:JS 把 sheen-on 加在 .pbar-track 上,严禁写 .pbar-fill.sheen-on::before(JS 从不在 fill 上加类,选择器永不命中、爆亮不触发);流星注入与入场波浪覆盖完成条 + 有进度的计划条(JS 遍历 .pbar-track:plan 且进度<=0 的条 return 跳过——0 进度的计划条不注入流星、不扫、保持静态),其余条 data-w 记录目标进度后 fill 归零;入场波浪:setTimeout 1500+i*420ms 逐条 sheen(el,'wave') 错峰(上→下必然可见);hover 重扫:li 上 mouseenter+pointerenter 双监听,sheen(el,'hover') 只 remove/add fill 与 track 的 sheen-on 类重放流星扫过(comet 再扫一遍,0 进度的 plan 条同样跳过),fill 宽度与颜色完全不重置(进度不再变化),sheen(el,src) 按来源独立节流(wave 1s / hover 300ms);重启动画 remove 类→sweep inline 归零 width:0(transition:none 无过渡)→void offsetWidth 强制回流→同步 add 类→sweep inline 目标 width=data-w(恢复 transition;双 RAF 在 headless 虚拟时间下不推进,不可用));液态玻璃(@supports((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) 内 .header-card/.section 加 backdrop-filter:blur(16px) saturate(1.35) + background-color:var(--panel),不支持的老浏览器走默认实心深蓝不白屏);CRT 扫描光带(.scanband position:fixed、left:0/right:0、height:150px、linear-gradient(180deg,transparent,var(--scan-dim) 50%,transparent)、animation:scanMove 11s linear infinite(top -22%→112%)、pointer-events:none、z-index:998,置于 scanlines 之下一层);卡片级 3D 微倾斜(严禁全页级 mousemove 倾斜——页面容器整页旋转会让所有卡片一起偏转,与「仅当前卡片响应」不符):每张卡片 hover 时仅该卡片随鼠标偏转,卡片 transform 写 perspective(900px) + rotateY(calc(var(--mx,0)*2.5deg)) rotateX(calc(var(--my,0)*-2.5deg))(±1.25° 极轻微),与 hover 上浮 translateY(-2px) 合并写同一条 transform(严禁拆两条相互覆盖);hover 态选择器带 tilt(header-card/overview/section 或 header-card/card),非 hover 卡片不倾斜;JS 对每张卡片监听 mousemove 计算卡内相对位置((clientX-rect.left)/rect.width*2-1 归一化 -1~1)只更新该卡 --mx/--my,mouseleave 归零回正,transition transform .18s 平滑;移动端无 mousemove 保持 0 不倾斜);body 严禁写 perspective 属性(perspective 使 body 成为 fixed 后代的包含块,右下角换肤坞 position:fixed 会相对 body 定位、随页面一起滚动——「坞不固定」的根因;卡片 3D 已由 transform 自带 perspective(900px),body 级 perspective 冗余且有害);禁止写 @media (prefers-reduced-motion: reduce) 禁用动画的媒体查询块(官方模板无此块,用户系统开启减少动画时该块会禁用全部动效,是竖线不动/发光不呼吸的根因);页面 JS 需支持 `?shot=content` 参数(检测 location.search 含 shot=content 时仅统一 body 四周 padding 40px + 隐藏右下角主题换肤坞(其余元素一律保留),供整页内容区截图用、保证截图四周留白对称合适)
|
|
11
|
+
- md/txt/html 均含生成时间行,精确到时分秒(如 2026-10-22 19:10:38);HTML 采用参考图式深蓝面板风格 + ask 同款发光动效的融合样式(不换其它色系,颜色全部用 CSS 变量统一主题令牌:29 令牌 × 5 主题(tech 深蓝科技(默认,色值与旧 ask 色板一致)/biz 浅色商务/mono IDEA 黑亮(JetBrains New UI Dark 官方色系:编辑区 #1e1f22 + 面板 #2b2d30)/light IDEA 白亮(IntelliJ Light 官方色系:白编辑区 + 浅灰面板)/warm 温暖渐变,html[data-theme] 运行时切换;12 核心契约 --bg/--bg2/--panel/--panel-solid/--text/--muted/--accent/--accent2/--border/--glow/--title-grad/--tag-bg + 报告扩展 --glow-soft/--scan/--scan-dim/--heat/--green/--orange/--rose + 流星粒子 --cp-a/--cp-b/--cp-tip/--cp-glow0/--cp-glow1 与 --cpd-a/--cpd-b/--cpd-tip/--cpd-glow0/--cpd-glow1(跨主题统一白色系:本体白热尖端 + 柔和白青光晕,深浅两带只差光晕强度);生成时按 THEME 配置写 data-theme 定默认,页面右下角换肤坞五色点随点随换、localStorage 记忆、?shot 截图模式与打印隐藏):禁用任何 CDN 与外部网络引用(@import、外链 CSS/JS/图片/网络字体一律禁止,页面必须公司内网离线双击可打开、零外部依赖),字体全用系统本地字体栈 ui-monospace/'SF Mono'/SFMono-Regular/Menlo/Consolas/'Microsoft YaHei'/monospace(macOS 走 SF Mono/Menlo、Windows 走 Consolas,中文回退 Microsoft YaHei;字母数字等宽自带科技感),正文同栈 400、标题同栈 900 渐变文字(var(--title-grad),background-clip:text,发光用 ask-result 模板同款 text-shadow 双圈(titleGlow 动画 3s 呼吸:基线 20px/.4 + 60px/.15 ↔ 峰值 30px/.7 + 80px/.3,h1 留静态基线;24px 小字同参数观感与官方一致,禁止改三圈小模糊——会糊在字内边界不清));页面背景纯深蓝黑 #0a1929(参考图同款色值)、正文浅青 #bae6fd、全屏极轻微噪点纹理(body::before fixed 覆盖层,background-image 用 SVG feTurbulence data URI(<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(#n)'/></svg>),opacity .04,pointer-events:none,z-index 0 在卡片之下,消除大面积纯色死板感),body 纯 #0a1929 背景不加径向辉光(onboarding 同款);全屏背景叠加 speccore dashboard 同款三层科技感底纹:60px 网格底纹(.grid-pattern fixed inset 0,background-image linear-gradient(var(--scan-dim) 1px, transparent 1px) 纵横双向、background-size 60px 60px、z-index 0)+ 彩色星点层(.stars fixed inset 0,8 个 1-1.5px 星点 radial-gradient(1px 1px at <位置>, <色>, transparent) 多背景组合:白色 rgba(255,255,255,.3-.4) 与青色 rgba(0,240,255,.45-.5)、紫色 rgba(168,85,247,.4)、绿色 rgba(0,255,136,.4),位置分散 10%-90%,z-index 0)+ 全屏 2px 周期细扫描线(.scanlines fixed inset 0,repeating-linear-gradient(0deg, transparent 0 2px, var(--scan-dim) 2px 4px),z-index 999 罩最上层,pointer-events none;三层均 fixed 不随滚动,营造星野+网格+扫描的科技氛围,不破坏参考图纯深蓝黑质感);内容区宽度响应窗口自适应(.wrap width:clamp(640px, 60%, 1200px) + margin:0 auto:最小 640px、最大 1200px、中间按窗口 60% 缩放,页面左右留白对称);头部卡片参考图式实心深蓝底(var(--panel-solid) 实心 #0b1e37,略亮于背景、更偏蓝)+ 8px 周期细密水平条纹(background-image 叠加 repeating-linear-gradient(180deg, rgba(255,255,255,.012) 0 1px, transparent 1px 8px))+ 上下边缘 1px 微亮描边(border-top/border-bottom 1px solid #0f3350,参考图「边缘点亮一线」效果,与 ask 四边浮光扫描线动画共存、动画层在上)+ 圆角 6px + 外发光与 inset 内发光(0 0 20px rgba(14,165,233,.08) + inset 0 1px 24px rgba(14,165,233,.04)),overflow:hidden,标题区仅标题与青色胶囊生成时间徽章(badge 后直接收尾,不加底部细线/装饰光带,避免悬空多余线);标题与徽章下加 TL;DR 一句话摘要行(.summary-line flex 布局 max-width 540px 居中:左侧 .summary-tag「TL;DR」青色小标签 系统等宽 10px 粗体、rgba(14,165,233,.35) 细边圆角 4px、rgba(14,165,233,.07) 底、青色 text-shadow 光晕 + 右侧 .summary-text 12.5px 浅青正文 line-height 1.75 text-align left;摘要带判断给结论——整体节奏/主要风险/明日重点,不罗列条目);分节卡片同参考图式质感(实心深蓝底 #0b1e37 + 8px 周期细密水平条纹 + 上下边缘 1px 微亮描边 #0f3350 + 圆角缩小至 6px + overflow:hidden,保留阴影与 inset 内发光,去掉原全框青色细边),每张分节卡片左侧带参考图式左缘色条(8px 宽竖线贯穿整卡高度,节色渐变带同色光晕:完成 linear-gradient(180deg,#5eead4,#14b8a6) / 计划 linear-gradient(180deg,#fdba74,#f97316) / 风险 linear-gradient(180deg,#fda4af,#e11d48),box-shadow 0 0 12px 同色 30% 透明度;卡片内容 padding-left 24px 避让色条),节标题带 18px 同色渐变 SVG 语义图标+文字微光晕(h2 flex 布局 gap 10px,图标替换原竖向短条:完成=圆形对勾、计划=日历、风险=三角警示;inline SVG 内 linearGradient 同节色系渐变 完成 #5eead4→#14b8a6 / 计划 #fdba74→#f97316 / 风险 #fda4af→#e11d48 + 白色描边细节 + drop-shadow 同色光晕;标题色:完成青绿 #5eead4、计划橙 #fdba74、风险玫红 #fda4af + h2 文字同色双圈发光字 3s 呼吸 secGlow 动画(基线 14px/.45+40px/.18 ↔ 峰值 22px/.75+60px/.3,各节动画用本节主题色,与主标题同节奏;仅节标题文字发光,SVG 图标与日期徽章不加))+ 「今日任务进度」节标题右侧带目标日期小胶囊徽章 sec-date(margin-left:auto 推右、flex:0 0 auto;11px var(--muted) 字、padding 3px 10px、圆角 999px、青色细边 var(--border)、背景 var(--tag-bg),如 2026-10-22;仅完成节显示、计划/风险节不加,让截图自带具体日期)+ 条目 3D 立体圆球序号徽章(28px 白字,立体感克制的柔和球面——弱化版三段收窄色阶:受光球面渐变 radial-gradient(受光点 circle at 30% 28%,浅亮→主色→深色:完成 #7dd9cf→#14b8a6→#0d9488、计划 #fdc69a→#f97316→#ea580c、风险 #fdaab4→#f43f5e→#e11d48)+ inset 右下内暗影 -3px -4px 6px rgba(0,0,0,.3) 与左上内亮缘 1px 2px 3px rgba(255,255,255,.2) + ::before 左上椭圆高光点(position:relative 定位,top 5px/left 7px、8x6px、rotate -28deg、白色径向渐隐 rgba(255,255,255,.7)→0)+ 底部投影 0 2px 4px rgba(0,0,0,.25) 与同色光晕 0 0 8px + 数字 text-shadow 0 1px 1px rgba(0,0,0,.25) 贴球面) + 条目内部留白:li 水平 padding 10px(hover 淡青底 var(--tag-bg) 与文字间留 10px 间距)+ 序号圆形徽章 28px(数字距圆边约 8px,不贴圆边)+ 列表轻微缩进 12px(ol/ul padding 0 12px)+ 描述与进度双层错落排版(描述 15px、进度用时 12px 青灰小字 #5b7fa5、百分比加粗强调且两侧 margin 0 2px 呼吸留白、进度与用时之间用「 - 」连接(与 md/txt 版一致,不用 · )、条目间青色虚线分隔);风险节条目四环展开:desc 主行(问题)+ meta 影响行(12px 青灰小字「影响:xxx」)+ .advice 建议行(12px 青色小字,「建议:」加粗前缀,margin-top 6px)+ .owner 责任与时间行(12px 紫色 #a78bfa 小字,「责任与时间:」加粗前缀,margin-top 4px,口述无责任信息时省略此行);md/txt 版同条目依次写问题、影响、建议、责任与时间(第四项口述有时必写),文本格式不变+ 青色渐变 40px 大胶囊「一键复制」按钮(var(--accent)→var(--accent2),30px 青色光晕,hover 45px 光晕上浮,模板同款;flex 居中布局,内置 16px 内联 SVG 双矩形复制图标(白色 currentColor 描边、图标与文字 gap 8px、禁用 emoji 图标),复制成功后图标切换为对勾 SVG、文字短暂变「已复制」);头部 speccore ask 风格发光特效(与 ask 页面完全同款):四边 1px 青色浮光线,渐变 transparent→var(--accent)→transparent 整条线平移扫动(亮段长、无 box-shadow 光晕,四边亮段构成顺时针环绕循环,与 ask 看板卡片完全同款(上横线 scanX 左→右、右竖线 scanY 上→下、下横线 scanX-rev 右→左、左竖线 scanY-rev 下→上,四线同周期同速度 3s linear 单向平移);实现为 1px 整线渐变元素平铺整条边(上/下横线 left:0/right:0 + height:1px + linear-gradient(90deg, transparent, var(--accent), transparent);左/右竖线 top:0/bottom:0 + width:1px + linear-gradient(180deg, transparent, var(--accent), transparent)),随线体 translateX/translateY 平移 ±100%(相对线长):scanX -100%→100%、scanX-rev 100%→-100%、scanY -100%→100%、scanY-rev 100%→-100%;亮段(线中央渐变段)完整穿越卡片后消失于两端界外(卡片 overflow:hidden 裁剪),带「出现→穿越→消失」节奏;禁止自创 background-position 滚动/常驻辉光/往返摆动/亮段半嵌常驻等变体)+ 顶部光斑 ask 同款 cardGlow(radial-gradient ellipse at 50% 10% var(--glow)→transparent 70%,opacity .5→1 + scale 1→1.6,transform-origin top center,3s 循环;头部卡片与每张分节卡片内均放 .card-glow 光斑层,覆盖整卡顶部)+ 标题文字青色光晕呼吸(text-shadow 双圈 3s 循环);入场动画:头部淡入下滑、卡片依次错峰上浮淡入(完成 0.26s/计划 0.4s/风险 0.54s)、按钮弹入(卡片入场动画 fadeDown/fadeUp/riseIn 的 fill-mode 必须用 backwards 严禁 both——both 使动画结束后最后一帧 transform:none 永久覆盖 hover 的 3D 偏转 transform,CSS 动画 applied 值优先级高于普通声明,hover 偏转会完全失效;cometFade 与按钮 pop 保持 both 不受此限);hover 微交互:卡片上浮+阴影加深+inset 发光增强、条目淡青底、序号徽章放大微旋(li:hover .idx transform:scale(1.18) rotate(-4deg)、球内数字放大 12→14px、数字必须用 <b> 包裹(.idx b{display:inline-block;transition:transform .2s ease})+ li:hover .idx b{transform:rotate(-6deg)} 数字在球内独立微旋;用户澄清 hover 变大的字体仅小球内数字,desc 正文保持 15px 不变不加斜体;销售 demo 版类名 .num:li:hover .num scale(1.22) rotate(-6deg)、数字 13→15px 同样 <b> 包裹 + rotate(-6deg))、按钮上浮/按压回缩;页脚 10px muted 文字(无分隔线、不加边框),署名固定 GENERATED BY SPECCORE TEAM · <目标日期>(日期动态,如 GENERATED BY SPECCORE TEAM · 20261022);三段分节列表,任务点保持中文顿号序号;当日节奏条(.day-strip 任务进度节内三时段横条:上午/下午/晚上按提交数分段高亮、.strip-item position:relative、hover 弹出 .strip-tip 浮层(bottom:calc(100% + 6px) 向上弹出避卡片 overflow:hidden 裁剪;position:absolute、translateX(-50%) scale(.85)→hover scale(1)、opacity 0→1、pointer-events:none、z-index:30、background:#0b2a4a、border:1px solid rgba(14,165,233,.4)、圆角、小字两行「时段 · N 次提交」+主题词));数字选择:用户口述的业务结果指标(响应时间/错误率/转化率/成功率等)优先写入,提交统计(提交数/文件数/行数)仅在无业务指标时兜底,两者都有时业务指标在前、提交统计后置或省略;数字凡有对比基准必带(环比/同比/目标完成度至少其一,如「+18%」「达目标 90%」),无基准来源时不作要求 - 节奏条下量化指标行(.day-metrics flex 居中 gap:22px、10.5px muted 字、数字用 .day-metrics b 青色等宽加粗(3 次提交 / 56 个文件 / +1.8k −285 行,删行数字 .minus 用 --rose 玫红);纯文字模式无 提交数据时省略此行);进度条终点圆点 + 流星扫描填充(.pbar-fill 必须 display:block + position:relative——行内 span 忽略 width/height 会变成 0×0,填充与圆点全部不可见;.pbar-fill::before 终点圆点 7px 径向渐变圆 right:0 + transform:translate(50%,-50%) 骑在填充右缘(done 青绿 radial-gradient(circle at 35% 30%,#a7f3d0,#2dd4bf 62%,#0d9488)、plan 橙 #fdba74/#f97316/#c2410c,box-shadow 同色光晕、z-index:2;.pbar-track/.pbar-fill 均不得加 overflow:hidden——圆点右半伸出填充 3.5px 骑边渲染);流星 = JS 注入 .pbar-track 内的 .pbar-sweep(absolute 左贴轨道、width:0 起点隐藏、height:16px、transform:translateY(-50%) 垂直居中、z-index:1、pointer-events:none)+ sweep 右缘 .pbar-comet 光体(absolute left:100% 贴 sweep 右缘随宽度移动,严禁 right:62%/right:100% 等右侧定位——彗星会停在轨道中段、进度 100% 时也到不了终点;子弹头形光核:20×11px 横向泪滴 border-radius:55% 100% 100% 55% / 85% 100% 100% 85%(右端全圆弧=前进弹头、左端 55%/85% 大圆角=后部饱满钝圆接尾不露尖(比 35%/60% 更钝,禁尖窄收尾),严禁 13×7 小椭圆方块感、严禁 20px 大圆球形态)background 三层:底层 linear-gradient(90deg,rgba(224,254,255,.3),rgba(224,254,255,.6) 55%,#fff) 铺底(形状内不得透底)+ 右前缘白青冷光 radial-gradient(ellipse 70% 85% at 74% 45%,rgba(224,254,255,.85),transparent) + 青白核 radial-gradient(circle 12px at 66% 50%,#fff,rgba(224,254,255,.95) 45%,rgba(224,254,255,.5) 75%,transparent)(circle 半径必须显式 12px——自动半径按最远角计、四角渐隐至透明会露出轨道深色背景成「黑三角」,显式半径让光核饱满),box-shadow 双圈柔光 0 0 5px 2px rgba(186,230,253,.75) + 0 0 12px 4px rgba(224,254,255,.35)——光晕总高控制在 2~2.5 倍条高以内,不用 drop-shadow;整体前大后收窄的扫帚流星:头部 20×11 大头 → ::after 彗尾 right:40%、84×12px 细长锥形拖尾 linear-gradient(90deg,transparent,rgba(224,254,255,.25) 26%,rgba(224,254,255,.75) 64%,rgba(255,255,255,.9)) + clip-path:polygon(4% 40%,16% 24%,100% 0,100% 100%,16% 76%,4% 60%)(左端收成 2.4px 高平口钝头、右端全高平接光核、16% 处起渐收——远窄近宽,禁矩形方块形、禁 1px 尖点)+ blur 1px + z-index:0——长度约 4 倍头宽;剥落粒子流(JS 为每颗 .pbar-comet 注入 30 个 span.cp,绝对定位在光核中后段出生):30 粒三带分布(上方飘散带 17 粒 by -6~-0.5 向上飘散 + 中部渗漏带 6 粒 by +0.5~+5.2 + 深色带 7 粒 by +5.5~+8 贴光核下缘)椭圆小块前大后小(3.2×2.2 → 1.2×0.9px,宽高不等 + rotate -12°~12° 不规则椭圆,禁用标准圆形、禁用 box-shadow 静态星屑——静态点没有剥落飘散的生命感),出生点从头部稍靠后(left 9~17px)开始,y 紧贴中心水平线(中线 ±2.5px,各粒角度基本一致不散乱),cpFlow 1.5~1.8s cubic-bezier(.2,.05,.55,1) infinite + 负延迟 -0.1~-1.5s 错峰:0%→10% 淡入渐现(渐渐出现)、10%→100% 沿水平线加速向后飘 translate3d(-45~-62px, dy, 0)(加速向后)、55% 后 opacity 渐隐 + scale(.16) 渐小(向尾部消失)、dy 三带取值:上方 -3.5~-7 上飘展开(用户反馈上方粒子少且飘散不够远,13→17 再加密、dy 再扩大,下方相对合适不增)、中部 +1.5~+3.5 向下渗漏、白带 +5~+7 向后甩出(全白发光带 cp-deep 与浅带同为白色系(本体白热 + 柔和白青光晕、光晕略强分层,跨主题统一)、dur 1.06~1.25s 更久停留),box-shadow 光晕 0%→55% 增强再减弱(每粒生命期一次明灭=呼吸发光,周期 1.5~1.8s 与主体 1.8s 呼吸非整数倍错开,禁止同频齐步闪);粒子 z-index:1 在彗尾之上(尾 z-index:0)、opacity:0 起步呼吸发光分层不同频:主体光核 1.8s 与彗尾 2.4s 周期呼吸(comet 双动画 cometFade + glowPulse 1.8s ease-in-out infinite:纯白晕光晕 0%↔50% 周期扩缩(50% 时白晕最盛 = 白色呼吸,扫过 1.1s 内可见一轮明暗);::after 挂 tailGlow 2.4s ease-in-out infinite:filter blur(1px) brightness(1) ↔ blur(1.5px) brightness(1.28) 亮度呼吸),粒子 1.5~1.8s 明灭与主体 1.8s 呼吸非整数倍错开(视觉错落不同频);opacity:0 常驻隐藏);.pbar-track.sheen-on 时 sweep transition:width 1.1s cubic-bezier(.3,.8,.4,1) 生长(comet 贴 sweep 右缘 left:100% 随宽度从左扫到右),comet 的 animation 严禁写在 .pbar-comet 基类(基类动画页面加载 t=0 即播、1.1s 后 both 定格 opacity:0,而扫动 setTimeout 1.5s 才开始——时序错位会让流星全程不可见);必须挂在 .pbar-track.sheen-on .pbar-comet 选择器上(cometFade 1.1s ease-out both, glowPulse 1.8s ease-in-out infinite 逗号并列双动画:cometFade 7% 淡入、86% 保持、100% 到终点消失、glowPulse 白晕呼吸循环;::after 彗尾另挂 tailGlow 2.4s ease-in-out infinite 亮度呼吸),靠 playSweep 内 remove/add sheen-on 类切换重启动画,与 dotPulse 同机制;扫动终点按各条目标进度 data-w:sheen 内 sweep inline width 终点 = data-w(done 条 100% 扫满轨道、有进度的 plan 条如 30% 即 30% 停在进度点不越界)——sweep 宽度过渡与 fill 宽度过渡同参数天然同步,comet 与彗尾/星屑无需任何反向补偿(scaleX 压缩方案会把彗尾一同拉长数倍,禁用);填充同步生长:入场 sheen(el,'wave') 给 fill 设 transition width 1.1s 同 easing + width 0→data-w,与流星同步——流星扫到哪、填充长到哪,流星到终点消失、留下各自进度,之后填充保持不再变化;圆点 .pbar-done/.pbar-plan .pbar-track.sheen-on .pbar-fill::before animation:dotPulse 1.1s(90% 处 filter:brightness(2) + 白光 drop-shadow 爆亮,done/plan 通用)流星到达终点时爆亮——dotPulse 选择器必须与 JS 加类位置一致:JS 把 sheen-on 加在 .pbar-track 上,严禁写 .pbar-fill.sheen-on::before(JS 从不在 fill 上加类,选择器永不命中、爆亮不触发);流星注入与入场波浪覆盖完成条 + 有进度的计划条(JS 遍历 .pbar-track:plan 且进度<=0 的条 return 跳过——0 进度的计划条不注入流星、不扫、保持静态),其余条 data-w 记录目标进度后 fill 归零;入场波浪:setTimeout 1500+i*420ms 逐条 sheen(el,'wave') 错峰(上→下必然可见);hover 重扫:li 上 mouseenter+pointerenter 双监听,sheen(el,'hover') 只 remove/add fill 与 track 的 sheen-on 类重放流星扫过(comet 再扫一遍,0 进度的 plan 条同样跳过),fill 宽度与颜色完全不重置(进度不再变化),sheen(el,src) 按来源独立节流(wave 1s / hover 300ms);重启动画 remove 类→sweep inline 归零 width:0(transition:none 无过渡)→void offsetWidth 强制回流→同步 add 类→sweep inline 目标 width=data-w(恢复 transition;双 RAF 在 headless 虚拟时间下不推进,不可用));液态玻璃(@supports((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) 内 .header-card/.section 加 backdrop-filter:blur(16px) saturate(1.35) + background-color:var(--panel),不支持的老浏览器走默认实心深蓝不白屏);CRT 扫描光带(.scanband position:fixed、left:0/right:0、height:150px、linear-gradient(180deg,transparent,var(--scan-dim) 50%,transparent)、animation:scanMove 11s linear infinite(top -22%→112%)、pointer-events:none、z-index:998,置于 scanlines 之下一层);卡片级 3D 微倾斜(严禁全页级 mousemove 倾斜——页面容器整页旋转会让所有卡片一起偏转,与「仅当前卡片响应」不符):每张卡片 hover 时仅该卡片随鼠标偏转,卡片 transform 写 perspective(900px) + rotateY(calc(var(--mx,0)*2.5deg)) rotateX(calc(var(--my,0)*-2.5deg))(±1.25° 极轻微),与 hover 上浮 translateY(-2px) 合并写同一条 transform(严禁拆两条相互覆盖);hover 态选择器带 tilt(header-card/overview/section 或 header-card/card),非 hover 卡片不倾斜;JS 对每张卡片监听 mousemove 计算卡内相对位置((clientX-rect.left)/rect.width*2-1 归一化 -1~1)只更新该卡 --mx/--my,mouseleave 归零回正,transition transform .18s 平滑;移动端无 mousemove 保持 0 不倾斜);body 严禁写 perspective 属性(perspective 使 body 成为 fixed 后代的包含块,右下角换肤坞 position:fixed 会相对 body 定位、随页面一起滚动——「坞不固定」的根因;卡片 3D 已由 transform 自带 perspective(900px),body 级 perspective 冗余且有害);禁止写 @media (prefers-reduced-motion: reduce) 禁用动画的媒体查询块(官方模板无此块,用户系统开启减少动画时该块会禁用全部动效,是竖线不动/发光不呼吸的根因);页面 JS 需支持 `?shot=content` 参数(检测 location.search 含 shot=content 时仅统一 body 四周 padding 40px + 隐藏右下角主题换肤坞(其余元素一律保留),供整页内容区截图用、保证截图四周留白对称合适)
|
|
12
12
|
- HTML 顶部带「一键复制」按钮:点击复制的是 txt 版纯文本全文(复制源必须用 txt 文件内容:含换行、无 #/##/> 等 Markdown 符号,严禁用 md 内容当复制源),按钮短暂变"已复制";JS 用 navigator.clipboard.writeText,失败回退隐藏 textarea + document.execCommand('copy')(兼容 file:// 打开)
|
|
13
13
|
- 用户临时说"不落盘/别写文件"时(覆盖 DISK):只在对话输出,不写文件、不开浏览器;临时说"写到桌面/存到 X"(覆盖 DIR)、"只要 md/只出 html/只要内容区截图/只要截图/这次不截图"(覆盖 FORMATS)、"别开浏览器"(覆盖 OPEN_HTML)同理,均只对当次生效、不改配置
|
|
14
14
|
- 同名目录处理:日期子目录已存在时直接复用(不重建、不清空),仅覆盖 FORMATS 清单内的同名文件(md/txt/html/content-png),目录内其它文件(时间戳另存的历史文件、full.png 等用户自放文件)一律保留不动、绝不删除或清空(该目录可能是用户此前自建、作其它用途的目录,我们只并列写入自己的专属命名文件,不与用户文件冲突混淆);落盘前查看目录内已有内容,若存在非本 skill 命名的其它文件(daily-report-/weekly-report- 前缀之外),对话中提示用户「该目录内已有其它文件,本次日报已与它们并列存放,未做任何改动」;同一日期重复生成默认直接覆盖原文件,用户说"保留之前的/另存/不覆盖"时,文件名追加时间戳(如 `daily-report-20261022-1530.html`)另存不覆盖
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>今日日报 - 20261106</title>
|
|
7
7
|
<style>
|
|
8
|
-
/* ═══
|
|
8
|
+
/* ═══ 五主题令牌:12 核心契约(与 magic-deck 一致)+ 报告扩展(发光/氛围/语义色);html[data-theme] 运行时切换,THEME 生成时定默认 ═══ */
|
|
9
9
|
:root, [data-theme="tech"]{
|
|
10
10
|
--bg:#0a1929; --bg2:#071525; --panel:rgba(11,30,55,.9); --panel-solid:#0b1e37;
|
|
11
11
|
--card-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 12px 32px rgba(1,6,16,.5), 0 0 24px rgba(14,165,233,.15);
|
|
@@ -28,16 +28,27 @@
|
|
|
28
28
|
--heat:rgba(37,99,235,.55);
|
|
29
29
|
--green:#0d9488; --orange:#ea580c; --rose:#e11d48;
|
|
30
30
|
}
|
|
31
|
-
[data-theme="mono"]{
|
|
32
|
-
--bg:#
|
|
33
|
-
--card-shadow:0 1px
|
|
34
|
-
--text:#
|
|
35
|
-
--border:rgba(
|
|
36
|
-
--title-grad:linear-gradient(90deg,#
|
|
37
|
-
--tag-bg:rgba(
|
|
38
|
-
--scan:rgba(
|
|
39
|
-
--heat:rgba(
|
|
40
|
-
--green:#
|
|
31
|
+
[data-theme="mono"]{ /* IDEA 黑亮:JetBrains New UI Dark 官方(编辑区 #1e1f22 + 面板 #2b2d30 + 描边 #3c3f41) */
|
|
32
|
+
--bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.95); --panel-solid:#2b2d30;
|
|
33
|
+
--card-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 12px 32px rgba(0,0,0,.5), 0 0 24px rgba(53,116,240,.16);
|
|
34
|
+
--text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
|
|
35
|
+
--border:rgba(53,116,240,.26); --glow:rgba(53,116,240,.3); --glow-soft:rgba(53,116,240,.13);
|
|
36
|
+
--title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
|
|
37
|
+
--tag-bg:rgba(53,116,240,.13);
|
|
38
|
+
--scan:rgba(223,225,229,.18); --scan-dim:rgba(223,225,229,.07);
|
|
39
|
+
--heat:rgba(53,116,240,.55);
|
|
40
|
+
--green:#4da36b; --orange:#d09645; --rose:#d85f73;
|
|
41
|
+
}
|
|
42
|
+
[data-theme="light"]{ /* IDEA 白亮:IntelliJ Light 官方(白编辑区 + 浅灰面板 #f2f2f2 + IDEA 蓝 #2675bf) */
|
|
43
|
+
--bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.98); --panel-solid:#ffffff;
|
|
44
|
+
--card-shadow:0 1px 2px rgba(30,31,34,.06), 0 10px 28px rgba(30,31,34,.12);
|
|
45
|
+
--text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
|
|
46
|
+
--border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2); --glow-soft:rgba(38,117,191,.1);
|
|
47
|
+
--title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
|
|
48
|
+
--tag-bg:rgba(38,117,191,.08);
|
|
49
|
+
--scan:rgba(38,117,191,.12); --scan-dim:rgba(38,117,191,.04);
|
|
50
|
+
--heat:rgba(38,117,191,.55);
|
|
51
|
+
--green:#2f8a5b; --orange:#d97706; --rose:#d6336c;
|
|
41
52
|
}
|
|
42
53
|
[data-theme="warm"]{
|
|
43
54
|
--bg:#f7ebd9; --bg2:#efe0c8; --panel:rgba(255,250,243,.97); --panel-solid:#fffaf3;
|
|
@@ -51,7 +62,18 @@
|
|
|
51
62
|
--green:#0d9488; --orange:#c2410c; --rose:#be123c;
|
|
52
63
|
}
|
|
53
64
|
/* 浅色主题下星点氛围自然退隐 */
|
|
54
|
-
[data-theme="biz"] .stars, [data-theme="
|
|
65
|
+
[data-theme="biz"] .stars, [data-theme="light"] .stars, [data-theme="warm"] .stars{ opacity:.28; }
|
|
66
|
+
/* mono 黑亮下氛围换装:条纹留存、颜色去彩——星点改中性灰白,网格/扫描线/光带随 --scan-dim 变中性灰(不泛蓝) */
|
|
67
|
+
[data-theme="mono"] .stars{ background-image:
|
|
68
|
+
radial-gradient(1px 1px at 12% 18%, rgba(223,225,229,.32), transparent),
|
|
69
|
+
radial-gradient(1px 1px at 28% 64%, rgba(223,225,229,.28), transparent),
|
|
70
|
+
radial-gradient(1.5px 1.5px at 41% 32%, rgba(223,225,229,.26), transparent),
|
|
71
|
+
radial-gradient(1px 1px at 56% 78%, rgba(223,225,229,.24), transparent),
|
|
72
|
+
radial-gradient(1px 1px at 67% 12%, rgba(223,225,229,.26), transparent),
|
|
73
|
+
radial-gradient(1.5px 1.5px at 79% 52%, rgba(223,225,229,.28), transparent),
|
|
74
|
+
radial-gradient(1px 1px at 88% 86%, rgba(223,225,229,.3), transparent),
|
|
75
|
+
radial-gradient(1px 1px at 93% 24%, rgba(223,225,229,.3), transparent); }
|
|
76
|
+
[data-theme="mono"] body::before{ display:none; } /* 噪点层同退:mono 要纯正 #1e1f22,噪点颗粒留有色主题 */
|
|
55
77
|
|
|
56
78
|
*{margin:0;padding:0;box-sizing:border-box;}
|
|
57
79
|
html,body{background:var(--bg);}
|
|
@@ -352,7 +374,7 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
|
|
|
352
374
|
text-align:center; font-size:10px; color:var(--muted); letter-spacing:1.5px;
|
|
353
375
|
padding:6px 0 2px; position:relative; z-index:1;
|
|
354
376
|
}
|
|
355
|
-
/*
|
|
377
|
+
/* 主题换肤坞:右下角五色点随点随换,记忆上次选择;打印与截图模式隐藏 */
|
|
356
378
|
.theme-dock{
|
|
357
379
|
position:fixed; right:18px; bottom:18px; z-index:1001;
|
|
358
380
|
display:flex; gap:8px; padding:8px 10px; border-radius:999px;
|
|
@@ -368,7 +390,8 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
|
|
|
368
390
|
.theme-dock .th-dot.on{ border-color:var(--text); }
|
|
369
391
|
.theme-dock .th-dot[data-theme="tech"]{ background:#0ea5e9; }
|
|
370
392
|
.theme-dock .th-dot[data-theme="biz"]{ background:#2563eb; }
|
|
371
|
-
.theme-dock .th-dot[data-theme="mono"]{ background:#
|
|
393
|
+
.theme-dock .th-dot[data-theme="mono"]{ background:#1e1f22; }
|
|
394
|
+
.theme-dock .th-dot[data-theme="light"]{ background:#ffffff; }
|
|
372
395
|
.theme-dock .th-dot[data-theme="warm"]{ background:#d97706; }
|
|
373
396
|
@media print{ .theme-dock{ display:none; } }
|
|
374
397
|
</style>
|
|
@@ -529,7 +552,8 @@ li:hover .idx{ transform:scale(1.18) rotate(-4deg); font-size:14px; }
|
|
|
529
552
|
<div class="theme-dock" id="themeDock">
|
|
530
553
|
<button class="th-dot" type="button" data-theme="tech" title="深蓝科技"></button>
|
|
531
554
|
<button class="th-dot" type="button" data-theme="biz" title="浅色商务"></button>
|
|
532
|
-
<button class="th-dot" type="button" data-theme="mono" title="
|
|
555
|
+
<button class="th-dot" type="button" data-theme="mono" title="IDEA 黑亮"></button>
|
|
556
|
+
<button class="th-dot" type="button" data-theme="light" title="IDEA 白亮"></button>
|
|
533
557
|
<button class="th-dot" type="button" data-theme="warm" title="温暖渐变"></button>
|
|
534
558
|
</div>
|
|
535
559
|
</div>
|
|
@@ -610,7 +634,7 @@ var TXT = "今日日报 - 20261106\n\n生成时间:2026-11-06 17:30:39\n\nTL;D
|
|
|
610
634
|
p.style.animationDuration = c[6] + 's';
|
|
611
635
|
p.style.setProperty('--dx', c[7] + 'px');
|
|
612
636
|
p.style.setProperty('--dy', c[8] + 'px');
|
|
613
|
-
if (c[1] >= 5.5) p.className = 'cp cp-deep'; // 深色带配色由 .cp-deep
|
|
637
|
+
if (c[1] >= 5.5) p.className = 'cp cp-deep'; // 深色带配色由 .cp-deep 类承接(五主题令牌驱动,勿内联写死)
|
|
614
638
|
comet.appendChild(p);
|
|
615
639
|
}
|
|
616
640
|
});
|
|
@@ -684,9 +708,9 @@ function sheen(track, src){
|
|
|
684
708
|
}
|
|
685
709
|
})();
|
|
686
710
|
|
|
687
|
-
/*
|
|
711
|
+
/* 主题换肤:五套配色随点随换;记忆上次选择(localStorage,失败静默);?shot 截图模式隐藏坞 */
|
|
688
712
|
(function(){
|
|
689
|
-
var THEMES = ['tech','biz','mono','warm'];
|
|
713
|
+
var THEMES = ['tech','biz','mono','light','warm'];
|
|
690
714
|
var dock = document.getElementById('themeDock');
|
|
691
715
|
if (!dock) return;
|
|
692
716
|
if (location.search.indexOf('shot=') !== -1){ dock.style.display = 'none'; }
|
|
@@ -16,7 +16,7 @@ DIR: auto # 落盘根目录:auto = 按当前系统自动
|
|
|
16
16
|
DIR_MAC: /Users/luzhaosheng/MyWork/智慧食堂/reports # macOS 落盘根目录(自动按目标日期建子目录;目录不存在时回退用户主目录下 reports)
|
|
17
17
|
DIR_WIN: d:\Workspace_QCoder\reports # Windows 落盘根目录(自动按目标日期建子目录;目录/盘符不存在时回退用户主目录下 reports)
|
|
18
18
|
OPEN_HTML: true # 落盘后是否自动用浏览器打开 html(FORMATS 不含 html 时忽略)
|
|
19
|
-
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono
|
|
19
|
+
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值"> 定默认,页面右下角换肤坞五色点随点随换(浏览器本地记忆,?shot 截图模式自动隐藏,打印隐藏)
|
|
20
20
|
TEMPLATE: default # 报告模板:default = 内置三段式(任务进度/明日计划/风险阻塞点);custom = 使用下方「📝 自定义模板」节;口头临时指定模板仅当次生效
|
|
21
21
|
ROLE: 全栈开发工程师(企业内技术开发) # 用户默认职业角色与主要工作内容(两者并存:职业名 + 括号内工作内容,生成内容/术语/量化指标/节奏条/风险话术全部按此画像走);用户随口描述职业时(如「我搞装修的,天天跑工地」)→ AI 提炼为规范表述(装修项目经理(负责工地现场管理、施工进度与质量巡检))更新此处;说「以 XX 的身份写」→ 当次临时换角色不改配置;说「以后默认用 XX 角色 / 我的职业是 XX / 我的主要工作是 XX」→ 永久更新此处
|
|
22
22
|
CONFIRM: never # 落盘前确认:never = 直接生成落盘不确认(默认);text = 纯文字整理模式先出效果确认后再落盘;always = 任何方式生成都先确认;临时说「先看看效果」当次先确认、说「不用确认」当次跳过
|
package/deck-stage/SKILL.md
CHANGED
|
@@ -4,10 +4,10 @@ description: >
|
|
|
4
4
|
登台 deck-stage:把日报/周报/年报(md/HTML/口述大纲)或散装素材(目录/文件/随手文字)转成专业 .pptx 演示文稿。
|
|
5
5
|
三问交互——先问素材(指定目录/指定文件/贴文字/口述主题)、再报页结构大纲表确认、后选成片方式(一键成片/逐页确认)。
|
|
6
6
|
混合模式——常规页原生生成(文本/数据卡/时间线/柱图/饼图/折线,全部可编辑),封面与结尾页用 HTML 截图贴图(视觉保真)。
|
|
7
|
-
视觉与报告深蓝面板体系同源:tech 深蓝科技(默认)/biz 浅色商务/mono
|
|
7
|
+
视觉与报告深蓝面板体系同源:tech 深蓝科技(默认)/biz 浅色商务/mono IDEA 黑亮/light IDEA 白亮/warm 温暖渐变五主题,
|
|
8
8
|
五段节色(蓝/绿/紫/玫红/橙)。每页可带演讲备注(notes),bullets 页可配图。
|
|
9
9
|
数据经结构化 data.json 交给 resources/pptx-builder.js(PptxGenJS,本目录 node_modules 离线可用)产出 16:9 pptx。
|
|
10
|
-
当用户请求把报告/日报/周报/年报转成 PPT、做成 PPT、导出 pptx、生成演示文稿、登台,或询问本 skill
|
|
10
|
+
当用户请求把报告/日报/周报/年报转成 PPT、做成 PPT、导出 pptx、生成演示文稿、登台,或询问本 skill 用法时使用。用户要 HTML 网页幻灯(网页放映/分享)时不用本 skill(交给 magic-deck);「做 PPT/演示文稿」未言明产出形态时先 AskUserQuestion 二选一(.pptx 可编辑文件 → 本 skill;HTML 网页幻灯 → magic-deck),不擅自默认。
|
|
11
11
|
allowed-tools: ["Bash", "Read", "Write", "Edit"]
|
|
12
12
|
disable-model-invocation: false
|
|
13
13
|
---
|
|
@@ -16,6 +16,11 @@ disable-model-invocation: false
|
|
|
16
16
|
|
|
17
17
|
把报告三件套(日报/周报/年报)的产出——或任何散装素材——转成专业 .pptx 演示文稿。常规页原生可编辑(文本/数据卡/时间线/柱图/饼图/折线),封面/结尾页 HTML 截图保真,每页可带演讲备注,视觉与报告同源。写报告 → 放映(magic-deck)→ 登台(本 skill),最后一公里闭环。
|
|
18
18
|
|
|
19
|
+
## 意图边界(与 magic-deck 分流)
|
|
20
|
+
|
|
21
|
+
- 本 skill 产 **.pptx 可编辑文件**(PowerPoint/WPS 打开可改);用户要 HTML 网页幻灯(网页放映/分享)→ 交给 magic-deck
|
|
22
|
+
- 「做 PPT / 做演示文稿」未言明产出形态 → AskUserQuestion 二选一:A .pptx 可编辑文件(继续本 skill)/ B HTML 网页幻灯(交给 magic-deck),不擅自默认
|
|
23
|
+
|
|
19
24
|
## 三问交互模型(生成前必走,一问不跳)
|
|
20
25
|
|
|
21
26
|
**第一问 · 素材**:你手上有什么?四通道可单选可组合——
|
|
@@ -54,7 +59,22 @@ disable-model-invocation: false
|
|
|
54
59
|
|
|
55
60
|
## ⚙️ 默认配置(在 user-config.md,执行前必须先 Read)
|
|
56
61
|
|
|
57
|
-
DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/warm)、OPEN_PPTX(生成后是否打开)、CONFIRM(落盘前确认)、MODE(成片方式 page-by-page/once)、AUDIENCE(受众画像,备注话术参考)、NOTES(是否生成演讲备注)——均以 `user-config.md` 为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
|
|
62
|
+
DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/light/warm)、OPEN_PPTX(生成后是否打开)、CONFIRM(落盘前确认)、MODE(成片方式 page-by-page/once)、AUDIENCE(受众画像,备注话术参考)、NOTES(是否生成演讲备注)——均以 `user-config.md` 为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。
|
|
63
|
+
|
|
64
|
+
## 🔧 配置版本机制(升级保护)
|
|
65
|
+
|
|
66
|
+
`user-config.md` 头部有 `CONFIG_VERSION` 字段,声明配置结构版本。本 skill 当前要求版本为 2。每次执行前先读 user-config.md:
|
|
67
|
+
|
|
68
|
+
1. 若 CONFIG_VERSION 缺失或小于当前要求版本:先将旧 `user-config.md` 备份为 `user-config.md.bak-<时间戳>`
|
|
69
|
+
2. 按版本迁移规则迁移字段(新增字段补默认值、改名字段按映射改名、删除字段保留在备份并在对话中提示用户)
|
|
70
|
+
3. 更新 `CONFIG_VERSION` 为当前版本
|
|
71
|
+
4. 对话告知用户「配置已升级到 vN:新增 X、改名 Y」
|
|
72
|
+
|
|
73
|
+
禁止在未声明版本变更的情况下静默修改配置语义;配置结构如有变化必须同步更新本节的当前版本号。
|
|
74
|
+
|
|
75
|
+
**无法迁移项处理**(值域失效 / 语义漂移):三绝不——绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话。
|
|
76
|
+
|
|
77
|
+
升级技能时 user-config.md 不会被覆盖(官方更新另存 `user-config.md.upstream` 对照文件)。
|
|
58
78
|
|
|
59
79
|
## 规则速览
|
|
60
80
|
|
|
@@ -62,7 +82,7 @@ DIR(落盘根目录,DIR_MAC/DIR_WIN 双键)、THEME(tech/biz/mono/warm
|
|
|
62
82
|
- 页类型分页:timeline 每页 8 条、bullets 每页 6 条自动续页(builder 自动处理,AI 不用拆)
|
|
63
83
|
- 节色五档:blue 概览 / green 成果 / purple 成长 / rose 反思 / orange 展望,与年报 HTML 同款
|
|
64
84
|
- 数值纪律:业务结果指标优先、git 统计兜底;数字必带对比基准(同比/环比)
|
|
65
|
-
-
|
|
85
|
+
- 主题五套与报告 HTML 令牌同源;theme 写在 data.json 里,未写默认 tech
|
|
66
86
|
- 演讲备注:NOTES=true 时每页写 notes(单页/第一页)或 notesList(按分页逐页);话术按 AUDIENCE 画像,写开场白/数据解读/过渡句,不写正文照读
|
|
67
87
|
- 图表扩容:chart 自绘柱 / chart-pie 原生饼图(percent/donut 选项)/ chart-line 原生折线(series 多线/smooth 选项)——原生图表在 PowerPoint/WPS 里可直接编辑数据
|
|
68
88
|
- bullets 配图:page.image 给绝对路径即右侧配图(contain 等比内嵌),文本区自动缩窄,仅第一页带图
|
|
@@ -7,14 +7,15 @@
|
|
|
7
7
|
<style>
|
|
8
8
|
/* ⛔ 封面/亮点页截图模板(静态版式,无动画,保截图零风险)
|
|
9
9
|
视觉与报告深蓝面板体系同源;AI 执行时替换 <script> 内 COVER 数据后经 Chrome headless 截图。
|
|
10
|
-
|
|
10
|
+
五主题经 html[data-theme] 切换;截图窗口 1280x720(16:9)。 */
|
|
11
11
|
:root{
|
|
12
12
|
--bg:#0a1929; --panel:#0b1e37; --panel-line:#0f3350; --text:#e6f1ff; --muted:#8892b0;
|
|
13
13
|
--accent:#38bdf8; --accent2:#0ea5e9; --border:#1e3a5f; --glow:rgba(14,165,233,.25);
|
|
14
14
|
--title-mid:#ffffff;
|
|
15
15
|
}
|
|
16
16
|
html[data-theme="biz"]{ --bg:#ffffff; --panel:#f8fafc; --panel-line:#e2e8f0; --text:#0f172a; --muted:#64748b; --accent:#2563eb; --accent2:#1d4ed8; --border:#e2e8f0; --glow:rgba(37,99,235,.14); --title-mid:#1e40af; }
|
|
17
|
-
html[data-theme="mono"]{ --bg:#
|
|
17
|
+
html[data-theme="mono"]{ --bg:#1e1f22; --panel:#2b2d30; --panel-line:#3c3f41; --text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff; --border:#3c3f41; --glow:rgba(53,116,240,.22); --title-mid:#ffffff; }
|
|
18
|
+
html[data-theme="light"]{ --bg:#ffffff; --panel:#f2f2f2; --panel-line:#d1d1d1; --text:#1e1f22; --muted:#808080; --accent:#2675bf; --accent2:#1e5f9f; --border:#d1d1d1; --glow:rgba(38,117,191,.12); --title-mid:#1e5f9f; }
|
|
18
19
|
html[data-theme="warm"]{ --bg:#1c0f0f; --panel:#2a1717; --panel-line:#4a2f1f; --text:#fff1e6; --muted:#c4a98f; --accent:#fdba74; --accent2:#f97316; --border:#4a2f1f; --glow:rgba(249,115,22,.22); --title-mid:#ffffff; }
|
|
19
20
|
*{ margin:0; padding:0; box-sizing:border-box; }
|
|
20
21
|
body{
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"subtitle": "资深研发工程师 · 全栈方向", // 封面副标题(可选)
|
|
12
12
|
"footer": "GENERATED BY SPECCORE TEAM · 2026" // 每页页脚(可选,缺省 GENERATED BY SPECCORE TEAM)
|
|
13
13
|
},
|
|
14
|
-
"theme": "tech", // tech(默认)/ biz / mono / warm
|
|
14
|
+
"theme": "tech", // tech(默认)/ biz / mono / light / warm,与报告五主题同源
|
|
15
15
|
"pages": [
|
|
16
16
|
{ "type": "cover-image", "image": "/abs/path/cover.png",
|
|
17
17
|
"notes": "开场白:各位好,今天汇报本年度研发工作,先看总体数字……" },
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* pptx-builder.js — 登台 deck-stage 生成器(真相源)
|
|
4
4
|
* 用法: node pptx-builder.js --data <data.json> --out <输出.pptx>
|
|
5
5
|
* 读 data.json(schema 见 data-schema.md),按页类型渲染 16:9 pptx。
|
|
6
|
-
|
|
6
|
+
* 主题五套与报告 HTML 深蓝面板体系同源:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变。
|
|
7
7
|
* 依赖: pptxgenjs(本 skill 目录 node_modules,离线可用)。
|
|
8
8
|
*/
|
|
9
9
|
'use strict';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 登台 deck-stage 使用指南
|
|
2
2
|
|
|
3
|
-
登台(deck-stage)把日报/周报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML
|
|
3
|
+
登台(deck-stage)把日报/周报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML 截图贴图、视觉保真。页面与数据分离,五主题(深蓝科技/浅色商务/IDEA 黑亮/IDEA 白亮/温暖渐变)与报告同源,改主题只改一处。
|
|
4
4
|
|
|
5
5
|
## 怎么用
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
3. **逐页确认**:选逐页确认时,每页先报排版方案(版式 + 内容 + 图表 + 演讲备注),你 OK 一页出一页;说「第 N 页改成 XX」重出单页、「换主题 biz」全局换、「加一页/删一页」改骨架
|
|
10
10
|
4. **自动排版**:AI 按报告结构自动映射版式——概览成数据卡页、成果成时间线页、条目成徽章页、提交节奏成柱图页,页数多了自动续页
|
|
11
11
|
5. **封面与结尾**:默认用深蓝面板封面模板(发光标题 + 数据卡),结尾「谢谢观看」;想用自己的图片说一声即可
|
|
12
|
-
6.
|
|
12
|
+
6. **改风格**:说「用浅色商务主题」「用黑色主题(IDEA 黑亮)」——五套主题秒换;想永久换默认,改 `user-config.md` 的 THEME
|
|
13
13
|
7. **改内容**:生成后可直接在 PowerPoint/WPS 里编辑常规页(文本/饼图/折线都是原生元素);想改截图页(封面/结尾)让 AI 重新生成即可
|
|
14
14
|
8. **落盘位置**:默认落到报告目录(`user-config.md` 的 DIR 可改);说「放到桌面」即按临时要求落盘
|
|
15
15
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
DIR_MAC: /Users/luzhaosheng/MyWork/智慧食堂/reports
|
|
3
3
|
DIR_WIN: %USERPROFILE%\reports
|
|
4
4
|
|
|
5
|
-
# pptx
|
|
6
|
-
# 可选:tech 深蓝科技(默认)/ biz 浅色商务 / mono
|
|
5
|
+
# pptx 主题(与报告五主题同源)
|
|
6
|
+
# 可选:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变
|
|
7
7
|
THEME: tech
|
|
8
8
|
|
|
9
9
|
# 成片方式(三问模型第三问的默认答案)
|
package/magic-deck/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: magic-deck
|
|
3
3
|
description: 把内容做成 HTML 形态、PPT 体验的魔法幻灯(单文件离线打开、零外部依赖)。内置播放引擎(自动播放/循环/间隔可设/从头或当前播放)、键盘热键(翻页/直达/截图/复制/全屏)、十六套内置模板(经典商务/极简留白/杂志画册/黑金发布/时间线叙事/流程步骤/海报宣传/复古报纸/金融报表/蓝图工程/教学板书/高管简报/扁平磁贴/模块网格/暗夜深色/自然清新,放映时经「🎨 模板」面板随时切换
|
|
4
|
-
+ 模板面板「💼 领域」Tab 二十一套成套模板(六分类:教育学术——毕业答辩/开题报告/教学课件;职场商务——年终汇报/竞聘述职/商业计划书/求职简历;企业运营——产品发布/科技发布会/营销方案/企业培训/年会盛典;专业领域——金融分析/医疗科普/法律合规;党政政务——政务汇报/党建汇报;生活场景——餐饮品牌/旅游攻略/节日庆典/公益慈善,一键生成整套页面——封面+目录+内容页+图表页,两段确认可撤销)+ 图表动画五式(柱状生长/折线描画/饼图扇入/仪表扫弧/数字滚动,图表挂 data-anim-chart 翻页自动播放、翻回重放,保留图表自身动画)——可应用到全部页/仅本页/勾选页,支持「预览本页」先看效果再应用,标题自动映射到模板固定位置)、编辑能力(撤销/重做 Ctrl+Z、右侧页面管理边栏:缩略图跳页/新页/复页/排序/删页)+
|
|
4
|
+
+ 模板面板「💼 领域」Tab 二十一套成套模板(六分类:教育学术——毕业答辩/开题报告/教学课件;职场商务——年终汇报/竞聘述职/商业计划书/求职简历;企业运营——产品发布/科技发布会/营销方案/企业培训/年会盛典;专业领域——金融分析/医疗科普/法律合规;党政政务——政务汇报/党建汇报;生活场景——餐饮品牌/旅游攻略/节日庆典/公益慈善,一键生成整套页面——封面+目录+内容页+图表页,两段确认可撤销)+ 图表动画五式(柱状生长/折线描画/饼图扇入/仪表扫弧/数字滚动,图表挂 data-anim-chart 翻页自动播放、翻回重放,保留图表自身动画)——可应用到全部页/仅本页/勾选页,支持「预览本页」先看效果再应用,标题自动映射到模板固定位置)、编辑能力(撤销/重做 Ctrl+Z、右侧页面管理边栏:缩略图跳页/新页/复页/排序/删页)+ 十七套主题面板即点即换(全部页/仅本页自由换肤)、动画库(右侧边栏「⚙ 工具」Tab:翻页风格八套 / 元素入场十二式 / 离场十二式 / 强调八式 / 标题文字动画四式,应用范围全部页面或仅本页,即点即换、选择记忆)、页内连接与外部链接、逐页 PNG 截图(本页/选页批量,选页面板默认全选=一键导出全部页)与本页/选页批量文字复制(均不含任何操作元素)、全屏放映纯净模式(无关元素自动退场)。当用户请求把内容做成幻灯片/PPT/演示文稿、生成 HTML 幻灯、做分享页/汇报页,提到 magic-deck 或 /magic-deck,或询问其用法(怎么用/使用说明/能干什么)时使用。用户要可编辑 .pptx 文件(导出 pptx、转成 PPT 文件)时不用本 skill(交给 deck-stage);「做 PPT/演示文稿」未言明产出形态时先 AskUserQuestion 二选一(HTML 网页幻灯 → 本 skill;.pptx 可编辑文件 → deck-stage),不擅自默认。
|
|
5
5
|
allowed-tools: Bash, Read, Write
|
|
6
6
|
disable-model-invocation: false
|
|
7
7
|
---
|
|
@@ -10,11 +10,16 @@ disable-model-invocation: false
|
|
|
10
10
|
|
|
11
11
|
把用户内容排版为单文件 HTML 幻灯片(16:9 舞台 + 播放引擎 + 十六套风格 + 全屏放映),落盘并自动打开。
|
|
12
12
|
|
|
13
|
+
## 意图边界(与 deck-stage 分流)
|
|
14
|
+
|
|
15
|
+
- 本 skill 产 HTML 网页幻灯(浏览器放映/分享);用户要 **.pptx 可编辑文件**(「导出 pptx」「转成 PPT 文件」)→ 交给 deck-stage
|
|
16
|
+
- 「做 PPT / 做演示文稿」未言明产出形态 → AskUserQuestion 二选一:A HTML 网页幻灯(继续本 skill)/ B .pptx 可编辑文件(交给 deck-stage),不擅自默认
|
|
17
|
+
|
|
13
18
|
## 生成流程
|
|
14
19
|
|
|
15
20
|
0. **读用户配置**(TEMPLATE/THEME/TRANSITION/ANIM/WIDTH/HEIGHT/SEC/FILENAME/DIR 等)→ 先 Read 同目录 `user-config.md`
|
|
16
21
|
1. **收集内容**:解析用户提供的内容(文字/文件/结构化要点),确定页数与每页版式 → 先 Read `resources/content-guide.md` 按内容气质选版式骨架 / 按领域选成套模板 / 按用途定页数节奏 / 按数据挑图表形式
|
|
17
|
-
2. **生成 HTML**(每页写语义结构——.s-head 标题 / .card 卡片 / .points 要点 / .bignum 数据,按 TEMPLATE 在对应页 slide 挂 data-template
|
|
22
|
+
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
23
|
2.5 **交付前自检**(落盘前必做,硬门禁不可跳过):写工作区 `outputs/<文件名>.html` 后——
|
|
19
24
|
- Bash 起 `python3 -m http.server 8941`(后台,端口占用换 8942/8943…)
|
|
20
25
|
- Playwright headless 自检(缺则 `pip3 install --user playwright`;用系统 Chrome,无需 playwright install 下载浏览器):`p.chromium.launch(channel="chrome", headless=True)` → goto 页面 → 挂 pageerror 监听(零容忍)→ 按页数循环 `go(i)` 把每一页翻完
|
|
@@ -30,7 +35,7 @@ disable-model-invocation: false
|
|
|
30
35
|
## 规则速览
|
|
31
36
|
|
|
32
37
|
- 单文件 HTML 离线双击可打开:禁用 CDN/@import/外链 CSS/JS/图片/网络字体,字体用系统栈
|
|
33
|
-
-
|
|
38
|
+
- 模板十六套(版式骨架)与主题十七套(配色)正交组合,均运行时即点即换:模板经「🎨 模板」面板应用(全部页/仅本页/勾选页),先「👁 预览本页」看效果(不落 data-template,取消自动还原);生成时按 TEMPLATE/口头点名在 slide 挂 data-template 声明默认版式;标题自动映射——timeline 取卡片标题做节点、keynote 取页标题做大观点、magazine 左文右图分栏、steps 卡片转箭头步骤条、vintage 卡片收双栏报纸、poster 要点转斜切色带、finance 百分比转仪表环,切回经典商务恢复原排版内容不丢;`.slide` 自带 `background:var(--bg)` 使单页换肤整页变色
|
|
34
39
|
- 编辑操作全套可回退:Ctrl+Z 撤销 / Ctrl+Shift+Z 重做(工具栏 ↶↷);「▤ 页导航 / G 键」右侧页面管理边栏:点击缩略图跳页、悬停操作条复页/上移/下移/删页;「+ 新页」在边栏头部,16 版式任选插在当前页后;全部编辑只作用于内存,刷新后回到原始 deck
|
|
35
40
|
- 工具栏控件统一 flex 垂直居中:`.toolbar/.group` flex + align-items:center + gap;`.tbtn` inline-flex + gap:6px + line-height:1;checkbox 14×14 与文字 6px 间距,文字不贴控件、上下不偏斜
|
|
36
41
|
- 页面 1280×720 舞台 + 按窗口等比缩放(--sc),窗口任意大小不变形
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# magic-deck HTML 幻灯片完整规范
|
|
2
2
|
|
|
3
|
-
> ⛔ **Reference 铁律(最高优先)**:本目录 `reference.html` 是定稿骨架源码(默认 classic 模板 + 十六套版式模板 +
|
|
3
|
+
> ⛔ **Reference 铁律(最高优先)**:本目录 `reference.html` 是定稿骨架源码(默认 classic 模板 + 十六套版式模板 + 十七主题 + 全部组件 + 播放引擎 + 单页主题 + 模板预览/撤销重做/右侧边栏双 Tab(页面管理 + 动画工具))。生成 HTML 时必须先 Read `resources/reference.html` 与本文件两份,以 reference.html 为骨架逐处替换内容;两者冲突时**以 reference.html 为准**。修改本 skill 的 HTML 效果时,必须同步更新 `resources/reference.html` 与本文档的对应描述,禁止只改一处。
|
|
4
4
|
|
|
5
5
|
生成单文件 HTML 幻灯片(HTML 形态、PPT 体验),所有实现细节以本文为准。
|
|
6
6
|
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<script>播放引擎(见 §6)</script>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
## 2.
|
|
56
|
+
## 2. 十七主题 CSS 变量(完整色值,12 令牌 × 17 主题,默认 tech)
|
|
57
57
|
|
|
58
58
|
```css
|
|
59
59
|
:root, [data-theme="tech"]{ /* 深蓝科技(默认) */
|
|
@@ -70,12 +70,19 @@
|
|
|
70
70
|
--title-grad:linear-gradient(90deg,#1e40af,#2563eb 55%,#0891b2);
|
|
71
71
|
--tag-bg:rgba(37,99,235,.08);
|
|
72
72
|
}
|
|
73
|
-
[data-theme="mono"]{ /*
|
|
74
|
-
--bg:#
|
|
75
|
-
--text:#
|
|
76
|
-
--border:rgba(
|
|
77
|
-
--title-grad:linear-gradient(90deg,#
|
|
78
|
-
--tag-bg:rgba(
|
|
73
|
+
[data-theme="mono"]{ /* IDEA 黑亮 */
|
|
74
|
+
--bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.92); --panel-solid:#2b2d30;
|
|
75
|
+
--text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
|
|
76
|
+
--border:rgba(53,116,240,.24); --glow:rgba(53,116,240,.3);
|
|
77
|
+
--title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
|
|
78
|
+
--tag-bg:rgba(53,116,240,.12);
|
|
79
|
+
}
|
|
80
|
+
[data-theme="light"]{ /* IDEA 白亮 */
|
|
81
|
+
--bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.96); --panel-solid:#ffffff;
|
|
82
|
+
--text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
|
|
83
|
+
--border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2);
|
|
84
|
+
--title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
|
|
85
|
+
--tag-bg:rgba(38,117,191,.08);
|
|
79
86
|
}
|
|
80
87
|
[data-theme="warm"]{ /* 温暖渐变 */
|
|
81
88
|
--bg:#fdf3e7; --bg2:#f7e7d3; --panel:rgba(255,250,243,.85); --panel-solid:#fffaf3;
|
|
@@ -27,13 +27,21 @@ button,select,input{ font-family:inherit; }
|
|
|
27
27
|
--tag-bg:rgba(37,99,235,.08);
|
|
28
28
|
--card-shadow:0 1px 2px rgba(15,23,42,.05),0 10px 28px rgba(15,23,42,.12);
|
|
29
29
|
}
|
|
30
|
-
[data-theme="mono"]{
|
|
31
|
-
--bg:#
|
|
32
|
-
--text:#
|
|
33
|
-
--border:rgba(
|
|
34
|
-
--title-grad:linear-gradient(90deg,#
|
|
35
|
-
--tag-bg:rgba(
|
|
36
|
-
--card-shadow:0 1px
|
|
30
|
+
[data-theme="mono"]{ /* IDEA 黑亮:JetBrains New UI Dark 官方(编辑区 #1e1f22 + 面板 #2b2d30 + 描边 #3c3f41) */
|
|
31
|
+
--bg:#1e1f22; --bg2:#2b2d30; --panel:rgba(43,45,48,.92); --panel-solid:#2b2d30;
|
|
32
|
+
--text:#dfe1e5; --muted:#9aa0a6; --accent:#3574f0; --accent2:#5e9aff;
|
|
33
|
+
--border:rgba(53,116,240,.24); --glow:rgba(53,116,240,.3);
|
|
34
|
+
--title-grad:linear-gradient(90deg,#dfe1e5,#5e9aff 50%,#3574f0);
|
|
35
|
+
--tag-bg:rgba(53,116,240,.12);
|
|
36
|
+
--card-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 12px 32px rgba(0,0,0,.5),0 0 24px rgba(53,116,240,.16);
|
|
37
|
+
}
|
|
38
|
+
[data-theme="light"]{ /* IDEA 白亮:IntelliJ Light 官方(白编辑区 + 浅灰面板 #f2f2f2 + IDEA 蓝 #2675bf) */
|
|
39
|
+
--bg:#ffffff; --bg2:#f2f2f2; --panel:rgba(255,255,255,.96); --panel-solid:#ffffff;
|
|
40
|
+
--text:#1e1f22; --muted:#6e7781; --accent:#2675bf; --accent2:#4a9be0;
|
|
41
|
+
--border:rgba(38,117,191,.18); --glow:rgba(38,117,191,.2);
|
|
42
|
+
--title-grad:linear-gradient(90deg,#1e5f9f,#2675bf 55%,#4a9be0);
|
|
43
|
+
--tag-bg:rgba(38,117,191,.08);
|
|
44
|
+
--card-shadow:0 1px 2px rgba(30,31,34,.06),0 10px 28px rgba(30,31,34,.12);
|
|
37
45
|
}
|
|
38
46
|
[data-theme="warm"]{
|
|
39
47
|
--bg:#f7ebd9; --bg2:#efe0c8; --panel:rgba(255,250,243,.97); --panel-solid:#fffaf3;
|
|
@@ -1274,9 +1282,9 @@ function startPlay(){
|
|
|
1274
1282
|
}
|
|
1275
1283
|
btnPlay.addEventListener('click', function(){ playing ? stopPlay() : startPlay(); });
|
|
1276
1284
|
|
|
1277
|
-
/* ── 主题切换(🎨 主题面板:
|
|
1285
|
+
/* ── 主题切换(🎨 主题面板:17 色点网格即点即换,范围全部 / 仅本页) ── */
|
|
1278
1286
|
var THEMES = [
|
|
1279
|
-
['tech','深蓝科技','#0ea5e9'], ['biz','浅色商务','#2563eb'], ['mono','
|
|
1287
|
+
['tech','深蓝科技','#0ea5e9'], ['biz','浅色商务','#2563eb'], ['mono','IDEA 黑亮','#1e1f22'], ['light','IDEA 白亮','#ffffff'], ['warm','温暖渐变','#d97706'],
|
|
1280
1288
|
['aurora','极光紫','#5e6ad2'], ['dracula','德古拉紫','#bd93f9'], ['nord','北欧冰蓝','#88c0d0'], ['midnight','东京夜色','#7aa2f7'],
|
|
1281
1289
|
['matrix','终端荧光绿','#00ff9c'], ['cyber','赛博霓虹','#ff2d78'], ['apple','苹果极简','#0071e3'], ['stripe','条纹紫蓝','#635bff'],
|
|
1282
1290
|
['notion','纸感暖白','#2383e2'], ['gruvbox','复古暖橙','#fe8019'], ['gold','黑金奢华','#d4af37'], ['ocean','深洋蓝','#38bdf8']
|
|
@@ -2499,7 +2507,7 @@ slides.forEach(function(s){
|
|
|
2499
2507
|
if (tp && tp !== 'classic') applyTpl(s, tp);
|
|
2500
2508
|
});
|
|
2501
2509
|
var themeParam = new URLSearchParams(location.search).get('theme');
|
|
2502
|
-
if (['tech','biz','mono','warm'].indexOf(themeParam) > -1) setGlobalTheme(themeParam);
|
|
2510
|
+
if (['tech','biz','mono','light','warm'].indexOf(themeParam) > -1) setGlobalTheme(themeParam);
|
|
2503
2511
|
var tplParam = new URLSearchParams(location.search).get('tpl');
|
|
2504
2512
|
if (tplParam && TPLS.some(function(t){ return t.id === tplParam; })) applyScope(tplParam, 'all', []);
|
|
2505
2513
|
var sm = location.hash.match(/^#\/(\d+)$/);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## 能干什么(三句话版)
|
|
6
6
|
|
|
7
7
|
1. **内容变幻灯**:把一段文字、一份大纲或一个文件,做成单文件 HTML 幻灯片——16:9 舞台、双击即开、离线可用
|
|
8
|
-
2. **现场改版**:版式模板十六套(经典商务 / 极简留白 / 杂志画册 /
|
|
8
|
+
2. **现场改版**:版式模板十六套(经典商务 / 极简留白 / 杂志画册 / 黑金发布……)与主题配色十七套即点即换,可套全部页或仅当前页;「💼 领域」Tab 还有二十一套成套模板(毕业答辩 / 年终汇报 / 商业计划书 / 政务汇报……),一键生成整套页面
|
|
9
9
|
3. **放映与出料**:自动播放 / 全屏纯净放映 / 翻页动画与元素动画库;逐页 PNG 截图与本页 / 选页文字复制(均不含工具栏等操作元素)
|
|
10
10
|
|
|
11
11
|
## 放映热键
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
## 工具栏与边栏
|
|
28
28
|
|
|
29
29
|
- **🎨 模板**:十六套版式骨架,应用范围可选全部页面 / 仅本页 / 勾选页面;先「预览本页」看效果再应用,切回「经典商务」恢复原排版、内容不丢
|
|
30
|
-
- **🎨
|
|
30
|
+
- **🎨 主题**:十七套配色,色点即点即换,范围可选全部页面或仅本页
|
|
31
31
|
- **↶ ↷ 撤销 / 重做**:模板应用、增删页、换主题等所有编辑操作都可回退
|
|
32
32
|
- **▤ 页导航**:右侧缩略图边栏——点缩略图跳页、+新页(16 版式任选)、复页、排序、删页
|
|
33
33
|
- **⚙ 工具**:右侧边栏第二页签——翻页动画八套、元素入场 / 离场 / 强调动画、标题文字动画、⧉ 复制本页 / ▦ 选页复制 / 📷 截图本页 / ▦ 选页截图
|
|
@@ -15,7 +15,7 @@ CONFIG_VERSION: 2 # 配置结构版本:skill 升级时若配置
|
|
|
15
15
|
DIR: ~/Desktop # 幻灯片 HTML 落盘目录
|
|
16
16
|
FILENAME: auto # 文件名(不含扩展名):auto = 按本次内容主题+用途自动总结中文名(如「智能探针系统-产品介绍」,便于日后按名找回继续改);也可口头指定文件名(永远优先);或写死固定名如 slides(重名自动加日期后缀,不覆盖)
|
|
17
17
|
OPEN_HTML: true # 生成后自动打开浏览器放映
|
|
18
|
-
THEME: tech #
|
|
18
|
+
THEME: tech # 默认主题(十七套:tech 深蓝科技 / biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝;放映时「🎨 主题」面板色点即点即换:范围可选全部页面或仅本页)
|
|
19
19
|
TEMPLATE: classic # 默认模板
|
|
20
20
|
TRANSITION: slide-lr # 默认翻页动画风格(八套:slide-lr 左右滑移 / fade 淡入淡出 / slide-ud 上下滑移 / zoom 缩放推进 / flip 3D 翻页 / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊;放映时边栏「⚙ 工具」Tab 即点即换,选择记忆)
|
|
21
21
|
ANIM: true # 元素动画默认开(入场十二式挂 data-anim + 离场十二式挂 data-anim-leave + 强调八式挂 data-anim-emphasis + 标题文字动画,均带 data-anim-delay 八档错落;放映时边栏「⚙ 工具」Tab「开启」勾选框一键全关;false = 生成时 deck 挂 data-anim="off")
|
|
@@ -35,6 +35,6 @@ SIGNATURE: GENERATED BY SKILLFORGE # 封面/结束页署名
|
|
|
35
35
|
## 📝 模板、主题与动画(像真 PPT 一样可选)
|
|
36
36
|
|
|
37
37
|
- **内置模板十六套**(版式骨架):classic 经典商务(默认)/ minimal 极简留白 / magazine 杂志画册 / keynote 黑金发布 / timeline 时间线叙事 / steps 流程步骤 / poster 海报宣传 / vintage 复古报纸 / finance 金融报表 / blueprint 蓝图工程 / education 教学板书 / executive 高管简报 / metro 扁平磁贴 / bento 模块网格 / dark 暗夜深色 / nature 自然清新。改上方 `TEMPLATE` 即换生成默认,或生成时口头点名(如「用杂志风模板」)当次生效;放映时随时经工具栏「🎨 模板」面板切换(全部页面/仅本页/选择页面),可先「预览本页」看效果再应用,标题自动映射到模板固定位置,切回经典商务即恢复原排版
|
|
38
|
-
-
|
|
38
|
+
- **内置主题十七套**(配色,放映时随时换):tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变 / aurora 极光紫 / dracula 德古拉紫 / nord 北欧冰蓝 / midnight 东京夜色 / matrix 终端荧光绿 / cyber 赛博霓虹 / apple 苹果极简 / stripe 条纹紫蓝 / notion 纸感暖白 / gruvbox 复古暖橙 / gold 黑金奢华 / ocean 深洋蓝。「🎨 主题」面板点色点=整份切换;范围选「仅本页」后再点色点=只给当前页换肤,选回「全部页面」即恢复整份模式
|
|
39
39
|
- **动画库**(动效,与模板/主题正交,放映时收纳在右侧边栏「⚙ 工具」Tab,应用范围可选全部页面/仅本页):翻页风格八套——slide-lr 左右滑移(默认)/ fade 淡入淡出 / slide-ud 上下滑移 / zoom 缩放推进 / flip 3D 翻页 / cube 立方翻转 / wipe 平移擦除 / dissolve 溶解模糊,改上方 `TRANSITION` 即换生成默认,放映时即点即换;元素入场动画十二式(fade-up 上浮 / fade-in 淡入 / fade-down 下沉 / zoom-in 缩放 / slide-left 左滑 / slide-right 右滑 / slide-up 上滑 / slide-down 下滑 / pop 弹出 / bounce-in 弹跳 / flip-in 翻转 / blur 模糊浮现,另有 none 无动画),生成时元素挂 `data-anim` 属性声明、同页多元素挂 `data-anim-delay` 错落,翻到该页自动播放;离场动画十二式(元素挂 `data-anim-leave`,翻页前元素先离场 0.45s 再切页);强调动画八式(pulse 脉冲 / swing 摆动 / shake 抖动 / breathe 呼吸 / flash 闪烁 / tada 放大 / spin 旋转 / glow 发光,元素挂 `data-anim-emphasis` 循环播放);标题文字动画四式(none 无动画默认 / char 逐字 / word 逐词 / line 逐行);`ANIM: false` 时入场动画整份关闭(或放映时「开启」勾选框取消),所有选择浏览器记忆
|
|
40
40
|
- **自定义模板片段**(可选):在 `resources/templates/` 下放 `my-*.html`(仅 body 内容片段,不含 html/head/script),生成时用户点名模板名即可套用;未点名用内置十六套模板
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-forge-hub",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
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"
|