skill-schedule 0.3.15 → 0.3.16

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.
Files changed (43) hide show
  1. package/dist/.gen-inputs.json +8 -0
  2. package/dist/cli/cmd_read.js +48 -1
  3. package/dist/cli/cmd_read.js.map +1 -1
  4. package/dist/cli/keys.d.ts +1 -1
  5. package/dist/cli/keys.d.ts.map +1 -1
  6. package/dist/cli/keys.js +4 -0
  7. package/dist/cli/keys.js.map +1 -1
  8. package/dist/cli/registry.d.ts.map +1 -1
  9. package/dist/cli/registry.js +2 -1
  10. package/dist/cli/registry.js.map +1 -1
  11. package/dist/data/commands.d.ts +12 -0
  12. package/dist/data/commands.d.ts.map +1 -0
  13. package/dist/data/commands.js +7 -0
  14. package/dist/data/commands.js.map +1 -0
  15. package/dist/data/index.d.ts +10 -0
  16. package/dist/data/index.d.ts.map +1 -0
  17. package/dist/data/index.js +10 -0
  18. package/dist/data/index.js.map +1 -0
  19. package/dist/data/query.d.ts +4 -0
  20. package/dist/data/query.d.ts.map +1 -0
  21. package/dist/data/query.js +38 -0
  22. package/dist/data/query.js.map +1 -0
  23. package/dist/data/routes.d.ts +8 -0
  24. package/dist/data/routes.d.ts.map +1 -0
  25. package/dist/data/routes.js +2 -0
  26. package/dist/data/routes.js.map +1 -0
  27. package/dist/data/schema.d.ts +4 -0
  28. package/dist/data/schema.d.ts.map +1 -0
  29. package/dist/data/schema.js +30 -0
  30. package/dist/data/schema.js.map +1 -0
  31. package/dist/data/tables.d.ts +16 -0
  32. package/dist/data/tables.d.ts.map +1 -0
  33. package/dist/data/tables.js +21 -0
  34. package/dist/data/tables.js.map +1 -0
  35. package/dist/help/helpFile.js +2 -2
  36. package/dist/help/helpFile.js.map +1 -1
  37. package/dist/help/scenes/help-assets.d.ts +40 -32
  38. package/dist/help/scenes/help-assets.d.ts.map +1 -1
  39. package/dist/help/scenes/help-assets.js +929 -980
  40. package/dist/help/scenes/help-assets.js.map +1 -1
  41. package/dist/shared/commandSpec.d.ts +6 -0
  42. package/dist/shared/commandSpec.d.ts.map +1 -1
  43. package/package.json +3 -3
