skill-forge-hub 1.0.4 → 1.0.6
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 +29 -0
- package/README.md +82 -150
- package/annual-report/SKILL.md +23 -3
- package/annual-report/resources/data-collection.md +20 -4
- package/annual-report/resources/disk-and-html.md +3 -3
- package/annual-report/resources/reference.html +31 -10
- package/annual-report/resources/usage-guide.md +8 -0
- package/annual-report/user-config.md +5 -5
- package/article-to-html/SKILL.md +26 -7
- package/article-to-html/design-system.md +9 -3
- package/article-to-html/resources/reference.html +631 -0
- package/article-to-html/resources/usage-guide.md +9 -1
- package/article-to-html/user-config.md +6 -3
- package/cli.js +2 -2
- package/daily-report/SKILL.md +23 -3
- package/daily-report/resources/content-rules.md +1 -1
- package/daily-report/resources/data-collection.md +24 -4
- package/daily-report/resources/disk-and-html.md +2 -2
- package/daily-report/resources/reference.html +24 -3
- package/daily-report/resources/usage-guide.md +8 -0
- package/daily-report/user-config.md +5 -5
- package/deck-stage/SKILL.md +15 -4
- package/deck-stage/resources/cover-template.html +3 -3
- package/deck-stage/resources/data-schema.md +11 -1
- package/deck-stage/resources/pptx-builder.js +1 -1
- package/deck-stage/resources/usage-guide.md +9 -2
- package/docs/architecture.md +89 -0
- package/docs/images/article-to-html.png +0 -0
- package/docs/images/daily-report.png +0 -0
- package/docs/images/deck-stage.png +0 -0
- package/docs/images/magic-deck.png +0 -0
- package/docs/images/meeting-minutes.png +0 -0
- package/docs/images/prompt-pouch.png +0 -0
- package/docs/install.md +71 -0
- package/magic-deck/SKILL.md +23 -8
- package/magic-deck/resources/content-guide.md +5 -4
- package/magic-deck/resources/deck-spec.md +18 -11
- package/magic-deck/resources/reference.html +110 -32
- package/magic-deck/resources/usage-guide.md +10 -2
- package/magic-deck/user-config.md +4 -4
- package/meeting-minutes/SKILL.md +51 -0
- package/meeting-minutes/resources/content-rules.md +57 -0
- package/meeting-minutes/resources/disk-and-html.md +26 -0
- package/meeting-minutes/resources/meeting-type-dictionary.md +24 -0
- package/meeting-minutes/resources/reference.html +436 -0
- package/meeting-minutes/resources/usage-guide.md +63 -0
- package/meeting-minutes/user-config.md +56 -0
- package/meta-forge/SKILL.md +6 -6
- package/meta-forge/resources/forge-rules.md +60 -10
- package/meta-forge/resources/usage-guide.md +7 -2
- package/meta-forge/user-config.md +2 -1
- package/monthly-report/SKILL.md +62 -0
- package/monthly-report/resources/content-rules.md +40 -0
- package/monthly-report/resources/data-collection.md +44 -0
- package/monthly-report/resources/date-parsing.md +18 -0
- package/monthly-report/resources/disk-and-html.md +29 -0
- package/monthly-report/resources/industry-dictionary.md +21 -0
- package/monthly-report/resources/reference.html +531 -0
- package/monthly-report/resources/usage-guide.md +75 -0
- package/monthly-report/user-config.md +53 -0
- package/package.json +9 -2
- package/prompt-pouch/SKILL.md +17 -2
- package/prompt-pouch/resources/data-format.md +1 -1
- package/prompt-pouch/resources/reference.html +56 -24
- package/prompt-pouch/resources/usage-guide.md +10 -3
- package/quarterly-report/SKILL.md +63 -0
- package/quarterly-report/resources/content-rules.md +42 -0
- package/quarterly-report/resources/data-collection.md +46 -0
- package/quarterly-report/resources/date-parsing.md +19 -0
- package/quarterly-report/resources/disk-and-html.md +22 -0
- package/quarterly-report/resources/industry-dictionary.md +21 -0
- package/quarterly-report/resources/reference.html +509 -0
- package/quarterly-report/resources/usage-guide.md +76 -0
- package/quarterly-report/user-config.md +53 -0
- package/spec-doc2spec/SKILL.md +21 -22
- package/spec-doc2spec/resources/checklist.md +7 -0
- package/spec-doc2spec/resources/images.md +14 -5
- package/spec-doc2spec/resources/structure.md +19 -10
- package/spec-doc2spec/resources/usage-guide.md +10 -8
- package/spec-doc2spec/user-config.md +2 -2
- package/spec-spec2doc/SKILL.md +4 -4
- package/spec-spec2doc/resources/checklist.md +6 -0
- package/spec-spec2doc/resources/pdf-path.md +1 -0
- package/spec-spec2doc/resources/usage-guide.md +2 -2
- package/template/SKILL.md +18 -14
- package/template/resources/README.md +1 -1
- package/template/resources/usage-guide.md +17 -0
- package/template/user-config.md +28 -0
- package/weekly-report/SKILL.md +23 -3
- package/weekly-report/resources/content-rules.md +1 -1
- package/weekly-report/resources/data-collection.md +24 -4
- package/weekly-report/resources/disk-and-html.md +2 -2
- package/weekly-report/resources/reference.html +24 -3
- package/weekly-report/resources/usage-guide.md +8 -0
- package/weekly-report/user-config.md +5 -5
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
|
|
31
31
|
- `<标题>.html`——标准版(配 assets/fonts 字体文件)
|
|
32
32
|
- `<标题>-单文件版.html`——字体全内嵌,双击即开、可随意移动分享
|
|
33
|
-
-
|
|
33
|
+
- `文章截图/<标题>/C00-封面.png … C0N-xx.png`——统一 1460px 宽,按序拼接即整篇长图;每篇文章一个目录,多篇互不覆盖
|
|
34
|
+
- 产物统一放 DIR 配置的落盘根目录(macOS 默认 ~/articles、Windows 默认 %USERPROFILE%\articles,可在 user-config.md 改;目录不存在回退用户主目录),口头指定目录优先
|
|
34
35
|
|
|
35
36
|
### 常见问题
|
|
36
37
|
|
|
@@ -39,3 +40,10 @@
|
|
|
39
40
|
- **单文件版什么时候给?** 定稿后重铸一次;中途调整期间不重铸以省时间
|
|
40
41
|
- **改过的文章再处理?** 会先问「覆盖重生成 / 只重新截图 / 仅改样式」三选一
|
|
41
42
|
- **页面能换主题色吗?** A 款页面右下角四个色点随时切换(科技蓝/暖棕金/墨绿/梅紫),浏览器记住上次选择;默认主题色在 user-config.md 的 THEME 配置里改
|
|
43
|
+
|
|
44
|
+
### 效果不对怎么办
|
|
45
|
+
|
|
46
|
+
- 页面 / 截图效果不对(第 X 章有 XX 问题、布局乱、字体显示异常),对 AI 说「第 X 章截图有 XX 问题,对照设计标准修复」,把问题描述清楚(哪一章、什么现象,能截图最好)
|
|
47
|
+
- 本技能的设计标准:`resources/reference.html` 是 A 款页面真相源(骨架 + 全部组件示范),`design-system.md` 提供六款版式参数;AI 修复时先 Read reference.html 为标准
|
|
48
|
+
- AI 的处理流程固定:先 Read reference.html 与 design-system.md 作标准 → 再读那份问题 html 逐处比对 → 以设计真相源为准修复 → 重跑字体合规核查(任何未授权字体必须清零)→ 重截问题章节截图自证
|
|
49
|
+
- 字体显示成方框/豆腐块:优先说「缺字」,AI 会先检查系统是否装了思源黑体(本技能字体白名单锁死 Roboto + 思源黑体,无兜底)
|
|
@@ -8,11 +8,14 @@
|
|
|
8
8
|
## ⚙️ 默认配置(用户可手动修改;临时口头要求永远优先)
|
|
9
9
|
|
|
10
10
|
```yaml
|
|
11
|
-
CONFIG_VERSION:
|
|
12
|
-
|
|
11
|
+
CONFIG_VERSION: 2 # 配置结构版本:skill 升级时若配置结构变化会递增;AI 每次执行前对比 SKILL.md「配置版本机制」节声明的当前版本,不一致时按 SKILL.md 的迁移规则处理(先备份本文件为带时间戳 .bak,再迁移,最后对话告知用户)
|
|
12
|
+
DIR: auto # 产物落盘根目录:auto = 按当前系统自动选 DIR_MAC / DIR_WIN(也可直接写死某个绝对路径);用户口头指定目录永远优先
|
|
13
|
+
DIR_MAC: ~/articles # macOS 落盘根目录(目录不存在时回退用户主目录)
|
|
14
|
+
DIR_WIN: %USERPROFILE%\articles # Windows 落盘根目录(目录/盘符不存在时回退用户主目录)
|
|
15
|
+
THEME: tech # A 款(暗色封面长文风)页面主题色:tech 科技蓝(默认)/ gold 暖棕金 / forest 墨绿 / plum 梅紫;生成时写入 <html data-theme="THEME值"> 定默认,页面右下角换肤坞可随时切换(浏览器本地记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢;生成时头部写 `<meta name="article-id" content="<UUID>">`,每次新 UUID),?shot 截图模式自动隐藏,打印隐藏);其余五款风格(B 文艺/C 极简白/D 终端极客/E 卡片流/F 报纸)本色锁定不参与换肤
|
|
13
16
|
```
|
|
14
17
|
|
|
15
|
-
>
|
|
18
|
+
> 临时口头要求(仅对当次生效,不修改上方配置):说「写到桌面」→ 当次落盘到桌面(macOS=~/Desktop、Windows=%USERPROFILE%\Desktop);说「存到 ~/articles / D:\articles」→ 当次用指定目录;说「主题色用暖棕金/金色」→ 当次 data-theme="gold";说「这次用墨绿主题」→ 当次 data-theme="forest";说「以后默认用梅紫主题」→ 永久把 THEME 改为 plum。
|
|
16
19
|
|
|
17
20
|
---
|
|
18
21
|
> 更多用法见 SKILL.md 的「Workflow」与 design-system.md 设计系统参考。
|
package/cli.js
CHANGED
|
@@ -20,11 +20,11 @@ const VERSION = require(path.join(PKG_DIR, "package.json")).version;
|
|
|
20
20
|
|
|
21
21
|
// 分类映射与 README「技能分类」表一致;新增技能时请同步
|
|
22
22
|
const CATEGORIES = [
|
|
23
|
-
{ name: "报表汇演", en: "Reports", skills: ["daily-report", "weekly-report", "annual-report"] },
|
|
23
|
+
{ name: "报表汇演", en: "Reports", skills: ["daily-report", "weekly-report", "monthly-report", "quarterly-report", "annual-report"] },
|
|
24
24
|
{ name: "文档装裱", en: "Documents", skills: ["article-to-html"] },
|
|
25
25
|
{ name: "工程提效", en: "Engineering", skills: ["spec-doc2spec", "spec-spec2doc"] },
|
|
26
26
|
{ name: "演示汇演", en: "Slides", skills: ["magic-deck", "deck-stage"] },
|
|
27
|
-
{ name: "沟通协作", en: "Communication", skills: ["prompt-pouch"] },
|
|
27
|
+
{ name: "沟通协作", en: "Communication", skills: ["meeting-minutes", "prompt-pouch"] },
|
|
28
28
|
{ name: "技能自造", en: "Meta", skills: ["meta-forge"] },
|
|
29
29
|
];
|
|
30
30
|
|
package/daily-report/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: daily-report
|
|
3
|
-
description: 生成工作日报(默认任务进度/明日计划/风险阻塞点三段结构,中文顿号序号),适配各行业(内置 12 行业职业词典,可指定角色身份)。数据来源灵活:直接口述、给一段文字、发文件(Word/PDF/Excel/PPT 等)或图片,都能整理成日报。支持自定义模板(可永久或临时指定)。支持自然语言指定日期(今天/昨天/上周三/10月20号等)。当用户请求写日报、今日日报、昨天的日报、生成日报、/daily-report,或询问日报用法(日报怎么用/日报使用说明/日报有哪些使用方式)时使用。用户说「写总结/工作总结/写个汇报」等未言明周期的词时,先 AskUserQuestion
|
|
3
|
+
description: 生成工作日报(默认任务进度/明日计划/风险阻塞点三段结构,中文顿号序号),适配各行业(内置 12 行业职业词典,可指定角色身份)。数据来源灵活:直接口述、给一段文字、发文件(Word/PDF/Excel/PPT 等)或图片,都能整理成日报。支持自定义模板(可永久或临时指定)。支持自然语言指定日期(今天/昨天/上周三/10月20号等)。当用户请求写日报、今日日报、昨天的日报、生成日报、/daily-report,或询问日报用法(日报怎么用/日报使用说明/日报有哪些使用方式)时使用。用户说「写总结/工作总结/写个汇报」等未言明周期的词时,先 AskUserQuestion 分流(日报/周报/月报/季报/年报)再执行,不擅自默认。
|
|
4
4
|
allowed-tools: Bash, Read, Write
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
---
|
|
@@ -11,20 +11,26 @@ disable-model-invocation: false
|
|
|
11
11
|
|
|
12
12
|
## 生成流程
|
|
13
13
|
|
|
14
|
-
0.5 **周期歧义分流**:用户说「写总结/工作总结/写个汇报/做一份总结」等未言明周期的词 → AskUserQuestion
|
|
14
|
+
0.5 **周期歧义分流**:用户说「写总结/工作总结/写个汇报/做一份总结」等未言明周期的词 → AskUserQuestion 五选一(日报/周报/月报/季报/年报)确认周期再继续,不擅自默认
|
|
15
15
|
0. **读用户配置**(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES、自定义模板)→ 先 Read 同目录 `user-config.md`
|
|
16
16
|
1. **解析日期**(自然语言 → 目标日期 YYYY-MM-DD)→ 读 `resources/date-parsing.md`
|
|
17
17
|
2. **收集数据**(多源:会话口述 / 文字 / 文件 / 图片 / 代码提交记录,合并去重)→ 读 `resources/data-collection.md`
|
|
18
18
|
3. **内容归类与润色**(聚合来源 / 补充任务 / 纯文字模式 / 输出格式 / 写作风格)→ 读 `resources/content-rules.md`
|
|
19
19
|
4. **行业词条**(话术含职业词时按词典取词)→ 读 `resources/industry-dictionary.md`
|
|
20
20
|
5. **落盘与截图**(md/txt/html/content-png + 自动打开 html)→ 读 `resources/disk-and-html.md`
|
|
21
|
+
5.5 **交付前自检**(落盘与截图前必做,硬门禁不可跳过):daily-report-YYYYMMDD.html 文件写好后——
|
|
22
|
+
- Bash 起 `python3 -m http.server 8945`(后台,端口占用换 8946/8947…)
|
|
23
|
+
- Playwright headless 自检(缺则 `pip3 install --user playwright`;用系统 Chrome,channel="chrome" 无需下载浏览器):goto 页面 → 挂 pageerror 监听(零容忍)→ 滚动到底部 → 断言头部标题卡与今日任务进度/明日计划/风险阻塞点三张分节卡存在(证明主体结构完整未被破坏)
|
|
24
|
+
- 截全页 PNG Read 自查:头部标题卡与今日任务进度/明日计划/风险阻塞点三张分节卡齐全、文字无溢出截断、无豆腐块缺字
|
|
25
|
+
- 任何报错或视觉问题:修 HTML → 重检;全绿才进第 6 步
|
|
21
26
|
6. **使用咨询**(用户只问「日报怎么用」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「日报生成器使用指南」),不收集数据、不生成报告、不落盘、不开浏览器
|
|
22
27
|
|
|
23
28
|
## ⚙️ 配置与自定义模板
|
|
24
29
|
|
|
25
30
|
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.md.upstream` 对照文件,可按需手动合并新配置点。
|
|
26
31
|
|
|
27
|
-
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage
|
|
32
|
+
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢(生成时头部写 `<meta name="daily-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复))、?shot 截图模式与打印隐藏)
|
|
33
|
+
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
28
34
|
|
|
29
35
|
## 配置版本机制(升级保护)
|
|
30
36
|
|
|
@@ -45,6 +51,20 @@ disable-model-invocation: false
|
|
|
45
51
|
|
|
46
52
|
修改本 skill 任一文件(SKILL.md / user-config.md / resources/*)后,必须 grep 全文核对相关关键词在各文件间一致(如章节名/字段名/效果参数改名时新旧词全仓核对,旧词零残留才算完成)。修改 HTML 效果必须同步更新 `resources/reference.html` 与 `disk-and-html.md` 对应描述,三者以 reference.html 为真相源;改完后互相 grep 关键参数确认对齐。
|
|
47
53
|
|
|
54
|
+
## 产物升级(回炉)
|
|
55
|
+
|
|
56
|
+
生成 HTML 时头部写版本戳 `<meta name="sf-template" content="daily-report@2">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧产物/回炉旧页面/旧日报换新样式」时:扫落盘目录下本技能命名的 html,读版本戳筛出旧版(无版本戳或缺少 `<meta name="daily-id">` 稳定 ID 的产物视为 v0 最旧版,一并进清单) → 列清单(文件/旧版本/手改状态——旧 html 正文与同目录 md 正文对比,不一致视为可能手改过)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(仅 CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本、正文内容原样保留;深升级(DOM 结构变化)从同目录 md 底稿按当前 reference.html 重建,先备份旧版 `.bak-时间戳` → 报告三段式:✅ 已升级清单 / ⚠️ 手改保留说明 / 🟡 失败项原因。模板改动分级:业务改动(板块/段落/标题体系)、数据格式改动(字段/存储结构)、页面改动(样式/布局/交互)任一发生即模板升级,版本戳 +1 并同步 reference.html 与本文档;纯措辞润色不 bump。每次生成 HTML 时顺扫落盘目录读版本戳:发现旧版产物主动告知「技能模板已升级至 vN,检测到 X 份旧版日报(vN-1 或无版本戳的历史产物),说『把我旧日报都升级成新样式』即可一键升级」,不让用户背触发语。
|
|
57
|
+
|
|
58
|
+
## 🔧 报修处理流程(用户报页面问题时)
|
|
59
|
+
|
|
60
|
+
用户说「这个页面效果不对 / 布局乱了 / 有 UI 问题 / 样式错了 / 交互坏了」(常附截图或指出具体现象)→ 按以下流程处理,不以「重新生成一份」敷衍:
|
|
61
|
+
|
|
62
|
+
1. **立标准**:先 Read 本 skill 目录 `resources/reference.html`——它就是设计标准答案(布局/配色/交互全在代码里)
|
|
63
|
+
2. **找问题**:Read 用户那份问题 html 文件,与 reference 逐处比对(结构顺序 / CSS 变量 / 关键类名 / 交互 JS),定位跑偏处;用户给了截图则按截图现象反查
|
|
64
|
+
3. **修复**:以 reference 为准修复那份 html(只修跑偏处,不动正确内容;reference 与 html 不一致时以 reference 为准)
|
|
65
|
+
4. **自证**:Chrome headless 访问修复后页面截全页 PNG,Read 自查修复点恢复标准效果;用户给了问题截图时尽量复现同视角截图做前后对比
|
|
66
|
+
5. **汇报**:一句话说清问题根因 + 修复了什么 + 附截图;若根因在 reference.html 自身(生成结果与 reference 一模一样但仍有问题),顺修 reference.html 对应处并在汇报中说明「参考模板已同步修正」,避免下一份重蹈覆辙
|
|
67
|
+
|
|
48
68
|
## 规则速览
|
|
49
69
|
|
|
50
70
|
- 任务进度 3-6 点、每点 20-40 字;序号用中文顿号(1、2、3)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- 「明日计划」取材双通道:①用户口述/文字补充的计划(优先并入);②一次生成连续多天日报时(本次批量生成中后面日期的日报,或 reports 目录中已存在的后续日报),从后一天日报的「今日任务进度」中抽取任务作为当天「明日计划」(抽取数量灵活、不设死上限:后续完成任务多且连续性强时可多抽至 4-5 条,少则抽 1-2 条,与后续日报内容形成呼应即可),描述改写为计划语气(完成态改进行态:如「完成 XX 重构」→「推进 XX 重构」「继续 XX 开发」,去掉量化数据/进度/用时);批量多天时优先保证跨天连续性:抽取时尽量让当天「明日计划」与后一天「今日任务进度」形成「计划→完成」的同主题承接链(如 11.05 计划「推进底部导航重构」→ 11.06 完成「完成底部导航重构」,同一条工作线前后呼应,跨天任务尽量串成连续的工作链);批量中最后一天无后续日报时,该段按口述或「暂无」处理
|
|
10
10
|
- 量化数据取自 git --stat(文件数、增删行数);用时为合理估算(提交记录不记录耗时,估算值注明"约",可口头修正)
|
|
11
11
|
- 数据收集范围:按 user-config.md 的 DATA_SOURCES 清单收集(按当前系统自动选路径,另一系统的路径自动跳过);无当日提交的仓库不写入
|
|
12
|
-
- HTML 版为参考图式深蓝面板卡片美化样式(实心深蓝卡片 + 细密水平条纹 + 上下边缘高光线 + 左缘节色条,保留 ask 同款发光动效):顶部「一键复制」按钮(复制纯文本版)+ TL;DR 摘要行、「今日任务进度」标题右侧带目标日期徽章 + 任务进度节内当日节奏条(上午/下午/晚上时段条,hover 显示时段提交明细)+ 节奏条下量化指标行(提交次数/涉及文件数/代码行数)+ 进度条终点圆点与流星扫描填充 + 液态玻璃卡片(@supports 兜底)+ CRT 扫描光带 + 全页 3D 微倾斜(±0.75°)、页脚署名 GENERATED BY
|
|
12
|
+
- HTML 版为参考图式深蓝面板卡片美化样式(实心深蓝卡片 + 细密水平条纹 + 上下边缘高光线 + 左缘节色条,保留 ask 同款发光动效):顶部「一键复制」按钮(复制纯文本版)+ TL;DR 摘要行、「今日任务进度」标题右侧带目标日期徽章 + 任务进度节内当日节奏条(上午/下午/晚上时段条,hover 显示时段提交明细)+ 节奏条下量化指标行(提交次数/涉及文件数/代码行数)+ 进度条终点圆点与流星扫描填充 + 液态玻璃卡片(@supports 兜底)+ CRT 扫描光带 + 全页 3D 微倾斜(±0.75°)、页脚署名 GENERATED BY AI TEAM(日期动态跟随目标日期),并随 FORMATS 默认落一张内容区截图 content-png(卡片整体 + 四周留白 + 日期徽章)
|
|
13
13
|
|
|
14
14
|
## 用户补充任务
|
|
15
15
|
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
# 数据收集
|
|
2
2
|
|
|
3
|
-
先检测当前系统(macOS:`uname -s` 返回 Darwin;Windows:`node -e "console.log(process.platform)"` 返回 win32),再 Read 同目录外的 `user-config.md` 顶部「默认配置」的 DATA_SOURCES 清单,按清单逐项收集(空清单 =
|
|
3
|
+
先检测当前系统(macOS:`uname -s` 返回 Darwin;Windows:`node -e "console.log(process.platform)"` 返回 win32),再 Read 同目录外的 `user-config.md` 顶部「默认配置」的 DATA_SOURCES 清单,按清单逐项收集(空清单 = 只按会话/文字内容生成)。清单形状(每项 name 唯一名称 + type 类型 + 路径;完整填写说明见 user-config.md「默认配置」的 DATA_SOURCES 注释):
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
DATA_SOURCES:
|
|
7
|
+
- name: 主项目仓库 # name = 唯一 key(重名视为同一数据源;口述「只聚合 xxx」按 name 匹配)
|
|
8
|
+
type: git # git = 代码仓库(git log 聚合提交)
|
|
9
|
+
mac: ~/Projects/main-app # macOS 路径(绝对路径或 ~ 开头)
|
|
10
|
+
win: D:\Projects\main-app # Windows 路径;「-」= 该系统不存在,自动跳过
|
|
11
|
+
- name: 周例会纪要
|
|
12
|
+
type: file # file = 普通文件/目录(直接 Read 内容聚合)
|
|
13
|
+
mac: ~/Documents/meeting-notes.md
|
|
14
|
+
win: -
|
|
15
|
+
- name: 数据接口
|
|
16
|
+
type: remote # remote = 远程网络源(联网拉取 url 内容)
|
|
17
|
+
url: https://example.com/data.json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
每项按 type 分三种行为:
|
|
4
21
|
|
|
5
22
|
- git = 代码仓库:取 mac / win 中当前系统对应路径(「-」= 该系统不存在,跳过;当前系统全部为「-」的陌生机器时跳过 git 收集,只按会话/文字内容生成),用下方命令模板聚合该仓当日提交,只汇总有提交的仓库
|
|
6
|
-
- file =
|
|
7
|
-
- remote =
|
|
23
|
+
- file = 普通文件/目录:路径指向文件 → Read 全文提取要点;指向目录 → 列目录逐个 Read 文本文件(md/txt/csv/日志等,二进制/超大文件跳过);路径无效或全部不可读 → 静默跳过该数据源(不报错、不写入)
|
|
24
|
+
- remote = 远程网络源:只需 url 字段(mac/win 忽略);AI 联网拉取 url 内容(网页或数据接口均可)提取要点;拉取失败/超时 → 静默跳过该数据源不阻塞生成;仅收集时联网,HTML 产物仍零外链
|
|
25
|
+
- 未知 type(拼写错误/未支持)→ 忽略该项,生成时一句话提示用户该项未识别(不猜、不中断)
|
|
26
|
+
- 多来源合并:同件事去重合并——量化数字以 git 提交统计为准、定性描述以口述/文件要点为准;file/remote 提取要点与口述同等对待
|
|
8
27
|
|
|
9
28
|
命令模板:
|
|
10
29
|
|
|
@@ -13,11 +32,12 @@ git -C <仓库路径> log --since="YYYY-MM-DD 00:00:00" --until="YYYY-MM-DD 23:5
|
|
|
13
32
|
```
|
|
14
33
|
|
|
15
34
|
- 汇总每个提交涉及的**文件数**与**增删行数**(来自 --stat),作为量化数据
|
|
16
|
-
- **行数统计口径(防生成物噪音)**:统计增删行数前必须先剔除生成物路径(如 `.
|
|
35
|
+
- **行数统计口径(防生成物噪音)**:统计增删行数前必须先剔除生成物路径(如 `.build/code-graph/` 下的 graph.json:单文件可能贡献数十万行,会撑爆指标);numstat 输出为 `add\tdel\tpath` 三列,用 `grep -vE $'\t\.build/code-graph/'` 按制表符+路径过滤(正则匹配行首无效);统计后若行数仍异常巨大(>5 万行),用 `sort -rn | head -8` 定位元凶文件再排除;日报指标卡(提交次数/涉及文件数/代码行数)与 HTML 量化指标行均用过滤后口径
|
|
17
36
|
- 同主题多提交(含多次提交与 MR 合并记录)合并为一条任务点,量化数据累加
|
|
18
37
|
- 提交记录无法给出实际耗时,用时取合理估算值,允许用户事后修正
|
|
19
38
|
- 无当日提交的仓库不写入日报
|
|
20
39
|
- 仓库路径(当前系统字段)不存在/非代码仓库时静默跳过该仓库(不报错、不写入)
|
|
21
40
|
- 用户说「只写 xxx 的日报 / 只聚合 xxx」时按 name 匹配只收集指定数据源
|
|
22
41
|
- 提交记录之外的默认来源:本次会话中用户已提及/口述的工作内容(任务、进度、风险等对话信息)一并聚合,与 提交记录去重合并
|
|
42
|
+
- 会议纪要文件也可作为素材:会议行动项可直接列为当日任务或进度来源(汇报链源头)
|
|
23
43
|
- 用户明确说"只整理这段文字/只按这段"时,忽略提交记录与会话上下文,只用指定文字
|
|
@@ -8,9 +8,9 @@
|
|
|
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 令牌 × 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);滚动入场:初始视口外的卡片滚到视口才上浮渐显(html.js 门控 + IntersectionObserver,translate 独立属性不碰 transform——hover 3D 偏转零冲突,stagger 70ms 封顶 280ms、入场完即清 delay 不拖慢 hover 偏转,2s 兜底强制显示;无 JS/打印/截图模式一律全显);窄屏收敛:<680px 视口 wrap 满宽流式、边距收窄、h1 统一 26px(clamp 640px 下限在窄窗不再横向溢出)、按钮弹入(卡片入场动画 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 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢;生成时头部写 `<meta name="daily-id" content="<UUID>">`,每次新 UUID)、?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 同款);全屏背景叠加 科技仪表盘同款三层科技感底纹: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、文字短暂变「已复制」);头部 指令面板风格发光特效(与参考面板完全同款):四边 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);滚动入场:初始视口外的卡片滚到视口才上浮渐显(html.js 门控 + IntersectionObserver,translate 独立属性不碰 transform——hover 3D 偏转零冲突,stagger 70ms 封顶 280ms、入场完即清 delay 不拖慢 hover 偏转,2s 兜底强制显示;无 JS/打印/截图模式一律全显);窄屏收敛:<680px 视口 wrap 满宽流式、边距收窄、h1 统一 26px(clamp 640px 下限在窄窗不再横向溢出)、按钮弹入(卡片入场动画 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 AI TEAM · <目标日期>(日期动态,如 GENERATED BY AI 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`)另存不覆盖
|
|
15
|
-
- 落盘完成后,对话回复必须向用户报告落盘位置:列出实际写入的目录完整路径与文件清单(如「已落盘到
|
|
15
|
+
- 落盘完成后,对话回复必须向用户报告落盘位置:列出实际写入的目录完整路径与文件清单(如「已落盘到 ~/reports/2026-11-06/:daily-report-20261106.md、.txt、.html、daily-report-20261106-content.png」),并注明 html 是否已在浏览器打开、截图是否跳过(Chrome/Edge 都不存在时);DISK=false 或未落盘时注明「本次仅对话输出,未落盘」
|
|
16
16
|
- 落盘文件清单以顶部 FORMATS 为准;显式格式参数(如 `/daily-report 20261022 md`)只影响对话输出形态,不影响落盘清单
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<meta name="sf-template" content="daily-report@2">
|
|
7
|
+
<meta name="daily-id" content="REF-DAILY-0000">
|
|
6
8
|
<title>今日日报 - 20261106</title>
|
|
7
9
|
<style>
|
|
8
10
|
/* ═══ 五主题令牌:12 核心契约(与 magic-deck 一致)+ 报告扩展(发光/氛围/语义色);html[data-theme] 运行时切换,THEME 生成时定默认 ═══ */
|
|
@@ -556,7 +558,7 @@ html.js .rv.in{ opacity:1; translate:0 0; }
|
|
|
556
558
|
</div>
|
|
557
559
|
</div>
|
|
558
560
|
|
|
559
|
-
<div class="footer">GENERATED BY
|
|
561
|
+
<div class="footer">GENERATED BY AI TEAM · 20261106</div>
|
|
560
562
|
</div>
|
|
561
563
|
|
|
562
564
|
<div class="theme-dock" id="themeDock">
|
|
@@ -719,6 +721,25 @@ function sheen(track, src){
|
|
|
719
721
|
})();
|
|
720
722
|
|
|
721
723
|
/* 主题换肤:五套配色随点随换;记忆上次选择(localStorage,失败静默);?shot 截图模式隐藏坞 */
|
|
724
|
+
|
|
725
|
+
/* 稳定身份命名空间:localStorage 键按页内嵌唯一 ID(meta daily-id)命名——Chrome/Safari 下 file:// 与 localhost 共享同源存储,固定键名会导致多份产物互相串台;ID 与文件路径解耦,改名/移动目录记忆不丢 */
|
|
726
|
+
var SF_ID = ((document.querySelector('meta[name="daily-id"]') || {}).content || 'REF-DAILY-0000').trim();
|
|
727
|
+
/* ID 格式自愈(格式定死执行层):meta 非法或缺失(占位残留/手写变体/误沿用旧值)时按路径键自愈为 crypto.randomUUID() 标准 v4,同路径跨打开稳定;合法 UUID 原样使用(复制文件副本=同一身份共享数据,是特性) */
|
|
728
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(SF_ID)) {
|
|
729
|
+
var __sfHealKey = 'sf-heal:' + location.pathname;
|
|
730
|
+
try { SF_ID = localStorage.getItem(__sfHealKey) || SF_ID; } catch (e) {}
|
|
731
|
+
if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(SF_ID)) {
|
|
732
|
+
try { SF_ID = crypto.randomUUID(); } catch (e) {
|
|
733
|
+
SF_ID = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c){ var r = Math.random()*16|0, v = c === 'x' ? r : (r&0x3|0x8); return v.toString(16); });
|
|
734
|
+
}
|
|
735
|
+
try { localStorage.setItem(__sfHealKey, SF_ID); } catch (e) {}
|
|
736
|
+
}
|
|
737
|
+
var __sfMeta = document.querySelector('meta[name="daily-id"]');
|
|
738
|
+
if (__sfMeta) __sfMeta.setAttribute('content', SF_ID);
|
|
739
|
+
console.warn('[daily-report] meta daily-id 非法或缺失,已自愈为标准 v4 ID(' + SF_ID + '),建议重新生成页面固化');
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
var SF_NS = 'daily:' + SF_ID;
|
|
722
743
|
(function(){
|
|
723
744
|
var THEMES = ['tech','biz','mono','light','warm'];
|
|
724
745
|
var dock = document.getElementById('themeDock');
|
|
@@ -729,11 +750,11 @@ function sheen(track, src){
|
|
|
729
750
|
dock.querySelectorAll('.th-dot').forEach(function(d){
|
|
730
751
|
d.classList.toggle('on', d.getAttribute('data-theme') === t);
|
|
731
752
|
});
|
|
732
|
-
try{ localStorage.setItem('
|
|
753
|
+
try{ localStorage.setItem(SF_NS + '-theme', t); }catch(e){}
|
|
733
754
|
}
|
|
734
755
|
var cur = document.documentElement.getAttribute('data-theme');
|
|
735
756
|
var saved = null;
|
|
736
|
-
try{ saved = localStorage.getItem('sf-
|
|
757
|
+
try{ saved = localStorage.getItem(SF_NS + '-theme') || localStorage.getItem('sf:' + location.pathname + '-theme'); }catch(e){}
|
|
737
758
|
if (saved && THEMES.indexOf(saved) !== -1 && saved !== cur){ apply(saved); }
|
|
738
759
|
else{
|
|
739
760
|
dock.querySelectorAll('.th-dot').forEach(function(d){
|
|
@@ -63,3 +63,11 @@
|
|
|
63
63
|
| CONFIRM | 落盘前先出效果确认 | never(直接生成不确认,默认)/ text(纯文字整理模式确认)/ always(所有生成都确认) |
|
|
64
64
|
- 优先级:临时口头要求(不落盘/写到桌面/只要 md/只要内容区截图/这次不截图/别开浏览器/临时换模板等)永远优先于默认配置,仅对当次生效、不改配置
|
|
65
65
|
- DIR(按系统解析)指向的目录/盘符不存在时,自动回退到用户主目录下 reports(macOS=~/reports、Windows=%USERPROFILE%\reports)
|
|
66
|
+
|
|
67
|
+
## 效果不对怎么办
|
|
68
|
+
|
|
69
|
+
- 页面效果不对(布局乱 / 样式错 / 交互异常 / 内容显示不全),直接对 AI 说「这个页面效果不对,对照参考模板修复」,把问题描述清楚(哪一节、什么现象,能截图最好)
|
|
70
|
+
- 本技能的设计标准答案就在技能目录里:`resources/reference.html`(双击可直接打开看标准效果),AI 修复时以此为唯一对照
|
|
71
|
+
- AI 的处理流程固定:先打开 reference.html 作标准 → 再读你那份问题 html 文件 → 逐处比对找出跑偏的地方 → 以 reference 为准修复 → 用浏览器自动截图对比修复前后,自证修好了再交付
|
|
72
|
+
- 效果对了但内容不对(数字/条目写错)同样说「内容有误:xxx 应该是 xxx」,AI 只改数据不动版式;参考模板本身有缺陷时(生成结果与 reference 一模一样但仍有问题)说一句「参考模板也有这个问题」,AI 会连模板一起修并同步回 reference.html
|
|
73
|
+
- 修复后想要永久按修复效果生成:说「以后都按这个效果生成」即可
|
|
@@ -16,21 +16,21 @@ DIR: auto # 落盘根目录:auto = 按当前系统自动
|
|
|
16
16
|
DIR_MAC: ~/reports # macOS 落盘根目录(自动按目标日期建子目录;目录不存在时回退用户主目录下 reports)
|
|
17
17
|
DIR_WIN: %USERPROFILE%\reports # Windows 落盘根目录(自动按目标日期建子目录;目录/盘符不存在时回退用户主目录下 reports)
|
|
18
18
|
OPEN_HTML: true # 落盘后是否自动用浏览器打开 html(FORMATS 不含 html 时忽略)
|
|
19
|
-
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值">
|
|
19
|
+
THEME: tech # html 页面主题:tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 <html data-theme="THEME值"> 定默认,页面右下角换肤坞五色点随点随换(浏览器本地记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢;生成时头部写 `<meta name="daily-id" content="<UUID>">`,每次新 UUID),?shot 截图模式自动隐藏,打印隐藏)
|
|
20
20
|
TEMPLATE: default # 报告模板:default = 内置三段式(任务进度/明日计划/风险阻塞点);custom = 使用下方「📝 自定义模板」节;口头临时指定模板仅当次生效
|
|
21
21
|
ROLE: 全栈开发工程师(企业内技术开发) # 用户默认职业角色与主要工作内容(两者并存:职业名 + 括号内工作内容,生成内容/术语/量化指标/节奏条/风险话术全部按此画像走);用户随口描述职业时(如「我搞装修的,天天跑工地」)→ AI 提炼为规范表述(装修项目经理(负责工地现场管理、施工进度与质量巡检))更新此处;说「以 XX 的身份写」→ 当次临时换角色不改配置;说「以后默认用 XX 角色 / 我的职业是 XX / 我的主要工作是 XX」→ 永久更新此处
|
|
22
22
|
CONFIRM: never # 落盘前确认:never = 直接生成落盘不确认(默认);text = 纯文字整理模式先出效果确认后再落盘;always = 任何方式生成都先确认;临时说「先看看效果」当次先确认、说「不用确认」当次跳过
|
|
23
|
-
DATA_SOURCES: [] # 数据源清单(升级不覆盖;AI 每次生成前 Read 本文件按此清单收集;空清单 = 只按会话/文字内容生成)。每项:name 唯一名称 + type 类型 + 路径。三种类型示例(把下方 #
|
|
23
|
+
DATA_SOURCES: [] # 数据源清单(升级不覆盖;AI 每次生成前 Read 本文件按此清单收集;空清单 = 只按会话/文字内容生成)。每项:name 唯一名称 + type 类型 + 路径。三种类型示例(把下方 # 注释示例改成你的真实数据源后填入上方数组;未知 type(拼写错误)忽略该项并在生成时一句话提示,不中断):
|
|
24
24
|
# - name: 主项目仓库 # 名称:唯一 key(重名视为同一数据源;口述「只聚合 xxx」按 name 匹配)
|
|
25
|
-
# type: git # git = 代码仓库(git log
|
|
25
|
+
# type: git # git = 代码仓库(git log 聚合提交;路径不存在/非代码仓库时静默跳过)
|
|
26
26
|
# mac: ~/Projects/main-app # macOS 路径(绝对路径或 ~ 开头)
|
|
27
27
|
# win: D:\Projects\main-app # Windows 路径;「-」= 该系统不存在,自动跳过
|
|
28
28
|
# - name: 周例会纪要
|
|
29
|
-
# type: file # file =
|
|
29
|
+
# type: file # file = 普通文件/目录(文件 Read 全文、目录逐个 Read 文本文件,二进制跳过;路径无效静默跳过)
|
|
30
30
|
# mac: ~/Documents/meeting-notes.md
|
|
31
31
|
# win: -
|
|
32
32
|
# - name: 数据接口
|
|
33
|
-
# type: remote # remote =
|
|
33
|
+
# type: remote # remote = 远程网络源(只需 url 字段忽略 mac/win;AI 联网拉取内容提取要点;失败静默跳过不阻塞;仅收集时联网,HTML 产物仍零外链)
|
|
34
34
|
# url: https://example.com/data.json
|
|
35
35
|
```
|
|
36
36
|
|
package/deck-stage/SKILL.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: deck-stage
|
|
3
3
|
description: >
|
|
4
|
-
登台 deck-stage
|
|
4
|
+
登台 deck-stage:把日报/周报/月报/季报/年报(md/HTML/口述大纲)或散装素材(目录/文件/随手文字)转成专业 .pptx 演示文稿。
|
|
5
5
|
三问交互——先问素材(指定目录/指定文件/贴文字/口述主题)、再报页结构大纲表确认、后选成片方式(一键成片/逐页确认)。
|
|
6
6
|
混合模式——常规页原生生成(文本/数据卡/时间线/柱图/饼图/折线,全部可编辑),封面与结尾页用 HTML 截图贴图(视觉保真)。
|
|
7
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
|
-
|
|
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
|
---
|
|
14
14
|
|
|
15
15
|
# 登台 deck-stage
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
把报告五件套(日报/周报/月报/季报/年报)的产出——或任何散装素材——转成专业 .pptx 演示文稿。常规页原生可编辑(文本/数据卡/时间线/柱图/饼图/折线),封面/结尾页 HTML 截图保真,每页可带演讲备注,视觉与报告同源。写报告 → 放映(magic-deck)→ 登台(本 skill),最后一公里闭环。
|
|
18
18
|
|
|
19
19
|
## 意图边界(与 magic-deck 分流)
|
|
20
20
|
|
|
@@ -50,13 +50,24 @@ disable-model-invocation: false
|
|
|
50
50
|
|
|
51
51
|
0. **读用户配置**(DIR/DIR_WIN/THEME/OPEN_PPTX/CONFIRM/MODE/AUDIENCE/NOTES/CONFIG_VERSION)→ 先 Read 同目录 `user-config.md`
|
|
52
52
|
1. **三问交互**(见上节):素材 → 骨架大纲表确认 → 成片方式(MODE 未配置时默认 B 逐页确认)
|
|
53
|
-
2. **结构化提炼** → 读 `resources/data-schema.md`(schema +
|
|
53
|
+
2. **结构化提炼** → 读 `resources/data-schema.md`(schema + 段落映射:年报五段/季报四段/月报四段/周报四段/日报四段 → 页类型与节色)
|
|
54
54
|
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)
|
|
55
55
|
4. **生成 pptx**:写 data.json → `cd <skill目录> && node resources/pptx-builder.js --data <data.json绝对路径> --out <DIR>/<文件名>.pptx` → 输出 `PPTX_OK <路径>`
|
|
56
56
|
5. **交付前自检**(硬门禁,不可跳过):文件存在、大小 > 20KB;`unzip -l <pptx>` 校验——`ppt/slides/slideN.xml` 数量与 data.json pages 数一致、每页 slide XML 均存在且非空;builder 已报 `PPTX_OK` 才算通过。未通过 → 修 data.json 后重跑 builder,禁止跳过直接交付
|
|
57
57
|
6. **落盘与打开**:按配置 DIR 落盘;`OPEN_PPTX: true` 时打开(macOS:`open <pptx>`;Windows:`start <pptx>`)
|
|
58
58
|
7. **使用咨询**(用户只问「登台怎么用」「报告转 PPT 怎么用」等用法、未要求生成)→ 读 `resources/usage-guide.md`,将其内容原样输出(首行标题改为「登台 deck-stage 使用指南」),不执行任何生成动作
|
|
59
59
|
|
|
60
|
+
|
|
61
|
+
## 🔧 报修处理流程(用户报成品问题时)
|
|
62
|
+
|
|
63
|
+
用户说「封面/结尾页效果不对」「第 N 页版式不对」「ppt 打开有问题」(常附截图或指出具体现象)→ 按以下流程处理,不以「重新生成一份」敷衍:
|
|
64
|
+
|
|
65
|
+
1. **立标准**:封面/结尾页的标准答案在 `resources/cover-template.html`;常规页版式标准在 `resources/pptx-builder.js`(真相源)+ `resources/data-schema.md`(schema 描述)
|
|
66
|
+
2. **分诊**:封面/结尾页问题 → 重新生成截图(按第 3 步流程替换 COVER 对象重截);常规页版式问题 → Read data.json 与 data-schema.md 比对定位(字段缺/映射错/主题错)
|
|
67
|
+
3. **修复**:以 builder 与 data-schema 为准修 data.json 后重跑 builder;封面问题修 cover-template.html 或 COVER 数据后重截
|
|
68
|
+
4. **自证**:`unzip -l <pptx>` 校验 slide 数与非空 + 输出 `PPTX_OK`;封面重截后 Read 截图自查
|
|
69
|
+
5. **汇报**:一句话说清问题根因 + 修复了什么 + 附截图;若根因在 cover-template.html / pptx-builder.js 自身,顺修仓库模板并在汇报中说明「参考模板已同步修正」
|
|
70
|
+
|
|
60
71
|
## ⚙️ 默认配置(在 user-config.md,执行前必须先 Read)
|
|
61
72
|
|
|
62
73
|
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 不会被覆盖,你的修改永久保留。
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
<div class="bg-stars"></div>
|
|
99
99
|
<div class="card-glow"></div>
|
|
100
100
|
<div class="wrap">
|
|
101
|
-
<div class="badge" id="badge">GENERATED BY
|
|
101
|
+
<div class="badge" id="badge">GENERATED BY AI TEAM</div>
|
|
102
102
|
<div class="center">
|
|
103
103
|
<div class="title" id="title">2026 研发年度总结</div>
|
|
104
104
|
<div class="subtitle" id="subtitle">资深研发工程师 · 全栈方向</div>
|
|
@@ -107,14 +107,14 @@
|
|
|
107
107
|
</div>
|
|
108
108
|
<div class="foot">
|
|
109
109
|
<div class="info"><span id="info">2026-01-01 ~ 2026-12-31 · 生成于 2026-11-11</span></div>
|
|
110
|
-
<div class="brand">GENERATED BY
|
|
110
|
+
<div class="brand">GENERATED BY AI TEAM</div>
|
|
111
111
|
</div>
|
|
112
112
|
</div>
|
|
113
113
|
<script>
|
|
114
114
|
/* ── COVER 数据(AI 执行时替换此对象内容) ─────────────────────── */
|
|
115
115
|
var COVER = {
|
|
116
116
|
mode: "cover", // cover 封面 / closing 结尾
|
|
117
|
-
badge: "GENERATED BY
|
|
117
|
+
badge: "GENERATED BY AI TEAM",
|
|
118
118
|
title: "2026 研发年度总结",
|
|
119
119
|
subtitle: "资深研发工程师 · 全栈方向",
|
|
120
120
|
info: "2026-01-01 ~ 2026-12-31 · 生成于 2026-11-11",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"meta": {
|
|
10
10
|
"title": "2026 研发年度总结", // pptx 文档标题
|
|
11
11
|
"subtitle": "资深研发工程师 · 全栈方向", // 封面副标题(可选)
|
|
12
|
-
"footer": "GENERATED BY
|
|
12
|
+
"footer": "GENERATED BY AI TEAM · 2026" // 每页页脚(可选,缺省 GENERATED BY AI TEAM)
|
|
13
13
|
},
|
|
14
14
|
"theme": "tech", // tech(默认)/ biz / mono / light / warm,与报告五主题同源
|
|
15
15
|
"pages": [
|
|
@@ -75,6 +75,16 @@
|
|
|
75
75
|
| 多期趋势对比(提交/工时双线等) | `chart-line`(series=多系列) | blue |
|
|
76
76
|
| — | `closing-image`(谢谢观看 + 署名) | — |
|
|
77
77
|
|
|
78
|
+
### 月报(四段式)
|
|
79
|
+
|
|
80
|
+
| 报告段落 | 页类型 | color |
|
|
81
|
+
|:---|:---|:---|
|
|
82
|
+
| 月度概览(TL;DR + 数据卡) | `overview`(TL;DR + stats=数据卡,环比小字并入卡片描述) | blue |
|
|
83
|
+
| 本月关键成果(W1-W4 周时间线) | `timeline`(q=W1..W4,desc=成果描述,metric=量化小字) | green |
|
|
84
|
+
| 问题与改进 | `bullets`(t=问题,d=影响+改进) | rose |
|
|
85
|
+
| 下月计划 | `bullets`(t=目标,d=量化指标与周级行动节点) | orange |
|
|
86
|
+
| 本月提交日历热力图 | `chart-heatmap`(calendar 热力图:dates=当日提交数,labels=YYYY-MM) | orange |
|
|
87
|
+
|
|
78
88
|
### 周报
|
|
79
89
|
|
|
80
90
|
| 报告段落 | 页类型 | color |
|
|
@@ -314,7 +314,7 @@ function main() {
|
|
|
314
314
|
pptx.layout = 'WIDE';
|
|
315
315
|
SHAPES = pptx.ShapeType;
|
|
316
316
|
CHART_TYPES = pptx.ChartType;
|
|
317
|
-
pptx.author = '
|
|
317
|
+
pptx.author = 'AI TEAM';
|
|
318
318
|
pptx.title = meta.title || '报告';
|
|
319
319
|
|
|
320
320
|
for (const page of data.pages || []) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 登台 deck-stage 使用指南
|
|
2
2
|
|
|
3
|
-
登台(deck-stage
|
|
3
|
+
登台(deck-stage)把日报/周报/月报/季报/年报的产出——或任何散装素材——转成专业 .pptx 演示文稿:常规页(数据卡/时间线/条目/柱图/饼图/折线)原生生成、完全可编辑,封面与结尾页用 HTML 截图贴图、视觉保真。页面与数据分离,五主题(深蓝科技/浅色商务/IDEA 黑亮/IDEA 白亮/温暖渐变)与报告同源,改主题只改一处。
|
|
4
4
|
|
|
5
5
|
## 怎么用
|
|
6
6
|
|
|
7
|
-
1. **一句话登台**:对 AI 说「把今天的日报转成 PPT」「把这份年报做成 pptx」,或直接给报告文件路径;没有现成报告时给主题大纲也行,AI 会先提炼要点
|
|
7
|
+
1. **一句话登台**:对 AI 说「把今天的日报转成 PPT」「把这份月报做成 pptx」「把这份年报做成 pptx」,或直接给报告文件路径;没有现成报告时给主题大纲也行,AI 会先提炼要点
|
|
8
8
|
2. **三问交互**:AI 会先问你素材(指定目录/指定文件/贴文字/口述主题)→ 再报页结构大纲表给你增删改 → 最后问成片方式(一键成片 / 逐页确认)
|
|
9
9
|
3. **逐页确认**:选逐页确认时,每页先报排版方案(版式 + 内容 + 图表 + 演讲备注),你 OK 一页出一页;说「第 N 页改成 XX」重出单页、「换主题 biz」全局换、「加一页/删一页」改骨架
|
|
10
10
|
4. **自动排版**:AI 按报告结构自动映射版式——概览成数据卡页、成果成时间线页、条目成徽章页、提交节奏成柱图页,页数多了自动续页
|
|
@@ -18,3 +18,10 @@
|
|
|
18
18
|
- 转换不改原报告:md/HTML 原样保留,pptx 是新增产物
|
|
19
19
|
- 同名 pptx 不会覆盖旧文件,自动加日期后缀
|
|
20
20
|
- 生成全程离线,pptx 双击即开,可放心走内网流程
|
|
21
|
+
|
|
22
|
+
## 效果不对怎么办
|
|
23
|
+
|
|
24
|
+
- 成品效果不对(封面/结尾页不对、第 N 页版式不对、ppt 打开异常),对 AI 说「第 N 页效果不对 / 封面不对,对照参考模板修复」,把问题描述清楚(哪一页、什么现象,能截图最好)
|
|
25
|
+
- 本技能的参考标准在技能目录里:封面/结尾页标准答案 = `resources/cover-template.html`,常规页版式标准 = `resources/pptx-builder.js`(真相源)+ `resources/data-schema.md`,AI 修复时以此为对照
|
|
26
|
+
- AI 的处理流程固定:先判断是哪类页 → 封面页重截、常规页修数据后重生成 → 校验 pptx 文件结构完整(页数一致、每页非空)→ 截图自证
|
|
27
|
+
- 常规页(文本/数据卡/图表)本身就是原生可编辑元素,小改动(改个字、调个数字)建议直接在 PowerPoint/WPS 里改,比让 AI 重新生成更快
|