skill-calorie 0.1.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.
Files changed (373) hide show
  1. package/dist/analysis/anomaly/common.d.ts +53 -0
  2. package/dist/analysis/anomaly/common.d.ts.map +1 -0
  3. package/dist/analysis/anomaly/common.js +69 -0
  4. package/dist/analysis/anomaly/common.js.map +1 -0
  5. package/dist/analysis/anomaly/diet.d.ts +8 -0
  6. package/dist/analysis/anomaly/diet.d.ts.map +1 -0
  7. package/dist/analysis/anomaly/diet.js +95 -0
  8. package/dist/analysis/anomaly/diet.js.map +1 -0
  9. package/dist/analysis/anomaly/exercise.d.ts +9 -0
  10. package/dist/analysis/anomaly/exercise.d.ts.map +1 -0
  11. package/dist/analysis/anomaly/exercise.js +116 -0
  12. package/dist/analysis/anomaly/exercise.js.map +1 -0
  13. package/dist/analysis/anomaly/index.d.ts +19 -0
  14. package/dist/analysis/anomaly/index.d.ts.map +1 -0
  15. package/dist/analysis/anomaly/index.js +51 -0
  16. package/dist/analysis/anomaly/index.js.map +1 -0
  17. package/dist/analysis/anomaly/overall.d.ts +13 -0
  18. package/dist/analysis/anomaly/overall.d.ts.map +1 -0
  19. package/dist/analysis/anomaly/overall.js +128 -0
  20. package/dist/analysis/anomaly/overall.js.map +1 -0
  21. package/dist/analysis/anomaly/overall2.d.ts +5 -0
  22. package/dist/analysis/anomaly/overall2.d.ts.map +1 -0
  23. package/dist/analysis/anomaly/overall2.js +94 -0
  24. package/dist/analysis/anomaly/overall2.js.map +1 -0
  25. package/dist/analysis/anomaly/weight.d.ts +8 -0
  26. package/dist/analysis/anomaly/weight.d.ts.map +1 -0
  27. package/dist/analysis/anomaly/weight.js +106 -0
  28. package/dist/analysis/anomaly/weight.js.map +1 -0
  29. package/dist/analysis/anomaly/weight2.d.ts +4 -0
  30. package/dist/analysis/anomaly/weight2.d.ts.map +1 -0
  31. package/dist/analysis/anomaly/weight2.js +59 -0
  32. package/dist/analysis/anomaly/weight2.js.map +1 -0
  33. package/dist/analysis/contraindications.d.ts +63 -0
  34. package/dist/analysis/contraindications.d.ts.map +1 -0
  35. package/dist/analysis/contraindications.js +121 -0
  36. package/dist/analysis/contraindications.js.map +1 -0
  37. package/dist/analysis/cross.d.ts +75 -0
  38. package/dist/analysis/cross.d.ts.map +1 -0
  39. package/dist/analysis/cross.js +283 -0
  40. package/dist/analysis/cross.js.map +1 -0
  41. package/dist/analysis/dashboard.d.ts +18 -0
  42. package/dist/analysis/dashboard.d.ts.map +1 -0
  43. package/dist/analysis/dashboard.js +48 -0
  44. package/dist/analysis/dashboard.js.map +1 -0
  45. package/dist/analysis/deficit.d.ts +44 -0
  46. package/dist/analysis/deficit.d.ts.map +1 -0
  47. package/dist/analysis/deficit.js +54 -0
  48. package/dist/analysis/deficit.js.map +1 -0
  49. package/dist/analysis/diet.d.ts +76 -0
  50. package/dist/analysis/diet.d.ts.map +1 -0
  51. package/dist/analysis/diet.js +164 -0
  52. package/dist/analysis/diet.js.map +1 -0
  53. package/dist/analysis/exercise.d.ts +98 -0
  54. package/dist/analysis/exercise.d.ts.map +1 -0
  55. package/dist/analysis/exercise.js +298 -0
  56. package/dist/analysis/exercise.js.map +1 -0
  57. package/dist/analysis/exerciseReview.d.ts +36 -0
  58. package/dist/analysis/exerciseReview.d.ts.map +1 -0
  59. package/dist/analysis/exerciseReview.js +50 -0
  60. package/dist/analysis/exerciseReview.js.map +1 -0
  61. package/dist/analysis/precision.d.ts +15 -0
  62. package/dist/analysis/precision.d.ts.map +1 -0
  63. package/dist/analysis/precision.js +38 -0
  64. package/dist/analysis/precision.js.map +1 -0
  65. package/dist/analysis/result.d.ts +15 -0
  66. package/dist/analysis/result.d.ts.map +1 -0
  67. package/dist/analysis/result.js +13 -0
  68. package/dist/analysis/result.js.map +1 -0
  69. package/dist/analysis/review.d.ts +118 -0
  70. package/dist/analysis/review.d.ts.map +1 -0
  71. package/dist/analysis/review.js +195 -0
  72. package/dist/analysis/review.js.map +1 -0
  73. package/dist/analysis/series.d.ts +42 -0
  74. package/dist/analysis/series.d.ts.map +1 -0
  75. package/dist/analysis/series.js +127 -0
  76. package/dist/analysis/series.js.map +1 -0
  77. package/dist/analysis/simulate.d.ts +43 -0
  78. package/dist/analysis/simulate.d.ts.map +1 -0
  79. package/dist/analysis/simulate.js +109 -0
  80. package/dist/analysis/simulate.js.map +1 -0
  81. package/dist/analysis/simulate2.d.ts +65 -0
  82. package/dist/analysis/simulate2.d.ts.map +1 -0
  83. package/dist/analysis/simulate2.js +173 -0
  84. package/dist/analysis/simulate2.js.map +1 -0
  85. package/dist/analysis/trend.d.ts +39 -0
  86. package/dist/analysis/trend.d.ts.map +1 -0
  87. package/dist/analysis/trend.js +48 -0
  88. package/dist/analysis/trend.js.map +1 -0
  89. package/dist/analysis/utils.d.ts +17 -0
  90. package/dist/analysis/utils.d.ts.map +1 -0
  91. package/dist/analysis/utils.js +52 -0
  92. package/dist/analysis/utils.js.map +1 -0
  93. package/dist/analysis/volatility.d.ts +43 -0
  94. package/dist/analysis/volatility.d.ts.map +1 -0
  95. package/dist/analysis/volatility.js +96 -0
  96. package/dist/analysis/volatility.js.map +1 -0
  97. package/dist/analysis/weight.d.ts +86 -0
  98. package/dist/analysis/weight.d.ts.map +1 -0
  99. package/dist/analysis/weight.js +219 -0
  100. package/dist/analysis/weight.js.map +1 -0
  101. package/dist/analysis/weightCompare.d.ts +63 -0
  102. package/dist/analysis/weightCompare.d.ts.map +1 -0
  103. package/dist/analysis/weightCompare.js +212 -0
  104. package/dist/analysis/weightCompare.js.map +1 -0
  105. package/dist/analysis/weightCompare2.d.ts +63 -0
  106. package/dist/analysis/weightCompare2.d.ts.map +1 -0
  107. package/dist/analysis/weightCompare2.js +211 -0
  108. package/dist/analysis/weightCompare2.js.map +1 -0
  109. package/dist/analysis/weightCompare3.d.ts +13 -0
  110. package/dist/analysis/weightCompare3.d.ts.map +1 -0
  111. package/dist/analysis/weightCompare3.js +199 -0
  112. package/dist/analysis/weightCompare3.js.map +1 -0
  113. package/dist/cli/cmd_read.d.ts +8 -0
  114. package/dist/cli/cmd_read.d.ts.map +1 -0
  115. package/dist/cli/cmd_read.js +719 -0
  116. package/dist/cli/cmd_read.js.map +1 -0
  117. package/dist/cli/keys.d.ts +333 -0
  118. package/dist/cli/keys.d.ts.map +1 -0
  119. package/dist/cli/keys.js +103 -0
  120. package/dist/cli/keys.js.map +1 -0
  121. package/dist/cli/write.d.ts +24 -0
  122. package/dist/cli/write.d.ts.map +1 -0
  123. package/dist/cli/write.js +832 -0
  124. package/dist/cli/write.js.map +1 -0
  125. package/dist/fetch/audit.d.ts +25 -0
  126. package/dist/fetch/audit.d.ts.map +1 -0
  127. package/dist/fetch/audit.js +46 -0
  128. package/dist/fetch/audit.js.map +1 -0
  129. package/dist/fetch/batch.d.ts +68 -0
  130. package/dist/fetch/batch.d.ts.map +1 -0
  131. package/dist/fetch/batch.js +183 -0
  132. package/dist/fetch/batch.js.map +1 -0
  133. package/dist/fetch/body.d.ts +89 -0
  134. package/dist/fetch/body.d.ts.map +1 -0
  135. package/dist/fetch/body.js +217 -0
  136. package/dist/fetch/body.js.map +1 -0
  137. package/dist/fetch/cli.d.ts +3 -0
  138. package/dist/fetch/cli.d.ts.map +1 -0
  139. package/dist/fetch/cli.js +195 -0
  140. package/dist/fetch/cli.js.map +1 -0
  141. package/dist/fetch/cross-skill.d.ts +29 -0
  142. package/dist/fetch/cross-skill.d.ts.map +1 -0
  143. package/dist/fetch/cross-skill.js +42 -0
  144. package/dist/fetch/cross-skill.js.map +1 -0
  145. package/dist/fetch/db.d.ts +5 -0
  146. package/dist/fetch/db.d.ts.map +1 -0
  147. package/dist/fetch/db.js +4 -0
  148. package/dist/fetch/db.js.map +1 -0
  149. package/dist/fetch/diet.d.ts +174 -0
  150. package/dist/fetch/diet.d.ts.map +1 -0
  151. package/dist/fetch/diet.js +239 -0
  152. package/dist/fetch/diet.js.map +1 -0
  153. package/dist/fetch/errors.d.ts +5 -0
  154. package/dist/fetch/errors.d.ts.map +1 -0
  155. package/dist/fetch/errors.js +8 -0
  156. package/dist/fetch/errors.js.map +1 -0
  157. package/dist/fetch/exercise.d.ts +72 -0
  158. package/dist/fetch/exercise.d.ts.map +1 -0
  159. package/dist/fetch/exercise.js +270 -0
  160. package/dist/fetch/exercise.js.map +1 -0
  161. package/dist/fetch/goal.d.ts +48 -0
  162. package/dist/fetch/goal.d.ts.map +1 -0
  163. package/dist/fetch/goal.js +73 -0
  164. package/dist/fetch/goal.js.map +1 -0
  165. package/dist/fetch/goalHistory.d.ts +24 -0
  166. package/dist/fetch/goalHistory.d.ts.map +1 -0
  167. package/dist/fetch/goalHistory.js +51 -0
  168. package/dist/fetch/goalHistory.js.map +1 -0
  169. package/dist/fetch/history.d.ts +28 -0
  170. package/dist/fetch/history.d.ts.map +1 -0
  171. package/dist/fetch/history.js +29 -0
  172. package/dist/fetch/history.js.map +1 -0
  173. package/dist/fetch/index.d.ts +23 -0
  174. package/dist/fetch/index.d.ts.map +1 -0
  175. package/dist/fetch/index.js +16 -0
  176. package/dist/fetch/index.js.map +1 -0
  177. package/dist/fetch/nutritionGoal.d.ts +115 -0
  178. package/dist/fetch/nutritionGoal.d.ts.map +1 -0
  179. package/dist/fetch/nutritionGoal.js +154 -0
  180. package/dist/fetch/nutritionGoal.js.map +1 -0
  181. package/dist/fetch/photos.d.ts +76 -0
  182. package/dist/fetch/photos.d.ts.map +1 -0
  183. package/dist/fetch/photos.js +193 -0
  184. package/dist/fetch/photos.js.map +1 -0
  185. package/dist/fetch/plan.d.ts +145 -0
  186. package/dist/fetch/plan.d.ts.map +1 -0
  187. package/dist/fetch/plan.js +258 -0
  188. package/dist/fetch/plan.js.map +1 -0
  189. package/dist/fetch/products.d.ts +62 -0
  190. package/dist/fetch/products.d.ts.map +1 -0
  191. package/dist/fetch/products.js +73 -0
  192. package/dist/fetch/products.js.map +1 -0
  193. package/dist/fetch/profile.d.ts +46 -0
  194. package/dist/fetch/profile.d.ts.map +1 -0
  195. package/dist/fetch/profile.js +105 -0
  196. package/dist/fetch/profile.js.map +1 -0
  197. package/dist/fetch/shapes.d.ts +41 -0
  198. package/dist/fetch/shapes.d.ts.map +1 -0
  199. package/dist/fetch/shapes.js +38 -0
  200. package/dist/fetch/shapes.js.map +1 -0
  201. package/dist/fetch/validate.d.ts +11 -0
  202. package/dist/fetch/validate.d.ts.map +1 -0
  203. package/dist/fetch/validate.js +64 -0
  204. package/dist/fetch/validate.js.map +1 -0
  205. package/dist/fetch/weight.d.ts +109 -0
  206. package/dist/fetch/weight.d.ts.map +1 -0
  207. package/dist/fetch/weight.js +210 -0
  208. package/dist/fetch/weight.js.map +1 -0
  209. package/dist/fetch/xunji-catalog.d.ts +17 -0
  210. package/dist/fetch/xunji-catalog.d.ts.map +1 -0
  211. package/dist/fetch/xunji-catalog.js +57 -0
  212. package/dist/fetch/xunji-catalog.js.map +1 -0
  213. package/dist/index.d.ts +17 -0
  214. package/dist/index.d.ts.map +1 -0
  215. package/dist/index.js +12 -0
  216. package/dist/index.js.map +1 -0
  217. package/dist/kcal.d.ts +21 -0
  218. package/dist/kcal.d.ts.map +1 -0
  219. package/dist/kcal.js +27 -0
  220. package/dist/kcal.js.map +1 -0
  221. package/dist/migrate/migrate.d.ts +71 -0
  222. package/dist/migrate/migrate.d.ts.map +1 -0
  223. package/dist/migrate/migrate.js +450 -0
  224. package/dist/migrate/migrate.js.map +1 -0
  225. package/dist/paths.d.ts +6 -0
  226. package/dist/paths.d.ts.map +1 -0
  227. package/dist/paths.js +34 -0
  228. package/dist/paths.js.map +1 -0
  229. package/dist/render/analysisPlate.d.ts +49 -0
  230. package/dist/render/analysisPlate.d.ts.map +1 -0
  231. package/dist/render/analysisPlate.js +149 -0
  232. package/dist/render/analysisPlate.js.map +1 -0
  233. package/dist/render/bodyPlate.d.ts +55 -0
  234. package/dist/render/bodyPlate.d.ts.map +1 -0
  235. package/dist/render/bodyPlate.js +97 -0
  236. package/dist/render/bodyPlate.js.map +1 -0
  237. package/dist/render/diet.d.ts +47 -0
  238. package/dist/render/diet.d.ts.map +1 -0
  239. package/dist/render/diet.js +94 -0
  240. package/dist/render/diet.js.map +1 -0
  241. package/dist/render/envelope.d.ts +60 -0
  242. package/dist/render/envelope.d.ts.map +1 -0
  243. package/dist/render/envelope.js +111 -0
  244. package/dist/render/envelope.js.map +1 -0
  245. package/dist/render/errors.d.ts +10 -0
  246. package/dist/render/errors.d.ts.map +1 -0
  247. package/dist/render/errors.js +9 -0
  248. package/dist/render/errors.js.map +1 -0
  249. package/dist/render/exercise.d.ts +20 -0
  250. package/dist/render/exercise.d.ts.map +1 -0
  251. package/dist/render/exercise.js +32 -0
  252. package/dist/render/exercise.js.map +1 -0
  253. package/dist/render/goal.d.ts +24 -0
  254. package/dist/render/goal.d.ts.map +1 -0
  255. package/dist/render/goal.js +23 -0
  256. package/dist/render/goal.js.map +1 -0
  257. package/dist/render/goalExtra.d.ts +45 -0
  258. package/dist/render/goalExtra.d.ts.map +1 -0
  259. package/dist/render/goalExtra.js +94 -0
  260. package/dist/render/goalExtra.js.map +1 -0
  261. package/dist/render/goalPlate.d.ts +66 -0
  262. package/dist/render/goalPlate.d.ts.map +1 -0
  263. package/dist/render/goalPlate.js +110 -0
  264. package/dist/render/goalPlate.js.map +1 -0
  265. package/dist/render/health.d.ts +21 -0
  266. package/dist/render/health.d.ts.map +1 -0
  267. package/dist/render/health.js +41 -0
  268. package/dist/render/health.js.map +1 -0
  269. package/dist/render/help.d.ts +18 -0
  270. package/dist/render/help.d.ts.map +1 -0
  271. package/dist/render/help.js +58 -0
  272. package/dist/render/help.js.map +1 -0
  273. package/dist/render/home.d.ts +30 -0
  274. package/dist/render/home.d.ts.map +1 -0
  275. package/dist/render/home.js +73 -0
  276. package/dist/render/home.js.map +1 -0
  277. package/dist/render/html.d.ts +66 -0
  278. package/dist/render/html.d.ts.map +1 -0
  279. package/dist/render/html.js +510 -0
  280. package/dist/render/html.js.map +1 -0
  281. package/dist/render/index.d.ts +47 -0
  282. package/dist/render/index.d.ts.map +1 -0
  283. package/dist/render/index.js +26 -0
  284. package/dist/render/index.js.map +1 -0
  285. package/dist/render/insightPlate.d.ts +55 -0
  286. package/dist/render/insightPlate.d.ts.map +1 -0
  287. package/dist/render/insightPlate.js +97 -0
  288. package/dist/render/insightPlate.js.map +1 -0
  289. package/dist/render/library.d.ts +32 -0
  290. package/dist/render/library.d.ts.map +1 -0
  291. package/dist/render/library.js +54 -0
  292. package/dist/render/library.js.map +1 -0
  293. package/dist/render/photo.d.ts +101 -0
  294. package/dist/render/photo.d.ts.map +1 -0
  295. package/dist/render/photo.js +241 -0
  296. package/dist/render/photo.js.map +1 -0
  297. package/dist/render/planPlate.d.ts +40 -0
  298. package/dist/render/planPlate.d.ts.map +1 -0
  299. package/dist/render/planPlate.js +72 -0
  300. package/dist/render/planPlate.js.map +1 -0
  301. package/dist/render/profilePlate.d.ts +17 -0
  302. package/dist/render/profilePlate.d.ts.map +1 -0
  303. package/dist/render/profilePlate.js +18 -0
  304. package/dist/render/profilePlate.js.map +1 -0
  305. package/dist/render/ranking.d.ts +22 -0
  306. package/dist/render/ranking.d.ts.map +1 -0
  307. package/dist/render/ranking.js +63 -0
  308. package/dist/render/ranking.js.map +1 -0
  309. package/dist/render/receipt.d.ts +71 -0
  310. package/dist/render/receipt.d.ts.map +1 -0
  311. package/dist/render/receipt.js +65 -0
  312. package/dist/render/receipt.js.map +1 -0
  313. package/dist/render/weightPlate.d.ts +54 -0
  314. package/dist/render/weightPlate.d.ts.map +1 -0
  315. package/dist/render/weightPlate.js +110 -0
  316. package/dist/render/weightPlate.js.map +1 -0
  317. package/dist/schema.d.ts +25 -0
  318. package/dist/schema.d.ts.map +1 -0
  319. package/dist/schema.js +281 -0
  320. package/dist/schema.js.map +1 -0
  321. package/dist/triggers/help-lookup.d.ts +28 -0
  322. package/dist/triggers/help-lookup.d.ts.map +1 -0
  323. package/dist/triggers/help-lookup.js +163 -0
  324. package/dist/triggers/help-lookup.js.map +1 -0
  325. package/dist/triggers/index.d.ts +24 -0
  326. package/dist/triggers/index.d.ts.map +1 -0
  327. package/dist/triggers/index.js +78 -0
  328. package/dist/triggers/index.js.map +1 -0
  329. package/dist/triggers/scene-01-home.d.ts +4 -0
  330. package/dist/triggers/scene-01-home.d.ts.map +1 -0
  331. package/dist/triggers/scene-01-home.js +13 -0
  332. package/dist/triggers/scene-01-home.js.map +1 -0
  333. package/dist/triggers/scene-02-diet.d.ts +4 -0
  334. package/dist/triggers/scene-02-diet.d.ts.map +1 -0
  335. package/dist/triggers/scene-02-diet.js +74 -0
  336. package/dist/triggers/scene-02-diet.js.map +1 -0
  337. package/dist/triggers/scene-03-weight.d.ts +4 -0
  338. package/dist/triggers/scene-03-weight.d.ts.map +1 -0
  339. package/dist/triggers/scene-03-weight.js +62 -0
  340. package/dist/triggers/scene-03-weight.js.map +1 -0
  341. package/dist/triggers/scene-04-exercise.d.ts +4 -0
  342. package/dist/triggers/scene-04-exercise.d.ts.map +1 -0
  343. package/dist/triggers/scene-04-exercise.js +43 -0
  344. package/dist/triggers/scene-04-exercise.js.map +1 -0
  345. package/dist/triggers/scene-05-workout.d.ts +4 -0
  346. package/dist/triggers/scene-05-workout.d.ts.map +1 -0
  347. package/dist/triggers/scene-05-workout.js +36 -0
  348. package/dist/triggers/scene-05-workout.js.map +1 -0
  349. package/dist/triggers/scene-06-goal.d.ts +4 -0
  350. package/dist/triggers/scene-06-goal.d.ts.map +1 -0
  351. package/dist/triggers/scene-06-goal.js +29 -0
  352. package/dist/triggers/scene-06-goal.js.map +1 -0
  353. package/dist/triggers/scene-07-profile.d.ts +4 -0
  354. package/dist/triggers/scene-07-profile.d.ts.map +1 -0
  355. package/dist/triggers/scene-07-profile.js +8 -0
  356. package/dist/triggers/scene-07-profile.js.map +1 -0
  357. package/dist/triggers/scene-08-body.d.ts +4 -0
  358. package/dist/triggers/scene-08-body.d.ts.map +1 -0
  359. package/dist/triggers/scene-08-body.js +17 -0
  360. package/dist/triggers/scene-08-body.js.map +1 -0
  361. package/dist/triggers/scene-09-photo.d.ts +4 -0
  362. package/dist/triggers/scene-09-photo.d.ts.map +1 -0
  363. package/dist/triggers/scene-09-photo.js +14 -0
  364. package/dist/triggers/scene-09-photo.js.map +1 -0
  365. package/dist/triggers/scene-10-analysis.d.ts +4 -0
  366. package/dist/triggers/scene-10-analysis.d.ts.map +1 -0
  367. package/dist/triggers/scene-10-analysis.js +180 -0
  368. package/dist/triggers/scene-10-analysis.js.map +1 -0
  369. package/dist/triggers/types.d.ts +66 -0
  370. package/dist/triggers/types.d.ts.map +1 -0
  371. package/dist/triggers/types.js +3 -0
  372. package/dist/triggers/types.js.map +1 -0
  373. package/package.json +35 -0