@@ -1,18 +1,19 @@
1
1
  /** #201 · 作息管家 HELP 内容资产(机器生成,禁手改词)。
2
2
  *
3
- * 唯一内容源:`.scratch/t198/old-scenarios.json`——旧作息管家 HELP 实物里原样取出的场景数据
4
- * (世代判定与内容骨架见 `docs/skills/skill-schedule/t198-old-help-truth.md`)。
5
- * 本文件由 `scripts/gen-help-assets.mjs` 生成:5 个一级分组/34 条唤醒词/85 条场景,
6
- * 分组、唤醒词、场景的先后次序与源数据一致。
3
+ * 两个源(分工写死在生成器里,可复核):
4
+ * 1. **结构**取自受跟踪 fixture `test/fixtures/t198-old-scenarios.json`(老实物取证,一个字不改):
5
+ * 分组/唤醒词/场景的条数与先后次序、场景 id、待开发状态;
6
+ * 2. **内容**取自 `scripts/help-rewrite-table.mjs`(#975 逐句重写表):标题/唤醒词/prompt 正文/字段表。
7
+ * 本文件由 `scripts/gen-help-assets.mjs` 生成:5 个一级分组/34 条唤醒词/85 条场景。
7
8
  *
8
9
  * 载荷契约:`packages/base-render/src/spec/help.ts` 的 `SCENE_DATA_SCHEMA`——`HELP_GROUPS` 就是
9
- * 共享 help 模板要的 `groups` 参数,分三层:一级分组 → 子功能(=旧唤醒词)→ 场景卡片。
10
+ * 共享 help 模板要的 `groups` 参数,分三层:一级分组 → 子功能(=一条唤醒词)→ 场景卡片。
10
11
  * 该 schema 各层都是 `additionalProperties:false`,多一个键即校验失败,故本文件里的对象字段是闭集。
11
12
  *
12
- * 三处形状转换(生成器里写死、可复核):
13
- * 1. 源 `dimensions`(参数名 → 说明的自由对象)→ 契约 `editable_fields`:`name`/`label` 取维度键
14
- * 原名;`hint` 取维度说明原文(逐字;布尔与数字按其 JSON 字面量文本);`value` 一律空串、
15
- * `required` 一律 false——理由见生成器的 `toField`。
13
+ * 两处派生(生成器里写死、可复核):
14
+ * 1. 唤醒词去序号:老 HELP 的 `#0 记作息`/`T4 类别深挖` → 裸词 `记作息`/`类别深挖`
15
+ * (与路由表 `src/triggers/routes.generated.ts` 的 `phrase` 同形)。重写表里写的就是裸词,
16
+ * 生成器另有「表里的唤醒词必须等于源去序号后的裸词」一条断言把两边钉在一起。
16
17
  * 2. 源 `status` 为空、但唤醒词属「今天没有命令可执行」的 5 条者,标 `【待开发】`:
17
18
  * 源自标待开发 1 条,加上这几条下辖的场景,本文件标 `【待开发】` 的共 11 条。
18
19
  * 3. 三层对齐:源「分组 → 唤醒词 → 场景」直接对到契约「groups → subgroups → scenes」,
@@ -24,15 +25,17 @@
24
25
  * 里面没有类型位,旧实物 HELP 也没有类型徽章——凭空补一个空 `types` 等于自造内容,故不落该字段;
25
26
  * 将来源数据真出现类型位,生成器会因字段闭集断言失败而报错(不会静默丢掉)。要变体徽章另开票。
26
27
  *
27
- * 页面外的两张源数据镜像(**留档,页面不渲染**):契约没有对应位、故不进 `HELP_GROUPS` 的两处源信息,
28
- * 仍按原样镜像在本文件里——源场景的 `result` → `HELP_SCENE_RESULTS`(逐场景一条);
29
- * 源一级分组的 `desc` → `HELP_GROUP_NOTES`(逐分组一条)。保留数据本身的理由:这两张表的源头在
30
- * **未入库**的 `.scratch/t198/old-scenarios.json`,删掉即从仓库里彻底灭失,故留档备查。
31
- * **当前 HELP 页不展示它们**(用户 2026-09-13 裁定:作息 HELP 与其它技能 HELP 同构,不多自带功能模块):
32
- * 页面上的「预期 ·」与一级分组说明一律不出现,两个渲染出口与 `#help-data` 载荷里都取不到这两个键。
33
- * 为什么不塞进载荷:校验器按 `additionalProperties:false` 直接拒收多余键
34
- * (`packages/base-render/src/help.ts` 的字段闭集判定);并进 `editable_fields[].hint` 会让
35
- * 「可编辑参数」这个位变浑浊,且没有维度的场景(`first_use`)无处可放。
28
+ * **不立字段的两种东西**(#975 重写时从老 `dimensions` 里摘掉的,逐条在重写表里具名声明):
29
+ * · 场景条件开关:`true`/`false`/`已有 4 条` 这类**描述当前局面**的值——它们不是用户要填的参数,
30
+ * 进意图句(让 AI 自己看局面),立成字段=逼用户去描述 AI 自己能看出来的事;
31
+ * · 口径层**自算**的值:`duration_minutes` 由起止时刻算,`src/policy/record.ts:99-104` 还会核对
32
+ * 用户给的值——立成字段只会让用户填错就报错。
33
+ * 硬门:老维度名既不在新字段、又没写进重写表的 `drops` ⇒ 生成器 fail-closed(信息不丢失台账);
34
+ * 老维度表本身不全(多数场景缺 date/time_start 这类必填位),故只查「不丢」一个方向,新增不拦。
35
+ *
36
+ * 本文件**不再带**老的两张伴随表(`HELP_SCENE_RESULTS`=场景 `result` 镜像/`HELP_GROUP_NOTES`=
37
+ * 一级分组 `desc` 镜像):用户 2026-09-27 裁定「以后不再有预期这种 UI 显示和装填的内容,和预期相关的
38
+ * 直接删掉」。老文本仍完整躺在 fixture 里,留档由那份取证承担,不在产物里再镜像一遍。
36
39
  *
37
40
  * 计数全部由数据算出(见 `HELP_TOTALS`),本文件不写第二个数;改资产即跟变。
38
41
  * 改词走生成器:`node packages/skill-schedule/scripts/gen-help-assets.mjs`(`--check` 只比对不落盘)。
@@ -46,129 +49,162 @@ export const HELP_GROUPS = [
46
49
  "subgroups": [
47
50
  {
48
51
  "id": "write_1",
49
- "label": "#0 记作息",
52
+ "label": "记作息",
50
53
  "scenes": [
51
54
  {
52
55
  "id": "record_add_single",
53
- "title": "添加单条作息记录",
54
- "wake_word": "#0 记作息",
56
+ "title": "记一条作息",
57
+ "wake_word": "记作息",
55
58
  "status": "",
56
- "prompt_template": "请帮我记一条作息:今天 14:00-15:00 写了 AI 调优代码",
59
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我刚做完一件事,帮我记一条作息。如果我没说全日期或起止时刻,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}\n做了什么:{{activity}}\n分类:{{category}}",
57
60
  "editable_fields": [
58
61
  {
59
- "name": "activity",
60
- "label": "activity",
62
+ "name": "date",
63
+ "label": "日期(选填)",
64
+ "value": "",
65
+ "kind": "date",
66
+ "required": false,
67
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
68
+ },
69
+ {
70
+ "name": "time_start",
71
+ "label": "开始时刻",
61
72
  "value": "",
62
- "hint": "任意活动",
63
- "required": false
73
+ "kind": "time",
74
+ "required": true,
75
+ "hint": "格式 HH:MM,如 14:00"
64
76
  },
65
77
  {
66
- "name": "duration_minutes",
67
- "label": "duration_minutes",
78
+ "name": "time_end",
79
+ "label": "结束时刻",
68
80
  "value": "",
69
- "hint": "1-1440",
70
- "required": false
81
+ "kind": "time",
82
+ "required": true,
83
+ "hint": "格式 HH:MM,如 15:00;须晚于开始时刻"
84
+ },
85
+ {
86
+ "name": "activity",
87
+ "label": "做了什么",
88
+ "value": "",
89
+ "kind": "text",
90
+ "required": true,
91
+ "hint": "如 写 AI 调优代码"
71
92
  },
72
93
  {
73
94
  "name": "category",
74
- "label": "category",
95
+ "label": "分类",
75
96
  "value": "",
76
- "hint": "白名单二级",
77
- "required": false
97
+ "kind": "text",
98
+ "required": true,
99
+ "hint": "白名单里的二级分类,如 工作.AI调优;只写一级会提示细化"
78
100
  }
79
101
  ]
80
102
  },
81
103
  {
82
104
  "id": "record_add_json",
83
- "title": "通过 JSON 文件批量添加",
84
- "wake_word": "#0 记作息",
105
+ "title": "从 JSON 文件导入",
106
+ "wake_word": "记作息",
85
107
  "status": "",
86
- "prompt_template": "请帮我批量导入这些作息数据(从 JSON 文件)",
108
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我要从这个 JSON 文件批量导入作息数据。如果字段没对上,告诉我哪一条差什么。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n文件路径:{{input}}",
87
109
  "editable_fields": [
88
110
  {
89
111
  "name": "input",
90
- "label": "input",
112
+ "label": "文件路径",
91
113
  "value": "",
92
- "hint": "JSON 文件路径",
93
- "required": false
114
+ "kind": "text",
115
+ "required": true,
116
+ "hint": "JSON 文件路径,如 D:\\\\data\\\\records.json"
94
117
  }
95
118
  ]
96
119
  },
97
120
  {
98
121
  "id": "record_add_illegal_category",
99
- "title": "category 不在白名单",
100
- "wake_word": "#0 记作息",
122
+ "title": "分类不在白名单里",
123
+ "wake_word": "记作息",
101
124
  "status": "【待开发】",
102
- "prompt_template": "记一笔:14:00 写了代码",
125
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我要记一条分类不在白名单里的作息,看看会怎么提示我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n开始时刻:{{time_start}}\n做了什么:{{activity}}\n分类:{{category}}",
103
126
  "editable_fields": [
127
+ {
128
+ "name": "time_start",
129
+ "label": "开始时刻",
130
+ "value": "",
131
+ "kind": "time",
132
+ "required": true,
133
+ "hint": "格式 HH:MM,如 14:00"
134
+ },
135
+ {
136
+ "name": "activity",
137
+ "label": "做了什么",
138
+ "value": "",
139
+ "kind": "text",
140
+ "required": true,
141
+ "hint": "如 写代码"
142
+ },
104
143
  {
105
144
  "name": "category",
106
- "label": "category",
145
+ "label": "分类",
107
146
  "value": "",
108
- "hint": "未在白名单的二级",
109
- "required": false
147
+ "kind": "text",
148
+ "required": true,
149
+ "hint": "写一个不在白名单里的二级分类,如 娱乐.游戏"
110
150
  }
111
151
  ]
112
152
  },
113
153
  {
114
154
  "id": "record_add_l1_only",
115
- "title": "只传一级 category",
116
- "wake_word": "#0 记作息",
155
+ "title": "只写到一级分类",
156
+ "wake_word": "记作息",
117
157
  "status": "",
118
- "prompt_template": "请帮我记一条创作类作息",
158
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我只写一级分类,看看会不会提示我细化。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n做了什么:{{activity}}\n分类:{{category}}",
119
159
  "editable_fields": [
160
+ {
161
+ "name": "activity",
162
+ "label": "做了什么",
163
+ "value": "",
164
+ "kind": "text",
165
+ "required": true,
166
+ "hint": "如 写代码"
167
+ },
120
168
  {
121
169
  "name": "category",
122
- "label": "category",
170
+ "label": "分类",
123
171
  "value": "",
124
- "hint": "仅一级(如'创作')",
125
- "required": false
172
+ "kind": "text",
173
+ "required": true,
174
+ "hint": "只写一级,如 创作"
126
175
  }
127
176
  ]
128
177
  },
129
178
  {
130
179
  "id": "record_add_missing_field",
131
- "title": "必填字段缺失",
132
- "wake_word": "#0 记作息",
180
+ "title": "漏说了一样必填的",
181
+ "wake_word": "记作息",
133
182
  "status": "",
134
- "prompt_template": "请帮我记一条作息(用户漏说活动名)",
135
- "editable_fields": [
136
- {
137
- "name": "missing",
138
- "label": "missing",
139
- "value": "",
140
- "hint": "任一必填",
141
- "required": false
142
- }
143
- ]
183
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我记一条作息,但漏说了一样必填的,看看会不会问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
184
+ "editable_fields": []
144
185
  },
145
186
  {
146
187
  "id": "batch_add",
147
- "title": "批量导入作息(JSON 批量写入)",
148
- "wake_word": "#0 记作息",
188
+ "title": "一次导入一批",
189
+ "wake_word": "记作息",
149
190
  "status": "",
150
- "prompt_template": "请帮我批量导入这些作息数据(从 JSON 文件)",
191
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「记作息」。\n\n我要一次导入一批作息数据(没有唯一键,重复执行会重复插入)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n文件路径:{{input}}\n目标日期(选填):{{date}}",
151
192
  "editable_fields": [
152
193
  {
153
194
  "name": "input",
154
- "label": "input",
195
+ "label": "文件路径",
155
196
  "value": "",
156
- "hint": "JSON 文件路径",
157
- "required": false
197
+ "kind": "text",
198
+ "required": true,
199
+ "hint": "JSON 文件路径,如 D:\\\\data\\\\batch.json"
158
200
  },
159
201
  {
160
202
  "name": "date",
161
- "label": "date",
203
+ "label": "目标日期(选填)",
162
204
  "value": "",
163
- "hint": "目标日期(缺省取当日)",
164
- "required": false
165
- },
166
- {
167
- "name": "mode",
168
- "label": "mode",
169
- "value": "",
170
- "hint": "一次性批量写入(无唯一键,不幂等)",
171
- "required": false
205
+ "kind": "date",
206
+ "required": false,
207
+ "hint": "空=今天;格式 YYYY-MM-DD"
172
208
  }
173
209
  ]
174
210
  }
@@ -176,69 +212,73 @@ export const HELP_GROUPS = [
176
212
  },
177
213
  {
178
214
  "id": "write_2",
179
- "label": "#1 准备消息",
215
+ "label": "准备消息",
180
216
  "scenes": [
181
217
  {
182
218
  "id": "prep_default",
183
- "title": "默认游标到当前时间拉取",
184
- "wake_word": "#1 准备消息",
219
+ "title": "从上次游标拉到当前",
220
+ "wake_word": "准备消息",
185
221
  "status": "【待开发】",
186
- "prompt_template": "请帮我准备今天的消息",
187
- "editable_fields": [
188
- {
189
- "name": "range",
190
- "label": "range",
191
- "value": "",
192
- "hint": "默认(游标到当前)",
193
- "required": false
194
- }
195
- ]
222
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「准备消息」。\n\n帮我把消息准备到当前时间(接着上次的位置)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
223
+ "editable_fields": []
196
224
  },
197
225
  {
198
226
  "id": "prep_with_range",
199
- "title": "指定时间区间拉取",
200
- "wake_word": "#1 准备消息",
227
+ "title": "按区间拉取消息",
228
+ "wake_word": "准备消息",
201
229
  "status": "【待开发】",
202
- "prompt_template": "请帮我拉 2026-07-20 00:00 到 2026-07-24 23:59 的消息",
230
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「准备消息」。\n\n我要把某一段时间的聊天消息拉出来备用。起止都按整天算。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n开始日期:{{start_date}}\n结束日期:{{end_date}}",
203
231
  "editable_fields": [
204
232
  {
205
- "name": "range",
206
- "label": "range",
233
+ "name": "start_date",
234
+ "label": "开始日期",
235
+ "value": "",
236
+ "kind": "date",
237
+ "required": true,
238
+ "hint": "格式 YYYY-MM-DD,如 2026-07-20;含当天 00:00"
239
+ },
240
+ {
241
+ "name": "end_date",
242
+ "label": "结束日期",
207
243
  "value": "",
208
- "hint": "YYYY-MM-DD HH:MM ~ YYYY-MM-DD HH:MM",
209
- "required": false
244
+ "kind": "date",
245
+ "required": true,
246
+ "hint": "格式 YYYY-MM-DD,如 2026-07-24;含当天 23:59"
210
247
  }
211
248
  ]
212
249
  },
213
250
  {
214
251
  "id": "prep_pagination",
215
- "title": "翻页获取下一页",
216
- "wake_word": "#1 准备消息",
252
+ "title": "往后翻一页",
253
+ "wake_word": "准备消息",
217
254
  "status": "【待开发】",
218
- "prompt_template": "请帮我翻第 3 页",
255
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「准备消息」。\n\n帮我往后翻页看更早的消息。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n页码:{{page}}",
219
256
  "editable_fields": [
220
257
  {
221
258
  "name": "page",
222
- "label": "page",
259
+ "label": "页码",
223
260
  "value": "",
224
- "hint": "N",
225
- "required": false
261
+ "kind": "number",
262
+ "required": true,
263
+ "hint": "第几页,从 1 开始,如 3",
264
+ "min": 1
226
265
  }
227
266
  ]
228
267
  },
229
268
  {
230
269
  "id": "prep_no_messages",
231
- "title": "区间内无消息",
232
- "wake_word": "#1 准备消息",
270
+ "title": "这一天没有消息",
271
+ "wake_word": "准备消息",
233
272
  "status": "【待开发】",
234
- "prompt_template": "请帮我准备 2026-07-23 的消息",
273
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「准备消息」。\n\n我要拉某一天的消息(那天没有消息,看看会怎么回我)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
235
274
  "editable_fields": [
236
275
  {
237
- "name": "range",
238
- "label": "range",
276
+ "name": "date",
277
+ "label": "日期",
239
278
  "value": "",
240
- "hint": "无消息区间",
241
- "required": false
279
+ "kind": "date",
280
+ "required": true,
281
+ "hint": "格式 YYYY-MM-DD,如 2026-07-23"
242
282
  }
243
283
  ]
244
284
  }
@@ -246,37 +286,39 @@ export const HELP_GROUPS = [
246
286
  },
247
287
  {
248
288
  "id": "write_3",
249
- "label": "#2 同步作息",
289
+ "label": "同步作息",
250
290
  "scenes": [
251
291
  {
252
292
  "id": "sync_full",
253
- "title": "完整同步流程(准备+分析+写入)",
254
- "wake_word": "#2 同步作息",
293
+ "title": "把消息同步成作息记录",
294
+ "wake_word": "同步作息",
255
295
  "status": "【待开发】",
256
- "prompt_template": "请帮我同步今天的消息成作息记录",
296
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「同步作息」。\n\n把我今天的消息同步成作息记录(准备、分析、写入一条龙)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
257
297
  "editable_fields": [
258
298
  {
259
- "name": "range",
260
- "label": "range",
299
+ "name": "date",
300
+ "label": "日期(选填)",
261
301
  "value": "",
262
- "hint": "默认",
263
- "required": false
302
+ "kind": "date",
303
+ "required": false,
304
+ "hint": "空=今天;格式 YYYY-MM-DD"
264
305
  }
265
306
  ]
266
307
  },
267
308
  {
268
309
  "id": "sync_partial_day",
269
- "title": "同步指定日期",
270
- "wake_word": "#2 同步作息",
310
+ "title": "同步指定那一天",
311
+ "wake_word": "同步作息",
271
312
  "status": "【待开发】",
272
- "prompt_template": "请帮我同步 2026-07-22 的消息",
313
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「同步作息」。\n\n把指定那天的消息同步成作息记录。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
273
314
  "editable_fields": [
274
315
  {
275
316
  "name": "date",
276
- "label": "date",
317
+ "label": "日期",
277
318
  "value": "",
278
- "hint": "YYYY-MM-DD",
279
- "required": false
319
+ "kind": "date",
320
+ "required": true,
321
+ "hint": "格式 YYYY-MM-DD,如 2026-07-22"
280
322
  }
281
323
  ]
282
324
  }
@@ -284,39 +326,23 @@ export const HELP_GROUPS = [
284
326
  },
285
327
  {
286
328
  "id": "write_4",
287
- "label": "#3 增量同步",
329
+ "label": "增量同步",
288
330
  "scenes": [
289
331
  {
290
332
  "id": "sync_incremental",
291
- "title": "从游标继续",
292
- "wake_word": "#3 增量同步",
333
+ "title": "接着上次继续同步",
334
+ "wake_word": "增量同步",
293
335
  "status": "【待开发】",
294
- "prompt_template": "请帮我增量同步(接着上次)",
295
- "editable_fields": [
296
- {
297
- "name": "cursor",
298
- "label": "cursor",
299
- "value": "",
300
- "hint": "上次结束位置",
301
- "required": false
302
- }
303
- ]
336
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「增量同步」。\n\n接着上次结束的位置继续增量同步。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
337
+ "editable_fields": []
304
338
  },
305
339
  {
306
340
  "id": "sync_no_cursor",
307
- "title": "首次同步无游标",
308
- "wake_word": "#3 增量同步",
341
+ "title": "第一次同步没有游标",
342
+ "wake_word": "增量同步",
309
343
  "status": "【待开发】",
310
- "prompt_template": "请帮我同步(从未同步过)",
311
- "editable_fields": [
312
- {
313
- "name": "first_time",
314
- "label": "first_time",
315
- "value": "",
316
- "hint": "true",
317
- "required": false
318
- }
319
- ]
344
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「增量同步」。\n\n我从来没同步过,从最早的消息开始同步。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
345
+ "editable_fields": []
320
346
  }
321
347
  ]
322
348
  }
@@ -329,90 +355,73 @@ export const HELP_GROUPS = [
329
355
  "subgroups": [
330
356
  {
331
357
  "id": "query_1",
332
- "label": "#4 今天总结",
358
+ "label": "今天总结",
333
359
  "scenes": [
334
360
  {
335
361
  "id": "summary_full_24h",
336
- "title": "当日满 24h 出综合报告",
337
- "wake_word": "#4 今天总结",
362
+ "title": "一整天记满的回顾",
363
+ "wake_word": "今天总结",
338
364
  "status": "",
339
- "prompt_template": "请给我今天总结",
365
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「今天总结」。\n\n我要今天一整天的作息综合报告,这一天已经记满 24 小时。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
340
366
  "editable_fields": [
341
367
  {
342
368
  "name": "date",
343
- "label": "date",
344
- "value": "",
345
- "hint": "今天",
346
- "required": false
347
- },
348
- {
349
- "name": "complete",
350
- "label": "complete",
369
+ "label": "日期(选填)",
351
370
  "value": "",
352
- "hint": "true",
353
- "required": false
371
+ "kind": "date",
372
+ "required": false,
373
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
354
374
  }
355
375
  ]
356
376
  },
357
377
  {
358
378
  "id": "summary_partial",
359
- "title": "当日未满 24h 出摘要",
360
- "wake_word": "#4 今天总结",
379
+ "title": "还没记完的当天小结",
380
+ "wake_word": "今天总结",
361
381
  "status": "",
362
- "prompt_template": "请给我今天总结(还没记完)",
382
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「今天总结」。\n\n我要今天的作息小结,这一天还没记完,先按已有的记录给。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
363
383
  "editable_fields": [
364
384
  {
365
385
  "name": "date",
366
- "label": "date",
386
+ "label": "日期(选填)",
367
387
  "value": "",
368
- "hint": "今天",
369
- "required": false
370
- },
371
- {
372
- "name": "complete",
373
- "label": "complete",
374
- "value": "",
375
- "hint": "false",
376
- "required": false
388
+ "kind": "date",
389
+ "required": false,
390
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
377
391
  }
378
392
  ]
379
393
  },
380
394
  {
381
395
  "id": "summary_specific_date",
382
- "title": "指定日期总结",
383
- "wake_word": "#4 今天总结",
396
+ "title": "指定某天的总结",
397
+ "wake_word": "今天总结",
384
398
  "status": "",
385
- "prompt_template": "请给我 2026-07-22 的总结",
399
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「今天总结」。\n\n我要某一天的作息总结。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
386
400
  "editable_fields": [
387
401
  {
388
402
  "name": "date",
389
- "label": "date",
403
+ "label": "日期",
390
404
  "value": "",
391
- "hint": "YYYY-MM-DD",
392
- "required": false
405
+ "kind": "date",
406
+ "required": true,
407
+ "hint": "格式 YYYY-MM-DD,如 2026-07-22"
393
408
  }
394
409
  ]
395
410
  },
396
411
  {
397
412
  "id": "summary_no_records",
398
- "title": "指定日期无记录",
399
- "wake_word": "#4 今天总结",
413
+ "title": "那天一条记录都没有",
414
+ "wake_word": "今天总结",
400
415
  "status": "",
401
- "prompt_template": "请给我 2026-01-01 的总结",
416
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「今天总结」。\n\n我要某一天的作息总结,那天一条记录都没有,如实告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
402
417
  "editable_fields": [
403
418
  {
404
419
  "name": "date",
405
- "label": "date",
420
+ "label": "日期",
406
421
  "value": "",
407
- "hint": "YYYY-MM-DD",
408
- "required": false
409
- },
410
- {
411
- "name": "records",
412
- "label": "records",
413
- "value": "",
414
- "hint": "0",
415
- "required": false
422
+ "kind": "date",
423
+ "required": true,
424
+ "hint": "格式 YYYY-MM-DD,如 2026-07-22"
416
425
  }
417
426
  ]
418
427
  }
@@ -420,44 +429,47 @@ export const HELP_GROUPS = [
420
429
  },
421
430
  {
422
431
  "id": "query_2",
423
- "label": "#5 汇总作息",
432
+ "label": "汇总作息",
424
433
  "scenes": [
425
434
  {
426
435
  "id": "summary_range_default",
427
- "title": "日期范围汇总",
428
- "wake_word": "#5 汇总作息",
436
+ "title": "一段日期的作息汇总",
437
+ "wake_word": "汇总作息",
429
438
  "status": "",
430
- "prompt_template": "请给我 7/13~7/19 这一周的汇总",
439
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「汇总作息」。\n\n我要一段日期的作息汇总。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n开始日期:{{start_date}}\n结束日期:{{end_date}}",
431
440
  "editable_fields": [
432
441
  {
433
- "name": "range",
434
- "label": "range",
442
+ "name": "start_date",
443
+ "label": "开始日期",
435
444
  "value": "",
436
- "hint": "YYYY-MM-DD ~ YYYY-MM-DD",
437
- "required": false
445
+ "kind": "date",
446
+ "required": true,
447
+ "hint": "格式 YYYY-MM-DD,如 2026-07-13;含当天"
448
+ },
449
+ {
450
+ "name": "end_date",
451
+ "label": "结束日期",
452
+ "value": "",
453
+ "kind": "date",
454
+ "required": true,
455
+ "hint": "格式 YYYY-MM-DD,如 2026-07-19;不早于开始日期"
438
456
  }
439
457
  ]
440
458
  },
441
459
  {
442
460
  "id": "summary_range_full",
443
- "title": "日期范围文本汇总",
444
- "wake_word": "#5 汇总作息",
461
+ "title": "一段时间的文本汇总",
462
+ "wake_word": "汇总作息",
445
463
  "status": "",
446
- "prompt_template": "请给我 7/13~7/19 的文本汇总",
464
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「汇总作息」。\n\n我要一段时间的作息汇总,直接回文本,不用出页面。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围:{{range}}",
447
465
  "editable_fields": [
448
466
  {
449
467
  "name": "range",
450
- "label": "range",
468
+ "label": "时间范围",
451
469
  "value": "",
452
- "hint": "任意范围",
453
- "required": false
454
- },
455
- {
456
- "name": "format",
457
- "label": "format",
458
- "value": "",
459
- "hint": "text",
460
- "required": false
470
+ "kind": "text",
471
+ "required": true,
472
+ "hint": "接受 本周、上周、上月 这类相对词,也可写起止日期"
461
473
  }
462
474
  ]
463
475
  }
@@ -465,76 +477,73 @@ export const HELP_GROUPS = [
465
477
  },
466
478
  {
467
479
  "id": "query_3",
468
- "label": "#6 查作息",
480
+ "label": "查作息",
469
481
  "scenes": [
470
482
  {
471
483
  "id": "record_list_today",
472
- "title": "今日作息列表",
473
- "wake_word": "#6 查作息",
484
+ "title": "今天做过什么",
485
+ "wake_word": "查作息",
474
486
  "status": "",
475
- "prompt_template": "请帮我看看今天我做了什么",
487
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息」。\n\n我想看看今天我做了什么。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
476
488
  "editable_fields": [
477
489
  {
478
490
  "name": "date",
479
- "label": "date",
491
+ "label": "日期(选填)",
480
492
  "value": "",
481
- "hint": "今天",
482
- "required": false
493
+ "kind": "date",
494
+ "required": false,
495
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
483
496
  }
484
497
  ]
485
498
  },
486
499
  {
487
500
  "id": "record_list_yesterday",
488
- "title": "昨日作息",
489
- "wake_word": "#6 查作息",
501
+ "title": "昨天做过什么",
502
+ "wake_word": "查作息",
490
503
  "status": "",
491
- "prompt_template": "昨天我做了什么",
504
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息」。\n\n我想看看昨天我做了什么。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
492
505
  "editable_fields": [
493
506
  {
494
507
  "name": "date",
495
- "label": "date",
508
+ "label": "日期(选填)",
496
509
  "value": "",
497
- "hint": "昨天",
498
- "required": false
510
+ "kind": "date",
511
+ "required": false,
512
+ "hint": "空=昨天;填了必须是 YYYY-MM-DD"
499
513
  }
500
514
  ]
501
515
  },
502
516
  {
503
517
  "id": "record_list_specific",
504
- "title": "指定日期作息",
505
- "wake_word": "#6 查作息",
518
+ "title": "某一天做过什么",
519
+ "wake_word": "查作息",
506
520
  "status": "",
507
- "prompt_template": "请帮我看看 2026-07-15 我做了什么",
521
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息」。\n\n我想看看某一天我做了什么。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
508
522
  "editable_fields": [
509
523
  {
510
524
  "name": "date",
511
- "label": "date",
525
+ "label": "日期",
512
526
  "value": "",
513
- "hint": "YYYY-MM-DD",
514
- "required": false
527
+ "kind": "date",
528
+ "required": true,
529
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
515
530
  }
516
531
  ]
517
532
  },
518
533
  {
519
534
  "id": "record_list_empty",
520
- "title": "指定日期无记录",
521
- "wake_word": "#6 查作息",
535
+ "title": "那天没有任何记录",
536
+ "wake_word": "查作息",
522
537
  "status": "",
523
- "prompt_template": "请帮我看看 2026-07-01 我做了什么",
538
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息」。\n\n我想看看某一天我做了什么,那天一条记录都没有,如实告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
524
539
  "editable_fields": [
525
540
  {
526
541
  "name": "date",
527
- "label": "date",
528
- "value": "",
529
- "hint": "YYYY-MM-DD",
530
- "required": false
531
- },
532
- {
533
- "name": "records",
534
- "label": "records",
542
+ "label": "日期",
535
543
  "value": "",
536
- "hint": "0",
537
- "required": false
544
+ "kind": "date",
545
+ "required": true,
546
+ "hint": "格式 YYYY-MM-DD,如 2026-07-01"
538
547
  }
539
548
  ]
540
549
  }
@@ -542,60 +551,57 @@ export const HELP_GROUPS = [
542
551
  },
543
552
  {
544
553
  "id": "query_4",
545
- "label": "#7 查作息详情",
554
+ "label": "查作息详情",
546
555
  "scenes": [
547
556
  {
548
557
  "id": "detail_day",
549
- "title": "查看某日所有详情",
550
- "wake_word": "#7 查作息详情",
558
+ "title": "某一天的全部详情",
559
+ "wake_word": "查作息详情",
551
560
  "status": "",
552
- "prompt_template": "请帮我看 7/15 作息详情(含 AI 推理链)",
561
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息详情」。\n\n我要看某一天的全部作息详情,每条记录都展开。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
553
562
  "editable_fields": [
554
563
  {
555
564
  "name": "date",
556
- "label": "date",
565
+ "label": "日期",
557
566
  "value": "",
558
- "hint": "YYYY-MM-DD",
559
- "required": false
567
+ "kind": "date",
568
+ "required": true,
569
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
560
570
  }
561
571
  ]
562
572
  },
563
573
  {
564
574
  "id": "detail_record",
565
- "title": "查看单条详情",
566
- "wake_word": "#7 查作息详情",
575
+ "title": "这条记录的完整详情",
576
+ "wake_word": "查作息详情",
567
577
  "status": "",
568
- "prompt_template": "请帮我看 id=123 这条记录详情",
578
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息详情」。\n\n我要看某一条记录的完整详情。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{record_id}}",
569
579
  "editable_fields": [
570
580
  {
571
581
  "name": "record_id",
572
- "label": "record_id",
582
+ "label": "记录 ID",
573
583
  "value": "",
574
- "hint": "N",
575
- "required": false
584
+ "kind": "number",
585
+ "required": true,
586
+ "hint": "纯数字,如 123;从查作息或时间轴里取",
587
+ "min": 1
576
588
  }
577
589
  ]
578
590
  },
579
591
  {
580
592
  "id": "detail_with_reasoning",
581
- "title": "查看 AI 推理链",
582
- "wake_word": "#7 查作息详情",
593
+ "title": "某一天的分类依据",
594
+ "wake_word": "查作息详情",
583
595
  "status": "",
584
- "prompt_template": "请帮我看 7/15 的 AI 是怎么分类的",
596
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息详情」。\n\n我要看某一天的作息是怎么被归类的,把 AI 的判断依据一起给我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
585
597
  "editable_fields": [
586
598
  {
587
599
  "name": "date",
588
- "label": "date",
600
+ "label": "日期",
589
601
  "value": "",
590
- "hint": "YYYY-MM-DD",
591
- "required": false
592
- },
593
- {
594
- "name": "include_reasoning",
595
- "label": "include_reasoning",
596
- "value": "",
597
- "hint": "true",
598
- "required": false
602
+ "kind": "date",
603
+ "required": true,
604
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
599
605
  }
600
606
  ]
601
607
  }
@@ -603,37 +609,39 @@ export const HELP_GROUPS = [
603
609
  },
604
610
  {
605
611
  "id": "query_5",
606
- "label": "#8 查作息时间轴",
612
+ "label": "查作息时间轴",
607
613
  "scenes": [
608
614
  {
609
615
  "id": "timeline_today",
610
- "title": "今日时间轴",
611
- "wake_word": "#8 查作息时间轴",
616
+ "title": "今天的时间轴",
617
+ "wake_word": "查作息时间轴",
612
618
  "status": "",
613
- "prompt_template": "今天时间轴看一下",
619
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息时间轴」。\n\n我要看今天的 24 小时时间轴。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
614
620
  "editable_fields": [
615
621
  {
616
622
  "name": "date",
617
- "label": "date",
623
+ "label": "日期(选填)",
618
624
  "value": "",
619
- "hint": "今天",
620
- "required": false
625
+ "kind": "date",
626
+ "required": false,
627
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
621
628
  }
622
629
  ]
623
630
  },
624
631
  {
625
632
  "id": "timeline_specific",
626
- "title": "指定日期时间轴",
627
- "wake_word": "#8 查作息时间轴",
633
+ "title": "某一天的时间轴",
634
+ "wake_word": "查作息时间轴",
628
635
  "status": "",
629
- "prompt_template": "请帮我看 7/15 的 24h 时间轴",
636
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息时间轴」。\n\n我要看某一天的 24 小时时间轴。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
630
637
  "editable_fields": [
631
638
  {
632
639
  "name": "date",
633
- "label": "date",
640
+ "label": "日期",
634
641
  "value": "",
635
- "hint": "YYYY-MM-DD",
636
- "required": false
642
+ "kind": "date",
643
+ "required": true,
644
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
637
645
  }
638
646
  ]
639
647
  }
@@ -641,60 +649,55 @@ export const HELP_GROUPS = [
641
649
  },
642
650
  {
643
651
  "id": "query_6",
644
- "label": "#9 查作息范围",
652
+ "label": "查作息范围",
645
653
  "scenes": [
646
654
  {
647
655
  "id": "range_default",
648
- "title": "日期范围统计",
649
- "wake_word": "#9 查作息范围",
656
+ "title": "一段日期的统计",
657
+ "wake_word": "查作息范围",
650
658
  "status": "",
651
- "prompt_template": "请帮我看 7/13~7/19 这一周",
659
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息范围」。\n\n我要看一段日期的作息统计。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n开始日期:{{start_date}}\n结束日期:{{end_date}}",
652
660
  "editable_fields": [
653
661
  {
654
- "name": "range",
655
- "label": "range",
662
+ "name": "start_date",
663
+ "label": "开始日期",
656
664
  "value": "",
657
- "hint": "YYYY-MM-DD ~ YYYY-MM-DD",
658
- "required": false
665
+ "kind": "date",
666
+ "required": true,
667
+ "hint": "格式 YYYY-MM-DD,如 2026-07-13;含当天"
668
+ },
669
+ {
670
+ "name": "end_date",
671
+ "label": "结束日期",
672
+ "value": "",
673
+ "kind": "date",
674
+ "required": true,
675
+ "hint": "格式 YYYY-MM-DD,如 2026-07-19;不早于开始日期"
659
676
  }
660
677
  ]
661
678
  },
662
679
  {
663
680
  "id": "range_this_week",
664
- "title": "本周范围",
665
- "wake_word": "#9 查作息范围",
681
+ "title": "本周的统计",
682
+ "wake_word": "查作息范围",
666
683
  "status": "",
667
- "prompt_template": "请帮我看本周",
668
- "editable_fields": [
669
- {
670
- "name": "range",
671
- "label": "range",
672
- "value": "",
673
- "hint": "本周(自动计算)",
674
- "required": false
675
- }
676
- ]
684
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息范围」。\n\n我要看本周的作息统计,就按周一到周日这一整周。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
685
+ "editable_fields": []
677
686
  },
678
687
  {
679
688
  "id": "range_text",
680
- "title": "范围文本降级",
681
- "wake_word": "#9 查作息范围",
689
+ "title": "统计直接给文本",
690
+ "wake_word": "查作息范围",
682
691
  "status": "",
683
- "prompt_template": "请帮我看本周(直接给文本)",
692
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息范围」。\n\n我要看某一段时间的作息统计,直接回文本,不用出页面。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围:{{range}}",
684
693
  "editable_fields": [
685
694
  {
686
695
  "name": "range",
687
- "label": "range",
696
+ "label": "时间范围",
688
697
  "value": "",
689
- "hint": "任意",
690
- "required": false
691
- },
692
- {
693
- "name": "format",
694
- "label": "format",
695
- "value": "",
696
- "hint": "text",
697
- "required": false
698
+ "kind": "text",
699
+ "required": true,
700
+ "hint": "接受 本周、上周、上月 这类相对词,也可写起止日期"
698
701
  }
699
702
  ]
700
703
  }
@@ -702,135 +705,128 @@ export const HELP_GROUPS = [
702
705
  },
703
706
  {
704
707
  "id": "query_7",
705
- "label": "#11 查作息状态",
708
+ "label": "查作息状态",
706
709
  "scenes": [
707
710
  {
708
711
  "id": "status_default",
709
- "title": "查整体状态",
710
- "wake_word": "#11 查作息状态",
712
+ "title": "作息库整体怎么样",
713
+ "wake_word": "查作息状态",
711
714
  "status": "",
712
- "prompt_template": "作息状态怎么样",
713
- "editable_fields": [
714
- {
715
- "name": "scope",
716
- "label": "scope",
717
- "value": "",
718
- "hint": "all",
719
- "required": false
720
- }
721
- ]
715
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查作息状态」。\n\n我要看作息库整体的状态,一共记了多少、最近记到哪一天。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
716
+ "editable_fields": []
722
717
  }
723
718
  ]
724
719
  },
725
720
  {
726
721
  "id": "query_8",
727
- "label": "#12 查日程",
722
+ "label": "查日程",
728
723
  "scenes": [
729
724
  {
730
725
  "id": "list_events_today",
731
- "title": "今日日程",
732
- "wake_word": "#12 查日程",
726
+ "title": "今天的日程",
727
+ "wake_word": "查日程",
733
728
  "status": "",
734
- "prompt_template": "请帮我看今天的日程",
729
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查日程」。\n\n我要看今天的日程安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
735
730
  "editable_fields": [
736
731
  {
737
732
  "name": "date",
738
- "label": "date",
733
+ "label": "日期(选填)",
739
734
  "value": "",
740
- "hint": "今天",
741
- "required": false
735
+ "kind": "date",
736
+ "required": false,
737
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
742
738
  }
743
739
  ]
744
740
  },
745
741
  {
746
742
  "id": "list_events_specific",
747
- "title": "指定日期日程",
748
- "wake_word": "#12 查日程",
743
+ "title": "某一天的日程",
744
+ "wake_word": "查日程",
749
745
  "status": "",
750
- "prompt_template": "请帮我看 7/15 的日程",
746
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查日程」。\n\n我要看某一天的日程安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
751
747
  "editable_fields": [
752
748
  {
753
749
  "name": "date",
754
- "label": "date",
750
+ "label": "日期",
755
751
  "value": "",
756
- "hint": "YYYY-MM-DD",
757
- "required": false
752
+ "kind": "date",
753
+ "required": true,
754
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
758
755
  }
759
756
  ]
760
757
  },
761
758
  {
762
759
  "id": "search_event_title",
763
- "title": "按标题搜索日程",
764
- "wake_word": "#12 查日程",
760
+ "title": "按标题找一条日程",
761
+ "wake_word": "查日程",
765
762
  "status": "",
766
- "prompt_template": "今天有健身吗",
763
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查日程」。\n\n我想在今天里找找有没有某件事的安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}\n标题关键词:{{title}}",
767
764
  "editable_fields": [
768
765
  {
769
766
  "name": "date",
770
- "label": "date",
767
+ "label": "日期(选填)",
771
768
  "value": "",
772
- "hint": "今天",
773
- "required": false
769
+ "kind": "date",
770
+ "required": false,
771
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
774
772
  },
775
773
  {
776
774
  "name": "title",
777
- "label": "title",
775
+ "label": "标题关键词",
778
776
  "value": "",
779
- "hint": "健身",
780
- "required": false
777
+ "kind": "text",
778
+ "required": true,
779
+ "hint": "如 健身"
781
780
  }
782
781
  ]
783
782
  },
784
783
  {
785
784
  "id": "search_event_triplet",
786
- "title": "按时间三元组查重",
787
- "wake_word": "#12 查日程",
785
+ "title": "某个时段有没有安排",
786
+ "wake_word": "查日程",
788
787
  "status": "",
789
- "prompt_template": "今天 17:00-18:00 有什么安排",
788
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查日程」。\n\n我想看看今天某个时段里有没有安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}",
790
789
  "editable_fields": [
791
790
  {
792
791
  "name": "date",
793
- "label": "date",
792
+ "label": "日期(选填)",
794
793
  "value": "",
795
- "hint": "今天",
796
- "required": false
794
+ "kind": "date",
795
+ "required": false,
796
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
797
797
  },
798
798
  {
799
799
  "name": "time_start",
800
- "label": "time_start",
800
+ "label": "开始时刻",
801
801
  "value": "",
802
- "hint": "HH:MM",
803
- "required": false
802
+ "kind": "time",
803
+ "required": true,
804
+ "hint": "格式 HH:MM,如 17:00"
804
805
  },
805
806
  {
806
807
  "name": "time_end",
807
- "label": "time_end",
808
+ "label": "结束时刻",
808
809
  "value": "",
809
- "hint": "HH:MM",
810
- "required": false
810
+ "kind": "time",
811
+ "required": true,
812
+ "hint": "格式 HH:MM,如 18:00;须晚于开始时刻"
811
813
  }
812
814
  ]
813
815
  },
814
816
  {
815
817
  "id": "list_events_inactive",
816
- "title": "查已软删事件",
817
- "wake_word": "#12 查日程",
818
+ "title": "今天删掉了哪些日程",
819
+ "wake_word": "查日程",
818
820
  "status": "",
819
- "prompt_template": "今天被删的日程有哪些",
821
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查日程」。\n\n我要看今天有哪些日程被删掉了,删掉的那些也要一并列出来。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
820
822
  "editable_fields": [
821
823
  {
822
824
  "name": "date",
823
- "label": "date",
825
+ "label": "日期(选填)",
824
826
  "value": "",
825
- "hint": "今天",
826
- "required": false
827
- },
828
- {
829
- "name": "include_inactive",
830
- "label": "include_inactive",
831
- "value": "",
832
- "hint": "true",
833
- "required": false
827
+ "kind": "date",
828
+ "required": false,
829
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
834
830
  }
835
831
  ]
836
832
  }
@@ -838,21 +834,22 @@ export const HELP_GROUPS = [
838
834
  },
839
835
  {
840
836
  "id": "query_9",
841
- "label": "#15 24h 概览",
837
+ "label": "24h 概览",
842
838
  "scenes": [
843
839
  {
844
840
  "id": "query_plans_today",
845
- "title": "今日 24h 概览",
846
- "wake_word": "#15 24h 概览",
841
+ "title": "今天一整天的安排",
842
+ "wake_word": "24h 概览",
847
843
  "status": "",
848
- "prompt_template": "今天 24h 安排概览",
844
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「24h 概览」。\n\n我要看今天 24 小时的整体安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
849
845
  "editable_fields": [
850
846
  {
851
847
  "name": "date",
852
- "label": "date",
848
+ "label": "日期(选填)",
853
849
  "value": "",
854
- "hint": "今天",
855
- "required": false
850
+ "kind": "date",
851
+ "required": false,
852
+ "hint": "空=今天;填了必须是 YYYY-MM-DD"
856
853
  }
857
854
  ]
858
855
  }
@@ -860,21 +857,22 @@ export const HELP_GROUPS = [
860
857
  },
861
858
  {
862
859
  "id": "query_10",
863
- "label": "#16 查多日计划",
860
+ "label": "查多日计划",
864
861
  "scenes": [
865
862
  {
866
863
  "id": "query_plans_multi",
867
- "title": "多日简版",
868
- "wake_word": "#16 查多日计划",
864
+ "title": "连着几天的计划",
865
+ "wake_word": "查多日计划",
869
866
  "status": "",
870
- "prompt_template": "请帮我看 7/13、7/14、7/15 三天计划",
867
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「查多日计划」。\n\n我要看连着几天的计划安排。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(可多天):{{dates}}",
871
868
  "editable_fields": [
872
869
  {
873
870
  "name": "dates",
874
- "label": "dates",
871
+ "label": "日期(可多天)",
875
872
  "value": "",
876
- "hint": "YYYY-MM-DD,YYYY-MM-DD,...",
877
- "required": false
873
+ "kind": "text",
874
+ "required": true,
875
+ "hint": "格式 YYYY-MM-DD,多天用逗号分隔,如 2026-07-13,2026-07-14,2026-07-15"
878
876
  }
879
877
  ]
880
878
  }
@@ -882,21 +880,23 @@ export const HELP_GROUPS = [
882
880
  },
883
881
  {
884
882
  "id": "query_11",
885
- "label": "#23 按 ID 查记录",
883
+ "label": "按 ID 查记录",
886
884
  "scenes": [
887
885
  {
888
886
  "id": "get_record_basic",
889
- "title": "按 ID 查单条",
890
- "wake_word": "#23 按 ID 查记录",
887
+ "title": "按记录 ID 定位一条",
888
+ "wake_word": "按 ID 查记录",
891
889
  "status": "",
892
- "prompt_template": "帮我查 id=123 这条记录",
890
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「按 ID 查记录」。\n\n我要看某一条记录的详情,靠记录 ID 定位。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{record_id}}",
893
891
  "editable_fields": [
894
892
  {
895
893
  "name": "record_id",
896
- "label": "record_id",
894
+ "label": "记录 ID",
897
895
  "value": "",
898
- "hint": "N",
899
- "required": false
896
+ "kind": "number",
897
+ "required": true,
898
+ "hint": "纯数字,如 123;从查作息或时间轴里取",
899
+ "min": 1
900
900
  }
901
901
  ]
902
902
  }
@@ -908,17 +908,18 @@ export const HELP_GROUPS = [
908
908
  "scenes": [
909
909
  {
910
910
  "id": "week_view",
911
- "title": "周视图(7×24 全分类总览)",
911
+ "title": "一周七天的作息总览",
912
912
  "wake_word": "周视图",
913
913
  "status": "【待开发】",
914
- "prompt_template": "请帮我看看这一周的作息总览(唤醒词:周视图)",
914
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「周视图」。\n\n我要看这一周从周一到周日的作息总览。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n锚点日期(选填):{{date}}",
915
915
  "editable_fields": [
916
916
  {
917
- "name": "week",
918
- "label": "week",
917
+ "name": "date",
918
+ "label": "锚点日期(选填)",
919
919
  "value": "",
920
- "hint": "目标周(默认本周;锚点日期 YYYY-MM-DD)",
921
- "required": false
920
+ "kind": "date",
921
+ "required": false,
922
+ "hint": "空=本周;填这一周里的任意一天,格式 YYYY-MM-DD"
922
923
  }
923
924
  ]
924
925
  }
@@ -933,102 +934,144 @@ export const HELP_GROUPS = [
933
934
  "subgroups": [
934
935
  {
935
936
  "id": "plan_1",
936
- "label": "#13 补计划",
937
+ "label": "补计划",
937
938
  "scenes": [
938
939
  {
939
940
  "id": "ensure_event_basic",
940
- "title": "补一条计划(基础)",
941
- "wake_word": "#13 补计划",
941
+ "title": "给某一天补一条安排",
942
+ "wake_word": "补计划",
942
943
  "status": "",
943
- "prompt_template": "帮我补一条计划到后天 17:00-18:00 健身",
944
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「补计划」。\n\n我要往某一天的计划里补一条安排。如果我没说全日期、起止时刻或做什么,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}\n做什么:{{title}}",
944
945
  "editable_fields": [
945
946
  {
946
947
  "name": "date",
947
- "label": "date",
948
+ "label": "日期",
948
949
  "value": "",
949
- "hint": "后天",
950
- "required": false
950
+ "kind": "date",
951
+ "required": true,
952
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天/后天"
951
953
  },
952
954
  {
953
955
  "name": "time_start",
954
- "label": "time_start",
956
+ "label": "开始时刻",
955
957
  "value": "",
956
- "hint": "HH:MM",
957
- "required": false
958
+ "kind": "time",
959
+ "required": true,
960
+ "hint": "格式 HH:MM,如 17:00"
958
961
  },
959
962
  {
960
963
  "name": "time_end",
961
- "label": "time_end",
964
+ "label": "结束时刻",
962
965
  "value": "",
963
- "hint": "HH:MM",
964
- "required": false
966
+ "kind": "time",
967
+ "required": true,
968
+ "hint": "格式 HH:MM,如 18:00;须晚于开始时刻"
965
969
  },
966
970
  {
967
971
  "name": "title",
968
- "label": "title",
972
+ "label": "做什么",
969
973
  "value": "",
970
- "hint": "X",
971
- "required": false
974
+ "kind": "text",
975
+ "required": true,
976
+ "hint": "如 健身"
972
977
  }
973
978
  ]
974
979
  },
975
980
  {
976
981
  "id": "ensure_event_idempotent",
977
- "title": "同时间重复(幂等)",
978
- "wake_word": "#13 补计划",
982
+ "title": "同一时段重复补也不新建",
983
+ "wake_word": "补计划",
979
984
  "status": "",
980
- "prompt_template": "再补一条 17:00-18:00 的健身(已有)",
985
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「补计划」。\n\n我要在同一天的同一时段再补一遍,这个时段之前已经排过了;已经有了就照原来的留着,别再建一条。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}\n做什么:{{title}}",
981
986
  "editable_fields": [
982
987
  {
983
988
  "name": "date",
984
- "label": "date",
989
+ "label": "日期",
985
990
  "value": "",
986
- "hint": "今天",
987
- "required": false
991
+ "kind": "date",
992
+ "required": true,
993
+ "hint": "格式 YYYY-MM-DD,如 2026-09-27;也可写 今天"
988
994
  },
989
995
  {
990
996
  "name": "time_start",
991
- "label": "time_start",
997
+ "label": "开始时刻",
992
998
  "value": "",
993
- "hint": "HH:MM",
994
- "required": false
999
+ "kind": "time",
1000
+ "required": true,
1001
+ "hint": "格式 HH:MM,如 17:00"
995
1002
  },
996
1003
  {
997
1004
  "name": "time_end",
998
- "label": "time_end",
1005
+ "label": "结束时刻",
1006
+ "value": "",
1007
+ "kind": "time",
1008
+ "required": true,
1009
+ "hint": "格式 HH:MM,如 18:00;须晚于开始时刻"
1010
+ },
1011
+ {
1012
+ "name": "title",
1013
+ "label": "做什么",
999
1014
  "value": "",
1000
- "hint": "HH:MM",
1001
- "required": false
1015
+ "kind": "text",
1016
+ "required": true,
1017
+ "hint": "如 健身"
1002
1018
  }
1003
1019
  ]
1004
1020
  },
1005
1021
  {
1006
1022
  "id": "ensure_event_with_notes",
1007
- "title": "补计划含备注",
1008
- "wake_word": "#13 补计划",
1023
+ "title": "带细节与分类的一条安排",
1024
+ "wake_word": "补计划",
1009
1025
  "status": "",
1010
- "prompt_template": "帮我补明天 17:00-18:00 健身(练背+有氧)",
1026
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「补计划」。\n\n我要补一条带细节的安排,顺便把它归到某个分类里。如果我没说全日期、起止时刻或做什么,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}\n做什么:{{title}}\n细节(选填):{{notes}}\n分类:{{category}}",
1011
1027
  "editable_fields": [
1012
1028
  {
1013
1029
  "name": "date",
1014
- "label": "date",
1030
+ "label": "日期",
1015
1031
  "value": "",
1016
- "hint": "明天",
1017
- "required": false
1032
+ "kind": "date",
1033
+ "required": true,
1034
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1035
+ },
1036
+ {
1037
+ "name": "time_start",
1038
+ "label": "开始时刻",
1039
+ "value": "",
1040
+ "kind": "time",
1041
+ "required": true,
1042
+ "hint": "格式 HH:MM,如 17:00"
1043
+ },
1044
+ {
1045
+ "name": "time_end",
1046
+ "label": "结束时刻",
1047
+ "value": "",
1048
+ "kind": "time",
1049
+ "required": true,
1050
+ "hint": "格式 HH:MM,如 18:00;须晚于开始时刻"
1051
+ },
1052
+ {
1053
+ "name": "title",
1054
+ "label": "做什么",
1055
+ "value": "",
1056
+ "kind": "text",
1057
+ "required": true,
1058
+ "hint": "如 健身"
1018
1059
  },
1019
1060
  {
1020
1061
  "name": "notes",
1021
- "label": "notes",
1062
+ "label": "细节(选填)",
1022
1063
  "value": "",
1023
- "hint": "细节",
1024
- "required": false
1064
+ "kind": "text",
1065
+ "required": false,
1066
+ "hint": "这条安排的补充说明,如 练背+有氧"
1025
1067
  },
1026
1068
  {
1027
1069
  "name": "category",
1028
- "label": "category",
1070
+ "label": "分类",
1029
1071
  "value": "",
1030
- "hint": "健康.健身",
1031
- "required": false
1072
+ "kind": "text",
1073
+ "required": true,
1074
+ "hint": "白名单里的二级分类,如 健康.健身;只写一级会提示细化"
1032
1075
  }
1033
1076
  ]
1034
1077
  }
@@ -1036,90 +1079,73 @@ export const HELP_GROUPS = [
1036
1079
  },
1037
1080
  {
1038
1081
  "id": "plan_2",
1039
- "label": "#14 复盘",
1082
+ "label": "复盘",
1040
1083
  "scenes": [
1041
1084
  {
1042
1085
  "id": "review_today_normal",
1043
- "title": "今日复盘(标准流程)",
1044
- "wake_word": "#14 复盘",
1086
+ "title": "把这一天的执行情况逐条对一遍",
1087
+ "wake_word": "复盘",
1045
1088
  "status": "",
1046
- "prompt_template": "请帮我复盘今天",
1089
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘」。\n\n我要把这一天的计划逐条对一下执行情况,一条条标出完成状态。先给我看这一天的排布,确认后再写入。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
1047
1090
  "editable_fields": [
1048
1091
  {
1049
1092
  "name": "date",
1050
- "label": "date",
1093
+ "label": "日期(选填)",
1051
1094
  "value": "",
1052
- "hint": "今天",
1053
- "required": false
1095
+ "kind": "date",
1096
+ "required": false,
1097
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
1054
1098
  }
1055
1099
  ]
1056
1100
  },
1057
1101
  {
1058
1102
  "id": "review_today_all_done",
1059
- "title": "今日已全部复盘",
1060
- "wake_word": "#14 复盘",
1103
+ "title": "都标过完成之后再看一遍",
1104
+ "wake_word": "复盘",
1061
1105
  "status": "",
1062
- "prompt_template": "再帮我复盘一下今天",
1106
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘」。\n\n这一天的计划我全都标过完成了,别再让我逐条重标,直接说这一天的结论。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
1063
1107
  "editable_fields": [
1064
1108
  {
1065
1109
  "name": "date",
1066
- "label": "date",
1067
- "value": "",
1068
- "hint": "今天",
1069
- "required": false
1070
- },
1071
- {
1072
- "name": "completion_all",
1073
- "label": "completion_all",
1110
+ "label": "日期(选填)",
1074
1111
  "value": "",
1075
- "hint": "true",
1076
- "required": false
1112
+ "kind": "date",
1113
+ "required": false,
1114
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
1077
1115
  }
1078
1116
  ]
1079
1117
  },
1080
1118
  {
1081
1119
  "id": "review_no_events",
1082
- "title": "该日无活跃事件",
1083
- "wake_word": "#14 复盘",
1120
+ "title": "这一天没有计划时怎么看",
1121
+ "wake_word": "复盘",
1084
1122
  "status": "",
1085
- "prompt_template": "请帮我复盘 2026-07-01",
1123
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘」。\n\n我要看的那一天没有任何计划,别报成故障,告诉我这一天没得对就行。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1086
1124
  "editable_fields": [
1087
1125
  {
1088
1126
  "name": "date",
1089
- "label": "date",
1090
- "value": "",
1091
- "hint": "YYYY-MM-DD",
1092
- "required": false
1093
- },
1094
- {
1095
- "name": "events_count",
1096
- "label": "events_count",
1127
+ "label": "日期",
1097
1128
  "value": "",
1098
- "hint": "0",
1099
- "required": false
1129
+ "kind": "date",
1130
+ "required": true,
1131
+ "hint": "格式 YYYY-MM-DD,如 2026-07-01"
1100
1132
  }
1101
1133
  ]
1102
1134
  },
1103
1135
  {
1104
1136
  "id": "review_with_memo_sync",
1105
- "title": "复盘前先同步备忘录",
1106
- "wake_word": "#14 复盘",
1137
+ "title": "先对备忘录打卡数据再逐条对",
1138
+ "wake_word": "复盘",
1107
1139
  "status": "",
1108
- "prompt_template": "复盘前先对一下今天的打卡数据",
1140
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘」。\n\n我要先把备忘录里这一天的打卡数据对一遍,再逐条对计划的执行情况。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
1109
1141
  "editable_fields": [
1110
1142
  {
1111
1143
  "name": "date",
1112
- "label": "date",
1113
- "value": "",
1114
- "hint": "今天",
1115
- "required": false
1116
- },
1117
- {
1118
- "name": "memo_cli",
1119
- "label": "memo_cli",
1144
+ "label": "日期(选填)",
1120
1145
  "value": "",
1121
- "hint": "true",
1122
- "required": false
1146
+ "kind": "date",
1147
+ "required": false,
1148
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
1123
1149
  }
1124
1150
  ]
1125
1151
  }
@@ -1127,249 +1153,191 @@ export const HELP_GROUPS = [
1127
1153
  },
1128
1154
  {
1129
1155
  "id": "plan_3",
1130
- "label": "#17 商量计划",
1156
+ "label": "商量计划",
1131
1157
  "scenes": [
1132
1158
  {
1133
1159
  "id": "plan_discuss_tomorrow",
1134
- "title": "商量明天计划",
1135
- "wake_word": "#17 商量计划",
1160
+ "title": "商量某一天怎么安排",
1161
+ "wake_word": "商量计划",
1136
1162
  "status": "",
1137
- "prompt_template": "商量一下明天的计划",
1163
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n我想商量某一天怎么安排,先跟我把候选排出来,我看过再落库。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1138
1164
  "editable_fields": [
1139
1165
  {
1140
1166
  "name": "date",
1141
- "label": "date",
1167
+ "label": "日期",
1142
1168
  "value": "",
1143
- "hint": "明天",
1144
- "required": false
1169
+ "kind": "date",
1170
+ "required": true,
1171
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天/后天"
1145
1172
  }
1146
1173
  ]
1147
1174
  },
1148
1175
  {
1149
1176
  "id": "plan_with_locked",
1150
- "title": "商量时已有部分事件",
1151
- "wake_word": "#17 商量计划",
1177
+ "title": "已有几条锁定时把空档填起来",
1178
+ "wake_word": "商量计划",
1152
1179
  "status": "",
1153
- "prompt_template": "帮我重新商量明天的计划(已有 4 条)",
1180
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n这一天我已经排了几条,就在这几条之外把空档填起来,先跟我把候选排出来,我看过再落库。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1154
1181
  "editable_fields": [
1155
1182
  {
1156
1183
  "name": "date",
1157
- "label": "date",
1184
+ "label": "日期",
1158
1185
  "value": "",
1159
- "hint": "明天",
1160
- "required": false
1161
- },
1162
- {
1163
- "name": "existing_events",
1164
- "label": "existing_events",
1165
- "value": "",
1166
- "hint": "4",
1167
- "required": false
1186
+ "kind": "date",
1187
+ "required": true,
1188
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1168
1189
  }
1169
1190
  ]
1170
1191
  },
1171
1192
  {
1172
1193
  "id": "plan_with_wish",
1173
- "title": "商量时拉心愿清单",
1174
- "wake_word": "#17 商量计划",
1194
+ "title": "把心愿排进这一天",
1195
+ "wake_word": "商量计划",
1175
1196
  "status": "",
1176
- "prompt_template": "商量明天(把心愿 X 安排进去)",
1197
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n我想把心愿清单里的事排进这一天,先把心愿列出来跟我一起挑,看过候选再定。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n要排的心愿(选填):{{wish}}",
1177
1198
  "editable_fields": [
1178
1199
  {
1179
1200
  "name": "date",
1180
- "label": "date",
1201
+ "label": "日期",
1181
1202
  "value": "",
1182
- "hint": "明天",
1183
- "required": false
1203
+ "kind": "date",
1204
+ "required": true,
1205
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1184
1206
  },
1185
1207
  {
1186
- "name": "memo_cli",
1187
- "label": "memo_cli",
1208
+ "name": "wish",
1209
+ "label": "要排的心愿(选填)",
1188
1210
  "value": "",
1189
- "hint": "true",
1190
- "required": false
1211
+ "kind": "text",
1212
+ "required": false,
1213
+ "hint": "要推进的那件事,如 体检预约;空=我自己从心愿清单里挑"
1191
1214
  }
1192
1215
  ]
1193
1216
  },
1194
1217
  {
1195
1218
  "id": "plan_24h_coverage_fail",
1196
- "title": "覆盖校验失败",
1197
- "wake_word": "#17 商量计划",
1219
+ "title": "候选有空隙或撞车时重新排",
1220
+ "wake_word": "商量计划",
1198
1221
  "status": "",
1199
- "prompt_template": "商量明天计划(生成的事件有空隙)",
1222
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n我这次排出来的安排有空隙或者撞车,请把不连续的地方点出来,重新排到一天首尾相接。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1200
1223
  "editable_fields": [
1201
1224
  {
1202
1225
  "name": "date",
1203
- "label": "date",
1226
+ "label": "日期",
1204
1227
  "value": "",
1205
- "hint": "明天",
1206
- "required": false
1207
- },
1208
- {
1209
- "name": "gap_or_overlap",
1210
- "label": "gap_or_overlap",
1211
- "value": "",
1212
- "hint": "true",
1213
- "required": false
1228
+ "kind": "date",
1229
+ "required": true,
1230
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1214
1231
  }
1215
1232
  ]
1216
1233
  },
1217
1234
  {
1218
1235
  "id": "plan_feishu_sync",
1219
- "title": "商量后飞书同步",
1220
- "wake_word": "#17 商量计划",
1236
+ "title": "商量完顺手同步到飞书",
1237
+ "wake_word": "商量计划",
1221
1238
  "status": "",
1222
- "prompt_template": "商量后顺便同步到飞书",
1239
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n商量完这一天的安排之后,顺便整份同步到飞书日历,同步前先问我一句。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1223
1240
  "editable_fields": [
1224
1241
  {
1225
1242
  "name": "date",
1226
- "label": "date",
1227
- "value": "",
1228
- "hint": "明天",
1229
- "required": false
1230
- },
1231
- {
1232
- "name": "feishu",
1233
- "label": "feishu",
1243
+ "label": "日期",
1234
1244
  "value": "",
1235
- "hint": "full",
1236
- "required": false
1245
+ "kind": "date",
1246
+ "required": true,
1247
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1237
1248
  }
1238
1249
  ]
1239
1250
  },
1240
1251
  {
1241
1252
  "id": "plan_result_tomorrow",
1242
- "title": "制定次日计划(结果强化)",
1243
- "wake_word": "#17 商量计划",
1253
+ "title": "出一张计划结果页",
1254
+ "wake_word": "商量计划",
1244
1255
  "status": "",
1245
- "prompt_template": "帮我制定明天的计划,生成计划结果 HTML",
1256
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n帮我按这一天的空档把计划排出来,出一张能看的计划结果,标出跟平时习惯贴不贴。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1246
1257
  "editable_fields": [
1247
1258
  {
1248
1259
  "name": "date",
1249
- "label": "date",
1250
- "value": "",
1251
- "hint": "明天",
1252
- "required": false
1253
- },
1254
- {
1255
- "name": "history_days",
1256
- "label": "history_days",
1257
- "value": "",
1258
- "hint": "7",
1259
- "required": false
1260
- },
1261
- {
1262
- "name": "candidates",
1263
- "label": "candidates",
1260
+ "label": "日期",
1264
1261
  "value": "",
1265
- "hint": "6-10 段",
1266
- "required": false
1262
+ "kind": "date",
1263
+ "required": true,
1264
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1267
1265
  }
1268
1266
  ]
1269
1267
  },
1270
1268
  {
1271
1269
  "id": "plan_result_adjust",
1272
- "title": "制定计划后调整再生成",
1273
- "wake_word": "#17 商量计划",
1270
+ "title": "改一处再出一版候选",
1271
+ "wake_word": "商量计划",
1274
1272
  "status": "",
1275
- "prompt_template": "把第 2 段改成 19:00 开始,再生成一次",
1273
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n候选那一版我看过了,想改一处再出一版,新版跟上一版都留着,别把上一版盖掉。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n要怎么改:{{change}}",
1276
1274
  "editable_fields": [
1277
1275
  {
1278
1276
  "name": "date",
1279
- "label": "date",
1277
+ "label": "日期",
1280
1278
  "value": "",
1281
- "hint": "明天",
1282
- "required": false
1279
+ "kind": "date",
1280
+ "required": true,
1281
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1283
1282
  },
1284
1283
  {
1285
- "name": "round",
1286
- "label": "round",
1284
+ "name": "change",
1285
+ "label": "要怎么改",
1287
1286
  "value": "",
1288
- "hint": "2-N",
1289
- "required": false
1287
+ "kind": "text",
1288
+ "required": true,
1289
+ "hint": "如 第 2 段改成 19:00 开始"
1290
1290
  }
1291
1291
  ]
1292
1292
  },
1293
1293
  {
1294
1294
  "id": "plan_result_history_none",
1295
- "title": "无历史作息参考",
1296
- "wake_word": "#17 商量计划",
1295
+ "title": "还没有历史作息可参考时怎么排",
1296
+ "wake_word": "商量计划",
1297
1297
  "status": "",
1298
- "prompt_template": "帮我制定明天的计划(新环境,没有历史记录)",
1298
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n这是个新环境,还没有历史作息可参考,照样把这一天的计划排出来,贴合那一栏空着就行。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1299
1299
  "editable_fields": [
1300
1300
  {
1301
1301
  "name": "date",
1302
- "label": "date",
1303
- "value": "",
1304
- "hint": "明天",
1305
- "required": false
1306
- },
1307
- {
1308
- "name": "history_days",
1309
- "label": "history_days",
1310
- "value": "",
1311
- "hint": "7",
1312
- "required": false
1313
- },
1314
- {
1315
- "name": "no_history",
1316
- "label": "no_history",
1302
+ "label": "日期",
1317
1303
  "value": "",
1318
- "hint": "true",
1319
- "required": false
1304
+ "kind": "date",
1305
+ "required": true,
1306
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1320
1307
  }
1321
1308
  ]
1322
1309
  },
1323
1310
  {
1324
1311
  "id": "plan_result_conflict",
1325
- "title": "候选与已锁定事件冲突",
1326
- "wake_word": "#17 商量计划",
1312
+ "title": "候选跟已锁定的安排撞上了",
1313
+ "wake_word": "商量计划",
1327
1314
  "status": "",
1328
- "prompt_template": "商量明天的计划(已有 2 条已锁定)",
1315
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n这一天已经锁定了不能动的安排,候选里有跟它们撞上的,请把冲突点标出来让我改。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1329
1316
  "editable_fields": [
1330
1317
  {
1331
1318
  "name": "date",
1332
- "label": "date",
1319
+ "label": "日期",
1333
1320
  "value": "",
1334
- "hint": "明天",
1335
- "required": false
1336
- },
1337
- {
1338
- "name": "locked_events",
1339
- "label": "locked_events",
1340
- "value": "",
1341
- "hint": "2",
1342
- "required": false
1343
- },
1344
- {
1345
- "name": "conflict",
1346
- "label": "conflict",
1347
- "value": "",
1348
- "hint": "true",
1349
- "required": false
1321
+ "kind": "date",
1322
+ "required": true,
1323
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1350
1324
  }
1351
1325
  ]
1352
1326
  },
1353
1327
  {
1354
1328
  "id": "plan_result_drift",
1355
- "title": "与历史习惯偏离",
1356
- "wake_word": "#17 商量计划",
1329
+ "title": "排得跟平时习惯不一样",
1330
+ "wake_word": "商量计划",
1357
1331
  "status": "",
1358
- "prompt_template": "明天把下午改成运动(历史下午都是工作)",
1332
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「商量计划」。\n\n我想把下午换成运动,跟平时下午都在工作的习惯不一样,是我有意这么排的;请把偏离的地方标出来,我看过仍然可以落库。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}",
1359
1333
  "editable_fields": [
1360
1334
  {
1361
1335
  "name": "date",
1362
- "label": "date",
1363
- "value": "",
1364
- "hint": "明天",
1365
- "required": false
1366
- },
1367
- {
1368
- "name": "drift",
1369
- "label": "drift",
1336
+ "label": "日期",
1370
1337
  "value": "",
1371
- "hint": "true",
1372
- "required": false
1338
+ "kind": "date",
1339
+ "required": true,
1340
+ "hint": "格式 YYYY-MM-DD,如 2026-09-28;也可写 明天"
1373
1341
  }
1374
1342
  ]
1375
1343
  }
@@ -1377,104 +1345,137 @@ export const HELP_GROUPS = [
1377
1345
  },
1378
1346
  {
1379
1347
  "id": "plan_4",
1380
- "label": "#18 改计划",
1348
+ "label": "改计划",
1381
1349
  "scenes": [
1382
1350
  {
1383
1351
  "id": "update_event_basic",
1384
- "title": "改单个事件字段",
1385
- "wake_word": "#18 改计划",
1352
+ "title": "换掉某一条的标题或备注",
1353
+ "wake_word": "改计划",
1386
1354
  "status": "",
1387
- "prompt_template": "改 id=544 这条的 title 为健身(上午)",
1355
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「改计划」。\n\n我要把一条已经排好的安排调一调,换成别的说法或者补上备注。如果我没说清是哪一条或改成什么,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}\n标题:{{title}}\n备注(选填):{{notes}}",
1388
1356
  "editable_fields": [
1389
1357
  {
1390
1358
  "name": "event_id",
1391
- "label": "event_id",
1359
+ "label": "记录 ID",
1392
1360
  "value": "",
1393
- "hint": "N",
1394
- "required": false
1361
+ "kind": "number",
1362
+ "required": true,
1363
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1395
1364
  },
1396
1365
  {
1397
- "name": "fields",
1398
- "label": "fields",
1366
+ "name": "title",
1367
+ "label": "标题",
1368
+ "value": "",
1369
+ "kind": "text",
1370
+ "required": true,
1371
+ "hint": "要改成什么,如 健身(上午)"
1372
+ },
1373
+ {
1374
+ "name": "notes",
1375
+ "label": "备注(选填)",
1399
1376
  "value": "",
1400
- "hint": "[\"title\",\"notes\"]",
1401
- "required": false
1377
+ "kind": "text",
1378
+ "required": false,
1379
+ "hint": "要改成什么;空=这一项不动"
1402
1380
  }
1403
1381
  ]
1404
1382
  },
1405
1383
  {
1406
1384
  "id": "update_event_time",
1407
- "title": "改时段(飞书删旧建新)",
1408
- "wake_word": "#18 改计划",
1385
+ "title": "把某一条挪到别的时段",
1386
+ "wake_word": "改计划",
1409
1387
  "status": "",
1410
- "prompt_template": "把 id=544 改成 17:30-18:30",
1388
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「改计划」。\n\n我要把一条已经排好的安排挪到别的时段。如果我没说清是哪一条或新的起止时刻,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}\n开始时刻:{{time_start}}\n结束时刻:{{time_end}}",
1411
1389
  "editable_fields": [
1412
1390
  {
1413
1391
  "name": "event_id",
1414
- "label": "event_id",
1392
+ "label": "记录 ID",
1415
1393
  "value": "",
1416
- "hint": "N",
1417
- "required": false
1394
+ "kind": "number",
1395
+ "required": true,
1396
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1418
1397
  },
1419
1398
  {
1420
1399
  "name": "time_start",
1421
- "label": "time_start",
1400
+ "label": "开始时刻",
1422
1401
  "value": "",
1423
- "hint": "HH:MM",
1424
- "required": false
1402
+ "kind": "time",
1403
+ "required": true,
1404
+ "hint": "格式 HH:MM,如 17:30"
1425
1405
  },
1426
1406
  {
1427
1407
  "name": "time_end",
1428
- "label": "time_end",
1408
+ "label": "结束时刻",
1429
1409
  "value": "",
1430
- "hint": "HH:MM",
1431
- "required": false
1410
+ "kind": "time",
1411
+ "required": true,
1412
+ "hint": "格式 HH:MM,如 18:30;须晚于开始时刻"
1432
1413
  }
1433
1414
  ]
1434
1415
  },
1435
1416
  {
1436
1417
  "id": "update_event_completion",
1437
- "title": "改 completion",
1438
- "wake_word": "#18 改计划",
1418
+ "title": "标某一条的完成状态",
1419
+ "wake_word": "改计划",
1439
1420
  "status": "",
1440
- "prompt_template": "把 id=544 标已完成",
1421
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「改计划」。\n\n我要给一条已经排好的安排标上完成状态,就标这一条,别动别的。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}\n完成状态:{{completion}}",
1441
1422
  "editable_fields": [
1442
1423
  {
1443
1424
  "name": "event_id",
1444
- "label": "event_id",
1425
+ "label": "记录 ID",
1445
1426
  "value": "",
1446
- "hint": "N",
1447
- "required": false
1427
+ "kind": "number",
1428
+ "required": true,
1429
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1448
1430
  },
1449
1431
  {
1450
1432
  "name": "completion",
1451
- "label": "completion",
1433
+ "label": "完成状态",
1452
1434
  "value": "",
1453
- "hint": "已完成",
1454
- "required": false
1435
+ "kind": "select",
1436
+ "required": true,
1437
+ "hint": "按这条实际做到什么程度选",
1438
+ "options": [
1439
+ "已完成",
1440
+ "已完成(超时)",
1441
+ "部分完成",
1442
+ "未完成",
1443
+ "未完成(不可抗力)",
1444
+ "未复盘"
1445
+ ]
1455
1446
  }
1456
1447
  ]
1457
1448
  },
1458
1449
  {
1459
1450
  "id": "update_event_feishu_ask",
1460
- "title": "改后飞书询问",
1461
- "wake_word": "#18 改计划",
1451
+ "title": "改完先问要不要同步飞书",
1452
+ "wake_word": "改计划",
1462
1453
  "status": "",
1463
- "prompt_template": "改 id=544 的 title(已同步飞书)",
1454
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「改计划」。\n\n我要改一条已经同步到飞书的安排,改完先问我飞书那边要不要一起改。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}\n标题:{{title}}\n备注(选填):{{notes}}",
1464
1455
  "editable_fields": [
1465
1456
  {
1466
1457
  "name": "event_id",
1467
- "label": "event_id",
1458
+ "label": "记录 ID",
1468
1459
  "value": "",
1469
- "hint": "N",
1470
- "required": false
1460
+ "kind": "number",
1461
+ "required": true,
1462
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1471
1463
  },
1472
1464
  {
1473
- "name": "feishu_synced",
1474
- "label": "feishu_synced",
1465
+ "name": "title",
1466
+ "label": "标题",
1475
1467
  "value": "",
1476
- "hint": "true",
1477
- "required": false
1468
+ "kind": "text",
1469
+ "required": true,
1470
+ "hint": "要改成什么,如 健身(上午)"
1471
+ },
1472
+ {
1473
+ "name": "notes",
1474
+ "label": "备注(选填)",
1475
+ "value": "",
1476
+ "kind": "text",
1477
+ "required": false,
1478
+ "hint": "要改成什么;空=这一项不动"
1478
1479
  }
1479
1480
  ]
1480
1481
  }
@@ -1482,44 +1483,39 @@ export const HELP_GROUPS = [
1482
1483
  },
1483
1484
  {
1484
1485
  "id": "plan_5",
1485
- "label": "#19 删计划",
1486
+ "label": "删计划",
1486
1487
  "scenes": [
1487
1488
  {
1488
1489
  "id": "deactivate_event",
1489
- "title": "软删事件",
1490
- "wake_word": "#19 删计划",
1490
+ "title": "撤掉某一条安排",
1491
+ "wake_word": "删计划",
1491
1492
  "status": "",
1492
- "prompt_template": "删 id=544 这条计划",
1493
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「删计划」。\n\n我要把一条已经排好的安排撤掉。删之前先告诉我这条是什么,确认后再删。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}",
1493
1494
  "editable_fields": [
1494
1495
  {
1495
1496
  "name": "event_id",
1496
- "label": "event_id",
1497
+ "label": "记录 ID",
1497
1498
  "value": "",
1498
- "hint": "N",
1499
- "required": false
1499
+ "kind": "number",
1500
+ "required": true,
1501
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1500
1502
  }
1501
1503
  ]
1502
1504
  },
1503
1505
  {
1504
1506
  "id": "deactivate_with_feishu",
1505
- "title": "软删 + 飞书删",
1506
- "wake_word": "#19 删计划",
1507
+ "title": "撤掉已同步飞书的那一条",
1508
+ "wake_word": "删计划",
1507
1509
  "status": "",
1508
- "prompt_template": "删 id=544(已同步飞书)",
1510
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「删计划」。\n\n我要撤掉一条已经同步到飞书的安排,删之前先问我飞书那边要不要一起删,确认后再删。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{event_id}}",
1509
1511
  "editable_fields": [
1510
1512
  {
1511
1513
  "name": "event_id",
1512
- "label": "event_id",
1513
- "value": "",
1514
- "hint": "N",
1515
- "required": false
1516
- },
1517
- {
1518
- "name": "feishu_synced",
1519
- "label": "feishu_synced",
1514
+ "label": "记录 ID",
1520
1515
  "value": "",
1521
- "hint": "true",
1522
- "required": false
1516
+ "kind": "number",
1517
+ "required": true,
1518
+ "hint": "纯数字,如 544;先在日程里查到这条记录的编号"
1523
1519
  }
1524
1520
  ]
1525
1521
  }
@@ -1527,21 +1523,22 @@ export const HELP_GROUPS = [
1527
1523
  },
1528
1524
  {
1529
1525
  "id": "plan_6",
1530
- "label": "#20 日程管家同步",
1526
+ "label": "日程管家同步",
1531
1527
  "scenes": [
1532
1528
  {
1533
1529
  "id": "feishu_resync_basic",
1534
- "title": "反向对账+diff 询问",
1535
- "wake_word": "#20 日程管家同步",
1530
+ "title": "跟飞书对账之后同步某一天",
1531
+ "wake_word": "日程管家同步",
1536
1532
  "status": "",
1537
- "prompt_template": "请帮我同步今天的日程到飞书",
1533
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「日程管家同步」。\n\n我要把某一天的日程跟飞书那边对一遍,差在哪就一条条问我,我确认了再同步。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
1538
1534
  "editable_fields": [
1539
1535
  {
1540
1536
  "name": "date",
1541
- "label": "date",
1537
+ "label": "日期(选填)",
1542
1538
  "value": "",
1543
- "hint": "YYYY-MM-DD",
1544
- "required": false
1539
+ "kind": "date",
1540
+ "required": false,
1541
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
1545
1542
  }
1546
1543
  ]
1547
1544
  }
@@ -1553,17 +1550,18 @@ export const HELP_GROUPS = [
1553
1550
  "scenes": [
1554
1551
  {
1555
1552
  "id": "replay_day",
1556
- "title": "复盘今日(计划 vs 实际对照 + 叙事 + 单日健康分)",
1553
+ "title": "一整天的计划与实际对照",
1557
1554
  "wake_word": "复盘今日",
1558
1555
  "status": "",
1559
- "prompt_template": "请帮我复盘今天(唤醒词:复盘今日)",
1556
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘今日」。\n\n我要把计划跟实际对一遍,看看这一天过得怎么样。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(选填):{{date}}",
1560
1557
  "editable_fields": [
1561
1558
  {
1562
1559
  "name": "date",
1563
- "label": "date",
1560
+ "label": "日期(选填)",
1564
1561
  "value": "",
1565
- "hint": "单日 YYYY-MM-DD(默认今天)",
1566
- "required": false
1562
+ "kind": "date",
1563
+ "required": false,
1564
+ "hint": "空=今天;格式 YYYY-MM-DD,如 2026-09-27"
1567
1565
  }
1568
1566
  ]
1569
1567
  }
@@ -1575,19 +1573,11 @@ export const HELP_GROUPS = [
1575
1573
  "scenes": [
1576
1574
  {
1577
1575
  "id": "replay_week",
1578
- "title": "复盘本周(7 维趋势 + 热力图 + 健康分均值)",
1576
+ "title": "一周的趋势与规律",
1579
1577
  "wake_word": "复盘本周",
1580
1578
  "status": "",
1581
- "prompt_template": "请帮我复盘本周(唤醒词:复盘本周)",
1582
- "editable_fields": [
1583
- {
1584
- "name": "range",
1585
- "label": "range",
1586
- "value": "",
1587
- "hint": "本周一~周日(自动换算)",
1588
- "required": false
1589
- }
1590
- ]
1579
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘本周」。\n\n我要把这一周整个过一遍,看趋势和规律,起止不用我报。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
1580
+ "editable_fields": []
1591
1581
  }
1592
1582
  ]
1593
1583
  },
@@ -1597,19 +1587,11 @@ export const HELP_GROUPS = [
1597
1587
  "scenes": [
1598
1588
  {
1599
1589
  "id": "replay_month",
1600
- "title": "复盘本月(月度聚合 + 环比对比 + 目标达成)",
1590
+ "title": "一个月的聚合与环比",
1601
1591
  "wake_word": "复盘本月",
1602
1592
  "status": "",
1603
- "prompt_template": "请帮我复盘本月(唤醒词:复盘本月)",
1604
- "editable_fields": [
1605
- {
1606
- "name": "range",
1607
- "label": "range",
1608
- "value": "",
1609
- "hint": "本月 1 日~月末(自动换算)",
1610
- "required": false
1611
- }
1612
- ]
1593
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘本月」。\n\n我要把这一个月整个过一遍,跟上一段比一比,看看目标达成得怎么样。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
1594
+ "editable_fields": []
1613
1595
  }
1614
1596
  ]
1615
1597
  },
@@ -1619,17 +1601,18 @@ export const HELP_GROUPS = [
1619
1601
  "scenes": [
1620
1602
  {
1621
1603
  "id": "replay_range",
1622
- "title": "复盘区间(任意区间跨域复盘 · 原 start-end)",
1604
+ "title": "任意一段区间的跨域回看",
1623
1605
  "wake_word": "复盘区间",
1624
1606
  "status": "",
1625
- "prompt_template": "请帮我复盘 2026-07-13~2026-07-19(唤醒词:复盘区间)",
1607
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「复盘区间」。\n\n我要跨一段区间整体回看一遍,起止我自己给。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n区间:{{range}}",
1626
1608
  "editable_fields": [
1627
1609
  {
1628
1610
  "name": "range",
1629
- "label": "range",
1611
+ "label": "区间",
1630
1612
  "value": "",
1631
- "hint": "任意 start-end(预置 上周/上月/今年/上年 + 自由区间语法)",
1632
- "required": false
1613
+ "kind": "text",
1614
+ "required": true,
1615
+ "hint": "写 本周/上周/本月/上月,或自己给起止,如 2026-07-13~2026-07-19"
1633
1616
  }
1634
1617
  ]
1635
1618
  }
@@ -1644,58 +1627,66 @@ export const HELP_GROUPS = [
1644
1627
  "subgroups": [
1645
1628
  {
1646
1629
  "id": "analyze_1",
1647
- "label": "#24 写作息摘要",
1630
+ "label": "写作息摘要",
1648
1631
  "scenes": [
1649
1632
  {
1650
1633
  "id": "add_summary_basic",
1651
1634
  "title": "写摘要",
1652
- "wake_word": "#24 写作息摘要",
1635
+ "wake_word": "写作息摘要",
1653
1636
  "status": "",
1654
- "prompt_template": "帮我写摘要:2026-07-22 工作.AI调优 60 分钟",
1637
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「写作息摘要」。\n\n我要给某天的某个分类补一条时长摘要。如果我没说全日期、分类或时长,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n分类:{{category}}\n总时长:{{total_minutes}}",
1655
1638
  "editable_fields": [
1656
1639
  {
1657
1640
  "name": "date",
1658
- "label": "date",
1641
+ "label": "日期",
1659
1642
  "value": "",
1660
- "hint": "YYYY-MM-DD",
1661
- "required": false
1643
+ "kind": "date",
1644
+ "required": true,
1645
+ "hint": "格式 YYYY-MM-DD,如 2026-07-22"
1662
1646
  },
1663
1647
  {
1664
1648
  "name": "category",
1665
- "label": "category",
1649
+ "label": "分类",
1666
1650
  "value": "",
1667
- "hint": "X",
1668
- "required": false
1651
+ "kind": "text",
1652
+ "required": true,
1653
+ "hint": "白名单里的一级分类(八类之一),如 工作"
1669
1654
  },
1670
1655
  {
1671
1656
  "name": "total_minutes",
1672
- "label": "total_minutes",
1657
+ "label": "总时长",
1673
1658
  "value": "",
1674
- "hint": "N",
1675
- "required": false
1659
+ "kind": "number",
1660
+ "required": true,
1661
+ "hint": "单位分钟,纯数字,如 60",
1662
+ "min": 0,
1663
+ "max": 1440,
1664
+ "step": 1
1676
1665
  }
1677
1666
  ]
1678
1667
  },
1679
1668
  {
1680
1669
  "id": "add_summary_idempotent",
1681
- "title": "同 date+category upsert",
1682
- "wake_word": "#24 写作息摘要",
1670
+ "title": "重写已有摘要",
1671
+ "wake_word": "写作息摘要",
1683
1672
  "status": "",
1684
- "prompt_template": "再写一次(已有)",
1673
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「写作息摘要」。\n\n同一天同一个分类我已经写过一条了,再写一次要把原来那条的时长盖掉。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n分类:{{category}}",
1685
1674
  "editable_fields": [
1686
1675
  {
1687
1676
  "name": "date",
1688
- "label": "date",
1677
+ "label": "日期",
1689
1678
  "value": "",
1690
- "hint": "YYYY-MM-DD",
1691
- "required": false
1679
+ "kind": "date",
1680
+ "required": true,
1681
+ "hint": "格式 YYYY-MM-DD,如 2026-07-22"
1692
1682
  },
1693
1683
  {
1694
1684
  "name": "category",
1695
- "label": "category",
1685
+ "label": "分类",
1696
1686
  "value": "",
1697
- "hint": "X",
1698
- "required": false
1687
+ "kind": "text",
1688
+ "required": true,
1689
+ "hint": "白名单里的一级分类(八类之一),如 工作"
1699
1690
  }
1700
1691
  ]
1701
1692
  }
@@ -1703,102 +1694,112 @@ export const HELP_GROUPS = [
1703
1694
  },
1704
1695
  {
1705
1696
  "id": "analyze_2",
1706
- "label": "#25 对比两个月",
1697
+ "label": "对比两个月",
1707
1698
  "scenes": [
1708
1699
  {
1709
1700
  "id": "compare_months",
1710
1701
  "title": "整月对比",
1711
- "wake_word": "#25 对比两个月",
1702
+ "wake_word": "对比两个月",
1712
1703
  "status": "",
1713
- "prompt_template": "6 月和 7 月对比",
1704
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「对比两个月」。\n\n我要对比两个月的作息。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n前一个月:{{month_a}}\n后一个月:{{month_b}}",
1714
1705
  "editable_fields": [
1715
1706
  {
1716
1707
  "name": "month_a",
1717
- "label": "month_a",
1708
+ "label": "前一个月",
1718
1709
  "value": "",
1719
- "hint": "YYYY-MM",
1720
- "required": false
1710
+ "kind": "month",
1711
+ "required": true,
1712
+ "hint": "格式 YYYY-MM,如 2026-06"
1721
1713
  },
1722
1714
  {
1723
1715
  "name": "month_b",
1724
- "label": "month_b",
1716
+ "label": "后一个月",
1725
1717
  "value": "",
1726
- "hint": "YYYY-MM",
1727
- "required": false
1718
+ "kind": "month",
1719
+ "required": true,
1720
+ "hint": "格式 YYYY-MM,如 2026-07"
1728
1721
  }
1729
1722
  ]
1730
1723
  },
1731
1724
  {
1732
1725
  "id": "compare_range",
1733
1726
  "title": "任意范围对比",
1734
- "wake_word": "#25 对比两个月",
1727
+ "wake_word": "对比两个月",
1735
1728
  "status": "",
1736
- "prompt_template": "上周和这周对比",
1729
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「对比两个月」。\n\n我要对比前后两段自定义日期区间的作息(这次不是整月对整月)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n前一段名称(选填):{{label_a}}\n前一段开始日期:{{range_a_start}}\n前一段结束日期:{{range_a_end}}\n后一段名称(选填):{{label_b}}\n后一段开始日期:{{range_b_start}}\n后一段结束日期:{{range_b_end}}",
1737
1730
  "editable_fields": [
1738
1731
  {
1739
1732
  "name": "label_a",
1740
- "label": "label_a",
1733
+ "label": "前一段名称(选填)",
1734
+ "value": "",
1735
+ "kind": "text",
1736
+ "required": false,
1737
+ "hint": "如 上周;空=用起止日期当名字"
1738
+ },
1739
+ {
1740
+ "name": "range_a_start",
1741
+ "label": "前一段开始日期",
1741
1742
  "value": "",
1742
- "hint": "X",
1743
- "required": false
1743
+ "kind": "date",
1744
+ "required": true,
1745
+ "hint": "格式 YYYY-MM-DD,如 2026-09-14"
1744
1746
  },
1745
1747
  {
1746
- "name": "range_a",
1747
- "label": "range_a",
1748
+ "name": "range_a_end",
1749
+ "label": "前一段结束日期",
1748
1750
  "value": "",
1749
- "hint": "YYYY-MM-DD ~ YYYY-MM-DD",
1750
- "required": false
1751
+ "kind": "date",
1752
+ "required": true,
1753
+ "hint": "格式 YYYY-MM-DD,如 2026-09-20"
1751
1754
  },
1752
1755
  {
1753
1756
  "name": "label_b",
1754
- "label": "label_b",
1757
+ "label": "后一段名称(选填)",
1758
+ "value": "",
1759
+ "kind": "text",
1760
+ "required": false,
1761
+ "hint": "如 本周;空=用起止日期当名字"
1762
+ },
1763
+ {
1764
+ "name": "range_b_start",
1765
+ "label": "后一段开始日期",
1755
1766
  "value": "",
1756
- "hint": "Y",
1757
- "required": false
1767
+ "kind": "date",
1768
+ "required": true,
1769
+ "hint": "格式 YYYY-MM-DD,如 2026-09-21"
1758
1770
  },
1759
1771
  {
1760
- "name": "range_b",
1761
- "label": "range_b",
1772
+ "name": "range_b_end",
1773
+ "label": "后一段结束日期",
1762
1774
  "value": "",
1763
- "hint": "YYYY-MM-DD ~ YYYY-MM-DD",
1764
- "required": false
1775
+ "kind": "date",
1776
+ "required": true,
1777
+ "hint": "格式 YYYY-MM-DD,如 2026-09-27"
1765
1778
  }
1766
1779
  ]
1767
1780
  },
1768
1781
  {
1769
1782
  "id": "compare_week_vs_week",
1770
1783
  "title": "周对比",
1771
- "wake_word": "#25 对比两个月",
1784
+ "wake_word": "对比两个月",
1772
1785
  "status": "",
1773
- "prompt_template": "上周和这周差多少",
1786
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「对比两个月」。\n\n我要比上周和这周这两段(这次不是整月对整月)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n前一段名称(选填):{{label_a}}\n后一段名称(选填):{{label_b}}",
1774
1787
  "editable_fields": [
1775
1788
  {
1776
1789
  "name": "label_a",
1777
- "label": "label_a",
1790
+ "label": "前一段名称(选填)",
1778
1791
  "value": "",
1779
- "hint": "上周",
1780
- "required": false
1781
- },
1782
- {
1783
- "name": "range_a",
1784
- "label": "range_a",
1785
- "value": "",
1786
- "hint": "周一~周日",
1787
- "required": false
1792
+ "kind": "text",
1793
+ "required": false,
1794
+ "hint": "空=上周"
1788
1795
  },
1789
1796
  {
1790
1797
  "name": "label_b",
1791
- "label": "label_b",
1798
+ "label": "后一段名称(选填)",
1792
1799
  "value": "",
1793
- "hint": "本周",
1794
- "required": false
1795
- },
1796
- {
1797
- "name": "range_b",
1798
- "label": "range_b",
1799
- "value": "",
1800
- "hint": "周一~周日",
1801
- "required": false
1800
+ "kind": "text",
1801
+ "required": false,
1802
+ "hint": "空=本周"
1802
1803
  }
1803
1804
  ]
1804
1805
  }
@@ -1806,74 +1807,102 @@ export const HELP_GROUPS = [
1806
1807
  },
1807
1808
  {
1808
1809
  "id": "analyze_3",
1809
- "label": "#26 修正作息",
1810
+ "label": "修正作息",
1810
1811
  "scenes": [
1811
1812
  {
1812
1813
  "id": "amend_basic",
1813
1814
  "title": "改 1 条记录多字段",
1814
- "wake_word": "#26 修正作息",
1815
+ "wake_word": "修正作息",
1815
1816
  "status": "",
1816
- "prompt_template": "这条记错了,改成工作.AI调优,活动是写代码",
1817
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「修正作息」。\n\n我这条作息记错了,要改它的分类和活动。如果我没说清改成什么,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{record_id}}\n改成哪个分类:{{category}}\n改成做了什么:{{activity}}",
1817
1818
  "editable_fields": [
1818
1819
  {
1819
1820
  "name": "record_id",
1820
- "label": "record_id",
1821
+ "label": "记录 ID",
1822
+ "value": "",
1823
+ "kind": "number",
1824
+ "required": true,
1825
+ "hint": "正整数,纯数字,如 123",
1826
+ "min": 1,
1827
+ "step": 1
1828
+ },
1829
+ {
1830
+ "name": "category",
1831
+ "label": "改成哪个分类",
1821
1832
  "value": "",
1822
- "hint": "N",
1823
- "required": false
1833
+ "kind": "text",
1834
+ "required": true,
1835
+ "hint": "白名单里的二级分类,如 工作.AI调优;只写一级会提示细化"
1824
1836
  },
1825
1837
  {
1826
- "name": "fields",
1827
- "label": "fields",
1838
+ "name": "activity",
1839
+ "label": "改成做了什么",
1828
1840
  "value": "",
1829
- "hint": "[\"category\",\"activity\"]",
1830
- "required": false
1841
+ "kind": "text",
1842
+ "required": true,
1843
+ "hint": "如 写代码"
1831
1844
  }
1832
1845
  ]
1833
1846
  },
1834
1847
  {
1835
1848
  "id": "amend_json_inline",
1836
1849
  "title": "JSON 内联修改",
1837
- "wake_word": "#26 修正作息",
1850
+ "wake_word": "修正作息",
1838
1851
  "status": "",
1839
- "prompt_template": "用 JSON 改 id=123 的多字段",
1852
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「修正作息」。\n\n我要用一段 JSON 一次改掉一条记录的多个字段。如果我没说全改哪条或改成什么,问我补齐。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{record_id}}\nJSON 内容:{{json}}",
1840
1853
  "editable_fields": [
1841
1854
  {
1842
1855
  "name": "record_id",
1843
- "label": "record_id",
1856
+ "label": "记录 ID",
1844
1857
  "value": "",
1845
- "hint": "N",
1846
- "required": false
1858
+ "kind": "number",
1859
+ "required": true,
1860
+ "hint": "正整数,纯数字,如 123",
1861
+ "min": 1,
1862
+ "step": 1
1847
1863
  },
1848
1864
  {
1849
1865
  "name": "json",
1850
- "label": "json",
1866
+ "label": "JSON 内容",
1851
1867
  "value": "",
1852
- "hint": "...",
1853
- "required": false
1868
+ "kind": "text",
1869
+ "required": true,
1870
+ "hint": "一段 JSON 对象,键=字段名;如 {\"category\":\"工作.AI调优\",\"activity\":\"写代码\"}"
1854
1871
  }
1855
1872
  ]
1856
1873
  },
1857
1874
  {
1858
1875
  "id": "amend_24h_warn",
1859
1876
  "title": "超过 24h 修改警告",
1860
- "wake_word": "#26 修正作息",
1877
+ "wake_word": "修正作息",
1861
1878
  "status": "",
1862
- "prompt_template": "改 3 天前那条记录(超 24h)",
1879
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「修正作息」。\n\n我要改一条几天前记的作息(已经超过 24 小时了),看看会怎么提醒我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n记录 ID:{{record_id}}\n改成哪个分类(选填):{{category}}\n改成做了什么(选填):{{activity}}",
1863
1880
  "editable_fields": [
1864
1881
  {
1865
1882
  "name": "record_id",
1866
- "label": "record_id",
1883
+ "label": "记录 ID",
1867
1884
  "value": "",
1868
- "hint": "N",
1869
- "required": false
1885
+ "kind": "number",
1886
+ "required": true,
1887
+ "hint": "正整数,纯数字,如 123",
1888
+ "min": 1,
1889
+ "step": 1
1870
1890
  },
1871
1891
  {
1872
- "name": "record_date",
1873
- "label": "record_date",
1892
+ "name": "category",
1893
+ "label": "改成哪个分类(选填)",
1874
1894
  "value": "",
1875
- "hint": "24h 前",
1876
- "required": false
1895
+ "kind": "text",
1896
+ "required": false,
1897
+ "hint": "白名单里的二级分类,如 工作.AI调优"
1898
+ },
1899
+ {
1900
+ "name": "activity",
1901
+ "label": "改成做了什么(选填)",
1902
+ "value": "",
1903
+ "kind": "text",
1904
+ "required": false,
1905
+ "hint": "如 写代码;和分类至少填一样"
1877
1906
  }
1878
1907
  ]
1879
1908
  }
@@ -1881,51 +1910,63 @@ export const HELP_GROUPS = [
1881
1910
  },
1882
1911
  {
1883
1912
  "id": "analyze_4",
1884
- "label": "T4 类别深挖",
1913
+ "label": "类别深挖",
1885
1914
  "scenes": [
1886
1915
  {
1887
1916
  "id": "category_range",
1888
1917
  "title": "区间内某分类深挖",
1889
- "wake_word": "T4 类别深挖",
1918
+ "wake_word": "类别深挖",
1890
1919
  "status": "",
1891
- "prompt_template": "这周健身什么时候做的",
1920
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「类别深挖」。\n\n我要看某个分类在这段时间里都是什么时候做的。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n开始日期(选填):{{range_start}}\n结束日期(选填):{{range_end}}\n分类:{{category}}",
1892
1921
  "editable_fields": [
1893
1922
  {
1894
- "name": "range",
1895
- "label": "range",
1923
+ "name": "range_start",
1924
+ "label": "开始日期(选填)",
1896
1925
  "value": "",
1897
- "hint": "YYYY-MM-DD ~ YYYY-MM-DD",
1898
- "required": false
1926
+ "kind": "date",
1927
+ "required": false,
1928
+ "hint": "空=本周一;格式 YYYY-MM-DD,如 2026-09-21"
1929
+ },
1930
+ {
1931
+ "name": "range_end",
1932
+ "label": "结束日期(选填)",
1933
+ "value": "",
1934
+ "kind": "date",
1935
+ "required": false,
1936
+ "hint": "空=本周日;格式 YYYY-MM-DD,如 2026-09-27"
1899
1937
  },
1900
1938
  {
1901
1939
  "name": "category",
1902
- "label": "category",
1940
+ "label": "分类",
1903
1941
  "value": "",
1904
- "hint": "X",
1905
- "required": false
1942
+ "kind": "text",
1943
+ "required": true,
1944
+ "hint": "白名单里的分类,如 健身;写二级会按它的一级分类算"
1906
1945
  }
1907
1946
  ]
1908
1947
  },
1909
1948
  {
1910
1949
  "id": "category_day",
1911
1950
  "title": "单日某分类",
1912
- "wake_word": "T4 类别深挖",
1951
+ "wake_word": "类别深挖",
1913
1952
  "status": "",
1914
- "prompt_template": "7/15 健身什么时候做的",
1953
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「类别深挖」。\n\n我要看某个分类在这一天都是什么时候做的。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:{{date}}\n分类:{{category}}",
1915
1954
  "editable_fields": [
1916
1955
  {
1917
1956
  "name": "date",
1918
- "label": "date",
1957
+ "label": "日期",
1919
1958
  "value": "",
1920
- "hint": "YYYY-MM-DD",
1921
- "required": false
1959
+ "kind": "date",
1960
+ "required": true,
1961
+ "hint": "格式 YYYY-MM-DD,如 2026-07-15"
1922
1962
  },
1923
1963
  {
1924
1964
  "name": "category",
1925
- "label": "category",
1965
+ "label": "分类",
1926
1966
  "value": "",
1927
- "hint": "X",
1928
- "required": false
1967
+ "kind": "text",
1968
+ "required": true,
1969
+ "hint": "白名单里的分类,如 健身;写二级会按它的一级分类算"
1929
1970
  }
1930
1971
  ]
1931
1972
  }
@@ -1933,37 +1974,45 @@ export const HELP_GROUPS = [
1933
1974
  },
1934
1975
  {
1935
1976
  "id": "analyze_5",
1936
- "label": "T5 异常检测",
1977
+ "label": "异常检测",
1937
1978
  "scenes": [
1938
1979
  {
1939
1980
  "id": "anomaly_default",
1940
1981
  "title": "默认 7 天窗口检测",
1941
- "wake_word": "T5 异常检测",
1982
+ "wake_word": "异常检测",
1942
1983
  "status": "",
1943
- "prompt_template": "最近状态怎么样/有没有异常",
1984
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「异常检测」。\n\n帮我看看最近的状态正不正常,有没有异常。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n回看天数(选填):{{window}}",
1944
1985
  "editable_fields": [
1945
1986
  {
1946
1987
  "name": "window",
1947
- "label": "window",
1988
+ "label": "回看天数(选填)",
1948
1989
  "value": "",
1949
- "hint": "7",
1950
- "required": false
1990
+ "kind": "number",
1991
+ "required": false,
1992
+ "hint": "空=最近 7 天;单位天,纯数字,如 7",
1993
+ "min": 2,
1994
+ "max": 90,
1995
+ "step": 1
1951
1996
  }
1952
1997
  ]
1953
1998
  },
1954
1999
  {
1955
2000
  "id": "anomaly_window_30",
1956
2001
  "title": "30 天窗口",
1957
- "wake_word": "T5 异常检测",
2002
+ "wake_word": "异常检测",
1958
2003
  "status": "",
1959
- "prompt_template": "最近 30 天有没有异常",
2004
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「异常检测」。\n\n帮我回看更长一段时间里有没有异常。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n回看天数:{{window}}",
1960
2005
  "editable_fields": [
1961
2006
  {
1962
2007
  "name": "window",
1963
- "label": "window",
2008
+ "label": "回看天数",
1964
2009
  "value": "",
1965
- "hint": "30",
1966
- "required": false
2010
+ "kind": "number",
2011
+ "required": true,
2012
+ "hint": "单位天,纯数字,如 30",
2013
+ "min": 2,
2014
+ "max": 90,
2015
+ "step": 1
1967
2016
  }
1968
2017
  ]
1969
2018
  }
@@ -1978,21 +2027,27 @@ export const HELP_GROUPS = [
1978
2027
  "subgroups": [
1979
2028
  {
1980
2029
  "id": "admin_1",
1981
- "label": "#21 飞书探测",
2030
+ "label": "飞书探测",
1982
2031
  "scenes": [
1983
2032
  {
1984
2033
  "id": "feishu_probe",
1985
- "title": "三档探测",
1986
- "wake_word": "#21 飞书探测",
2034
+ "title": "看看飞书能不能用",
2035
+ "wake_word": "飞书探测",
1987
2036
  "status": "",
1988
- "prompt_template": "飞书能力怎么样",
2037
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「飞书探测」。\n\n我想知道飞书这条路通不通。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n探测到哪一层(选填):{{scope}}",
1989
2038
  "editable_fields": [
1990
2039
  {
1991
2040
  "name": "scope",
1992
- "label": "scope",
2041
+ "label": "探测到哪一层(选填)",
1993
2042
  "value": "",
1994
- "hint": "cli/auth/calendar",
1995
- "required": false
2043
+ "kind": "select",
2044
+ "required": false,
2045
+ "hint": "空=三层全探;只关心某一层就选它",
2046
+ "options": [
2047
+ "cli",
2048
+ "auth",
2049
+ "calendar"
2050
+ ]
1996
2051
  }
1997
2052
  ]
1998
2053
  }
@@ -2000,23 +2055,15 @@ export const HELP_GROUPS = [
2000
2055
  },
2001
2056
  {
2002
2057
  "id": "admin_2",
2003
- "label": "#22 初始化数据库",
2058
+ "label": "初始化数据库",
2004
2059
  "scenes": [
2005
2060
  {
2006
2061
  "id": "init_default",
2007
- "title": "建三表",
2008
- "wake_word": "#22 初始化数据库",
2062
+ "title": "建好作息的三张表",
2063
+ "wake_word": "初始化数据库",
2009
2064
  "status": "",
2010
- "prompt_template": "帮我初始化数据库",
2011
- "editable_fields": [
2012
- {
2013
- "name": "scope",
2014
- "label": "scope",
2015
- "value": "",
2016
- "hint": "all",
2017
- "required": false
2018
- }
2019
- ]
2065
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「初始化数据库」。\n\n帮我把作息要用的数据库建起来。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
2066
+ "editable_fields": []
2020
2067
  }
2021
2068
  ]
2022
2069
  },
@@ -2026,10 +2073,10 @@ export const HELP_GROUPS = [
2026
2073
  "scenes": [
2027
2074
  {
2028
2075
  "id": "first_use",
2029
- "title": "首次使用(初始化工作流)",
2076
+ "title": "第一次用的上手流程",
2030
2077
  "wake_word": "首次使用",
2031
2078
  "status": "【待开发】",
2032
- "prompt_template": "请帮我初始化作息管家,我是第一次使用(唤醒词:首次使用)",
2079
+ "prompt_template": "请你加载技能 作息管家,执行唤醒词「首次使用」。\n\n我是第一次用它,带我走一遍上手流程。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。",
2033
2080
  "editable_fields": []
2034
2081
  }
2035
2082
  ]
@@ -2039,110 +2086,12 @@ export const HELP_GROUPS = [
2039
2086
  ];
2040
2087
  /** 扁平 85 条(顺序与 HELP 分组一致;单源派生,不重复落词)。 */
