skill-schedule 0.1.0 → 0.2.0

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