skill-forge-hub 1.3.13 → 1.3.14
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.en.md +9 -0
- package/CHANGELOG.md +9 -0
- package/annual-report/SKILL.md +3 -1
- package/annual-report/resources/usage-guide.md +2 -1
- package/daily-report/SKILL.md +3 -1
- package/daily-report/resources/usage-guide.md +2 -1
- package/docs/architecture.en.md +2 -2
- package/docs/architecture.md +2 -2
- package/docs/usage-examples.en.md +2 -2
- package/docs/usage-examples.md +2 -2
- package/meeting-minutes/SKILL.md +3 -1
- package/meeting-minutes/resources/usage-guide.md +1 -0
- package/meta-forge/SKILL.md +1 -1
- package/meta-forge/resources/forge-rules.md +5 -1
- package/meta-forge/resources/usage-guide.md +2 -0
- package/monthly-report/SKILL.md +3 -1
- package/monthly-report/resources/usage-guide.md +2 -1
- package/package.json +1 -1
- package/prompt-pouch/SKILL.md +3 -3
- package/quarterly-report/SKILL.md +3 -1
- package/quarterly-report/resources/usage-guide.md +2 -1
- package/template/SKILL.md +2 -2
- package/weekly-report/SKILL.md +3 -1
- package/weekly-report/resources/usage-guide.md +2 -1
package/CHANGELOG.en.md
CHANGED
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
Version history of the SkillForge npm package `skill-forge-hub` (command name `skill-forge`).
|
|
6
6
|
|
|
7
|
+
## 1.3.14 (2026-11-13)
|
|
8
|
+
|
|
9
|
+
**Custom-template upgrade protection + backup rolling cap: edits never lost, snapshots never pile up**
|
|
10
|
+
|
|
11
|
+
- Six report skills (daily/weekly/monthly/quarterly/annual/meeting-minutes) now name the "📝 custom templates" section as an upgrade-protected zone in SKILL.md: edits there are never overwritten by upgrades, and official built-in template updates land as a separate user-config.upstream.md for comparison; the config-version section gains a template-preservation statement (migration touches only the yaml block, user content section kept verbatim); usage guides fixed and annotated accordingly
|
|
12
|
+
- prompt-pouch backup rolling cap: AI write-back backups, repair-overwrite backups and reforge-upgrade backups all roll to keep only the latest 3 .bak files and delete older ones — dense operations no longer pile up backups (the page's own backup/ double-snapshot mechanism is unchanged)
|
|
13
|
+
- meta-forge sync: mechanism 2 gains "user content section announcement" + static gate #16; mechanism 8 gains the "backup rolling cap" rule + gate #17; template/SKILL.md reforge section synced
|
|
14
|
+
- docs sync: architecture (zh/en) mechanism tables and usage-examples (zh/en) reforge flows annotated with the rolling cap
|
|
15
|
+
|
|
7
16
|
## 1.3.13 (2026-11-13)
|
|
8
17
|
|
|
9
18
|
**one-pager template dock slimmer, no auto-close on pick, × close button (@15); version self-check for prompt-pouch & meta-forge**
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
SkillForge(技能锻造坊)npm 包 `skill-forge-hub`(命令名 `skill-forge`)版本变更记录。
|
|
6
6
|
|
|
7
|
+
## 1.3.14(2026-11-13)
|
|
8
|
+
|
|
9
|
+
**自定义模板升级保护宣导 + 备份滚动上限:改模板不丢、留档不堆**
|
|
10
|
+
|
|
11
|
+
- 六报表技能(日报/周报/月报/季报/年报/会议纪要)SKILL.md 点名「📝 自定义模板」节为升级保护区:改这里的内容升级永不覆盖,官方内置模板更新另存 user-config.upstream.md 对照;配置版本机制节新增模板保全声明(迁移只动 yaml 块字段、用户内容节原样保留);usage-guide 同步修正模板节位置表述并补升级保护说明
|
|
12
|
+
- prompt-pouch 备份滚动上限:AI 代笔写回前备份、报修覆盖前备份、回炉升级前备份统一改为滚动只留最近 3 份、超出删旧——密集操作不再堆积 .bak 文件(页面自身 backup/ 双档机制不变)
|
|
13
|
+
- meta-forge 同步:机制二新增「用户内容节宣导」+ 静态门禁第 16 条;机制八新增「备份滚动上限」通用纪律 + 门禁第 17 条;template 回炉节模板同步
|
|
14
|
+
- docs 同步:architecture 双版机制表、usage-examples 双版回炉流程补滚动上限说明
|
|
15
|
+
|
|
7
16
|
## 1.3.13(2026-11-13)
|
|
8
17
|
|
|
9
18
|
**one-pager 模板坞收窄适配 + 点选不收起 + × 关闭(@15);锦囊与元锻炉新增版本自检机制**
|
package/annual-report/SKILL.md
CHANGED
|
@@ -27,7 +27,7 @@ disable-model-invocation: false
|
|
|
27
27
|
|
|
28
28
|
## ⚙️ 配置与自定义模板
|
|
29
29
|
|
|
30
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md`
|
|
30
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md` 对照文件,可按需手动合并新配置点。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
31
31
|
|
|
32
32
|
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢(生成时头部写 `<meta name="annual-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复))、?shot 截图模式与打印隐藏)
|
|
33
33
|
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
@@ -43,6 +43,8 @@ disable-model-invocation: false
|
|
|
43
43
|
|
|
44
44
|
升级本 skill 时,配置结构如有变化必须同步更新本节的当前版本号与迁移说明;禁止在未声明版本变更的情况下静默修改配置语义。
|
|
45
45
|
|
|
46
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
47
|
+
|
|
46
48
|
**无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三情形——①旧值不在新值域(如旧模板/主题名已移除)②同名键含义变化(单位/枚举变更)③数据文件 schema 不兼容。三绝不:绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移清单 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层或留备份提示手动整理
|
|
47
49
|
|
|
48
50
|
当前版本变更记录:v1→v2 新增 THEME 字段(默认 tech;发现旧配置时按迁移规则补默认值)。v2→v3 新增 DATA_SOURCES 数据源清单段(默认空清单 + git/file/remote 三类型示例注释;DIR_MAC/DIR_WIN 默认值通用化——已配置用户保留原值不受影响)。v3→v4 数据收集配置归位:DATA_SOURCES 清单结构与已填值不变,仅澄清唯一配置落点——数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES(升级保护区,永不覆盖);resources/data-collection.md 收敛为纯机制说明(随升级覆盖,不再内置清单示例)。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 4,DATA_SOURCES 原样保留;若此前误把数据源写在 data-collection.md(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
@@ -34,8 +34,9 @@
|
|
|
34
34
|
## 自定义模板(适配各类岗位)
|
|
35
35
|
- 内置模板为五段式(年度概览/核心成果与里程碑/经验与成长/不足与反思/新年展望与规划),适合开发岗位;其他岗位可自定义模板
|
|
36
36
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如"按四段:年度工作概述/重点工作与成果/经验与不足/明年工作计划"),当次按该结构生成,不改配置
|
|
37
|
-
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按
|
|
37
|
+
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
38
38
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
39
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
39
40
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
40
41
|
|
|
41
42
|
## 角色定制(我的职业画像)
|
package/daily-report/SKILL.md
CHANGED
|
@@ -27,7 +27,7 @@ disable-model-invocation: false
|
|
|
27
27
|
|
|
28
28
|
## ⚙️ 配置与自定义模板
|
|
29
29
|
|
|
30
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md`
|
|
30
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md` 对照文件,可按需手动合并新配置点。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
31
31
|
|
|
32
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
33
|
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
@@ -43,6 +43,8 @@ disable-model-invocation: false
|
|
|
43
43
|
|
|
44
44
|
升级本 skill 时,配置结构如有变化必须同步更新本节的当前版本号与迁移说明;禁止在未声明版本变更的情况下静默修改配置语义。
|
|
45
45
|
|
|
46
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
47
|
+
|
|
46
48
|
**无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三情形——①旧值不在新值域(如旧模板/主题名已移除)②同名键含义变化(单位/枚举变更)③数据文件 schema 不兼容。三绝不:绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移清单 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层或留备份提示手动整理
|
|
47
49
|
|
|
48
50
|
当前版本变更记录:v1→v2 新增 THEME 字段(默认 tech;发现旧配置时按迁移规则补默认值)。v2→v3 新增 DATA_SOURCES 数据源清单段(默认空清单 + git/file/remote 三类型示例注释;DIR_MAC/DIR_WIN 默认值通用化——已配置用户保留原值不受影响)。v3→v4 数据收集配置归位:DATA_SOURCES 清单结构与已填值不变,仅澄清唯一配置落点——数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES(升级保护区,永不覆盖);resources/data-collection.md 收敛为纯机制说明(随升级覆盖,不再内置清单示例)。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 4,DATA_SOURCES 原样保留;若此前误把数据源写在 data-collection.md(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
@@ -34,8 +34,9 @@
|
|
|
34
34
|
## 自定义模板(适配各类岗位)
|
|
35
35
|
- 内置模板为三段式(今日任务进度/明日计划/风险阻塞点),适合开发岗位;其他岗位可自定义模板
|
|
36
36
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如"按四段:工作内容/存在问题/明日计划/需要支持"),当次按该结构生成,不改配置
|
|
37
|
-
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按
|
|
37
|
+
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
38
38
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
39
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
39
40
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
40
41
|
|
|
41
42
|
## 角色定制(我的职业画像)
|
package/docs/architecture.en.md
CHANGED
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
| Mechanism | Description |
|
|
80
80
|
|:---|:---|
|
|
81
81
|
| CONFIG_VERSION key | The first line of user-config.md declares the config-structure version; bump by 1 whenever the official structure changes (keys added / renamed / removed) and document the migration rules in the SKILL.md "config version mechanism" section. Both the CLI updater and the AI self-check this version before running: version went up → back up as `.bak-<timestamp>` → interactive three-way choice (official overwrite / keep mine + `.upstream` companion / decide later). |
|
|
82
|
-
| user-config extraction | User-editable content (default config + custom templates) is extracted from SKILL.md into a standalone `user-config.md`; SKILL.md keeps only the pointer section (must be read before every run). BUILTIN_PRESERVE plus the skill's `.preserve` list guard it doubly on upgrade, so local edits persist forever. |
|
|
82
|
+
| user-config extraction | User-editable content (default config + custom templates) is extracted from SKILL.md into a standalone `user-config.md`; SKILL.md keeps only the pointer section (must be read before every run). BUILTIN_PRESERVE plus the skill's `.preserve` list guard it doubly on upgrade, so local edits persist forever. Skills with user-editable content sections (custom templates etc.) must name the protected section in SKILL.md plus a template-preservation statement in the config-version section (migration touches only the yaml block, user content section kept verbatim). |
|
|
83
83
|
| reference dual-track | Skills that produce HTML (report family / magic deck / prompt pouch) keep a `resources/reference.html` as the visual source of truth: generation clones its skeleton and swaps content piece by piece, so output matches the official demo. Outputs carry an `sf-template` version stamp + a stable ID meta, enabling "reforge" upgrades of old outputs per the output-upgrade section. |
|
|
84
84
|
| doc-sync self-check discipline | After touching any file, grep the whole repo to verify keywords — zero stale terms allowed; hard gates before delivery: headless (Playwright/Chrome) open with zero JS errors + screenshot proof that content is complete; static gates (frontmatter matches the declared version). IDs are locked to the standard UUID v4 format (crypto.randomUUID()) and checked for collisions by scanning the output directory before writing. |
|
|
85
85
|
| .preserve list | Skills with semi-customizable assets (design systems / template drafts, files users may edit) declare them in a `.preserve` list: the CLI never overwrites these on upgrade, and official updates are saved as `.upstream` companions for manual merging. |
|
|
86
86
|
| multi-file isolation | Pages with localStorage memory namespace their keys by an in-page embedded unique ID (standard UUID v4) — multiple outputs never cross-talk, and memories survive renames/moves; page-level self-healing: when the id meta is invalid/missing, the page heals itself to a standard v4 via a path key and writes it back to the meta. |
|
|
87
87
|
| infringement-free, desensitized & offline | Zero brand fonts (free-for-commercial-use fonts only), no CDN so pages open offline, zero real identities in sample data (generic placeholders). |
|
|
88
|
-
| output reforge upgrades | HTML carries a template version stamp (bumped on business / data-format / page changes); after an upgrade, old outputs can be interactively reforged (shallow upgrade = block replacement; deep upgrade = md rebuild), and generation proactively scans for old versions and suggests the trigger phrase; deep rebuilds of user-data skills must keep the page's stable ID (a new ID = lost data), and data files are never touched. |
|
|
88
|
+
| output reforge upgrades | HTML carries a template version stamp (bumped on business / data-format / page changes); after an upgrade, old outputs can be interactively reforged (shallow upgrade = block replacement; deep upgrade = md rebuild), and generation proactively scans for old versions and suggests the trigger phrase; deep rebuilds of user-data skills must keep the page's stable ID (a new ID = lost data), and data files are never touched. Repeated .bak-<timestamp> snapshots (AI write-back backups, reforge/repair page backups) roll to keep only the latest 3; one-off structure-migration archives do not roll. |
|
|
89
89
|
|
|
90
90
|
## Splitting Conventions
|
|
91
91
|
|
package/docs/architecture.md
CHANGED
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
| 机制 | 说明 |
|
|
80
80
|
|:---|:---|
|
|
81
81
|
| CONFIG_VERSION 钥匙 | `user-config.md` 首行声明配置结构版本;官方结构变化(新增/改名/删除配置键)时递增 1 并在 SKILL.md「配置版本机制」节写明迁移规则。CLI 升级与 AI 执行前都自检该版本:版本升了 → 备份 `.bak-时间戳` → 交互三选一(官方覆盖 / 保留我的 + `.upstream` 对照 / 稍后处理)。 |
|
|
82
|
-
| user-config 抽离 | 用户可改内容(默认配置 + 自定义模板)从 SKILL.md 抽离到独立 `user-config.md`,SKILL.md 只留指引段(执行前必须先 Read)。升级时 BUILTIN_PRESERVE + 技能 `.preserve`
|
|
82
|
+
| user-config 抽离 | 用户可改内容(默认配置 + 自定义模板)从 SKILL.md 抽离到独立 `user-config.md`,SKILL.md 只留指引段(执行前必须先 Read)。升级时 BUILTIN_PRESERVE + 技能 `.preserve` 清单双重保护,本地修改永久保留。含自定义模板等内容节的技能,SKILL.md 须点名用户内容节为升级保护区 + 配置版本机制节含模板保全声明(迁移只动 yaml 块字段、用户内容节原样保留)。 |
|
|
83
83
|
| reference 双轨 | 成品 HTML 形态的技能(报表族 / 魔法幻灯 / 锦囊)以 `resources/reference.html` 为视觉真相源:生成时以此为骨逐处替换内容,保证产物样式与官方演示一致;产物头部带 `sf-template` 版本戳 + 稳定 ID meta,按「产物升级(回炉)」节可把旧产物升级到新模板。 |
|
|
84
84
|
| 文档同步自检纪律 | 改任一文件 grep 全仓核对关键词,旧词零残留;交付前硬门禁:Playwright/Chrome headless 打开产物零 JS 错误 + 截图验证内容完整;静态门禁(frontmatter 与版本声明一致)。ID 格式定死(crypto.randomUUID() 标准 v4),落盘前顺扫目录查重。 |
|
|
85
85
|
| .preserve 保护清单 | 技能含半定制资产(设计系统 / 模板底稿等用户可改文件)时,用 `.preserve` 清单声明:CLI 升级永不覆盖这些文件,官方更新另存 `.upstream` 对照,可按需手动合并。 |
|
|
86
86
|
| 多文件隔离 | 页面有 localStorage 记忆时,键按页内嵌唯一 ID(标准 UUID v4)命名空间——多份产物互不串台、改名/移动目录记忆不丢;页面执行层自愈:id meta 非法/缺失时按路径键自愈为标准 v4 并回写 meta。 |
|
|
87
87
|
| 零侵权脱敏离线 | 品牌字体零出现(只用免费商用字体)、禁 CDN 页面离线可开、示例数据零真实身份(通用占位)。 |
|
|
88
|
-
| 产物升级回炉 | HTML 带模板版本戳(业务/数据格式/页面改动均 bump),升级后可扫旧产物交互式回炉(浅升级区块替换 / 深升级 md 重建),生成时顺扫旧版主动提示触发语;用户数据类深升级重建必须沿用原页稳定 ID(换 ID =
|
|
88
|
+
| 产物升级回炉 | HTML 带模板版本戳(业务/数据格式/页面改动均 bump),升级后可扫旧产物交互式回炉(浅升级区块替换 / 深升级 md 重建),生成时顺扫旧版主动提示触发语;用户数据类深升级重建必须沿用原页稳定 ID(换 ID = 数据失联),数据文件一概不动;重复性 .bak-时间戳 留档(AI 代笔写回前备份、回炉/报修旧页备份)滚动只留最近 3 份、超出删旧,一次性结构迁移档不滚。 |
|
|
89
89
|
|
|
90
90
|
## 拆分规范
|
|
91
91
|
|
|
@@ -12,7 +12,7 @@ Every example follows the same rhythm: **install → first generation → config
|
|
|
12
12
|
2. **First generation**: just say "write a daily report", describe what you did today (or hand it a paragraph / a file / an image) → produces `daily-report-YYYYMMDD.md` + `.txt` + `.html` (auto-opened), plus a full-page content-png capture
|
|
13
13
|
3. **Config tweaks**: ask the AI to open the skill's `user-config.md` and change `DIR` (save directory), `THEME` (tech/biz/mono/light/warm five themes), `TEMPLATE: custom` for a custom template; ad-hoc verbal requests ("only 3 items today") apply once and never touch config
|
|
14
14
|
4. **After an official upgrade**: `npm update -g skill-forge-hub` (upgrade the CLI itself) → `skill-forge update` (upgrade the skills) → if the official config structure changed, it backs up first then offers a three-way choice; pick `[2] keep mine`, then compare `user-config.upstream.md` and merge new config points manually (e.g. a new DATA_SOURCES list)
|
|
15
|
-
5. **Output reforge**: when the official template stamp bumped (`sf-template@N`) → the next generation says "found X old daily reports" → say "upgrade all my old daily reports to the new style" → pick all or some → shallow upgrade (style changes) swaps style blocks, deep upgrade (structure changes) rebuilds from the sibling md draft, old version backed up first
|
|
15
|
+
5. **Output reforge**: when the official template stamp bumped (`sf-template@N`) → the next generation says "found X old daily reports" → say "upgrade all my old daily reports to the new style" → pick all or some → shallow upgrade (style changes) swaps style blocks, deep upgrade (structure changes) rebuilds from the sibling md draft, old version backed up first (rolling cap: keep only the latest 3)
|
|
16
16
|
|
|
17
17
|
## Example 2: prompt-pouch (local console + user data)
|
|
18
18
|
|
|
@@ -21,7 +21,7 @@ Every example follows the same rhythm: **install → first generation → config
|
|
|
21
21
|
3. **Everyday use**: group sidebar / search / favorites / tag click filtering / `{variable}` interpolation one-click copy / JSON import & export / group emoji quick panel; data lives in `data/prompts.json` with rolling backups in `backup/` — page and data are separated, deleting the page never loses data
|
|
22
22
|
4. **Config tweaks**: in `user-config.md`, change `DIR` (page directory), `DATA_DIR` / `BACKUP_DIR` (data & backup directories)
|
|
23
23
|
5. **After an official upgrade**: the data directory and data files are never touched; a deep rebuild keeps the page's original pouch-id → existing favorites / groups read back unchanged
|
|
24
|
-
6. **Page-version upgrade (reforge)**: when the official template bumps (version stamp sf-template@N +1), the next "make a prompt management page" run has the AI proactively say "skill template upgraded to vN, found X old pouches" — say "upgrade all my old pouches to the new style" → the AI lists them (file / old version / has user data) → pick all or some → upgrade one by one: style-only changes swap the style block and scripts (shallow), structural changes rebuild from the template but keep the original pouch-id (deep — favorites and groups read back unchanged); prompts.json is never touched and the old page is backed up as .bak-<timestamp> first → three-part report (✅ upgraded / ⚠️ hand-edits kept / 🟡 failure reasons); pure wording polish does not bump the stamp — no reforge needed
|
|
24
|
+
6. **Page-version upgrade (reforge)**: when the official template bumps (version stamp sf-template@N +1), the next "make a prompt management page" run has the AI proactively say "skill template upgraded to vN, found X old pouches" — say "upgrade all my old pouches to the new style" → the AI lists them (file / old version / has user data) → pick all or some → upgrade one by one: style-only changes swap the style block and scripts (shallow), structural changes rebuild from the template but keep the original pouch-id (deep — favorites and groups read back unchanged); prompts.json is never touched and the old page is backed up as .bak-<timestamp> first (rolling cap: keep only the latest 3) → three-part report (✅ upgraded / ⚠️ hand-edits kept / 🟡 failure reasons); pure wording polish does not bump the stamp — no reforge needed
|
|
25
25
|
7. **Multi-file isolation**: two pouches stay independent (embedded-ID namespacing, no cross-talk); copying a file = same identity sharing the same data (for an independent identity, generate a new one — don't copy a file to fake a new output)
|
|
26
26
|
|
|
27
27
|
## Example 3: magic-deck + deck-stage (both PPT forms)
|
package/docs/usage-examples.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
2. **首次生成**:直接说「写日报」,口述今天干了什么(或丢一段文字 / 一个文件 / 一张图)→ 生成 `daily-report-YYYYMMDD.md` + `.txt` + `.html`(自动打开),附整页截图 content-png
|
|
13
13
|
3. **修改配置**:让 AI 打开技能目录的 `user-config.md`,改 `DIR`(落盘目录)、`THEME`(tech/biz/mono/light/warm 五主题)、`TEMPLATE: custom` 换自定义模板;临时口头要求(如「今天只写 3 条」)当次生效、不写配置
|
|
14
14
|
4. **官方升级后**:`npm update -g skill-forge-hub`(升级 CLI 本体)→ `skill-forge update`(升级技能)→ 若官方配置结构变了,先自动备份再交互三选一,选 `[2] 保留我的`,然后对照 `user-config.upstream.md` 手动合并新配置点(如新增的 DATA_SOURCES 数据源清单)
|
|
15
|
-
5. **旧产物回炉**:官方模板版本戳升了(`sf-template@N`)→ 下次生成时提示「检测到 X 份旧版日报」→ 说「把我旧日报都升级成新样式」→ 选全部或部分 → 浅升级(样式变化)替换样式块、深升级(结构变化)从同目录 md
|
|
15
|
+
5. **旧产物回炉**:官方模板版本戳升了(`sf-template@N`)→ 下次生成时提示「检测到 X 份旧版日报」→ 说「把我旧日报都升级成新样式」→ 选全部或部分 → 浅升级(样式变化)替换样式块、深升级(结构变化)从同目录 md 底稿重建,旧版先备份(滚动只留最近 3 份)
|
|
16
16
|
|
|
17
17
|
## 示例二:prompt-pouch 锦囊(本地管理台 + 用户数据)
|
|
18
18
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
3. **日常使用**:分组侧栏 / 搜索 / 收藏 / 标签点击过滤 / `{变量}` 插值一键复制 / 导入导出 JSON 备份 / 分组 emoji 快捷面板;数据存 `data/prompts.json`、滚动备份在 `backup/`——页面与数据分离,删页面不丢数据
|
|
22
22
|
4. **修改配置**:`user-config.md` 改 `DIR`(页面目录)、`DATA_DIR` / `BACKUP_DIR`(数据与备份目录)
|
|
23
23
|
5. **官方升级后**:数据目录与数据文件一概不动;深升级重建沿用原页 pouch-id → 原有收藏 / 分组照旧读回
|
|
24
|
-
6. **页面版本升级(回炉)**:官方模板升级(版本戳 sf-template@N +1)后,下次「做一个锦囊管理页面」时 AI 主动提示「技能模板已升级至 vN,检测到 X 份旧版锦囊」——说「把我旧锦囊都升级成新样式」→ AI 列清单(文件 / 旧版本 / 有无用户数据)→ 选全部或部分 → 逐份升级:样式类变化替换 style 块与脚本(浅升级)、结构类变化从模板重建但沿用原页 pouch-id(深升级,收藏分组照旧读回),prompts.json 数据一概不动、旧页先备份 .bak
|
|
24
|
+
6. **页面版本升级(回炉)**:官方模板升级(版本戳 sf-template@N +1)后,下次「做一个锦囊管理页面」时 AI 主动提示「技能模板已升级至 vN,检测到 X 份旧版锦囊」——说「把我旧锦囊都升级成新样式」→ AI 列清单(文件 / 旧版本 / 有无用户数据)→ 选全部或部分 → 逐份升级:样式类变化替换 style 块与脚本(浅升级)、结构类变化从模板重建但沿用原页 pouch-id(深升级,收藏分组照旧读回),prompts.json 数据一概不动、旧页先备份 .bak-时间戳(滚动只留最近 3 份) → 报告三段式(✅ 已升级 / ⚠️ 手改保留 / 🟡 失败原因);纯措辞润色不升版本戳,无需回炉
|
|
25
25
|
7. **多文件隔离**:两份锦囊各自独立(内嵌 ID 命名空间,互不串台);复制文件副本 = 同一身份共享同一份数据(要独立身份请重新生成一份,勿复制文件冒充新产物)
|
|
26
26
|
|
|
27
27
|
## 示例三:magic-deck + deck-stage(PPT 两种形态)
|
package/meeting-minutes/SKILL.md
CHANGED
|
@@ -21,7 +21,7 @@ disable-model-invocation: false
|
|
|
21
21
|
|
|
22
22
|
## ⚙️ 配置与自定义模板
|
|
23
23
|
|
|
24
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/SERIES_GROUP/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md
|
|
24
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/SERIES_GROUP/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
25
25
|
|
|
26
26
|
## 配置版本机制(升级保护)
|
|
27
27
|
|
|
@@ -36,6 +36,8 @@ disable-model-invocation: false
|
|
|
36
36
|
|
|
37
37
|
配置升级规则(v2→v3):DATA_SOURCES 数据收集配置归位——清单结构与已填值不变,仅澄清唯一配置落点(数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES,升级保护区永不覆盖;收集机制说明见 resources/content-rules.md「素材来源」节,随升级覆盖);DATA_SOURCES 示例注释按实际支持类型(file)修正。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 3,DATA_SOURCES 原样保留;若此前误把数据源写在 resources 文档里(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
38
38
|
|
|
39
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
40
|
+
|
|
39
41
|
**无法迁移项处理**:值域失效(旧值不在新值域)/ 语义漂移(同名键含义变化)/ 数据不兼容,停下问、不猜值;旧值永远在 .bak-时间戳备份里,报告必附回滚一句话。
|
|
40
42
|
|
|
41
43
|
## 产物升级(回炉)
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如「按三段:会议结论/行动项/下次会议」),当次按该结构生成,不改配置
|
|
34
34
|
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
35
35
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
36
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
36
37
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
37
38
|
|
|
38
39
|
## 角色定制(我的职业画像)
|
package/meta-forge/SKILL.md
CHANGED
|
@@ -42,7 +42,7 @@ disable-model-invocation: false
|
|
|
42
42
|
|
|
43
43
|
## 规则速览
|
|
44
44
|
|
|
45
|
-
- 机制体系缺一不可:CONFIG_VERSION 钥匙(配置版本机制节 + user-config 配置块首行 CONFIG_VERSION: 1)、user-config 抽离(用户可改配置全部出站,SKILL.md
|
|
45
|
+
- 机制体系缺一不可:CONFIG_VERSION 钥匙(配置版本机制节 + user-config 配置块首行 CONFIG_VERSION: 1)、user-config 抽离(用户可改配置全部出站,SKILL.md 只引用不内嵌;含自定义模板等内容节的技能须点名用户内容节为升级保护区 + 迁移保全声明)、reference 双轨(含 HTML 输出的技能以 reference.html 为样式真相源)、多文件隔离(页面有 localStorage 记忆时键带路径命名空间)、零侵权脱敏离线(品牌字体零出现、禁 CDN 离线可开、示例数据零真实身份)、产物升级回炉(HTML 带模板版本戳、业务/数据格式/页面改动均 bump、旧产物可交互回炉、生成时顺扫旧版主动提示、工具型产物全时机版本自检+场景分级提示、备份滚动上限——重复性 .bak 留档只留最近 3 份)、preserve 保护清单(半定制资产 .preserve 声明、CLI 升级永不覆盖、官方更新另存 .upstream 对照)、自检纪律(改一处 grep 全仓)
|
|
46
46
|
- 薄入口:SKILL.md 只留 frontmatter / 生成流程 / 配置节 / 机制节 / 规则速览;重内容按阶段拆 resources/,一文件一职责
|
|
47
47
|
- 新技能必须带 user-config.md(含 CONFIG_VERSION: 1)、resources/usage-guide.md(咨询应答原样输出源)与 resources/skillforge-guide.txt + skillforge-guide.html(SkillForge 使用指引双版,SKILL.md 末尾带整体咨询触发节)
|
|
48
48
|
- 完整规则(澄清清单 / 结构规范 / 机制体系 / 验证环 / 仓库登记)见 `resources/forge-rules.md`
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
- 用户可能改的一切配置(目录/格式/开关/角色/模板)全部放进 user-config.md,SKILL.md 只在第 0 步引用,不内嵌配置值
|
|
50
50
|
- user-config.md 头部写「升级技能时本文件不会被覆盖」+ .upstream 对照说明
|
|
51
51
|
- CLI 层:user-config.md 常驻保护(升级永不覆盖)+ 官方新配置另存 .upstream 对照
|
|
52
|
+
- 用户内容节宣导(user-config.md 含自定义模板等非 yaml 内容节的技能):SKILL.md 配置节显式点名用户内容节为升级保护区(「改这里升级永不覆盖;官方内置版更新另存 .upstream 对照」);配置版本机制节含模板保全声明(「迁移只动 yaml 块字段、用户内容节原样保留一字不碰」);resources/ 下内置规则随升级覆盖,用户内容一律只写 user-config.md
|
|
52
53
|
|
|
53
54
|
### 机制三:reference 双轨(仅含 HTML 输出的技能)
|
|
54
55
|
|
|
@@ -91,12 +92,13 @@
|
|
|
91
92
|
|
|
92
93
|
- 产物版本戳:生成 HTML 时头部写 `<meta name="sf-template" content="<技能名>@N">`(N 为模板版本,初版 1);模板升级时递增 N 并同步 reference.html 与 SKILL.md「产物升级(回炉)」节;检测双标记:版本戳 + 稳定 ID meta——无版本戳或缺少 `<前缀>-id` meta 的产物一律视为 v0 最旧版,必须进升级清单
|
|
93
94
|
- 数据真相源:md/txt 与 html 同落盘,md 全文为内容底稿,html 永远可从 md 重建
|
|
94
|
-
- 两级升级:浅升级(CSS/JS 变化、DOM 结构不变)→ 对旧页替换 <style> 块与交互脚本、正文原样保留;深升级(DOM 结构变化)→ 从同目录 md 底稿重生成,先备份旧版 .bak
|
|
95
|
+
- 两级升级:浅升级(CSS/JS 变化、DOM 结构不变)→ 对旧页替换 <style> 块与交互脚本、正文原样保留;深升级(DOM 结构变化)→ 从同目录 md 底稿重生成,先备份旧版 .bak-时间戳(滚动上限:旧页 .bak 只留最近 3 份、超出删旧)
|
|
95
96
|
- 用户数据类细则(IndexedDB 数据按稳定 ID 命名空间存取的技能):深升级重建必须沿用原页稳定 ID meta 值(换 ID = 数据失联,重建后原收藏/分组照旧读回);<DATA_DIR> 数据文件一概不动
|
|
96
97
|
- 回炉交互:用户说「升级旧产物/回炉」→ 扫落盘目录读版本戳筛旧版(无版本戳或缺少稳定 ID meta 的产物视为 v0 最旧版,一并进清单) → 列清单(文件/旧版本/手改状态:旧 html 正文与 md 正文对比,不一致视为可能手改)→ AskUserQuestion 选全部或部分 → 逐份升级 → 报告三段式(✅ 已升级 / ⚠️ 手改保留 / 🟡 失败项原因)
|
|
97
98
|
- 版本递增判定:模板业务改动(板块/段落/标题体系)、数据格式改动(字段/存储结构)、页面改动(样式/布局/交互)任一发生即模板升级,版本戳 +1 并同步 reference.html 与 SKILL.md「产物升级(回炉)」节;纯措辞润色不 bump
|
|
98
99
|
- 主动提示(快照型/生成型产物——生成即归档,如日报/文章页):每次生成 HTML 时顺扫落盘目录读版本戳;发现低于当前模板版本的旧产物,主动告知「技能模板已升级至 vN,检测到 X 份旧版产物(vN-1),说『把我旧XX都升级成新样式』即可一键升级」,不让用户背触发语
|
|
99
100
|
- 工具型产物版本自检(固定页面反复打开、数据累积的技能——如提示词管理台,澄清清单确认工具型时必植入):每次调用本 skill(生成/初始化/维护/取用/打开)先静默自检——读目标页面版本戳与 reference.html 当前版比对(两行 meta、零网络、不碰数据),结果只影响「提示」不影响「执行」,版本旧也绝不拒绝或推迟本次任务。提示分场景:打开场景主动问(起服务前 AskUserQuestion:A 升级后打开(推荐)——走回炉流程、沿用原页稳定 ID meta 值、数据文件一概不动;B 直接打开旧版——本次会话不再询问;询问时附更新点清单:检索 CHANGELOG 相关条目 + 版本差区间归纳 2-5 条用户可感知变化,一句话一条);维护/取用场景照常执行、收尾报告一句轻提示(「页面还是旧版(@N,当前 @M),说『升级XX』即可换新」,不弹问不打断);用户拒绝过升级则本次会话静默。SKILL.md 执行流程第 0 步后固定写「版本自检(静默前置,全时机)」步骤
|
|
101
|
+
- 备份滚动上限:一切重复性 .bak-时间戳 留档(AI 代笔写回前备份、回炉/报修旧页备份)按时间戳滚动只留最近 3 份、超出删旧;一次性结构迁移档不滚(迁移只发生一次,留档永久保留);SKILL.md 对应节点写明滚动规则
|
|
100
102
|
|
|
101
103
|
## 四、验证环(交付前全过,偏差必被发现)
|
|
102
104
|
|
|
@@ -117,6 +119,8 @@
|
|
|
117
119
|
13. 工具型产物版本自检(工具型技能):SKILL.md 执行流程含「版本自检(静默前置,全时机)」步骤(静默比对版本戳、零网络不碰数据、结果只影响提示不影响执行)+ 场景分级提示(打开主动问/维护取用一句话/拒绝会话静默)
|
|
118
120
|
14. 入场动画兜底(含 HTML 且含滚动入场动画的技能):reference.html 含 2s 兜底强制全显代码(`.rv:not(.in)` 模式或等价),确保 headless 截图 / 打印预览内容全显
|
|
119
121
|
15. 执行层自愈块(含 HTML 且页面有 localStorage 记忆的技能):HTML 内嵌 JS 含 id meta 校验——非法或缺失(占位残留 / 手写变体 / 误沿用旧值)时按路径键(`sf-heal:` + location.pathname)自愈为 crypto.randomUUID() 标准 v4 并回写 meta,console.warn 显性报警
|
|
122
|
+
16. 用户内容节宣导(user-config.md 含自定义模板等用户可改内容节的技能):SKILL.md 配置节点名用户内容节为升级保护区 + 配置版本机制节含模板保全声明(迁移只动 yaml 块字段、用户内容节原样保留)
|
|
123
|
+
17. 备份滚动上限(含 AI 代笔/回炉备份的技能):SKILL.md 写回备份节点与回炉节点含滚动上限声明(.bak-时间戳 留最近 3 份、超出删旧)
|
|
120
124
|
|
|
121
125
|
### B. 运行时实测(含 HTML 的技能必做,Playwright headless channel="chrome")
|
|
122
126
|
|
|
@@ -9,12 +9,14 @@ meta-forge 是「造 skill 的 skill」:把一段重复劳作,按 SkillForge
|
|
|
9
9
|
- 自动植入机制体系(工坊标准,缺一不可):
|
|
10
10
|
1. CONFIG_VERSION 钥匙——配置结构带版本号,升级时自动备份迁移,不丢用户设置
|
|
11
11
|
2. user-config 抽离——用户可改配置全部出站到 user-config.md,升级永不覆盖
|
|
12
|
+
(含自定义模板等内容节的技能:点名用户内容节为升级保护区 + 模板保全声明——迁移只动 yaml 块字段、用户内容节原样保留)
|
|
12
13
|
3. reference 双轨——技能含 HTML 输出时,reference.html 是定稿样式真相源,改样式三处同步
|
|
13
14
|
4. 自检纪律——改任一文件 grep 全仓核对关键词,旧词零残留
|
|
14
15
|
5. preserve 保护清单——含半定制资产(设计系统/模板底稿)时 .preserve 声明,CLI 升级永不覆盖,官方更新另存 .upstream 对照
|
|
15
16
|
6. 多文件隔离——页面有 localStorage 记忆时,键按页内嵌唯一 ID(标准 UUID v4)命名空间,多份产物互不串台、改名/移动目录记忆不丢
|
|
16
17
|
7. 零侵权脱敏离线——品牌字体零出现、禁 CDN 页面离线可开、示例数据零真实身份(通用占位)
|
|
17
18
|
8. 产物升级回炉——HTML 带模板版本戳(业务/数据格式/页面改动均 bump),升级后可扫旧产物交互式回炉(浅升级区块替换/深升级 md 重建),生成时顺扫旧版主动提示触发语
|
|
19
|
+
(重复性 .bak-时间戳 留档滚动上限——AI 代笔/回炉/报修备份只留最近 3 份、超出删旧)
|
|
18
20
|
- 交付前跑验证环(偏差必被发现):静态门禁逐项 grep + 含 HTML 时 Playwright 实测(零 JS 错误 / 键带路径 / 刷新恢复 / 多文件隔离 / 自愈实测),验证证据随交付报告附上
|
|
19
21
|
- 技能入 SkillForge 仓库时,自动登记 README 技能分类表/技能清单/目录结构、cli.js CATEGORIES 与 package.json files(npm 包不遗漏技能)
|
|
20
22
|
|
package/monthly-report/SKILL.md
CHANGED
|
@@ -27,7 +27,7 @@ disable-model-invocation: false
|
|
|
27
27
|
|
|
28
28
|
## ⚙️ 配置与自定义模板
|
|
29
29
|
|
|
30
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md
|
|
30
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
31
31
|
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢(生成时头部写 `<meta name="monthly-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复))、?shot 截图模式与打印隐藏)
|
|
32
32
|
- **DATA_SOURCES**:数据源清单(默认空清单 + git/file/remote 三类型示例注释),个人数据源只写 user-config.md,本文件随升级覆盖
|
|
33
33
|
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
@@ -36,6 +36,8 @@ disable-model-invocation: false
|
|
|
36
36
|
|
|
37
37
|
本 skill 当前配置版本为 `4`(对应 user-config.md 中的 `CONFIG_VERSION`)。执行时若发现 user-config.md 的 CONFIG_VERSION 与本节声明的当前版本不一致:先将旧 user-config.md 备份为 `user-config.bak-<时间戳>.md`(同目录,绝不删除旧值)→ 按本节「当前版本变更记录」迁移字段(新增字段补默认值、改名字段按映射改写、删除字段的值保留在备份中并在对话提示用户手动确认)→ 更新 CONFIG_VERSION 为当前版本 → 对话中明确告知用户「检测到配置版本从 X 升级到 Y,旧配置已备份至 <路径>」。禁止在未声明版本变更的情况下静默修改配置语义。
|
|
38
38
|
|
|
39
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
40
|
+
|
|
39
41
|
**无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三情形——①旧值不在新值域(如旧模板/主题名已移除)②同名键含义变化(单位/枚举变更)③数据文件 schema 不兼容。三绝不:绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移清单 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话。
|
|
40
42
|
|
|
41
43
|
当前版本变更记录:v1→v2 新增 THEME 字段(默认 tech)。v2→v3 新增 DATA_SOURCES 数据源清单段(默认空清单 + git/file/remote 三类型示例注释)。v3→v4 数据收集配置归位:DATA_SOURCES 清单结构与已填值不变,仅澄清唯一配置落点——数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES(升级保护区,永不覆盖);resources/data-collection.md 收敛为纯机制说明(随升级覆盖,不再内置清单示例)。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 4,DATA_SOURCES 原样保留;若此前误把数据源写在 data-collection.md(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
@@ -34,8 +34,9 @@
|
|
|
34
34
|
## 自定义模板(适配各类岗位)
|
|
35
35
|
- 内置模板为四段式(月度概览/本月关键成果/问题与改进/下月计划),适合开发岗位;其他岗位可自定义模板
|
|
36
36
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如"按三段:本月工作概述/重点成果与经验/下月计划"),当次按该结构生成,不改配置
|
|
37
|
-
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按
|
|
37
|
+
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
38
38
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
39
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
39
40
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
40
41
|
|
|
41
42
|
## 角色定制(我的职业画像)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-forge-hub",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.14",
|
|
4
4
|
"description": "SkillForge (技能锻造坊) — a curated collection of AI craft skills. Install once, then pick skills interactively: daily/weekly/monthly/quarterly/annual reports, meeting minutes, 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"
|
package/prompt-pouch/SKILL.md
CHANGED
|
@@ -41,7 +41,7 @@ disable-model-invocation: false
|
|
|
41
41
|
- 收尾提示启动方式:`cd <DIR> && python3 -m http.server <PORT>`(Windows 无 python3 时 `py -m http.server`),浏览器访问 `http://localhost:<PORT>/prompt-pouch.html`(HTTP 自动读 prompts.json;file:// 直开浏览器会拦截文件读取——已授权目录则刷新自动直读 data/prompts.json,权限需重新确认时点徽标「🔓 恢复数据」一键续权,读不到则回退本地快照/镜像,推荐 HTTP 打开)
|
|
42
42
|
2. **维护**(页面已存在时):读 `<DIR>/<DATA_DIR>/prompts.json` → 按用户意图修改 → 写回(UTF-8、2 空格缩进、保留 version 字段)→ 提醒用户刷新页面
|
|
43
43
|
- **落盘确认**:写回前展示将要落盘的内容(新增/修改的标题、分组、正文摘要,一句话说清改了什么),等用户确认后落盘;用户明确说「直接存/不用确认」则跳过(本次会话有效);写回前重读最新文件合并;落盘完成后对话报告产物位置:页面文件 `<DIR>/prompt-pouch.html`、数据文件 `<DIR>/<DATA_DIR>/prompts.json`、滚动备份目录 `<DIR>/<BACKUP_DIR>/`
|
|
44
|
-
- **写回前备份**:每次修改写回前先复制 `<DIR>/<DATA_DIR>/prompts.json` 为同级 `prompts.json.bak
|
|
44
|
+
- **写回前备份**:每次修改写回前先复制 `<DIR>/<DATA_DIR>/prompts.json` 为同级 `prompts.json.bak-时间戳`(破坏性操作——删除提示词/删除或改动分组/批量整理——必做;简单新增可免但建议保留);**滚动上限**:备份后顺扫同目录 `prompts.json.bak-*` 按时间戳排序只留最近 3 份、超出删旧——密集操作不堆积;页面自动滚动备份只在页面运行时生效,AI 直写不触发,回退保障必须由 AI 自己留档。用户说「回退/恢复锦囊数据」时:列 `<DIR>/<DATA_DIR>/` 下 `.bak-时间戳` 清单(含时间与条目数)让用户选 → 恢复前再备份当前版(双保险)→ 恢复后机器校验 schema → 提醒用户刷新
|
|
45
45
|
- **分类交互**:用户说「添加 XX」但未说分组 → 先按现有分组语义智能匹配(如内容讲周报 → 建议「写作输出 ✍️」并说明理由),匹配到则默认归入、用户可改口换组;匹配不到 → AskUserQuestion 列出全部现有分组(加「新建分组」选项)让用户选;用户指定的分组不存在 → 明确告知该分组不存在,并问是否新建(新建则补 groups 条目:id 16 位数字主键(雪花规则见 data-format.md)、name 中文、icon 一个 emoji)
|
|
46
46
|
- **调优**:用户说「这条不好用,帮我改」→ 读原文 + 用户反馈 → 输出改版对照(旧 → 新)→ 用户确认后写回(updatedAt 更新到时分秒,写回前重读合并 + 先备份)
|
|
47
47
|
- **效果反馈**:用户说「这条好用 / 这条用着顺手」→ 定位条目,把反馈写进可选 `notes` 字段(无则新建;一段使用心得/效果备注,页面详情弹窗「📝 使用心得」只读展示,页面表单不编辑此字段);说「这条不好用」但不想改 → 同样记入 notes 留档
|
|
@@ -79,13 +79,13 @@ disable-model-invocation: false
|
|
|
79
79
|
|
|
80
80
|
1. **立标准**:先 Read 本 skill 目录 `resources/reference.html`——它就是设计标准答案;再 Read `<DIR>/<DATA_DIR>/prompts.json` 确认数据本身合法(schema / group 引用 / order 连续)
|
|
81
81
|
2. **分诊**:数据问题(读不到 / 卡数不对 / 分组错乱)→ 修 prompts.json;页面问题(样式 / 布局 / 交互)→ 对照 reference.html 比对那份 `<DIR>/prompt-pouch.html` 的跑偏处
|
|
82
|
-
3. **修复**:页面跑偏 → 以 reference.html 为准重新复制覆盖 `<DIR>/prompt-pouch.html
|
|
82
|
+
3. **修复**:页面跑偏 → 以 reference.html 为准重新复制覆盖 `<DIR>/prompt-pouch.html`(覆盖前先备份旧页 .bak-时间戳,滚动上限只留最近 3 份;用户数据 prompts.json 一概不动,绝不丢);数据问题 → 重读最新文件后按 data-format.md 修正写回
|
|
83
83
|
4. **自证**:Playwright headless(channel="chrome")→ 起本地服务 → 挂 pageerror 零容忍 → 断言卡片数等于 prompts.json 条数 → 截图 Read 自查
|
|
84
84
|
5. **汇报**:一句话说清问题根因 + 修复了什么 + 附截图;若根因在 reference.html 自身,顺修 reference.html 并在汇报中说明「参考模板已同步修正」
|
|
85
85
|
|
|
86
86
|
## 产物升级(回炉)
|
|
87
87
|
|
|
88
|
-
生成/初始化页面时头部写版本戳 `<meta name="sf-template" content="prompt-pouch@17">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧锦囊/回炉旧页面/旧锦囊换新样式」时:扫 `<DIR>` 下 `prompt-pouch.html` 读版本戳筛出旧版(无版本戳或缺少 `<meta name="pouch-id">` 稳定 ID 的产物视为 v0 最旧版,一并进清单)→ 列清单(文件/旧版本/有无用户数据)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(仅 CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本;深升级(DOM 结构变化)从 reference.html 重建,**必须沿用原页 pouch-id meta 值**(IndexedDB 用户数据按 pouch-id 命名空间存取,换 ID = 数据失联,重建后原收藏/分组照旧读回),`<DIR>/<DATA_DIR>/prompts.json` 数据文件一概不动,先备份旧页 `.bak
|
|
88
|
+
生成/初始化页面时头部写版本戳 `<meta name="sf-template" content="prompt-pouch@17">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧锦囊/回炉旧页面/旧锦囊换新样式」时:扫 `<DIR>` 下 `prompt-pouch.html` 读版本戳筛出旧版(无版本戳或缺少 `<meta name="pouch-id">` 稳定 ID 的产物视为 v0 最旧版,一并进清单)→ 列清单(文件/旧版本/有无用户数据)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(仅 CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本;深升级(DOM 结构变化)从 reference.html 重建,**必须沿用原页 pouch-id meta 值**(IndexedDB 用户数据按 pouch-id 命名空间存取,换 ID = 数据失联,重建后原收藏/分组照旧读回),`<DIR>/<DATA_DIR>/prompts.json` 数据文件一概不动,先备份旧页 `.bak-时间戳`(滚动上限:同目录 `prompt-pouch.html.bak-*` 只留最近 3 份、超出删旧)→ 报告三段式:✅ 已升级清单 / ⚠️ 手改保留说明 / 🟡 失败项原因。模板改动分级:业务改动(板块/段落/标题体系)、数据格式改动(字段/存储结构)、页面改动(样式/布局/交互)任一发生即模板升级,版本戳 +1 并同步 reference.html 与本文档;纯措辞润色不 bump。**每次调用本 skill(生成/初始化/维护/取用/打开)都先顺扫 `<DIR>` 读版本戳**(见步骤 0.1):发现旧版产物按场景分级提示——打开场景主动询问升级(步骤 4),维护/取用场景收尾一句话轻提示(步骤 2/3),初始化生成场景直接按当前模板生成并主动告知;用户拒绝升级后本次会话不再提示,不让用户背触发语。
|
|
89
89
|
|
|
90
90
|
## ⚙️ 配置与自定义主题
|
|
91
91
|
|
|
@@ -27,7 +27,7 @@ disable-model-invocation: false
|
|
|
27
27
|
|
|
28
28
|
## ⚙️ 配置与自定义模板
|
|
29
29
|
|
|
30
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md
|
|
30
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/TEMPLATE/ROLE/CONFIRM)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
31
31
|
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢(生成时头部写 `<meta name="quarterly-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复))、?shot 截图模式与打印隐藏)
|
|
32
32
|
- **DATA_SOURCES**:数据源清单(默认空清单 + git/file/remote 三类型示例注释),个人数据源只写 user-config.md,本文件随升级覆盖
|
|
33
33
|
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
@@ -36,6 +36,8 @@ disable-model-invocation: false
|
|
|
36
36
|
|
|
37
37
|
本 skill 当前配置版本为 `4`(对应 user-config.md 中的 `CONFIG_VERSION`)。执行时若发现 user-config.md 的 CONFIG_VERSION 与本节声明的当前版本不一致:先将旧 user-config.md 备份为 `user-config.bak-<时间戳>.md`(同目录,绝不删除旧值)→ 按本节「当前版本变更记录」迁移字段(新增字段补默认值、改名字段按映射改写、删除字段的值保留在备份中并在对话提示用户手动确认)→ 更新 CONFIG_VERSION 为当前版本 → 对话中明确告知用户「检测到配置版本从 X 升级到 Y,旧配置已备份至 <路径>」。禁止在未声明版本变更的情况下静默修改配置语义。
|
|
38
38
|
|
|
39
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
40
|
+
|
|
39
41
|
**无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三情形——①旧值不在新值域(如旧模板/主题名已移除)②同名键含义变化(单位/枚举变更)③数据文件 schema 不兼容。三绝不:绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移清单 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话。
|
|
40
42
|
|
|
41
43
|
当前版本变更记录:v1→v2 新增 THEME 字段(默认 tech)。v2→v3 新增 DATA_SOURCES 数据源清单段(默认空清单 + git/file/remote 三类型示例注释)。v3→v4 数据收集配置归位:DATA_SOURCES 清单结构与已填值不变,仅澄清唯一配置落点——数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES(升级保护区,永不覆盖);resources/data-collection.md 收敛为纯机制说明(随升级覆盖,不再内置清单示例)。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 4,DATA_SOURCES 原样保留;若此前误把数据源写在 data-collection.md(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
@@ -35,8 +35,9 @@
|
|
|
35
35
|
## 自定义模板(适配各类岗位)
|
|
36
36
|
- 内置模板为四段式(季度概览/季度关键成果/问题与改进/下季度计划),适合开发岗位;其他岗位可自定义模板
|
|
37
37
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如"按三段:本季工作概述/重点成果与经验/下季度计划"),当次按该结构生成,不改配置
|
|
38
|
-
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按
|
|
38
|
+
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
39
39
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
40
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
40
41
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
41
42
|
|
|
42
43
|
## 角色定制(我的职业画像)
|
package/template/SKILL.md
CHANGED
|
@@ -20,7 +20,7 @@ disable-model-invocation: false
|
|
|
20
20
|
|
|
21
21
|
## ⚙️ 配置与自定义
|
|
22
22
|
|
|
23
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(<配置项列表>)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md`
|
|
23
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(<配置项列表>)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md` 对照文件,可按需手动合并新配置点。(含「📝 自定义模板」等用户内容节的技能:此节点名用户内容节为升级保护区——改这里升级永不覆盖、官方内置版更新另存 .upstream 对照;配置版本机制节加模板保全声明「迁移只动 yaml 块字段、用户内容节原样保留」)
|
|
24
24
|
|
|
25
25
|
## 配置版本机制(升级保护)
|
|
26
26
|
|
|
@@ -35,7 +35,7 @@ disable-model-invocation: false
|
|
|
35
35
|
|
|
36
36
|
## 产物升级(回炉)——仅含 HTML 输出的技能保留本节,否则删除
|
|
37
37
|
|
|
38
|
-
生成 HTML 时头部写版本戳 `<meta name="sf-template" content="<skill>@1">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧产物/回炉旧页面/旧XX换新样式」时:扫落盘目录读版本戳筛出旧版(无版本戳或缺少稳定 ID meta 的产物视为 v0 最旧版,一并进清单)→ 列清单(文件/旧版本/手改状态)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(仅 CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本、正文原样保留;深升级(DOM 结构变化)从同目录 md 底稿按当前 reference.html 重建且**沿用原页稳定 ID meta 值**(用户数据类换 ID = 数据失联),先备份旧版 `.bak
|
|
38
|
+
生成 HTML 时头部写版本戳 `<meta name="sf-template" content="<skill>@1">`(模板升级时递增 @N 并同步 reference.html 与本文档)。用户说「升级旧产物/回炉旧页面/旧XX换新样式」时:扫落盘目录读版本戳筛出旧版(无版本戳或缺少稳定 ID meta 的产物视为 v0 最旧版,一并进清单)→ 列清单(文件/旧版本/手改状态)→ AskUserQuestion 选全部或部分 → 逐份升级:浅升级(仅 CSS/JS 变化)对旧页替换 `<style>` 块与交互脚本、正文原样保留;深升级(DOM 结构变化)从同目录 md 底稿按当前 reference.html 重建且**沿用原页稳定 ID meta 值**(用户数据类换 ID = 数据失联),先备份旧版 `.bak-时间戳`(滚动上限:旧页 .bak 只留最近 3 份、超出删旧)→ 报告三段式:✅ 已升级清单 / ⚠️ 手改保留说明 / 🟡 失败项原因。模板改动分级:业务改动(板块/段落/标题体系)、数据格式改动(字段/存储结构)、页面改动(样式/布局/交互)任一发生即模板升级,版本戳 +1 并同步 reference.html 与本文档;纯措辞润色不 bump。每次生成 HTML 时顺扫落盘目录读版本戳:发现旧版产物主动告知「技能模板已升级至 vN,检测到 X 份旧版产物,说『把我旧XX都升级成新样式』即可一键升级」,不让用户背触发语。(工具型产物——固定页面反复打开、数据累积——每次调用本 skill 全时机顺扫,执行流程第 0 步后固定加「版本自检(静默前置,全时机)」步骤:静默比对版本戳、结果只影响提示不影响执行;打开场景主动问——起服务前 AskUserQuestion「A 升级后打开(推荐)/B 直接打开旧版(本次会话不再问)」附更新点清单;维护/取用场景收尾一句话轻提示;拒绝过后本会话静默)
|
|
39
39
|
|
|
40
40
|
## 文档同步自检纪律(维护者必读)
|
|
41
41
|
|
package/weekly-report/SKILL.md
CHANGED
|
@@ -27,7 +27,7 @@ disable-model-invocation: false
|
|
|
27
27
|
|
|
28
28
|
## ⚙️ 配置与自定义模板
|
|
29
29
|
|
|
30
|
-
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md`
|
|
30
|
+
**执行本 skill 前必须先 Read 同目录 `user-config.md`**:默认配置(DISK/FORMATS/DIR/OPEN_HTML/THEME/TEMPLATE/ROLE/CONFIRM/CONFIG_VERSION/DATA_SOURCES)与自定义模板都在该文件中,以它为准。升级技能时 user-config.md 不会被覆盖,你的修改永久保留;官方更新配置时另存 `user-config.upstream.md` 对照文件,可按需手动合并新配置点。**「📝 自定义模板」节是升级保护区**:改这里的内容升级永不覆盖;官方 default 内置模板有更新时另存 `user-config.upstream.md` 对照,不会动你的模板。resources/ 下的内置规则随升级覆盖,模板请只写在「📝 自定义模板」节。
|
|
31
31
|
|
|
32
32
|
- **THEME**:html 页面主题,tech 深蓝科技(默认)/ biz 浅色商务 / mono IDEA 黑亮 / light IDEA 白亮 / warm 温暖渐变;生成时写 `<html data-theme="THEME值">` 定默认,页面右下角换肤坞随点随换(localStorage 记忆(键按页内嵌唯一 ID 隔离、多份产物互不串台、改名/移动目录记忆不丢(生成时头部写 `<meta name="weekly-id" content="<UUID>">`,每次 crypto.randomUUID() 生成标准 UUID v4(8-4-4-4-12 十六进制,禁止手写变体、禁止沿用占位与旧值);落盘写文件前顺扫落盘目录下本技能命名的 html,读各文件 id meta 查重,撞号重掷至不重复))、?shot 截图模式与打印隐藏)
|
|
33
33
|
- **DATA_SOURCES 意图路由**:用户说「把这些 git 地址 / 目录配置到这个 skill」「数据源加一下」「以后数据从 XX 仓库取」→ 默认指配置到 `user-config.md` 的 `DATA_SOURCES` 数据源清单(不是 SKILL.md、不是 disk-and-html.md);「git 地址」给的是 URL 或本地仓库路径、目录给的是本地路径都写进 DATA_SOURCES。用户话术只指向某个特定数据源(如「只算这个仓库」)→ 当次生效,不写配置。意图仍有歧义(如分不清「数据收集配置」与「落盘目录配置」)→ 一句话与用户确认后写入,不猜
|
|
@@ -43,6 +43,8 @@ disable-model-invocation: false
|
|
|
43
43
|
|
|
44
44
|
升级本 skill 时,配置结构如有变化必须同步更新本节的当前版本号与迁移说明;禁止在未声明版本变更的情况下静默修改配置语义。
|
|
45
45
|
|
|
46
|
+
**模板保全(硬规则)**:迁移只动 yaml 块字段,「📝 自定义模板」节原样保留一字不碰——用户改的模板结构绝不因配置升级丢失。
|
|
47
|
+
|
|
46
48
|
**无法迁移项处理**(值域失效 / 语义漂移 / 数据不兼容):三情形——①旧值不在新值域(如旧模板/主题名已移除)②同名键含义变化(单位/枚举变更)③数据文件 schema 不兼容。三绝不:绝不静默(无法迁移项停下问,不猜值)、绝不丢失(旧值永远在 .bak-时间戳)、一次说清(升级报告三段式:⚠️ 版本与备份路径 → ✅ 已自动迁移清单 → 🟡 无法迁移项逐条附原因+影响+建议替代);随后 AskUserQuestion 三选项(A 用建议值 / B 用户给新值 / C 保持旧配置——不更新 CONFIG_VERSION,每次执行再提醒);报告必附回滚一句话;数据文件迁移前先复制 .bak-时间戳,能映射则映射、不能则写兼容层或留备份提示手动整理
|
|
47
49
|
|
|
48
50
|
当前版本变更记录:v1→v2 新增 THEME 字段(默认 tech;发现旧配置时按迁移规则补默认值)。v2→v3 新增 DATA_SOURCES 数据源清单段(默认空清单 + git/file/remote 三类型示例注释;DIR_MAC/DIR_WIN 默认值通用化——已配置用户保留原值不受影响)。v3→v4 数据收集配置归位:DATA_SOURCES 清单结构与已填值不变,仅澄清唯一配置落点——数据源一律只写 user-config.md「默认配置」的 DATA_SOURCES(升级保护区,永不覆盖);resources/data-collection.md 收敛为纯机制说明(随升级覆盖,不再内置清单示例)。迁移动作:备份 user-config.md → CONFIG_VERSION 更新为 4,DATA_SOURCES 原样保留;若此前误把数据源写在 data-collection.md(升级后已被新版覆盖),请手动搬回 user-config.md。
|
|
@@ -36,8 +36,9 @@
|
|
|
36
36
|
## 自定义模板(适配各类岗位)
|
|
37
37
|
- 内置模板为四段式(本周结论 + 本周任务进度/下周计划/风险阻塞点),适合开发岗位;其他岗位可自定义模板
|
|
38
38
|
- 临时换模板:说「这次按 xxx 来」→ 口头描述结构(如"按四段:工作内容/存在问题/下周计划/需要支持"),当次按该结构生成,不改配置
|
|
39
|
-
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按
|
|
39
|
+
- 永久换模板:把顶部配置 TEMPLATE 改为 custom,并按 user-config.md 的「📝 自定义模板」节说明修改段结构,之后默认按新模板生成
|
|
40
40
|
- 说「以后都用这个模板」→ 自动把当前口述的结构写入「📝 自定义模板」节并把 TEMPLATE 改为 custom
|
|
41
|
+
- 升级保护:「📝 自定义模板」节改的内容升级永不覆盖——skill-forge 升级技能只更新 SKILL.md 与 resources/,user-config.md 永远保留你的版本;官方内置模板更新另存 user-config.upstream.md 对照,不影响你的模板
|
|
41
42
|
- 模板优先于纯文字模式的信号词归类:指定了段名后,文字按段名归类填充
|
|
42
43
|
|
|
43
44
|
## 角色定制(我的职业画像)
|