2041
2088
  export const HELP_ASSETS = HELP_GROUPS.flatMap((g) => g.subgroups.flatMap((s) => s.scenes));
2042
- /** 源场景 `result` 原文(85/85,键=场景 id)。契约里没有这个位,故不进
2043
- * `HELP_GROUPS`(`HELP_GROUPS` 只装纯场景数据);本表是源数据镜像,**当前 HELP 页不渲染**
2044
- * —— 页面上的「预期 ·」一律不出现(见文件头「页面外的两张源数据镜像」)。 */
2045
- export const HELP_SCENE_RESULTS = {
2046
- "record_add_single": "写入 1 条作息记录,自动生成三件套结果 HTML(全天时间轴 + 过去几小时推断高亮 + 状态总览)",
2047
- "record_add_json": "逐条校验后写入,自动生成三件套结果 HTML(多条记录;批量场景由「批量导入」强化)",
2048
- "record_add_illegal_category": "校验会报错,提示'提议新增 X'等心法 #5 申请流程,不生成结果 HTML",
2049
- "record_add_l1_only": "写入成功但附加 warning:建议细化到二级,三件套结果 HTML 顶部显示警示条",
2050
- "record_add_missing_field": "校验报错,提示缺哪个字段 + 当前值 + 期望值,不生成结果 HTML",
2051
- "batch_add": "逐条校验复用 add 链路(batch-add 命令)后写入,单条失败不打断,返回 ok/partial JSON 回执;重复执行会重复插入",
2052
- "prep_default": "返回分页消息(默认 200 条/页)",
2053
- "prep_with_range": "返回该区间分页消息",
2054
- "prep_pagination": "返回第 3 页消息 + pagination.has_next 提示",
2055
- "prep_no_messages": "返回空列表,AI 应告知无消息",
2056
- "sync_full": "AI 拉消息→分析→批量写入,每条生成回执 HTML",
2057
- "sync_partial_day": "同步该日全量消息",
2058
- "sync_incremental": "从 get_last_record_full 拿游标继续",
2059
- "sync_no_cursor": "从最早消息开始同步",
2060
- "summary_full_24h": "生成 record_day.html 综合报告(分类/时长/24h 时间轴/睡眠/AI 钩子)",
2061
- "summary_partial": "生成简短摘要 + 提示'补全后再看完整报告'",
2062
- "summary_specific_date": "生成该日 report",
2063
- "summary_no_records": "报告空态,提示该日无记录",
2064
- "summary_range_default": "生成 record_range.html(分类聚合+7维趋势+睡眠统计)",
2065
- "summary_range_full": "生成纯文本分类聚合",
2066
- "record_list_today": "生成 record_day.html(4 卡摘要+分类进度+时间轴+睡眠)",
2067
- "record_list_yesterday": "生成昨日 report_day.html",
2068
- "record_list_specific": "生成该日 record_day.html",
2069
- "record_list_empty": "生成空态 HTML,提示该日无记录",
2070
- "detail_day": "生成 record_detail.html(每条记录 11 字段全展开)",
2071
- "detail_record": "生成 record_detail.html(单条)",
2072
- "detail_with_reasoning": "详情页 analysis_reasoning 字段完整展示",
2073
- "timeline_today": "生成 record_day.html(24h 时间轴高亮)",
2074
- "timeline_specific": "生成该日 report 含时间轴",
2075
- "range_default": "生成 record_range.html",
2076
- "range_this_week": "本周一~周日 record_range.html",
2077
- "range_text": "纯文本分类聚合",
2078
- "status_default": "5 行文本(记录数/天数/最早/最近/同步状态)",
2079
- "list_events_today": "生成 plan_list_events.html(24h 时间轴+事件卡+筛选)",
2080
- "list_events_specific": "生成该日 plan_list_events.html",
2081
- "search_event_title": "返回 search 结果(命中/未命中 JSON)",
2082
- "search_event_triplet": "返回该时间槽事件(JSON)",
2083
- "list_events_inactive": "返回含 ✗ 前缀的事件",
2084
- "query_plans_today": "生成 plan_list_events.html(query-plans 模式,同小时 + 合并)",
2085
- "query_plans_multi": "生成多日聚合 plan_list_events.html(不含 notes/completion/飞书状态)",
2086
- "get_record_basic": "render-records-detail --record-id 123 → record_detail.html",
2087
- "week_view": "render-record-week [日期] → 7×24 全分类热力图(复用 record_category 组件)+ 分类总览 + 每日汇总 + 健康分 + 复制 prompt 按钮",
2088
- "ensure_event_basic": "ensure-plan-event → 生成 plan_receipt_add.html",
2089
- "ensure_event_idempotent": "幂等命中,返回原 event_id,不重复创建",
2090
- "ensure_event_with_notes": "ensure-plan-event with notes → receipt HTML",
2091
- "review_today_normal": "list-events → 逐条 update-event --completion → render-plans-review.html",
2092
- "review_today_all_done": "跳过 Step 0-5,直接进 Step 6 讨论模式",
2093
- "review_no_events": "提示'该日没有计划,无法复盘',退出",
2094
- "review_with_memo_sync": "询问用户是否已执行 /备忘录 备忘录同步",
2095
- "plan_discuss_tomorrow": "多轮对话 → render-plans-preview.html → 用户确认 → upsert-plan-events → plan_receipt_write.html",
2096
- "plan_with_locked": "Step 2 列出已有事件,询问保留策略,锁定后填空隙",
2097
- "plan_with_wish": "Step 3 拉备忘·心愿,询问已完成的 + 本次推进的",
2098
- "plan_24h_coverage_fail": "24h 联合校验失败,提示具体哪条不连续/越界,重新生成",
2099
- "plan_feishu_sync": "CLI 探测后询问[Y/n],yes 则 diff_and_sync 批量 create + 回写 event_id",
2100
- "plan_result_tomorrow": "多轮对话 → plan-result 渲染(时间轴+分类色带+历史贴合提示)→ 复制 prompt → upsert-plan-events → plan_receipt_write.html",
2101
- "plan_result_adjust": "调整候选 → 再调 plan-result(同秒多版 _2/_3 不覆盖)→ 循环直至满意 → 写库",
2102
- "plan_result_history_none": "历史窗口无记录 → 贴合率显示\"—\",逐段\"无参考\"提示,不降级仍可写库",
2103
- "plan_result_conflict": "冲突段红色徽章 + §3 冲突清单,提示调整时段或更新已锁定后重新生成",
2104
- "plan_result_drift": "偏离段显示「⚠️ 偏离」+ 历史主要分类提示,用户确认是刻意安排后仍可写库",
2105
- "update_event_basic": "update-event → render-plan-receipt.html",
2106
- "update_event_time": "飞书删旧 event_id + 建新 event_id + 回写新 feishu_event_id",
2107
- "update_event_completion": "update-event --completion,生成 receipt HTML",
2108
- "update_event_feishu_ask": "询问'飞书那边也要改吗?',yes 则飞书 +update",
2109
- "deactivate_event": "deactivate-event → is_active=0 → render-plan-receipt.html",
2110
- "deactivate_with_feishu": "软删 + 询问飞书删,yes 则 feishu_delete_event + 清空 feishu_event_id",
2111
- "feishu_resync_basic": "Phase 0 反向对账 → diff create/update/delete → 逐条询问 [Y/n] → 执行",
2112
- "replay_day": "render-replay <今日> <今日> --granularity day → 一体模板今日区块:计划 vs 实际对照表 + 实际作息 + 健康分;缺计划 → 补齐引导(不降级);底部复盘→制定明日计划衔接",
2113
- "replay_week": "render-replay <周一> <周日> --granularity week → 一体模板周区块:7 维趋势折线 + 24h×N 热力图 + 健康分均值趋势 + 亮点/问题",
2114
- "replay_month": "render-replay <月初> <月末> --granularity month → 一体模板月区块:分类聚合 + 环比对比(vs 上月同期) + 目标达成(完成率 + 维持占比) + 健康分趋势",
2115
- "replay_range": "render-replay <start> <end>(默认粒度 range)→ 一体模板按区间跨度自动路由区块(≤1天→今日 / ≤7天→周 / ≤31天→月 / 其他→通用 4 段叙事)",
2116
- "add_summary_basic": "add-summary 写入 daily_summary(解决孤儿表问题)",
2117
- "add_summary_idempotent": "upsert,total_minutes 覆盖",
2118
- "compare_months": "render-record-compare-months → record_compare.html(4 卡+7维差异柱+AI 钩子)",
2119
- "compare_range": "render-record-compare → record_compare.html",
2120
- "compare_week_vs_week": "render-record-compare 自动计算 + record_compare.html",
2121
- "amend_basic": "amend-record → render-record-receipt-edit.html(蓝调 diff)",
2122
- "amend_json_inline": "amend-record --json '{...}' → 蓝调 diff",
2123
- "amend_24h_warn": "写入成功但附加 warning:操作规范建议 24h 内",
2124
- "category_range": "render-record-category-range → record_category.html(24h × N 天热力图)",
2125
- "category_day": "render-record-category → record_category.html",
2126
- "anomaly_default": "render-record-anomaly → record_anomaly.html(7 维雷达 + 红/黄框异常)",
2127
- "anomaly_window_30": "render-record-anomaly --window 30 → record_anomaly.html",
2128
- "feishu_probe": "返回 FeishuStatus( cli_installed/authenticated/calendar_writable/tier=full/partial/missing )",
2129
- "init_default": "创建 schedule_records / daily_summary / schedule_plans 三表",
2130
- "first_use": "6 步向导(环境检测→路径确认→建库→状态确认→初始化报告→完成),幂等可重试,已有库不重置;飞书强引导(配合飞书效果最好,拒绝才跳过);初始化报告 HTML + 复制数据/复制日志"
2131
- };
2132
- /** 源一级分组 `desc` 原文(5/5,键=分组 id)。同上:契约里没有这个位,
2133
- * 不进 `HELP_GROUPS`;本表是源数据镜像,**当前 HELP 页不渲染**(见文件头「页面外的两张源数据镜像」)。 */
2134
- export const HELP_GROUP_NOTES = {
2135
- "write": "记录作息 / 同步消息 / 增量同步",
2136
- "query": "查作息 / 查日程 / 查状态 / 时间轴 / 范围",
2137
- "plan": "计划 CRUD / 商量 / 复盘 / 飞书同步",
2138
- "analyze": "对比 / 修正 / 类别深挖 / 异常检测 / 摘要",
2139
- "admin": "飞书探测 / 初始化数据库"
2140
- };
2141
2089
  /** 计数(全部由数据算出;改资产即跟变,内容另由测试里的摘要锁钉住)。 */
2142
2090
  export const HELP_TOTALS = Object.freeze({
2143
2091
  groups: HELP_GROUPS.length,
2144
2092
  subgroups: HELP_GROUPS.reduce((n, g) => n + g.subgroups.length, 0),
2145
2093
  scenes: HELP_ASSETS.length,
2146
2094
  pending: HELP_ASSETS.filter((s) => s.status !== '').length,
2095
+ fields: HELP_ASSETS.reduce((n, s) => n + s.editable_fields.length, 0),
2147
2096
  });
2148
2097
  //# sourceMappingURL=help-assets.js.map