@@ -0,0 +1,36 @@
1
+ /** 05-健身计划:32 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
2
+ export const SCENE_05_WORKOUT = [
3
+ { "category": "健身计划", "wake_word": "看本周计划", "desc": "本周训练日历(7 天表 + 完成度)", "main_prompt": { "cli": "python scripts/render_workout_plan.py --week <N>", "text": "请你加载技能 卡路里,执行唤醒词「看本周计划」。\n\n我想看本周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_view_this_week", "name": "看本周计划", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --week <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看本周计划」。\n\n我想看本周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看本周的训练日历和完成度", "data_fields": ["week_number", "days", "sessions", "movements", "completion_rate"], "depends_on_external": false, "order": 0 },
4
+ { "category": "健身计划", "wake_word": "看下周计划", "desc": "下周训练日历预览(含待练状态)", "main_prompt": { "cli": "python scripts/render_workout_plan.py --week <N+1>", "text": "请你加载技能 卡路里,执行唤醒词「看下周计划」。\n\n我想看下周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_view_next_week", "name": "看下周计划", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --week <N+1>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看下周计划」。\n\n我想看下周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想预览下周的训练安排", "data_fields": ["week_number", "days", "sessions", "movements", "completion_rate"], "depends_on_external": false, "order": 1 },
5
+ { "category": "健身计划", "wake_word": "看上周计划", "desc": "上周训练日历 + 完成率回顾", "main_prompt": { "cli": "python scripts/render_workout_plan.py --week <N-1>", "text": "请你加载技能 卡路里,执行唤醒词「看上周计划」。\n\n我想看上周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_view_last_week", "name": "看上周计划", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --week <N-1>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看上周计划」。\n\n我想看上周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想回顾上周的训练安排和完成率", "data_fields": ["week_number", "days", "sessions", "movements", "completion_rate"], "depends_on_external": false, "order": 2 },
6
+ { "category": "健身计划", "wake_word": "看指定周计划", "desc": "指定周次训练日历", "main_prompt": { "cli": "python scripts/render_workout_plan.py --week <N>", "text": "请你加载技能 卡路里,执行唤醒词「看指定周计划」。\n\n我想看某一周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n周次(如第 3 周):____" }, "fill_hints": [], "variants": [], "key": "plan_view_week", "name": "看指定周计划", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --week <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看指定周计划」。\n\n我想看某一周的训练日历。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n周次(如第 3 周):____", "user_intent": "我想查看指定周次的训练安排", "data_fields": ["week_number", "days", "sessions", "movements", "completion_rate"], "depends_on_external": false, "order": 3 },
7
+ { "category": "健身计划", "wake_word": "看今天练什么", "desc": "今日动作/组数/重量 + 实时完成进度", "main_prompt": { "cli": "python scripts/render_workout_plan.py --today", "text": "请你加载技能 卡路里,执行唤醒词「看今天练什么」。\n\n我想看今天要练的动作。如果今天休息或计划还没开始,请明确告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_view_today", "name": "看今天练什么", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --today", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看今天练什么」。\n\n我想看今天要练的动作。如果今天休息或计划还没开始,请明确告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看今天练什么以及练到哪了", "data_fields": ["sessions", "movements", "sets_done", "sets_remaining", "completion_rate"], "depends_on_external": false, "order": 4 },
8
+ { "category": "健身计划", "wake_word": "看某动作安排", "desc": "按动作反查计划(位置/频率/下次练习日 · #256)", "main_prompt": { "cli": "python scripts/render_workout_plan.py --mode action --name <动作>", "text": "请你加载技能 卡路里,执行唤醒词「看某动作安排」。\n\n我想查一个动作在训练计划里的安排(哪天练/几组/重量/下次练习日)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n动作名:____" }, "fill_hints": [], "variants": [], "key": "plan_view_movement", "name": "看某动作安排", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --mode action --name <动作>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看某动作安排」。\n\n我想查一个动作在训练计划里的安排(哪天练/几组/重量/下次练习日)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n动作名:____", "user_intent": "我想查某个动作在计划里的安排", "data_fields": ["query", "positions", "summary", "next_date"], "depends_on_external": false, "order": 6 },
9
+ { "category": "健身计划", "wake_word": "看某天练什么", "desc": "指定日期训练内容(复用今日组装 · #255)", "main_prompt": { "cli": "python scripts/render_workout_plan.py --mode day --start <D>", "text": "请你加载技能 卡路里,执行唤醒词「看某天练什么」。\n\n我想看指定日期的训练内容(动作/组数/重量)。如果那天休息或计划还没开始,请明确告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(YYYY-MM-DD,默认今天):____" }, "fill_hints": [], "variants": [], "key": "plan_view_day", "name": "看某天练什么", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --mode day --start <D>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看某天练什么」。\n\n我想看指定日期的训练内容(动作/组数/重量)。如果那天休息或计划还没开始,请明确告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(YYYY-MM-DD,默认今天):____", "user_intent": "我想看某一天练什么", "data_fields": ["date", "sessions", "movements", "is_rest", "completion", "plan_week"], "depends_on_external": false, "order": 5 },
10
+ { "category": "健身计划", "wake_word": "看计划概览", "desc": "计划总览 KPI + 每周完成率列表", "main_prompt": { "cli": "python scripts/render_workout_plan.py --overview", "text": "请你加载技能 卡路里,执行唤醒词「看计划概览」。\n\n我想看整个健身计划的概览。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_overview", "name": "看计划概览", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --overview", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看计划概览」。\n\n我想看整个健身计划的概览。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看训练计划的总体概览和每周完成情况", "data_fields": ["total_weeks", "completion_rate", "training_days", "total_movements", "weekly_rates"], "depends_on_external": false, "order": 5 },
11
+ { "category": "健身计划", "wake_word": "看完整计划", "desc": "全计划视图(所有周 × 全部动作明细)", "main_prompt": { "cli": "python scripts/render_workout_plan.py", "text": "请你加载技能 卡路里,执行唤醒词「看完整计划」。\n\n我想一次看完整的健身计划(所有周的全部训练安排)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_view_full", "name": "看完整计划", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看完整计划」。\n\n我想一次看完整的健身计划(所有周的全部训练安排)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想一次查看整个健身计划的所有周次与动作明细", "data_fields": ["weeks", "days", "sessions", "movements", "config"], "depends_on_external": false, "order": 6 },
12
+ { "category": "健身计划", "wake_word": "看计划 vs 实际", "desc": "计划 vs 实际对比(完成度/偏差/动作级表)", "main_prompt": { "cli": "python scripts/render_workout_plan.py --vs-actual --start <D1> --end <D2>", "text": "请你加载技能 卡路里,执行唤醒词「看计划 vs 实际」。\n\n我想对比一段时间里计划和实际完成。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认本周,可给日期):____" }, "fill_hints": [], "variants": [], "key": "plan_vs_actual", "name": "看计划 vs 实际", "subfunction": "看训练计划", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --vs-actual --start <D1> --end <D2>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看计划 vs 实际」。\n\n我想对比一段时间里计划和实际完成。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认本周,可给日期):____", "user_intent": "我想对比计划训练量和实际完成量的差距", "data_fields": ["completion_rate", "deviation", "movement_rows", "start_date", "end_date"], "depends_on_external": false, "order": 6 },
13
+ { "category": "健身计划", "wake_word": "定训练计划", "desc": "AI 采访式创建计划(预览确认 → 写入回执)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-set --plan-json <JSON> --chain \"1.采访→2.预览确认→3.写库→4.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「定训练计划」。\n\n我想制定一份新的健身计划,根据我的目标和训练情况来安排(标题/总周数/起始日)。如果我没说清楚我的目标和训练情况,请先问我。请先给我看完整计划预览,我确认后再保存,保存后给我回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_set", "name": "定训练计划", "subfunction": "定训练计划", "output_type": "receipt", "html_template": "templates/plan_builder_wizard.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-set --plan-json <JSON> --chain \"1.采访→2.预览确认→3.写库→4.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定训练计划」。\n\n我想制定一份新的健身计划,根据我的目标和训练情况来安排(标题/总周数/起始日)。如果我没说清楚我的目标和训练情况,请先问我。请先给我看完整计划预览,我确认后再保存,保存后给我回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想根据我的目标和情况定制一份训练计划", "data_fields": ["goal", "experience", "frequency", "target_parts", "title", "total_weeks", "start_date"], "depends_on_external": false, "order": 0 },
14
+ { "category": "健身计划", "wake_word": "复制训练计划", "desc": "复制整计划或某周作为模板", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-copy [--new-title <T>] --chain \"1.读当前计划→2.复制→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「复制训练计划」。\n\n我想把现有训练计划复制一份作为模板(可以复制整个计划或某一周)。请告诉我复制了哪些内容、新计划/新周的标题或周次。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要复制的周次(选填,空=整个计划):____\n新标题(选填):____" }, "fill_hints": [], "variants": [], "key": "plan_copy", "name": "复制训练计划", "subfunction": "定训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-copy [--new-title <T>] --chain \"1.读当前计划→2.复制→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「复制训练计划」。\n\n我想把现有训练计划复制一份作为模板(可以复制整个计划或某一周)。请告诉我复制了哪些内容、新计划/新周的标题或周次。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要复制的周次(选填,空=整个计划):____\n新标题(选填):____", "user_intent": "我想复制一份训练计划作为新模板", "data_fields": ["copied_weeks", "new_title", "source_week"], "depends_on_external": false, "order": 1 },
15
+ { "category": "健身计划", "wake_word": "定休息日", "desc": "标记某天为休息日(或取消)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-rest --week <W> --day <D> --rest <1|0> --chain \"1.定位天→2.标记→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「定休息日」。\n\n我想把某一天的训练标记为休息日(或取消休息)。完成后给我设置回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期或周次+星期:____" }, "fill_hints": [], "variants": [], "key": "plan_set_rest", "name": "定休息日", "subfunction": "定训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-rest --week <W> --day <D> --rest <1|0> --chain \"1.定位天→2.标记→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定休息日」。\n\n我想把某一天的训练标记为休息日(或取消休息)。完成后给我设置回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期或周次+星期:____", "user_intent": "我想把某天标记为休息日", "data_fields": ["date", "is_rest_day", "before", "after"], "depends_on_external": false, "order": 2 },
16
+ { "category": "健身计划", "wake_word": "加训练动作", "desc": "给某天/时段加动作(组数/重量)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-add --week <W> --day <D> --name <动作> --sets <N> [--weight <kg>] --chain \"1.定位时段→2.加动作→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「加训练动作」。\n\n我想给计划里的某一天或某个训练时段加训练动作,包括动作名、组数和重量。如果计划是每周循环的,告诉我加在哪一周,不说就所有周都加。完成后给我回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n加到哪天(如 周三):____\n加到第几周(选填,空=所有周):____\n时段(选填):____\n动作名:____\n组数:____\n重量(kg,选填):____" }, "fill_hints": [], "variants": [], "key": "plan_add_movement", "name": "加训练动作", "subfunction": "定训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-add --week <W> --day <D> --name <动作> --sets <N> [--weight <kg>] --chain \"1.定位时段→2.加动作→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「加训练动作」。\n\n我想给计划里的某一天或某个训练时段加训练动作,包括动作名、组数和重量。如果计划是每周循环的,告诉我加在哪一周,不说就所有周都加。完成后给我回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n加到哪天(如 周三):____\n加到第几周(选填,空=所有周):____\n时段(选填):____\n动作名:____\n组数:____\n重量(kg,选填):____", "user_intent": "我想给训练计划加一个新动作", "data_fields": ["week_number", "day_of_week", "session_label", "movement", "sets", "weight_kg"], "depends_on_external": false, "order": 3 },
17
+ { "category": "健身计划", "wake_word": "定一周计划", "desc": "快速设置一周 7 天安排", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-set-week --week <W> --days-json <JSON> --chain \"1.解析7天→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「定一周计划」。\n\n我想快速设置某一周的训练安排,告诉我这周每天(周一至周日)练什么或休息,只想练其中几天也没关系,空着的天按休息处理。完成后给我设置回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第几周(默认本周):____\n一周安排(如:周一胸、周三腿,没说的天按休息):____" }, "fill_hints": [], "variants": [], "key": "plan_set_week", "name": "定一周计划", "subfunction": "定训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-set-week --week <W> --days-json <JSON> --chain \"1.解析7天→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定一周计划」。\n\n我想快速设置某一周的训练安排,告诉我这周每天(周一至周日)练什么或休息,只想练其中几天也没关系,空着的天按休息处理。完成后给我设置回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第几周(默认本周):____\n一周安排(如:周一胸、周三腿,没说的天按休息):____", "user_intent": "我想快速设置一周七天的训练安排", "data_fields": ["week_number", "day_schedule", "rest_days"], "depends_on_external": false, "order": 4 },
18
+ { "category": "健身计划", "wake_word": "改训练计划", "desc": "改计划配置字段(改前/改后 + 影响)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-update --field <X> --value <Y> --chain \"1.读旧值→2.更新→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「改训练计划」。\n\n我想改训练计划的某个字段(如标题、总周数、开始日期、描述)。改完并提示影响(如改开始日期会影响周次计算)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要改的字段(标题/总周数/开始日期/描述,可改多个):____\n新值:____" }, "fill_hints": [], "variants": [], "key": "plan_update", "name": "改训练计划", "subfunction": "改训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-update --field <X> --value <Y> --chain \"1.读旧值→2.更新→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改训练计划」。\n\n我想改训练计划的某个字段(如标题、总周数、开始日期、描述)。改完并提示影响(如改开始日期会影响周次计算)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要改的字段(标题/总周数/开始日期/描述,可改多个):____\n新值:____", "user_intent": "我想修改训练计划的某个配置字段", "data_fields": ["field", "before", "after"], "depends_on_external": false, "order": 0 },
19
+ { "category": "健身计划", "wake_word": "改某天训练", "desc": "改某天训练安排(改前/改后)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-update-day --week <W> --day <D> --session <S> [--label <L>] --chain \"1.读现状→2.更新→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「改某天训练」。\n\n我想改某一天的训练安排(时段、动作、组数等)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:____\n要改的内容:____" }, "fill_hints": [], "variants": [], "key": "plan_update_day", "name": "改某天训练", "subfunction": "改训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-update-day --week <W> --day <D> --session <S> [--label <L>] --chain \"1.读现状→2.更新→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改某天训练」。\n\n我想改某一天的训练安排(时段、动作、组数等)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:____\n要改的内容:____", "user_intent": "我想修改某一天的训练安排", "data_fields": ["date", "field", "before", "after"], "depends_on_external": false, "order": 1 },
20
+ { "category": "健身计划", "wake_word": "删某天训练", "desc": "删某天训练(快照确认 → 回执)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-delete-day --week <W> --day <D> --chain \"1.快照→2.确认→3.删除→4.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「删某天训练」。\n\n我想删掉某一天的训练安排(或某天的某个训练时段)。删除前先让我确认,确认后删除,给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:____\n要删的时段(选填,空=删整天):____" }, "fill_hints": [], "variants": [], "key": "plan_delete_day", "name": "删某天训练", "subfunction": "改训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-delete-day --week <W> --day <D> --chain \"1.快照→2.确认→3.删除→4.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「删某天训练」。\n\n我想删掉某一天的训练安排(或某天的某个训练时段)。删除前先让我确认,确认后删除,给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期:____\n要删的时段(选填,空=删整天):____", "user_intent": "我想删除某天的训练安排", "data_fields": ["date", "snapshot", "deleted_sessions"], "depends_on_external": false, "order": 2 },
21
+ { "category": "健身计划", "wake_word": "改动作", "desc": "替换动作(改前/改后 + 组数变化)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-update-movement --week <W> --day <D> --session <S> --old-name <A> --new-name <B> --chain \"1.定位动作→2.替换→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「改动作」。\n\n我想把计划里的某个动作换成另一个动作(或改它的组数)。如果计划是每周循环的,告诉我要改哪一周,不说就所有周都改。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要改的周(选填,空=所有周):____\n原动作:____\n新动作:____\n组数(选填):____" }, "fill_hints": [], "variants": [], "key": "plan_update_movement", "name": "改动作", "subfunction": "改训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-update-movement --week <W> --day <D> --session <S> --old-name <A> --new-name <B> --chain \"1.定位动作→2.替换→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改动作」。\n\n我想把计划里的某个动作换成另一个动作(或改它的组数)。如果计划是每周循环的,告诉我要改哪一周,不说就所有周都改。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要改的周(选填,空=所有周):____\n原动作:____\n新动作:____\n组数(选填):____", "user_intent": "我想替换计划里的某个动作", "data_fields": ["date", "old_movement", "new_movement", "sets_before", "sets_after"], "depends_on_external": false, "order": 3 },
22
+ { "category": "健身计划", "wake_word": "撤销训练计划", "desc": "删除整个计划(确认 → 回执 + 提示)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-delete --chain \"1.概要→2.确认→3.删除→4.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「撤销训练计划」。\n\n我想删除整个训练计划(所有周次和配置)。删除前先让我确认,确认后删除,给我删除回执和提示(删除后如何重新制定)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_delete", "name": "撤销训练计划", "subfunction": "改训练计划", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-delete --chain \"1.概要→2.确认→3.删除→4.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「撤销训练计划」。\n\n我想删除整个训练计划(所有周次和配置)。删除前先让我确认,确认后删除,给我删除回执和提示(删除后如何重新制定)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想删除整个训练计划", "data_fields": ["plan_summary", "deleted_config", "deleted_rows"], "depends_on_external": false, "order": 4 },
23
+ { "category": "健身计划", "wake_word": "落地训练", "desc": "4 步落地(补计划/记心愿/推送/回写)", "main_prompt": { "cli": "python scripts/sync_plan.py --days 1", "text": "请你加载技能 卡路里,执行唤醒词「落地训练」。\n\n我想把某天的训练计划真正落地执行:补计划到日历、记心愿、推送到训记、拉取训记实绩 4 步全流程,逐动作确认实际做的重量和组数。给我看 4 步进度和每步结果(已补计划/已记心愿/已推送/已回写),以及完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____" }, "fill_hints": [], "variants": [], "key": "plan_execute", "name": "落地训练", "subfunction": "落地训练", "output_type": "process", "html_template": "templates/process_progress.html", "data_source": "python scripts/sync_plan.py --days 1", "prompt_template": "请你加载技能 卡路里,执行唤醒词「落地训练」。\n\n我想把某天的训练计划真正落地执行:补计划到日历、记心愿、推送到训记、拉取训记实绩 4 步全流程,逐动作确认实际做的重量和组数。给我看 4 步进度和每步结果(已补计划/已记心愿/已推送/已回写),以及完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____", "user_intent": "我想把某天的训练计划完整落地执行", "data_fields": ["date", "step1_created", "step2_added", "step3_pushed", "step4_backfilled", "completion"], "depends_on_external": true, "order": 0 },
24
+ { "category": "健身计划", "wake_word": "落地到本周末", "desc": "批量落地到本周末(跨天汇总)", "main_prompt": { "cli": "python scripts/sync_plan.py --days <N>", "text": "请你加载技能 卡路里,执行唤醒词「落地到本周末」。\n\n我想把从今天到周日所有训练日一次落地执行(补计划/记心愿/推训记/回写),如果今天已是周日就只落地今天。请给我看跨天列表、每一步的汇总(已补计划/已记心愿/已推送/已回写)和总完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_execute_weekend", "name": "落地到本周末", "subfunction": "落地训练", "output_type": "process", "html_template": "templates/process_progress.html", "data_source": "python scripts/sync_plan.py --days <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「落地到本周末」。\n\n我想把从今天到周日所有训练日一次落地执行(补计划/记心愿/推训记/回写),如果今天已是周日就只落地今天。请给我看跨天列表、每一步的汇总(已补计划/已记心愿/已推送/已回写)和总完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想把本周剩余训练日批量落地", "data_fields": ["days", "day_summaries", "step_totals", "completion"], "depends_on_external": true, "order": 1 },
25
+ { "category": "健身计划", "wake_word": "落地到本月底", "desc": "批量落地到本月底(跨天汇总)", "main_prompt": { "cli": "python scripts/sync_plan.py --days <N>", "text": "请你加载技能 卡路里,执行唤醒词「落地到本月底」。\n\n我想把从今天到本月底所有训练日一次落地执行(补计划/记心愿/推训记/回写),如果今天已是月底就只落地今天。请给我看跨天列表、每一步的汇总(已补计划/已记心愿/已推送/已回写)和总完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_execute_month", "name": "落地到本月底", "subfunction": "落地训练", "output_type": "process", "html_template": "templates/process_progress.html", "data_source": "python scripts/sync_plan.py --days <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「落地到本月底」。\n\n我想把从今天到本月底所有训练日一次落地执行(补计划/记心愿/推训记/回写),如果今天已是月底就只落地今天。请给我看跨天列表、每一步的汇总(已补计划/已记心愿/已推送/已回写)和总完成度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想把本月剩余训练日批量落地", "data_fields": ["days", "day_summaries", "step_totals", "completion"], "depends_on_external": true, "order": 2 },
26
+ { "category": "健身计划", "wake_word": "同步到训记", "desc": "推 plan 到训记(前置审计动作名)", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-sync --date <D> --chain \"1.审计动作名→2.推送→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「同步到训记」。\n\n我想把某天的训练计划推送到训记 App(落地流程里的训记推送这一步单独做)。推送前先检查计划里的动作名训记能否识别,有识别不了的先告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____" }, "fill_hints": [], "variants": [], "key": "plan_sync_xunji", "name": "同步到训记", "subfunction": "落地训练", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-sync --date <D> --chain \"1.审计动作名→2.推送→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「同步到训记」。\n\n我想把某天的训练计划推送到训记 App(落地流程里的训记推送这一步单独做)。推送前先检查计划里的动作名训记能否识别,有识别不了的先告诉我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____", "user_intent": "我想把训练计划推送到训记", "data_fields": ["date", "pushed_count", "results", "unrecognized_movements"], "depends_on_external": true, "order": 3 },
27
+ { "category": "健身计划", "wake_word": "拉训记实绩", "desc": "拉训记实绩回写 exercise_log", "main_prompt": { "cli": "python scripts/render_plan_receipt.py --live-plan-backfill --date <D> --chain \"1.拉取→2.回写→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「拉训记实绩」。\n\n我想把训记 App 里的实际训练数据拉回来,写进卡路里的运动记录(落地流程里的回写这一步单独做)。如有冲突请提示我处理。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____" }, "fill_hints": [], "variants": [], "key": "plan_backfill_xunji", "name": "拉训记实绩", "subfunction": "落地训练", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "python scripts/render_plan_receipt.py --live-plan-backfill --date <D> --chain \"1.拉取→2.回写→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「拉训记实绩」。\n\n我想把训记 App 里的实际训练数据拉回来,写进卡路里的运动记录(落地流程里的回写这一步单独做)。如有冲突请提示我处理。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n日期(默认今天):____", "user_intent": "我想把训记里的实际训练拉回卡路里", "data_fields": ["date", "inserted", "updated", "skipped", "conflicts"], "depends_on_external": true, "order": 4 },
28
+ { "category": "健身计划", "wake_word": "计划复盘(本周)", "desc": "本周复盘(KPI + 趋势 + 上周对比)", "main_prompt": { "cli": "python scripts/render_exercise_review_html.py --days 7", "text": "请你加载技能 卡路里,执行唤醒词「计划复盘(本周)」。\n\n我想复盘本周的训练:完成率、训练日数、消耗等关键数字,完成趋势,以及本周与上周的对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_review_week", "name": "计划复盘(本周)", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/exercise_review.html", "data_source": "python scripts/render_exercise_review_html.py --days 7", "prompt_template": "请你加载技能 卡路里,执行唤醒词「计划复盘(本周)」。\n\n我想复盘本周的训练:完成率、训练日数、消耗等关键数字,完成趋势,以及本周与上周的对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想复盘本周训练完成情况", "data_fields": ["completion_rate", "training_days", "calories_burned", "trend", "delta_vs_last_week"], "depends_on_external": false, "order": 0 },
29
+ { "category": "健身计划", "wake_word": "计划复盘(本月)", "desc": "本月复盘(KPI + 趋势 + 上月对比)", "main_prompt": { "cli": "python scripts/render_exercise_review_html.py --start <D1> --end <D2>", "text": "请你加载技能 卡路里,执行唤醒词「计划复盘(本月)」。\n\n我想复盘本月的训练:完成率、训练日数、消耗等关键数字,完成趋势,以及本月与上月的对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_review_month", "name": "计划复盘(本月)", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/exercise_review.html", "data_source": "python scripts/render_exercise_review_html.py --start <D1> --end <D2>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「计划复盘(本月)」。\n\n我想复盘本月的训练:完成率、训练日数、消耗等关键数字,完成趋势,以及本月与上月的对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想复盘本月训练完成情况", "data_fields": ["completion_rate", "training_days", "calories_burned", "trend", "delta_vs_last_month"], "depends_on_external": false, "order": 1 },
30
+ { "category": "健身计划", "wake_word": "计划复盘(全部)", "desc": "全部复盘(总完成率 + 高频动作)", "main_prompt": { "cli": "python scripts/render_exercise_review_html.py --start <D1> --end <D2>", "text": "请你加载技能 卡路里,执行唤醒词「计划复盘(全部)」。\n\n我想复盘整个训练计划:总完成率,以及做得最多的动作(高频动作)排名。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_review_all", "name": "计划复盘(全部)", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/exercise_review.html", "data_source": "python scripts/render_exercise_review_html.py --start <D1> --end <D2>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「计划复盘(全部)」。\n\n我想复盘整个训练计划:总完成率,以及做得最多的动作(高频动作)排名。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想复盘整个训练计划的总完成率和高频动作", "data_fields": ["total_completion_rate", "top_movements"], "depends_on_external": false, "order": 2 },
31
+ { "category": "健身计划", "wake_word": "看计划完成率", "desc": "每周完成率折线趋势", "main_prompt": { "cli": "python scripts/render_workout_plan.py --completion", "text": "请你加载技能 卡路里,执行唤醒词「看计划完成率」。\n\n我想看训练计划的完成率趋势。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "plan_completion_rate", "name": "看计划完成率", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --completion", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看计划完成率」。\n\n我想看训练计划的完成率趋势。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看每周训练完成率的变化趋势", "data_fields": ["weekly_completion", "trend"], "depends_on_external": false, "order": 3 },
32
+ { "category": "健身计划", "wake_word": "看未完成训练", "desc": "漏练日期 + 应练动作列表", "main_prompt": { "cli": "python scripts/render_workout_plan.py --missed --days <N>", "text": "请你加载技能 卡路里,执行唤醒词「看未完成训练」。\n\n我想看哪些天的训练没完成(漏练)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认最近 4 周):____" }, "fill_hints": [], "variants": [], "key": "plan_missed", "name": "看未完成训练", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --missed --days <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看未完成训练」。\n\n我想看哪些天的训练没完成(漏练)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认最近 4 周):____", "user_intent": "我想看哪些训练日漏练了", "data_fields": ["missed_dates", "planned_movements"], "depends_on_external": false, "order": 4 },
33
+ { "category": "健身计划", "wake_word": "看动作完成率", "desc": "动作完成率 TOP 榜", "main_prompt": { "cli": "python scripts/render_workout_plan.py --movement-rate --days <N>", "text": "请你加载技能 卡路里,执行唤醒词「看动作完成率」。\n\n我想看每个动作的完成率排名。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认最近 4 周):____" }, "fill_hints": [], "variants": [], "key": "plan_movement_rate", "name": "看动作完成率", "subfunction": "计划复盘", "output_type": "result", "html_template": "templates/workout_plan_view.html", "data_source": "python scripts/render_workout_plan.py --movement-rate --days <N>", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看动作完成率」。\n\n我想看每个动作的完成率排名。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间范围(默认最近 4 周):____", "user_intent": "我想看各动作的完成率排名", "data_fields": ["movement_ranking", "completion_rate"], "depends_on_external": false, "order": 5 },
34
+ { "category": "健身计划", "wake_word": "扫禁忌", "desc": "禁忌动作扫描(腰/膝/肩 + 替代建议)", "main_prompt": { "cli": "python scripts/render_contraindication.py", "text": "请你加载技能 卡路里,执行唤醒词「扫禁忌」。\n\n我想检查训练计划里有没有伤腰/膝/肩的禁忌动作(默认全身位,也可以指定部位)。请列出有风险的动作、原因,以及推荐的替代动作。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n部位(腰/膝/肩,选填,默认全部):____" }, "fill_hints": [], "variants": [], "key": "plan_contraindication", "name": "扫禁忌", "subfunction": "安全检查", "output_type": "result", "html_template": "templates/contraindication_report.html", "data_source": "python scripts/render_contraindication.py", "prompt_template": "请你加载技能 卡路里,执行唤醒词「扫禁忌」。\n\n我想检查训练计划里有没有伤腰/膝/肩的禁忌动作(默认全身位,也可以指定部位)。请列出有风险的动作、原因,以及推荐的替代动作。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n部位(腰/膝/肩,选填,默认全部):____", "user_intent": "我想检查训练计划里的禁忌动作", "data_fields": ["part", "hits", "severity", "safe_variants"], "depends_on_external": false, "order": 0 },
35
+ ];
36
+ //# sourceMappingURL=scene-05-workout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-05-workout.js","sourceRoot":"","sources":["../../src/triggers/scene-05-workout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Trigger } from './types.js';
2
+ /** 06-目标管理:25 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
3
+ export declare const SCENE_06_GOAL: Trigger[];
4
+ //# sourceMappingURL=scene-06-goal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-06-goal.d.ts","sourceRoot":"","sources":["../../src/triggers/scene-06-goal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,yDAAyD;AACzD,eAAO,MAAM,aAAa,EAAE,OAAO,EA0BlC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /** 06-目标管理:25 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
2
+ export const SCENE_06_GOAL = [
3
+ { "category": "目标管理", "wake_word": "定营养目标", "desc": "设每日 4 项宏量营养目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50,\"water\":2000}'", "text": "请你加载技能 卡路里,执行唤醒词「定营养目标」。\n\n我想设每日 4 大宏量营养目标(热量/蛋白/碳水/脂肪)+ 饮水目标。若热量明显低于我的基础代谢(BMR),请提示我注意。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标数值(请按实际替换,不知道的可以空着):\n热量(卡):____\n蛋白(g):____\n碳水(g):____\n脂肪(g):____\n饮水(ml):____" }, "fill_hints": [], "variants": [], "key": "goal_set_nutrition", "name": "定营养目标", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_config.html", "data_source": "calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50,\"water\":2000}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定营养目标」。\n\n我想设每日 4 大宏量营养目标(热量/蛋白/碳水/脂肪)+ 饮水目标。若热量明显低于我的基础代谢(BMR),请提示我注意。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标数值(请按实际替换,不知道的可以空着):\n热量(卡):____\n蛋白(g):____\n碳水(g):____\n脂肪(g):____\n饮水(ml):____", "user_intent": "设每日 4 项宏量营养目标", "data_fields": ["calorie_goal", "protein_goal", "carbs_goal", "fat_goal", "water_goal"], "depends_on_external": false, "order": 0 },
4
+ { "category": "目标管理", "wake_word": "定营养目标(自动算)", "desc": "按档案 + 策略自动算每日营养目标", "main_prompt": { "cli": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后 calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}'", "text": "请你加载技能 卡路里,执行唤醒词「定营养目标(自动算)」。\n\n想根据我的档案(身高/体重/年龄/活动量)+ 目标方向自动算出 4 项营养目标。若我未提供方向或档案信息缺失,请先询问补齐;若我已明确表达,直接计算,必要时做几句信息确认即可。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标方向(减脂 / 维持 / 增肌):____" }, "fill_hints": [], "variants": [], "key": "goal_set_nutrition_auto", "name": "定营养目标(自动算)", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_recommend.html", "data_source": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后 calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定营养目标(自动算)」。\n\n想根据我的档案(身高/体重/年龄/活动量)+ 目标方向自动算出 4 项营养目标。若我未提供方向或档案信息缺失,请先询问补齐;若我已明确表达,直接计算,必要时做几句信息确认即可。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标方向(减脂 / 维持 / 增肌):____", "user_intent": "按档案 + 策略自动算每日营养目标", "data_fields": ["tdee", "recommend", "weekly_rate", "macros_4", "basis", "plan_reasons"], "depends_on_external": false, "order": 1 },
5
+ { "category": "目标管理", "wake_word": "定体重目标", "desc": "设定体重目标值与可选截止日期", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68}'", "text": "请你加载技能 卡路里,执行唤醒词「定体重目标」。\n\n我想设定体重目标(目标 kg + 可选截止日期)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n截止日期(选填):____" }, "fill_hints": [], "variants": [], "key": "goal_set_weight", "name": "定体重目标", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_weight.html", "data_source": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定体重目标」。\n\n我想设定体重目标(目标 kg + 可选截止日期)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n截止日期(选填):____", "user_intent": "设定体重目标值与可选截止日期", "data_fields": ["current_weight", "target_weight", "deadline", "delta_kg", "suggested_rate"], "depends_on_external": false, "order": 2 },
6
+ { "category": "目标管理", "wake_word": "定体重目标(自动算截止)", "desc": "按速率推算截止日期的体重目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68,\"deadline\":\"2026-12-31\"}'", "text": "请你加载技能 卡路里,执行唤醒词「定体重目标(自动算截止)」。\n\n我想设定体重目标(目标 kg + 期望每周减重速率),由你自动推算合理截止日期,并校验速率是否合理(不超安全范围)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n期望每周减重速率(kg/周):____" }, "fill_hints": [], "variants": [], "key": "goal_set_weight_auto_deadline", "name": "定体重目标(自动算截止)", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_weight.html", "data_source": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68,\"deadline\":\"2026-12-31\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定体重目标(自动算截止)」。\n\n我想设定体重目标(目标 kg + 期望每周减重速率),由你自动推算合理截止日期,并校验速率是否合理(不超安全范围)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n期望每周减重速率(kg/周):____", "user_intent": "按速率推算截止日期的体重目标", "data_fields": ["current_weight", "target_weight", "est_deadline", "rate_check"], "depends_on_external": false, "order": 3 },
7
+ { "category": "目标管理", "wake_word": "定体重目标(含起始日)", "desc": "完整 setup 体重目标含起始日", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68,\"deadline\":\"2026-12-31\",\"startKg\":72,\"startDate\":\"2026-09-01\"}'", "text": "请你加载技能 卡路里,执行唤醒词「定体重目标(含起始日)」。\n\n我想完整设定体重目标:目标 kg + 起始日 + 截止日 + 起点体重。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n起始日:____\n截止日期:____\n起点体重(kg):____" }, "fill_hints": [], "variants": [], "key": "goal_set_weight_with_start", "name": "定体重目标(含起始日)", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_weight.html", "data_source": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":68,\"deadline\":\"2026-12-31\",\"startKg\":72,\"startDate\":\"2026-09-01\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定体重目标(含起始日)」。\n\n我想完整设定体重目标:目标 kg + 起始日 + 截止日 + 起点体重。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重目标(kg):____\n起始日:____\n截止日期:____\n起点体重(kg):____", "user_intent": "完整 setup 体重目标含起始日", "data_fields": ["weight_goal", "goal_deadline", "start_date", "start_weight"], "depends_on_external": false, "order": 4 },
8
+ { "category": "目标管理", "wake_word": "定饮水目标", "desc": "设每日饮水目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "text": "请你加载技能 卡路里,执行唤醒词「定饮水目标」。\n\n我想设定每天饮水目标(ml)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的饮水目标(ml):____" }, "fill_hints": [], "variants": [], "key": "goal_set_water", "name": "定饮水目标", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_config.html", "data_source": "calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定饮水目标」。\n\n我想设定每天饮水目标(ml)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的饮水目标(ml):____", "user_intent": "设每日饮水目标", "data_fields": ["water_goal"], "depends_on_external": false, "order": 5 },
9
+ { "category": "目标管理", "wake_word": "定饮水目标(自动算)", "desc": "按体重推算饮水目标推荐值", "main_prompt": { "cli": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后 calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "text": "请你加载技能 卡路里,执行唤醒词「定饮水目标(自动算)」。\n\n想按我的体重(ml/kg)自动推算饮水目标推荐值,并和旧目标对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重(kg,选填,默认取最新记录):____" }, "fill_hints": [], "variants": [], "key": "goal_set_water_auto", "name": "定饮水目标(自动算)", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_recommend.html", "data_source": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后 calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「定饮水目标(自动算)」。\n\n想按我的体重(ml/kg)自动推算饮水目标推荐值,并和旧目标对比。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的体重(kg,选填,默认取最新记录):____", "user_intent": "按体重推算饮水目标推荐值", "data_fields": ["weight_kg", "season", "recommended_water_ml"], "depends_on_external": false, "order": 6 },
10
+ { "category": "目标管理", "wake_word": "一键定全套目标", "desc": "一键设定营养+体重+饮水全套目标", "main_prompt": { "cli": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后依次 calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}' + calorie-cmd-read calorie.goal.weight --params '{\"kg\":68}' + calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "text": "请你加载技能 卡路里,执行唤醒词「一键定全套目标」。\n\n想一键设定 3 类目标(营养 + 体重 + 饮水),基于我的档案自动计算,先给我看结果,等我确认后再采纳。若我的档案(身高/年龄/活动量)未设置、无体重记录或信息缺失,请先询问补齐;若我已明确表达,直接计算,必要时做几句信息确认即可。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标方向(减脂 / 维持 / 增肌):____\n我的体重目标(kg,选填):____\n截止日期(选填):____" }, "fill_hints": [], "variants": [], "key": "goal_set_full_kit", "name": "一键定全套目标", "subfunction": "定目标", "output_type": "receipt", "html_template": "templates/goal_recommend.html", "data_source": "calorie-cmd-read calorie.view.goal-recommend --params '{\"profile\":\"cut\"}' → 确认后依次 calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}' + calorie-cmd-read calorie.goal.weight --params '{\"kg\":68}' + calorie-cmd-read calorie.goal.water --params '{\"water\":2000}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「一键定全套目标」。\n\n想一键设定 3 类目标(营养 + 体重 + 饮水),基于我的档案自动计算,先给我看结果,等我确认后再采纳。若我的档案(身高/年龄/活动量)未设置、无体重记录或信息缺失,请先询问补齐;若我已明确表达,直接计算,必要时做几句信息确认即可。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的目标方向(减脂 / 维持 / 增肌):____\n我的体重目标(kg,选填):____\n截止日期(选填):____", "user_intent": "一键设定营养+体重+饮水全套目标", "data_fields": ["calorie_goal", "protein_goal", "carbs_goal", "fat_goal", "water_goal", "weight_goal"], "depends_on_external": false, "order": 7 },
11
+ { "category": "目标管理", "wake_word": "看今日目标", "desc": "看今日营养 4 项 + 饮水共 5 项目标完成度(体重为累计目标,引导到看体重目标进度)", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode today", "text": "请你加载技能 卡路里,执行唤醒词「看今日目标」。\n\n我想看今日 5 项目标完成度(热量/蛋白/碳水/脂肪/饮水)。体重是累计目标,若我想看,请引导我到「看体重目标进度」。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_today", "name": "看今日目标", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode today", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看今日目标」。\n\n我想看今日 5 项目标完成度(热量/蛋白/碳水/脂肪/饮水)。体重是累计目标,若我想看,请引导我到「看体重目标进度」。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看今日营养 4 项 + 饮水共 5 项目标完成度(体重为累计目标,引导到看体重目标进度)", "data_fields": ["calorie_goal", "protein_goal", "carbs_goal", "fat_goal", "water_goal", "actual", "pct"], "depends_on_external": false, "order": 8 },
12
+ { "category": "目标管理", "wake_word": "看本周目标", "desc": "看本周目标完成度汇总", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode week", "text": "请你加载技能 卡路里,执行唤醒词「看本周目标」。\n\n我想看本周目标完成情况(热量/蛋白/碳水/脂肪/饮水)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_week", "name": "看本周目标", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode week", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看本周目标」。\n\n我想看本周目标完成情况(热量/蛋白/碳水/脂肪/饮水)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看本周目标完成度汇总", "data_fields": ["daily_avg", "daily_target", "week_total", "week_target"], "depends_on_external": false, "order": 9 },
13
+ { "category": "目标管理", "wake_word": "看营养目标进度", "desc": "看 4 项营养目标进度", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode nutrition", "text": "请你加载技能 卡路里,执行唤醒词「看营养目标进度」。\n\n我想看 4 项营养目标(热量/蛋白/碳水/脂肪)的完成进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_nutrition_progress", "name": "看营养目标进度", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode nutrition", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看营养目标进度」。\n\n我想看 4 项营养目标(热量/蛋白/碳水/脂肪)的完成进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看 4 项营养目标进度", "data_fields": ["calorie_rate", "protein_rate", "carbs_rate", "fat_rate", "calorie_gap"], "depends_on_external": false, "order": 10 },
14
+ { "category": "目标管理", "wake_word": "看体重目标进度", "desc": "看体重目标进度含预估达成", "main_prompt": { "cli": "python scripts/calorie_tracker.py weight-goal-progress", "text": "请你加载技能 卡路里,执行唤醒词「看体重目标进度」。\n\n我想看体重目标进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_weight_progress", "name": "看体重目标进度", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/calorie_tracker.py weight-goal-progress", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看体重目标进度」。\n\n我想看体重目标进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看体重目标进度含预估达成", "data_fields": ["current", "target", "delta", "pct", "predict_date", "days_left", "suggested_rate"], "depends_on_external": false, "order": 11 },
15
+ { "category": "目标管理", "wake_word": "看饮水目标进度", "desc": "看饮水目标进度", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode water", "text": "请你加载技能 卡路里,执行唤醒词「看饮水目标进度」。\n\n我想看今日饮水进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_water_progress", "name": "看饮水目标进度", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode water", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看饮水目标进度」。\n\n我想看今日饮水进度。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看饮水目标进度", "data_fields": ["cumulative", "target", "pct", "remaining_ml"], "depends_on_external": false, "order": 12 },
16
+ { "category": "目标管理", "wake_word": "看目标对比实际", "desc": "看目标线 vs 实际线折线对比", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode vs_actual", "text": "请你加载技能 卡路里,执行唤醒词「看目标对比实际」。\n\n我想看热量目标线 vs 实际摄入线的对比与偏差分析,默认最近 30 天(可自定义时间窗口)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间窗口(天,选填,默认 30):____" }, "fill_hints": [], "variants": [], "key": "goal_view_vs_actual", "name": "看目标对比实际", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode vs_actual", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标对比实际」。\n\n我想看热量目标线 vs 实际摄入线的对比与偏差分析,默认最近 30 天(可自定义时间窗口)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间窗口(天,选填,默认 30):____", "user_intent": "看目标线 vs 实际线折线对比", "data_fields": ["daily_calorie_goal", "daily_calorie_actual", "deviation_pct"], "depends_on_external": false, "order": 13 },
17
+ { "category": "目标管理", "wake_word": "看目标完成度", "desc": "查看全部目标完成度 + 缺口绝对值 + 总评分", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode completion", "text": "请你加载技能 卡路里,执行唤醒词「看目标完成度」。\n\n我想看全部目标完成度汇总(热量/蛋白/碳水/脂肪/饮水)和总评分。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_completion", "name": "看目标完成度(含缺口)", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode completion", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标完成度」。\n\n我想看全部目标完成度汇总(热量/蛋白/碳水/脂肪/饮水)和总评分。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "查看全部目标完成度 + 缺口绝对值 + 总评分", "data_fields": ["pct", "gap", "total_score"], "depends_on_external": false, "order": 14 },
18
+ { "category": "目标管理", "wake_word": "看即将到期的目标", "desc": "看即将到期的目标列表", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode weight --expiring 14", "text": "请你加载技能 卡路里,执行唤醒词「看即将到期的目标」。\n\n我想看即将到期的体重目标(默认 14 天内到期)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n到期窗口(天,选填,默认 14):____" }, "fill_hints": [], "variants": [], "key": "goal_view_expiring", "name": "看即将到期的目标", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode weight --expiring 14", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看即将到期的目标」。\n\n我想看即将到期的体重目标(默认 14 天内到期)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n到期窗口(天,选填,默认 14):____", "user_intent": "看即将到期的目标列表", "data_fields": ["weight_goal", "deadline", "days_left", "current_weight", "completion_pct", "urgency"], "depends_on_external": false, "order": 15 },
19
+ { "category": "目标管理", "wake_word": "看目标完成率(按周)", "desc": "看本周营养目标每日完成率", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode nutrition --period week", "text": "请你加载技能 卡路里,执行唤醒词「看目标完成率(按周)」。\n\n我想看本周(7 天)每日目标完成率 + 达标天数(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_completion_rate_week", "name": "看目标完成率(按周)", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode nutrition --period week", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标完成率(按周)」。\n\n我想看本周(7 天)每日目标完成率 + 达标天数(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看本周营养目标每日完成率", "data_fields": ["week_daily_rate", "week_complete_days", "week_avg_rate"], "depends_on_external": false, "order": 16 },
20
+ { "category": "目标管理", "wake_word": "看目标完成率(按月)", "desc": "看本月营养目标每日完成率", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode nutrition --period month", "text": "请你加载技能 卡路里,执行唤醒词「看目标完成率(按月)」。\n\n我想看本月(30 天)每日目标完成率 + 达标天数(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_completion_rate_month", "name": "看目标完成率(按月)", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode nutrition --period month", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标完成率(按月)」。\n\n我想看本月(30 天)每日目标完成率 + 达标天数(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "看本月营养目标每日完成率", "data_fields": ["month_daily_rate", "month_complete_days", "month_avg_rate"], "depends_on_external": false, "order": 17 },
21
+ { "category": "目标管理", "wake_word": "改营养目标", "desc": "改某项或全部营养目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}'", "text": "请你加载技能 卡路里,执行唤醒词「改营养目标」。\n\n我想修改营养目标(热量/蛋白/碳水/脂肪/饮水),可同时改多项,并预估修改后的影响(热量缺口/预算变化)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的项(每行一项,不改的留空):\n热量(卡)新目标值:____\n蛋白(g)新目标值:____\n碳水(g)新目标值:____\n脂肪(g)新目标值:____\n饮水(ml)新目标值:____" }, "fill_hints": [], "variants": [], "key": "goal_modify_nutrition", "name": "改营养目标", "subfunction": "改目标", "output_type": "receipt", "html_template": "templates/goal_config.html", "data_source": "calorie-cmd-read calorie.goal.set --params '{\"calorie\":1800,\"protein\":150,\"carbs\":200,\"fat\":50}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改营养目标」。\n\n我想修改营养目标(热量/蛋白/碳水/脂肪/饮水),可同时改多项,并预估修改后的影响(热量缺口/预算变化)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的项(每行一项,不改的留空):\n热量(卡)新目标值:____\n蛋白(g)新目标值:____\n碳水(g)新目标值:____\n脂肪(g)新目标值:____\n饮水(ml)新目标值:____", "user_intent": "改某项或全部营养目标", "data_fields": ["old_calorie_goal", "new_calorie_goal", "old_protein_goal", "new_protein_goal", "old_water_goal", "new_water_goal"], "depends_on_external": false, "order": 18 },
22
+ { "category": "目标管理", "wake_word": "改体重目标", "desc": "改体重目标含截止日", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":67.5}'", "text": "请你加载技能 卡路里,执行唤醒词「改体重目标」。\n\n我想修改体重目标值或截止日期,并给出新的建议减重速率。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的项(每行一项,不改的留空):\n体重目标(kg):____\n截止日期:____" }, "fill_hints": [], "variants": [], "key": "goal_modify_weight", "name": "改体重目标", "subfunction": "改目标", "output_type": "receipt", "html_template": "templates/goal_weight.html", "data_source": "calorie-cmd-read calorie.goal.weight --params '{\"kg\":67.5}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改体重目标」。\n\n我想修改体重目标值或截止日期,并给出新的建议减重速率。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的项(每行一项,不改的留空):\n体重目标(kg):____\n截止日期:____", "user_intent": "改体重目标含截止日", "data_fields": ["old_weight_goal", "new_weight_goal", "old_deadline", "new_deadline"], "depends_on_external": false, "order": 19 },
23
+ { "category": "目标管理", "wake_word": "改饮水目标", "desc": "单独改饮水目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.water --params '{\"water\":2200}'", "text": "请你加载技能 卡路里,执行唤醒词「改饮水目标」。\n\n我想单独修改饮水目标,其他营养目标保持不变。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n饮水目标(ml):____" }, "fill_hints": [], "variants": [], "key": "goal_modify_water", "name": "改饮水目标", "subfunction": "改目标", "output_type": "receipt", "html_template": "templates/goal_config.html", "data_source": "calorie-cmd-read calorie.goal.water --params '{\"water\":2200}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改饮水目标」。\n\n我想单独修改饮水目标,其他营养目标保持不变。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n饮水目标(ml):____", "user_intent": "单独改饮水目标", "data_fields": ["old_water_goal", "new_water_goal"], "depends_on_external": false, "order": 20 },
24
+ { "category": "目标管理", "wake_word": "暂停所有目标", "desc": "临时暂停全部目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.pause", "text": "请你加载技能 卡路里,执行唤醒词「暂停所有目标」。\n\n我想临时冻结全部目标(营养 + 体重 + 饮水),记录照常,仅目标暂停,并提示恢复入口。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_pause_all", "name": "暂停所有目标", "subfunction": "改目标", "output_type": "receipt", "html_template": "templates/goal_status.html", "data_source": "calorie-cmd-read calorie.goal.pause", "prompt_template": "请你加载技能 卡路里,执行唤醒词「暂停所有目标」。\n\n我想临时冻结全部目标(营养 + 体重 + 饮水),记录照常,仅目标暂停,并提示恢复入口。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "临时暂停全部目标", "data_fields": ["paused", "note", "restore_hint"], "depends_on_external": false, "order": 21 },
25
+ { "category": "目标管理", "wake_word": "重启所有目标", "desc": "从暂停恢复全部目标", "main_prompt": { "cli": "calorie-cmd-read calorie.goal.resume", "text": "请你加载技能 卡路里,执行唤醒词「重启所有目标」。\n\n我想从暂停恢复全部目标(营养 + 体重 + 饮水)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_resume_all", "name": "重启所有目标", "subfunction": "改目标", "output_type": "receipt", "html_template": "templates/goal_status.html", "data_source": "calorie-cmd-read calorie.goal.resume", "prompt_template": "请你加载技能 卡路里,执行唤醒词「重启所有目标」。\n\n我想从暂停恢复全部目标(营养 + 体重 + 饮水)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "从暂停恢复全部目标", "data_fields": ["resume_state", "resumed_at"], "depends_on_external": false, "order": 22 },
26
+ { "category": "目标管理", "wake_word": "看目标历史完成", "desc": "看历史目标完成情况", "main_prompt": { "cli": "goal_history.list_completed_goals", "text": "请你加载技能 卡路里,执行唤醒词「看目标历史完成」。\n\n我想看历史目标达成情况,含每日达成列表与完成/未完成天数统计(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n回看天数(选填,默认 30):____" }, "fill_hints": [], "variants": [], "key": "goal_view_history_complete", "name": "看目标历史完成", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "goal_history.list_completed_goals", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标历史完成」。\n\n我想看历史目标达成情况,含每日达成列表与完成/未完成天数统计(达标带 80%-120%)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n回看天数(选填,默认 30):____", "user_intent": "看历史目标完成情况", "data_fields": ["goal_history", "completed_count", "incomplete_count"], "depends_on_external": false, "order": 23 },
27
+ { "category": "目标管理", "wake_word": "看目标预测达成", "desc": "预测目标达成日 + 置信度(体重部分复用对比体重 B1 的预测)", "main_prompt": { "cli": "python scripts/render_goal_progress.py --mode predict", "text": "请你加载技能 卡路里,执行唤醒词「看目标预测达成」。\n\n我想看按当前趋势预测的目标达成日与置信度(体重部分复用对比体重的预测逻辑)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "goal_view_predict", "name": "看目标预测达成", "subfunction": "看目标", "output_type": "result", "html_template": "templates/goal_progress.html", "data_source": "python scripts/render_goal_progress.py --mode predict", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看目标预测达成」。\n\n我想看按当前趋势预测的目标达成日与置信度(体重部分复用对比体重的预测逻辑)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "预测目标达成日 + 置信度(体重部分复用对比体重 B1 的预测)", "data_fields": ["predict_date", "confidence"], "depends_on_external": false, "order": 24 },
28
+ ];
29
+ //# sourceMappingURL=scene-06-goal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-06-goal.js","sourceRoot":"","sources":["../../src/triggers/scene-06-goal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Trigger } from './types.js';
2
+ /** 07-基础信息:4 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
3
+ export declare const SCENE_07_PROFILE: Trigger[];
4
+ //# sourceMappingURL=scene-07-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-07-profile.d.ts","sourceRoot":"","sources":["../../src/triggers/scene-07-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wDAAwD;AACxD,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAKrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** 07-基础信息:4 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
2
+ export const SCENE_07_PROFILE = [
3
+ { "category": "基础信息", "wake_word": "设置档案", "desc": "设置基础档案(身高/年龄/性别/活动量)", "main_prompt": { "cli": "calorie-cmd-read calorie.profile.set --params '{\"heightCm\":175,\"age\":30,\"gender\":\"male\",\"activityLevel\":\"moderate\"}'", "text": "请你加载技能 卡路里,执行唤醒词「设置档案」。\n\n我想设置基础档案(身高/年龄/性别/活动量)。如果我没说全,请一项一项问我,并根据我的日常情况推荐合适的活动量。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的身高(cm):____\n年龄:____\n性别(男/女):____\n日常活动情况(选填,用于推荐活动量):____" }, "fill_hints": [], "variants": [], "key": "profile_setup", "name": "设置档案", "subfunction": "设置资料", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "calorie-cmd-read calorie.profile.set --params '{\"heightCm\":175,\"age\":30,\"gender\":\"male\",\"activityLevel\":\"moderate\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「设置档案」。\n\n我想设置基础档案(身高/年龄/性别/活动量)。如果我没说全,请一项一项问我,并根据我的日常情况推荐合适的活动量。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的身高(cm):____\n年龄:____\n性别(男/女):____\n日常活动情况(选填,用于推荐活动量):____", "user_intent": "设置基础档案(身高/年龄/性别/活动量)", "data_fields": ["height_cm", "age", "gender", "activity_level", "activity_factor", "created_at"], "depends_on_external": false, "order": 0 },
4
+ { "category": "基础信息", "wake_word": "设活动量", "desc": "单独设置活动量", "main_prompt": { "cli": "calorie-cmd-read calorie.profile.activity --params '{\"activityLevel\":\"active\"}'", "text": "请你加载技能 卡路里,执行唤醒词「设活动量」。\n\n我要单独设置活动量(久坐/轻度/中度/活跃/高度活跃)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的活动量(久坐/轻度/中度/活跃/高度活跃):____" }, "fill_hints": [], "variants": [], "key": "profile_set_activity", "name": "设活动量", "subfunction": "设置资料", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "calorie-cmd-read calorie.profile.activity --params '{\"activityLevel\":\"active\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「设活动量」。\n\n我要单独设置活动量(久坐/轻度/中度/活跃/高度活跃)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我的活动量(久坐/轻度/中度/活跃/高度活跃):____", "user_intent": "单独设置活动量", "data_fields": ["activity_level", "activity_factor", "tdee"], "depends_on_external": false, "order": 1 },
5
+ { "category": "基础信息", "wake_word": "改档案", "desc": "修改档案中的某个字段", "main_prompt": { "cli": "calorie-cmd-read calorie.profile.update --params '{\"field\":\"heightCm\",\"value\":176}'", "text": "请你加载技能 卡路里,执行唤醒词「改档案」。\n\n我要改档案里的字段(身高/年龄/性别/活动量/备注)。改之前请先确认我原来的值。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的字段(允许一行一条,可改多个):\n身高(新值):____\n年龄(新值):____\n性别(新值):____\n活动量(新值):____\n备注(新值):____" }, "fill_hints": [], "variants": [], "key": "profile_update", "name": "改档案", "subfunction": "改资料", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "calorie-cmd-read calorie.profile.update --params '{\"field\":\"heightCm\",\"value\":176}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改档案」。\n\n我要改档案里的字段(身高/年龄/性别/活动量/备注)。改之前请先确认我原来的值。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n我要改的字段(允许一行一条,可改多个):\n身高(新值):____\n年龄(新值):____\n性别(新值):____\n活动量(新值):____\n备注(新值):____", "user_intent": "修改档案中的某个字段", "data_fields": ["height_cm", "age", "gender", "activity_level", "note", "bmi", "tdee"], "depends_on_external": false, "order": 0 },
6
+ { "category": "基础信息", "wake_word": "查档案", "desc": "查看档案及最新体重与身体指标", "main_prompt": { "cli": "python scripts/render_crud_view.py --entity profile --chain \"1.识别→2.读DB→3.算TDEE\"", "text": "请你加载技能 卡路里,执行唤醒词「查档案」。\n\n我想看自己的完整档案。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "profile_view", "name": "查档案", "subfunction": "看档案", "output_type": "result", "html_template": "templates/crud_view.html", "data_source": "python scripts/render_crud_view.py --entity profile --chain \"1.识别→2.读DB→3.算TDEE\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「查档案」。\n\n我想看自己的完整档案。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "查看档案及最新体重与身体指标", "data_fields": ["height_cm", "age", "gender", "activity_level", "activity_factor", "weight_kg", "bmi", "bmr", "tdee"], "depends_on_external": false, "order": 0 },
7
+ ];
8
+ //# sourceMappingURL=scene-07-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-07-profile.js","sourceRoot":"","sources":["../../src/triggers/scene-07-profile.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAc;IAC3C,EAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,aAAa,EAAE,EAAC,KAAK,EAAE,kIAAkI,EAAE,MAAM,EAAE,2LAA2L,EAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,6BAA6B,EAAE,aAAa,EAAE,kIAAkI,EAAE,iBAAiB,EAAE,2LAA2L,EAAE,aAAa,EAAE,sBAAsB,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;IAC3mC,EAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,EAAC,KAAK,EAAE,qFAAqF,EAAE,MAAM,EAAE,8HAA8H,EAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,6BAA6B,EAAE,aAAa,EAAE,qFAAqF,EAAE,iBAAiB,EAAE,8HAA8H,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;IACh2B,EAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAC,KAAK,EAAE,2FAA2F,EAAE,MAAM,EAAE,mMAAmM,EAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,6BAA6B,EAAE,aAAa,EAAE,2FAA2F,EAAE,iBAAiB,EAAE,mMAAmM,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;IAC7gC,EAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAC,KAAK,EAAE,oFAAoF,EAAE,MAAM,EAAE,4EAA4E,EAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,0BAA0B,EAAE,aAAa,EAAE,oFAAoF,EAAE,iBAAiB,EAAE,4EAA4E,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;CACjzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Trigger } from './types.js';
2
+ /** 08-身体细节:13 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
3
+ export declare const SCENE_08_BODY: Trigger[];
4
+ //# sourceMappingURL=scene-08-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-08-body.d.ts","sourceRoot":"","sources":["../../src/triggers/scene-08-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,yDAAyD;AACzD,eAAO,MAAM,aAAa,EAAE,OAAO,EAclC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /** 08-身体细节:13 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
2
+ export const SCENE_08_BODY = [
3
+ { "category": "身体细节", "wake_word": "记体脂(皮褶钳)", "desc": "我想用手持皮褶钳测 7 点并自动算体脂率存档", "main_prompt": { "cli": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"home_caliper\",\"bodyFatPct\":18.5,\"date\":\"2026-09-06\"}'", "text": "请你加载技能 卡路里,执行唤醒词「记体脂(皮褶钳)」。\n\n我用皮褶钳测了 7 点(胸/腹/大腿/三头/肩胛下/髂上/腋中 mm),请按 Jackson-Pollock 7 点法帮我算体脂率并记录。如果我没说性别/年龄,请先问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n7 点皮褶厚度(mm):\n胸:____\n腹:____\n大腿:____\n三头:____\n肩胛下:____\n髂上:____\n腋中:____\n性别(男/女):____\n年龄:____" }, "fill_hints": [], "variants": [], "key": "body_comp_add_caliper", "name": "记体脂(皮褶钳)", "subfunction": "记身体细节", "output_type": "receipt", "html_template": "templates/body_composition_wizard.html", "data_source": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"home_caliper\",\"bodyFatPct\":18.5,\"date\":\"2026-09-06\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记体脂(皮褶钳)」。\n\n我用皮褶钳测了 7 点(胸/腹/大腿/三头/肩胛下/髂上/腋中 mm),请按 Jackson-Pollock 7 点法帮我算体脂率并记录。如果我没说性别/年龄,请先问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n7 点皮褶厚度(mm):\n胸:____\n腹:____\n大腿:____\n三头:____\n肩胛下:____\n髂上:____\n腋中:____\n性别(男/女):____\n年龄:____", "user_intent": "我想用手持皮褶钳测 7 点并自动算体脂率存档", "data_fields": ["caliper_chest_mm", "caliper_abdominal_mm", "caliper_thigh_mm", "caliper_tricep_mm", "caliper_subscapular_mm", "caliper_suprailiac_mm", "caliper_midaxillary_mm", "body_fat_pct", "age", "sex", "source"], "depends_on_external": false, "order": 0 },
4
+ { "category": "身体细节", "wake_word": "记体脂(外部测量)", "desc": "我想记录外部设备(健身房/医院)测的体脂率", "main_prompt": { "cli": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"gym\",\"bodyFatPct\":18.5,\"date\":\"2026-09-06\"}'", "text": "请你加载技能 卡路里,执行唤醒词「记体脂(外部测量)」。\n\n我用外部设备(健身房 InBody/医院/其他)测了体脂率,请帮我记录体脂率和来源、日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n体脂率(%):____\n来源(健身房/医院/其他):____\n日期:____" }, "fill_hints": [], "variants": [], "key": "body_comp_add_external", "name": "记体脂(外部测量)", "subfunction": "记身体细节", "output_type": "receipt", "html_template": "templates/body_composition_wizard.html", "data_source": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"gym\",\"bodyFatPct\":18.5,\"date\":\"2026-09-06\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记体脂(外部测量)」。\n\n我用外部设备(健身房 InBody/医院/其他)测了体脂率,请帮我记录体脂率和来源、日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n体脂率(%):____\n来源(健身房/医院/其他):____\n日期:____", "user_intent": "我想记录外部设备(健身房/医院)测的体脂率", "data_fields": ["body_fat_pct", "source", "date"], "depends_on_external": false, "order": 1 },
5
+ { "category": "身体细节", "wake_word": "记围度", "desc": "我想记录身体围度(13 项,可部分填写)", "main_prompt": { "cli": "calorie-cmd-read calorie.body.measure-add --params '{\"waistCm\":85,\"hipCm\":95}'", "text": "请你加载技能 卡路里,执行唤醒词「记围度」。\n\n我量了身体围度,请帮我记录 13 项围度(胸/腰/腹/臀/肩/大腿/小腿/手臂/前臂,左+右),量了哪项填哪项,没量的留空。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n胸围(cm):____\n腰围(cm):____\n腹围(cm):____\n臀围(cm):____\n肩围(cm):____\n左大腿(cm):____\n右大腿(cm):____\n左小腿(cm):____\n右小腿(cm):____\n左上臂(cm):____\n右上臂(cm):____\n左前臂(cm):____\n右前臂(cm):____" }, "fill_hints": [], "variants": [], "key": "body_meas_add", "name": "记围度", "subfunction": "记身体细节", "output_type": "receipt", "html_template": "templates/body_measurements_wizard.html", "data_source": "calorie-cmd-read calorie.body.measure-add --params '{\"waistCm\":85,\"hipCm\":95}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记围度」。\n\n我量了身体围度,请帮我记录 13 项围度(胸/腰/腹/臀/肩/大腿/小腿/手臂/前臂,左+右),量了哪项填哪项,没量的留空。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n胸围(cm):____\n腰围(cm):____\n腹围(cm):____\n臀围(cm):____\n肩围(cm):____\n左大腿(cm):____\n右大腿(cm):____\n左小腿(cm):____\n右小腿(cm):____\n左上臂(cm):____\n右上臂(cm):____\n左前臂(cm):____\n右前臂(cm):____", "user_intent": "我想记录身体围度(13 项,可部分填写)", "data_fields": ["chest_cm", "waist_cm", "abdomen_cm", "hip_cm", "shoulder_cm", "left_thigh_cm", "right_thigh_cm", "left_calf_cm", "right_calf_cm", "left_arm_cm", "right_arm_cm", "left_forearm_cm", "right_forearm_cm", "date"], "depends_on_external": false, "order": 2 },
6
+ { "category": "身体细节", "wake_word": "补记体脂", "desc": "我想补录过去某天的体脂测量", "main_prompt": { "cli": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"gym\",\"bodyFatPct\":19,\"date\":\"2026-09-01\"}'", "text": "请你加载技能 卡路里,执行唤醒词「补记体脂」。\n\n我要补录之前某天的体脂测量(不是今天的)。如果那天已有记录,请先告诉我冲突再确认。补完后可以问我还要不要补其他日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n体脂率(%):____\n来源(皮褶钳/健身房/医院/其他):____\n日期:____" }, "fill_hints": [], "variants": [], "key": "body_comp_backfill", "name": "补记体脂", "subfunction": "记身体细节", "output_type": "receipt", "html_template": "templates/body_composition_wizard.html", "data_source": "calorie-cmd-read calorie.body.composition-add --params '{\"source\":\"gym\",\"bodyFatPct\":19,\"date\":\"2026-09-01\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「补记体脂」。\n\n我要补录之前某天的体脂测量(不是今天的)。如果那天已有记录,请先告诉我冲突再确认。补完后可以问我还要不要补其他日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n体脂率(%):____\n来源(皮褶钳/健身房/医院/其他):____\n日期:____", "user_intent": "我想补录过去某天的体脂测量", "data_fields": ["date", "body_fat_pct", "source", "conflict"], "depends_on_external": false, "order": 3 },
7
+ { "category": "身体细节", "wake_word": "补记围度", "desc": "我想补录过去某天的围度测量", "main_prompt": { "cli": "calorie-cmd-read calorie.body.measure-add --params '{\"waistCm\":86,\"date\":\"2026-09-01\"}'", "text": "请你加载技能 卡路里,执行唤醒词「补记围度」。\n\n我要补录之前某天的围度测量(不是今天的)。如果那天已有记录,请先告诉我冲突再确认。补完后可以问我还要不要补其他日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n各围度(cm,量了哪项填哪项):\n胸围:____\n腰围:____\n腹围:____\n臀围:____\n肩围:____\n左大腿:____\n右大腿:____\n左小腿:____\n右小腿:____\n左上臂:____\n右上臂:____\n左前臂:____\n右前臂:____\n日期:____" }, "fill_hints": [], "variants": [], "key": "body_meas_backfill", "name": "补记围度", "subfunction": "记身体细节", "output_type": "receipt", "html_template": "templates/body_measurements_wizard.html", "data_source": "calorie-cmd-read calorie.body.measure-add --params '{\"waistCm\":86,\"date\":\"2026-09-01\"}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「补记围度」。\n\n我要补录之前某天的围度测量(不是今天的)。如果那天已有记录,请先告诉我冲突再确认。补完后可以问我还要不要补其他日期。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n各围度(cm,量了哪项填哪项):\n胸围:____\n腰围:____\n腹围:____\n臀围:____\n肩围:____\n左大腿:____\n右大腿:____\n左小腿:____\n右小腿:____\n左上臂:____\n右上臂:____\n左前臂:____\n右前臂:____\n日期:____", "user_intent": "我想补录过去某天的围度测量", "data_fields": ["date", "chest_cm", "waist_cm", "abdomen_cm", "hip_cm", "shoulder_cm", "conflict"], "depends_on_external": false, "order": 4 },
8
+ { "category": "身体细节", "wake_word": "看体脂", "desc": "我想看历史体脂记录并可按来源筛选", "main_prompt": { "cli": "python scripts/render_body_composition_view.py --mode list --source <皮褶钳/健身房/医院/全部> --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「看体脂」。\n\n我想看历史体脂记录。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "body_comp_list", "name": "看体脂", "subfunction": "看身体细节", "output_type": "result", "html_template": "templates/body_composition_view.html", "data_source": "python scripts/render_body_composition_view.py --mode list --source <皮褶钳/健身房/医院/全部> --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看体脂」。\n\n我想看历史体脂记录。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看历史体脂记录并可按来源筛选", "data_fields": ["date", "body_fat_pct", "source", "source_filter", "current"], "depends_on_external": false, "order": 0 },
9
+ { "category": "身体细节", "wake_word": "看体脂趋势", "desc": "我想看体脂率趋势(默认最近来源,可切换)", "main_prompt": { "cli": "python scripts/render_body_composition_view.py --mode trend --source <默认最近来源> --days 90 --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「看体脂趋势」。\n\n我想看体脂率趋势,默认用我最近用的来源,也可以切换来源。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "body_comp_trend", "name": "看体脂趋势", "subfunction": "看身体细节", "output_type": "result", "html_template": "templates/body_composition_view.html", "data_source": "python scripts/render_body_composition_view.py --mode trend --source <默认最近来源> --days 90 --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看体脂趋势」。\n\n我想看体脂率趋势,默认用我最近用的来源,也可以切换来源。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看体脂率趋势(默认最近来源,可切换)", "data_fields": ["source", "trend", "delta", "avg", "min"], "depends_on_external": false, "order": 1 },
10
+ { "category": "身体细节", "wake_word": "看围度", "desc": "我想看历史围度记录并可按部位筛选", "main_prompt": { "cli": "python scripts/render_body_measurements_view.py --mode list --metric <部位> --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「看围度」。\n\n我想看历史围度记录。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "body_meas_list", "name": "看围度", "subfunction": "看身体细节", "output_type": "result", "html_template": "templates/body_measurements_view.html", "data_source": "python scripts/render_body_measurements_view.py --mode list --metric <部位> --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看围度」。\n\n我想看历史围度记录。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看历史围度记录并可按部位筛选", "data_fields": ["date", "measurements", "metric_filter"], "depends_on_external": false, "order": 2 },
11
+ { "category": "身体细节", "wake_word": "看围度趋势", "desc": "我想看某部位围度的变化趋势", "main_prompt": { "cli": "python scripts/render_body_measurements_view.py --mode trend --metric <部位> --days 90 --chain \"1.识别→2.选部位→3.读DB→4.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「看围度趋势」。\n\n我想看某个部位的围度变化。请先让我选部位。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。" }, "fill_hints": [], "variants": [], "key": "body_meas_trend", "name": "看围度趋势", "subfunction": "看身体细节", "output_type": "result", "html_template": "templates/body_measurements_view.html", "data_source": "python scripts/render_body_measurements_view.py --mode trend --metric <部位> --days 90 --chain \"1.识别→2.选部位→3.读DB→4.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「看围度趋势」。\n\n我想看某个部位的围度变化。请先让我选部位。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。", "user_intent": "我想看某部位围度的变化趋势", "data_fields": ["metric", "trend", "delta_summary"], "depends_on_external": false, "order": 3 },
12
+ { "category": "身体细节", "wake_word": "对比体脂", "desc": "我想对比两段时间的体脂变化", "main_prompt": { "cli": "python scripts/render_body_composition_view.py --mode compare --start1 <D1> --end1 <D2> --start2 <D3> --end2 <D4> --source <来源> --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「对比体脂」。\n\n我想对比两次体脂测量,第一次和第二次都可以给具体日期或一段时间。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第一次(日期或时间段):____\n第二次(日期或时间段):____" }, "fill_hints": [], "variants": [], "key": "body_comp_compare", "name": "对比体脂", "subfunction": "比身体细节", "output_type": "result", "html_template": "templates/body_composition_view.html", "data_source": "python scripts/render_body_composition_view.py --mode compare --start1 <D1> --end1 <D2> --start2 <D3> --end2 <D4> --source <来源> --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「对比体脂」。\n\n我想对比两次体脂测量,第一次和第二次都可以给具体日期或一段时间。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第一次(日期或时间段):____\n第二次(日期或时间段):____", "user_intent": "我想对比两段时间的体脂变化", "data_fields": ["period1", "period2", "delta", "pct_change", "source"], "depends_on_external": false, "order": 0 },
13
+ { "category": "身体细节", "wake_word": "对比围度", "desc": "我想对比两个日期的围度变化", "main_prompt": { "cli": "python scripts/render_body_measurements_view.py --mode compare --date1 <D1> --date2 <D2> --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「对比围度」。\n\n我想对比两次围度测量。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第一次日期:____\n第二次日期:____" }, "fill_hints": [], "variants": [], "key": "body_meas_compare", "name": "对比围度", "subfunction": "比身体细节", "output_type": "result", "html_template": "templates/body_measurements_view.html", "data_source": "python scripts/render_body_measurements_view.py --mode compare --date1 <D1> --date2 <D2> --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「对比围度」。\n\n我想对比两次围度测量。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n第一次日期:____\n第二次日期:____", "user_intent": "我想对比两个日期的围度变化", "data_fields": ["date1", "date2", "deltas"], "depends_on_external": false, "order": 1 },
14
+ { "category": "身体细节", "wake_word": "删体脂", "desc": "我想删除一条体脂记录", "main_prompt": { "cli": "calorie-cmd-read calorie.body.composition-remove --params '{\"id\":1}'", "text": "请你加载技能 卡路里,执行唤醒词「删体脂」。\n\n我要删一条体脂记录。如果我没说清是哪条,请先列出最近的几条记录(日期/体脂率/来源)让我选。确认后,删除前先给我看这条记录的内容,确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的记录(选填,如「最近一条」或日期):____" }, "fill_hints": [], "variants": [], "key": "body_comp_delete", "name": "删体脂", "subfunction": "删身体细节", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "calorie-cmd-read calorie.body.composition-remove --params '{\"id\":1}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「删体脂」。\n\n我要删一条体脂记录。如果我没说清是哪条,请先列出最近的几条记录(日期/体脂率/来源)让我选。确认后,删除前先给我看这条记录的内容,确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的记录(选填,如「最近一条」或日期):____", "user_intent": "我想删除一条体脂记录", "data_fields": ["id", "date", "body_fat_pct", "source", "snapshot"], "depends_on_external": false, "order": 0 },
15
+ { "category": "身体细节", "wake_word": "删围度", "desc": "我想删除一条围度记录", "main_prompt": { "cli": "calorie-cmd-read calorie.body.measure-remove --params '{\"id\":1}'", "text": "请你加载技能 卡路里,执行唤醒词「删围度」。\n\n我要删一条围度记录。如果我没说清是哪条,请先列出最近的几条记录(日期/各围度)让我选。确认后,删除前先给我看这条记录的内容,确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的记录(选填,如「最近一条」或日期):____" }, "fill_hints": [], "variants": [], "key": "body_meas_delete", "name": "删围度", "subfunction": "删身体细节", "output_type": "receipt", "html_template": "templates/crud_receipt.html", "data_source": "calorie-cmd-read calorie.body.measure-remove --params '{\"id\":1}'", "prompt_template": "请你加载技能 卡路里,执行唤醒词「删围度」。\n\n我要删一条围度记录。如果我没说清是哪条,请先列出最近的几条记录(日期/各围度)让我选。确认后,删除前先给我看这条记录的内容,确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的记录(选填,如「最近一条」或日期):____", "user_intent": "我想删除一条围度记录", "data_fields": ["id", "date", "measurements", "snapshot"], "depends_on_external": false, "order": 1 },
16
+ ];
17
+ //# sourceMappingURL=scene-08-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-08-body.js","sourceRoot":"","sources":["../../src/triggers/scene-08-body.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Trigger } from './types.js';
2
+ /** 09-身材照片:10 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
3
+ export declare const SCENE_09_PHOTO: Trigger[];
4
+ //# sourceMappingURL=scene-09-photo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-09-photo.d.ts","sourceRoot":"","sources":["../../src/triggers/scene-09-photo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,yDAAyD;AACzD,eAAO,MAAM,cAAc,EAAE,OAAO,EAWnC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /** 09-身材照片:10 唤醒词(SoT scripts/_triggers.py 原样拆分,顺序保留) */
2
+ export const SCENE_09_PHOTO = [
3
+ { "category": "身材照片", "wake_word": "记身材照", "desc": "存一张身材照(发图/路径双模式)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-add <照片路径> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要存一张身材照。你可以直接发照片给我(手机/飞书),也可以告诉我照片文件路径(电脑)。如果标签没说,请问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面/侧面/背部):____" }, "fill_hints": [], "variants": [], "key": "body_photo_add_single", "name": "存一张照片", "subfunction": "存身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-add <照片路径> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要存一张身材照。你可以直接发照片给我(手机/飞书),也可以告诉我照片文件路径(电脑)。如果标签没说,请问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面/侧面/背部):____", "user_intent": "存一张身材照并预览回执", "data_fields": ["photo_path", "tag_list", "date", "distance_days", "note"], "depends_on_external": false, "order": 0 },
4
+ { "category": "身材照片", "wake_word": "记身材照", "desc": "存一张带备注的身材照", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-add <照片路径> --tag <标签> --note <备注> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要存一张身材照并附备注(比如当时的状态/饮食阶段)。你可以直接发照片给我(手机/飞书),也可以告诉我照片文件路径(电脑)。如果标签没说,请问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面/侧面/背部):____\n备注:____" }, "fill_hints": [], "variants": [], "key": "body_photo_add_note", "name": "存照片(含备注)", "subfunction": "存身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-add <照片路径> --tag <标签> --note <备注> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要存一张身材照并附备注(比如当时的状态/饮食阶段)。你可以直接发照片给我(手机/飞书),也可以告诉我照片文件路径(电脑)。如果标签没说,请问我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面/侧面/背部):____\n备注:____", "user_intent": "存一张带备注的身材照", "data_fields": ["photo_path", "tag_list", "date", "note", "distance_days"], "depends_on_external": false, "order": 1 },
5
+ { "category": "身材照片", "wake_word": "记身材照", "desc": "批量存多张身材照(逐张状态明细)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-add <照片1> <照片2> ... --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要一次性存多张身材照(可连发多张照片,或给多个路径)。每张照片可以单独指定标签(如\"这张是侧面\"),没指定的用我给的默认标签。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n默认标签(如 正面):____" }, "fill_hints": [], "variants": [], "key": "body_photo_add_batch", "name": "批量存照片", "subfunction": "存身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-add <照片1> <照片2> ... --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「记身材照」。\n\n我要一次性存多张身材照(可连发多张照片,或给多个路径)。每张照片可以单独指定标签(如\"这张是侧面\"),没指定的用我给的默认标签。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n默认标签(如 正面):____", "user_intent": "批量存多张身材照并看逐张结果", "data_fields": ["photo_path", "tag_list", "status", "reason", "batch_count"], "depends_on_external": false, "order": 2 },
6
+ { "category": "身材照片", "wake_word": "查身材照", "desc": "浏览身材照(网格 + 时间/标签筛选 + 计数)", "main_prompt": { "cli": "python scripts/render_body_photo_gallery.py [--days <N> | --start <D> --end <D>] [--tag <标签>] --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「查身材照」。\n\n我想浏览身材照。时间可以用天数(如最近 30 天)、某个日期(如 7月1日)、或一段范围(如 6月1日~7月1日);没填默认最近 90 天。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间(最近 N 天 / 某日期 / 某范围,选填):____\n标签(选填,如 正面):____" }, "fill_hints": [], "variants": [], "key": "body_photo_list", "name": "看身材照", "subfunction": "看身材照", "output_type": "result", "html_template": "templates/body_photo_gallery.html", "data_source": "python scripts/render_body_photo_gallery.py [--days <N> | --start <D> --end <D>] [--tag <标签>] --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「查身材照」。\n\n我想浏览身材照。时间可以用天数(如最近 30 天)、某个日期(如 7月1日)、或一段范围(如 6月1日~7月1日);没填默认最近 90 天。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n时间(最近 N 天 / 某日期 / 某范围,选填):____\n标签(选填,如 正面):____", "user_intent": "浏览身材照并按时间/标签筛选", "data_fields": ["photos", "tag_counts", "total_count", "days_since_last", "filters"], "depends_on_external": false, "order": 0 },
7
+ { "category": "身材照片", "wake_word": "对比两张照片", "desc": "两张照片并排对比(间隔天数/标签/备注)", "main_prompt": { "cli": "python scripts/render_body_photo_compare.py --id1 <ID> --id2 <ID> --chain \"1.识别→2.读DB→3.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「对比两张照片」。\n\n我想把两张身材照并排对比。可以说日期(如\"月初 vs 月底\")、编号,或让我从最近的照片里选。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片 1(日期/编号/留空):____\n照片 2(日期/编号/留空):____" }, "fill_hints": [], "variants": [], "key": "body_photo_compare", "name": "对比两张照片", "subfunction": "比身材照", "output_type": "result", "html_template": "templates/body_photo_compare.html", "data_source": "python scripts/render_body_photo_compare.py --id1 <ID> --id2 <ID> --chain \"1.识别→2.读DB→3.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「对比两张照片」。\n\n我想把两张身材照并排对比。可以说日期(如\"月初 vs 月底\")、编号,或让我从最近的照片里选。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片 1(日期/编号/留空):____\n照片 2(日期/编号/留空):____", "user_intent": "并排对比两张身材照看变化", "data_fields": ["photo1", "photo2", "interval_days", "tag_list", "note"], "depends_on_external": false, "order": 1 },
8
+ { "category": "身材照片", "wake_word": "生成身材照GIF", "desc": "时间段多张照片合成变化 GIF(帧数/首末日期)", "main_prompt": { "cli": "python scripts/render_body_photo_gif_result.py --tag <标签> [--start <D> --end <D> | --days <N> | --photo-id <ID> ...] --chain \"1.识别→2.选照片→3.合成→4.渲染\"", "text": "请你加载技能 卡路里,执行唤醒词「生成身材照GIF」。\n\n我要把一段时间的多张身材照合成变化 GIF。请先确认照片范围(标签/时间)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面):____\n时间范围(如 最近3个月 / 起始日期):____" }, "fill_hints": [], "variants": [], "key": "body_photo_gif", "name": "生成身材照 GIF", "subfunction": "比身材照", "output_type": "result", "html_template": "templates/body_photo_gif_result.html", "data_source": "python scripts/render_body_photo_gif_result.py --tag <标签> [--start <D> --end <D> | --days <N> | --photo-id <ID> ...] --chain \"1.识别→2.选照片→3.合成→4.渲染\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「生成身材照GIF」。\n\n我要把一段时间的多张身材照合成变化 GIF。请先确认照片范围(标签/时间)。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n标签(如 正面):____\n时间范围(如 最近3个月 / 起始日期):____", "user_intent": "把一段时间的身材照合成变化 GIF", "data_fields": ["gif_path", "time_span", "frames", "photo_count", "first_date", "last_date"], "depends_on_external": false, "order": 0 },
9
+ { "category": "身材照片", "wake_word": "删身材照", "desc": "删除照片(先列候选 → 快照确认 → 回执)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-delete --id <ID> --chain \"1.列候选→2.确认→3.删除→4.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「删身材照」。\n\n我要删一张身材照(删除后无法恢复)。如果我没说清是哪张,请先列出最近的几张照片(缩略图+日期+标签)让我选。确认后,删除前先给我看这张照片的内容(快照),确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的照片(选填,如「最近一张」或日期):____" }, "fill_hints": [], "variants": [], "key": "body_photo_delete", "name": "删身材照", "subfunction": "管身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-delete --id <ID> --chain \"1.列候选→2.确认→3.删除→4.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「删身材照」。\n\n我要删一张身材照(删除后无法恢复)。如果我没说清是哪张,请先列出最近的几张照片(缩略图+日期+标签)让我选。确认后,删除前先给我看这张照片的内容(快照),确认无误再删,最后给我确认回执。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n要删的照片(选填,如「最近一张」或日期):____", "user_intent": "删除一张身材照(带快照确认)", "data_fields": ["id", "date", "tag_list", "snapshot", "photo_path"], "depends_on_external": false, "order": 0 },
10
+ { "category": "身材照片", "wake_word": "改照片标签", "desc": "标签覆盖整套(可多个,改前/改后对比)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-tag-set --id <ID> --tag-list <标签1,标签2> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「改照片标签」。\n\n我要把某张照片的标签换成整套新标签(覆盖旧的,可多个)。请先确认这张照片原来的完整标签列表。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n新标签(可多个,如 正面,侧面):____" }, "fill_hints": [], "variants": [], "key": "body_photo_tag_set", "name": "改照片标签", "subfunction": "管身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-tag-set --id <ID> --tag-list <标签1,标签2> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「改照片标签」。\n\n我要把某张照片的标签换成整套新标签(覆盖旧的,可多个)。请先确认这张照片原来的完整标签列表。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n新标签(可多个,如 正面,侧面):____", "user_intent": "把照片标签换成整套新标签", "data_fields": ["tag_before", "tag_after", "tag_list"], "depends_on_external": false, "order": 1 },
11
+ { "category": "身材照片", "wake_word": "加照片标签", "desc": "追加标签(可多个,判重提示)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-tag-add --id <ID> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「加照片标签」。\n\n我要给某张照片追加标签(不覆盖已有,可一次加多个)。如果某个标签已经存在,请提示我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n要加的标签(可多个,逗号分隔):____" }, "fill_hints": [], "variants": [], "key": "body_photo_tag_add", "name": "加照片标签", "subfunction": "管身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-tag-add --id <ID> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「加照片标签」。\n\n我要给某张照片追加标签(不覆盖已有,可一次加多个)。如果某个标签已经存在,请提示我。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n要加的标签(可多个,逗号分隔):____", "user_intent": "给照片追加一个标签", "data_fields": ["tag_added", "tag_list", "duplicate"], "depends_on_external": false, "order": 2 },
12
+ { "category": "身材照片", "wake_word": "删照片标签", "desc": "移除标签(可多个,至少保留 1 个)", "main_prompt": { "cli": "python scripts/render_body_photo_receipt.py --live-tag-remove --id <ID> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "text": "请你加载技能 卡路里,执行唤醒词「删照片标签」。\n\n我要从某张照片上移除标签(其余保留,可一次删多个)。请先告诉我这张照片当前有哪些标签,每张照片至少保留 1 个标签,删空会提示我;想清空全部标签请用「改照片标签」。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n要删的标签(可多个,逗号分隔):____" }, "fill_hints": [], "variants": [], "key": "body_photo_tag_remove", "name": "删照片标签", "subfunction": "管身材照", "output_type": "receipt", "html_template": "templates/body_photo_receipt.html", "data_source": "python scripts/render_body_photo_receipt.py --live-tag-remove --id <ID> --tag <标签> --chain \"1.解析→2.写库→3.回执\"", "prompt_template": "请你加载技能 卡路里,执行唤醒词「删照片标签」。\n\n我要从某张照片上移除标签(其余保留,可一次删多个)。请先告诉我这张照片当前有哪些标签,每张照片至少保留 1 个标签,删空会提示我;想清空全部标签请用「改照片标签」。交付 HTML 时,文字只回复精简而全面概括的信息,文字不允许超过三句话。\n\n照片(日期或编号):____\n要删的标签(可多个,逗号分隔):____", "user_intent": "从照片上移除一个标签", "data_fields": ["tag_removed", "tag_before", "tag_after"], "depends_on_external": false, "order": 3 },
13
+ ];
14
+ //# sourceMappingURL=scene-09-photo.js.map