forge-openclaw-plugin 0.2.26 → 0.2.28

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 (109) hide show
  1. package/README.md +60 -3
  2. package/dist/assets/{board-ta0rUHOf.js → board-DPFvZf-D.js} +2 -2
  3. package/dist/assets/{board-ta0rUHOf.js.map → board-DPFvZf-D.js.map} +1 -1
  4. package/dist/assets/index-Auw3JrdE.css +1 -0
  5. package/dist/assets/index-D1H7myQH.js +85 -0
  6. package/dist/assets/index-D1H7myQH.js.map +1 -0
  7. package/dist/assets/knowledge-graph-layout.worker-DRvzPxhP.js +2 -0
  8. package/dist/assets/knowledge-graph-layout.worker-DRvzPxhP.js.map +1 -0
  9. package/dist/assets/{motion-fBKPB6yw.js → motion-Bvwc85ch.js} +2 -2
  10. package/dist/assets/{motion-fBKPB6yw.js.map → motion-Bvwc85ch.js.map} +1 -1
  11. package/dist/assets/{table-C-IGTQni.js → table-FJQTJvUR.js} +2 -2
  12. package/dist/assets/{table-C-IGTQni.js.map → table-FJQTJvUR.js.map} +1 -1
  13. package/dist/assets/{ui-DInOpaYF.js → ui-GXFcgvSw.js} +2 -2
  14. package/dist/assets/{ui-DInOpaYF.js.map → ui-GXFcgvSw.js.map} +1 -1
  15. package/dist/assets/vendor-Cwf49UMz.js +1247 -0
  16. package/dist/assets/vendor-Cwf49UMz.js.map +1 -0
  17. package/dist/index.html +7 -7
  18. package/dist/openclaw/local-runtime.js +16 -0
  19. package/dist/openclaw/routes.d.ts +27 -0
  20. package/dist/openclaw/routes.js +16 -12
  21. package/dist/server/server/migrations/037_workbench_public_inputs_and_run_inputs.sql +5 -0
  22. package/dist/server/server/migrations/038_data_management_settings.sql +11 -0
  23. package/dist/server/server/migrations/039_life_force_and_action_points.sql +114 -0
  24. package/dist/server/server/migrations/040_screen_time_domain.sql +89 -0
  25. package/dist/server/server/migrations/041_companion_source_states.sql +21 -0
  26. package/dist/server/server/migrations/042_movement_boxes.sql +47 -0
  27. package/dist/server/server/migrations/043_movement_box_overlap_overrides.sql +26 -0
  28. package/dist/server/server/src/app.js +1900 -91
  29. package/dist/server/server/src/connectors/box-registry.js +44 -9
  30. package/dist/server/server/src/data-management-types.js +107 -0
  31. package/dist/server/server/src/db.js +68 -4
  32. package/dist/server/server/src/demo-data.js +2 -2
  33. package/dist/server/server/src/health.js +702 -18
  34. package/dist/server/server/src/managers/platform/llm-manager.js +7 -4
  35. package/dist/server/server/src/managers/platform/mock-workbench-provider.js +149 -0
  36. package/dist/server/server/src/managers/platform/secrets-manager.js +18 -1
  37. package/dist/server/server/src/managers/runtime.js +9 -0
  38. package/dist/server/server/src/movement.js +1971 -112
  39. package/dist/server/server/src/openapi.js +1390 -105
  40. package/dist/server/server/src/psyche-types.js +9 -1
  41. package/dist/server/server/src/repositories/activity-events.js +8 -0
  42. package/dist/server/server/src/repositories/ai-connectors.js +522 -74
  43. package/dist/server/server/src/repositories/calendar.js +151 -0
  44. package/dist/server/server/src/repositories/habits.js +37 -1
  45. package/dist/server/server/src/repositories/model-settings.js +13 -3
  46. package/dist/server/server/src/repositories/notes.js +3 -0
  47. package/dist/server/server/src/repositories/settings.js +380 -18
  48. package/dist/server/server/src/repositories/tasks.js +170 -10
  49. package/dist/server/server/src/runtime-data-root.js +82 -0
  50. package/dist/server/server/src/screen-time.js +802 -0
  51. package/dist/server/server/src/services/data-management.js +788 -0
  52. package/dist/server/server/src/services/entity-crud.js +205 -2
  53. package/dist/server/server/src/services/knowledge-graph.js +1455 -0
  54. package/dist/server/server/src/services/life-force-model.js +217 -0
  55. package/dist/server/server/src/services/life-force.js +2506 -0
  56. package/dist/server/server/src/services/psyche-observation-calendar.js +383 -16
  57. package/dist/server/server/src/types.js +307 -14
  58. package/dist/server/server/src/web.js +228 -13
  59. package/dist/server/src/components/customization/utility-widgets.js +136 -27
  60. package/dist/server/src/components/ui/info-tooltip.js +25 -0
  61. package/dist/server/src/components/workbench-boxes/calendar/calendar-boxes.js +78 -0
  62. package/dist/server/src/components/workbench-boxes/goals/goals-boxes.js +62 -0
  63. package/dist/server/src/components/workbench-boxes/habits/habits-boxes.js +62 -0
  64. package/dist/server/src/components/workbench-boxes/health/health-boxes.js +63 -8
  65. package/dist/server/src/components/workbench-boxes/insights/insights-boxes.js +50 -0
  66. package/dist/server/src/components/workbench-boxes/kanban/kanban-boxes.js +62 -54
  67. package/dist/server/src/components/workbench-boxes/movement/movement-boxes.js +18 -8
  68. package/dist/server/src/components/workbench-boxes/notes/notes-boxes.js +56 -38
  69. package/dist/server/src/components/workbench-boxes/overview/overview-boxes.js +65 -0
  70. package/dist/server/src/components/workbench-boxes/preferences/preferences-boxes.js +78 -0
  71. package/dist/server/src/components/workbench-boxes/projects/projects-boxes.js +35 -30
  72. package/dist/server/src/components/workbench-boxes/psyche/psyche-boxes.js +88 -0
  73. package/dist/server/src/components/workbench-boxes/questionnaires/questionnaires-boxes.js +61 -0
  74. package/dist/server/src/components/workbench-boxes/review/review-boxes.js +53 -0
  75. package/dist/server/src/components/workbench-boxes/shared/define-workbench-box.js +3 -1
  76. package/dist/server/src/components/workbench-boxes/shared/generic-node-view.js +39 -3
  77. package/dist/server/src/components/workbench-boxes/strategies/strategies-boxes.js +62 -0
  78. package/dist/server/src/components/workbench-boxes/tasks/tasks-boxes.js +76 -0
  79. package/dist/server/src/components/workbench-boxes/today/today-boxes.js +47 -32
  80. package/dist/server/src/components/workbench-boxes/wiki/wiki-boxes.js +60 -0
  81. package/dist/server/src/lib/api.js +280 -21
  82. package/dist/server/src/lib/data-management-types.js +1 -0
  83. package/dist/server/src/lib/entity-visuals.js +279 -0
  84. package/dist/server/src/lib/knowledge-graph-types.js +276 -0
  85. package/dist/server/src/lib/knowledge-graph.js +470 -0
  86. package/dist/server/src/lib/schemas.js +4 -0
  87. package/dist/server/src/lib/snapshot-normalizer.js +45 -1
  88. package/dist/server/src/lib/workbench/contracts.js +229 -0
  89. package/dist/server/src/lib/workbench/nodes.js +200 -0
  90. package/dist/server/src/lib/workbench/registry.js +52 -5
  91. package/dist/server/src/lib/workbench/runtime.js +254 -38
  92. package/dist/server/src/lib/workbench/tool-catalog.js +68 -0
  93. package/openclaw.plugin.json +1 -1
  94. package/package.json +1 -1
  95. package/server/migrations/037_workbench_public_inputs_and_run_inputs.sql +5 -0
  96. package/server/migrations/038_data_management_settings.sql +11 -0
  97. package/server/migrations/039_life_force_and_action_points.sql +114 -0
  98. package/server/migrations/040_screen_time_domain.sql +89 -0
  99. package/server/migrations/041_companion_source_states.sql +21 -0
  100. package/server/migrations/042_movement_boxes.sql +47 -0
  101. package/server/migrations/043_movement_box_overlap_overrides.sql +26 -0
  102. package/skills/forge-openclaw/SKILL.md +41 -11
  103. package/skills/forge-openclaw/entity_conversation_playbooks.md +448 -34
  104. package/skills/forge-openclaw/psyche_entity_playbooks.md +170 -17
  105. package/dist/assets/index-Ro0ZF_az.css +0 -1
  106. package/dist/assets/index-ytlpSj23.js +0 -79
  107. package/dist/assets/index-ytlpSj23.js.map +0 -1
  108. package/dist/assets/vendor-lE3tZJcC.js +0 -876
  109. package/dist/assets/vendor-lE3tZJcC.js.map +0 -1
@@ -9,8 +9,15 @@ Forge correctly, and gather only the structure that still matters.
9
9
 
10
10
  - Lead with what the user is trying to preserve, change, resolve, or make true, not
11
11
  with the entity label.
12
+ - Start by saying what seems to matter here or what the record is becoming, then ask
13
+ the next useful question.
14
+ - Whenever you can, make the direction of the intake visible before the question by
15
+ naming what you think the user is trying to preserve, clarify, decide, schedule, or
16
+ make easier.
12
17
  - Ask only for what is missing or still unclear.
13
18
  - Before every question, decide the one missing thing you are trying to clarify.
19
+ - Ask first for the missing thing that would change the record shape, title, or next
20
+ action most, not just the easiest field to fill.
14
21
  - Know where the conversation is headed before you ask the next question.
15
22
  - Prefer one clean question to a stacked sentence with several asks.
16
23
  - Reflect briefly when the user gives meaning, ambivalence, or emotionally loaded
@@ -24,6 +31,8 @@ Forge correctly, and gather only the structure that still matters.
24
31
  short reflection -> one orienting question.
25
32
  - When the user is vague, ask for the smallest real example, desired outcome, or stake
26
33
  before you ask for wording.
34
+ - For strategic, reflective, or emotionally meaningful non-Psyche records, ask what
35
+ feels important to keep true before you ask for labels, dates, or taxonomy.
27
36
  - When the user is clear, say what the record seems to be becoming and move straight to
28
37
  the last missing structural detail.
29
38
  - For straightforward logistical entities such as tasks, calendar events, work blocks,
@@ -32,17 +41,30 @@ Forge correctly, and gather only the structure that still matters.
32
41
  - For logistical records such as tasks, calendar events, work blocks, timeboxes, and
33
42
  task runs, use a fast path:
34
43
  one brief confirming sentence -> one operational question.
44
+ - For action-heavy flows such as work adjustments, preference judgments, preference
45
+ signals, and specialized surface work in Movement, Life Force, or Workbench, first
46
+ ask what the user is trying to understand, change, add, update, link, or run, then
47
+ route to the dedicated action or surface path instead of pretending it is normal
48
+ CRUD.
35
49
  - Do not read schema fields out loud unless the user explicitly wants a checklist.
50
+ - One focused question is the default. Ask two only when both questions serve the same
51
+ job and the user is steady enough for it.
36
52
  - Do not ask the user to do naming work alone when the meaning is already clear. Offer
37
53
  a tentative title or formulation and invite correction.
38
54
  - When the meaning is clearer than the wording, offer a tentative title or summary
39
55
  yourself and ask whether it fits.
56
+ - After each substantive answer, briefly say what is becoming clearer before you ask
57
+ for the next missing detail.
58
+ - Let the user feel the direction of the intake. The next question should make sense
59
+ because of what just became clearer, not because a hidden checklist says it is next.
40
60
  - If the user already answered the usual opening question, do not repeat the stock
41
61
  opener. Move straight to the next missing clarification.
42
62
  - After a substantive answer, briefly say what is becoming clear so the user can
43
63
  correct the direction early.
44
64
  - Once the record is clear enough to name, stop exploring broadly and ask only for the
45
65
  last missing structural detail.
66
+ - When the record is already clear enough to save, save it instead of performing a
67
+ ceremonial extra question.
46
68
 
47
69
  ## Conversation arc
48
70
 
@@ -79,6 +101,28 @@ Update record:
79
101
 
80
102
  - "Before I change it, what feels newly true now, and what should stay intact?"
81
103
 
104
+ ## Turn shapes
105
+
106
+ Use these as small conversation molds when you need the next turn to feel guided
107
+ rather than mechanical.
108
+
109
+ Opening turn:
110
+
111
+ - briefly reflect what seems to matter here
112
+ - ask the one question that clarifies shape, stake, or outcome most
113
+
114
+ Middle turn:
115
+
116
+ - say what is becoming clearer
117
+ - name the one thing that still needs to be known
118
+ - ask only for that
119
+
120
+ Closing turn:
121
+
122
+ - offer the working title, summary, or record shape in plain language
123
+ - ask whether it feels true enough to save or needs one correction
124
+ - if the user says yes, move to the write instead of reopening the intake
125
+
82
126
  ## Steering moves
83
127
 
84
128
  Use these small moves to keep the intake natural and intentional.
@@ -107,12 +151,113 @@ When you are about to save:
107
151
 
108
152
  - give one short working summary in the user's language and ask whether it feels true
109
153
  enough or needs one correction
154
+ - if the user confirms it, stop asking and save
110
155
 
111
156
  When an adjacent record becomes visible:
112
157
 
113
158
  - name it gently and ask whether it should be linked now, saved separately later, or
114
159
  left alone for now
115
160
 
161
+ ## Question Calibration Loop
162
+
163
+ Use this quick internal check before every follow-up question.
164
+
165
+ 1. What is the one thing still unknown?
166
+ 2. Does that unknown affect the entity shape, the wording, the placement, or the
167
+ operational detail?
168
+ 3. What is the smallest question that would answer that unknown?
169
+ 4. If the user already gave enough to act, stop asking and move to a short summary or
170
+ the write.
171
+
172
+ Useful calibration heuristics:
173
+
174
+ - If the unknown changes whether this is a goal, project, task, note, or Psyche
175
+ record, ask that first.
176
+ - If the shape is already clear but the wording is soft, offer a candidate title or
177
+ formulation rather than asking the user to invent one from scratch.
178
+ - If the wording is clear but the placement is missing, ask only for the parent,
179
+ timing, owner, or linked context that will make the record usable later.
180
+ - If the user is emotionally invested but the entity is not Psyche, reflect the stake
181
+ once and then return to the one missing structural detail.
182
+ - If the next question would only decorate the record and not change its usefulness,
183
+ skip it.
184
+
185
+ ## Abstract And Reusable Record Moves
186
+
187
+ Use this posture for tags, event types, emotion definitions, preference contexts,
188
+ preference catalogs, preference items, questionnaire instruments, and similar
189
+ reusable records.
190
+
191
+ - Start from the future use, decision, or repeated moment the record should clarify,
192
+ not from the label alone.
193
+ - Ask what distinction this record should help the user notice, compare, sort, or
194
+ retrieve later.
195
+ - For collection records, ask what they are meant to help decide before you ask what
196
+ belongs inside them.
197
+ - For vocabulary records, ask what counts as inside versus outside the term before you
198
+ settle the wording.
199
+ - If the user already proposes a label, keep it provisional until the boundary and
200
+ future use are clear.
201
+ - Once the distinction is clear, offer a candidate label yourself and invite
202
+ correction instead of making the user wordsmith alone.
203
+
204
+ ## Opening move recipes
205
+
206
+ Use these when you want the first turn to feel more guided and less form-like.
207
+
208
+ Strategic record:
209
+
210
+ - "This sounds like something you want to hold onto directionally, not just list.
211
+ What would feel important to keep true here?"
212
+
213
+ Bounded-work record:
214
+
215
+ - "This sounds like it wants to become a real piece of work. What outcome would make
216
+ it feel meaningfully real for now?"
217
+
218
+ Reflective record:
219
+
220
+ - "There is something here you do not want to lose. What feels most worth capturing
221
+ before we decide where to store it?"
222
+
223
+ Reusable record:
224
+
225
+ - "Before we settle the label, what future decision, comparison, or retrieval moment
226
+ should this help with?"
227
+
228
+ Operational record:
229
+
230
+ - "I can turn that into a concrete Forge action. What is the one timing, owner, or
231
+ placement detail that still needs to be decided?"
232
+
233
+ ## Name, Define, Connect
234
+
235
+ Once the core record is visible, use this short checkpoint.
236
+
237
+ Name:
238
+
239
+ - offer a working title or label if the user has the meaning but not the wording yet
240
+
241
+ Define:
242
+
243
+ - ask what belongs inside this record and what would make it stop being this record
244
+
245
+ Connect:
246
+
247
+ - ask about links only after the record itself feels named and defined enough to stay
248
+ stable
249
+
250
+ ## Close cleanly
251
+
252
+ - Once the record has a working shape, tell the user what is now clear and what one
253
+ detail, if any, is still worth deciding.
254
+ - If no detail is still decision-relevant, summarize the record in plain language and
255
+ move to the save.
256
+ - Prefer "what I have now is..." or "what seems clear now is..." over a cold final
257
+ field check.
258
+ - If the user gives a correction, revise the working formulation once and close again
259
+ instead of reopening the whole intake.
260
+
116
261
  ## Question design rules
117
262
 
118
263
  - Let each question have one job:
@@ -124,6 +269,8 @@ When an adjacent record becomes visible:
124
269
  or clarify the links.
125
270
  - Do not over-warm or over-therapize logistical records. For those flows, one brief
126
271
  confirming sentence plus one question is usually enough.
272
+ - The first question should usually clarify lived meaning, use, stake, or timing, not
273
+ ask the user to invent a title from scratch.
127
274
  - Ask the more meaning-bearing question before the more administrative one.
128
275
  - Prefer "what", "when", and "how" before "why" when the user's meaning is still
129
276
  forming. "Why" is often better after the experience or outcome is already clear.
@@ -134,6 +281,8 @@ When an adjacent record becomes visible:
134
281
  figuring out what the thing is.
135
282
  - For labels such as `tag`, `event_type`, and `emotion_definition`, do not open with a
136
283
  naming question unless the meaning is already clear and only the wording is missing.
284
+ - For reusable records, help the user define the boundary before you settle the final
285
+ label.
137
286
  - Before the final save question, it is often better to offer a candidate formulation
138
287
  than to ask for raw wording from scratch.
139
288
  - When useful, say what you think the record is becoming before asking the next
@@ -148,6 +297,10 @@ When an adjacent record becomes visible:
148
297
  - For collection-like records such as `preference_catalog` and
149
298
  `questionnaire_instrument`, ask what they are for before you ask what should go
150
299
  inside them.
300
+ - After the user answers, prefer "what is becoming clearer is..." over a cold jump to
301
+ the next field.
302
+ - For reusable or abstract records, it is often better to say "what this would help
303
+ you decide later is..." before asking for the final wording.
151
304
 
152
305
  ## Ready-to-save check
153
306
 
@@ -165,6 +318,9 @@ Before the final write, it is usually worth asking one light confirmation such a
165
318
  - "That sounds like the right shape to save. Do you want to keep it that way, or is
166
319
  there one thing you want adjusted first?"
167
320
 
321
+ If an adjacent goal, project, task, note, value, pattern, or tag became visible, ask
322
+ about linking only after the main record already feels named and steady.
323
+
168
324
  ## Update loop
169
325
 
170
326
  Use this when the user is updating an existing record rather than creating a new one.
@@ -184,9 +340,10 @@ Aim: clarify the direction and why it matters, not just produce a title.
184
340
  Arc:
185
341
 
186
342
  1. Ask what direction or outcome the user wants to keep in view.
187
- 2. Ask why it matters now.
188
- 3. Distinguish the goal from a project or task if needed.
189
- 4. Clarify horizon and status only after the meaning is clear.
343
+ 2. Reflect back the deeper stake in plain language before moving on.
344
+ 3. Ask why it matters now.
345
+ 4. Distinguish the goal from a project or task if needed.
346
+ 5. Clarify horizon and status only after the meaning is clear.
190
347
 
191
348
  Helpful follow-up lanes:
192
349
 
@@ -202,7 +359,7 @@ Ready to save when:
202
359
 
203
360
  Preferred opening question:
204
361
 
205
- - "What direction here feels important enough that you want to keep it in view?"
362
+ - "What direction are you trying to keep hold of here?"
206
363
 
207
364
  ## Project
208
365
 
@@ -211,10 +368,11 @@ Aim: turn an intention into a bounded workstream with a clear outcome.
211
368
  Arc:
212
369
 
213
370
  1. Ask what this piece of work is trying to make true.
214
- 2. Ask what outcome would make it feel real or complete for now.
215
- 3. Ask which goal it belongs under.
216
- 4. Land on a working name once the scope is clear.
217
- 5. Clarify status, owner, and notes only after the scope is clear.
371
+ 2. Reflect the emerging boundary so the user can hear what is in scope.
372
+ 3. Ask what outcome would make it feel real or complete for now.
373
+ 4. Ask which goal it belongs under.
374
+ 5. Land on a working name once the scope is clear.
375
+ 6. Clarify status, owner, and notes only after the scope is clear.
218
376
 
219
377
  Helpful follow-up lanes:
220
378
 
@@ -230,7 +388,7 @@ Ready to save when:
230
388
 
231
389
  Preferred opening question:
232
390
 
233
- - "If this became a real project, what would you be trying to make true?"
391
+ - "If this became a real project, what would you be trying to make true in your life or work?"
234
392
 
235
393
  ## Strategy
236
394
 
@@ -239,10 +397,11 @@ Aim: turn a vague plan into a deliberate sequence toward a real end state.
239
397
  Arc:
240
398
 
241
399
  1. Ask what future state the strategy is trying to make real.
242
- 2. Ask which goals or projects are the true targets.
243
- 3. Ask what the major steps or phases are.
244
- 4. Ask about order, dependencies, and anything that must not be skipped.
245
- 5. Clarify links or ownership once the sequence itself makes sense.
400
+ 2. Reflect the destination in plain language so the user can correct it early.
401
+ 3. Ask which goals or projects are the true targets.
402
+ 4. Ask what the major steps or phases are.
403
+ 5. Ask about order, dependencies, and anything that must not be skipped.
404
+ 6. Clarify links or ownership once the sequence itself makes sense.
246
405
 
247
406
  Helpful follow-up lanes:
248
407
 
@@ -259,7 +418,7 @@ Ready to save when:
259
418
 
260
419
  Preferred opening question:
261
420
 
262
- - "What future state is this strategy supposed to make real?"
421
+ - "What future state are you actually trying to arrive at with this strategy?"
263
422
 
264
423
  ## Task
265
424
 
@@ -286,7 +445,7 @@ Ready to save when:
286
445
 
287
446
  Preferred opening question:
288
447
 
289
- - "What is the next concrete move you want to remember or do?"
448
+ - "What is the next concrete move here?"
290
449
 
291
450
  ## Habit
292
451
 
@@ -315,7 +474,7 @@ Ready to save when:
315
474
 
316
475
  Preferred opening question:
317
476
 
318
- - "What recurring move are you trying to strengthen or loosen?"
477
+ - "What recurring move are you trying to strengthen or interrupt?"
319
478
 
320
479
  ## Tag
321
480
 
@@ -362,6 +521,8 @@ Helpful follow-up lanes:
362
521
  - what the note is for later
363
522
  - what should stay linked
364
523
  - whether it is durable or should expire
524
+ - whether part of the detail belongs in a note while the cleaner structure belongs on
525
+ another entity
365
526
 
366
527
  Ready to save when:
367
528
 
@@ -371,7 +532,36 @@ Ready to save when:
371
532
 
372
533
  Preferred opening question:
373
534
 
374
- - "What feels important enough here that you would want to be able to find it again later?"
535
+ - "What about this feels worth preserving in a note?"
536
+
537
+ ## Wiki Page
538
+
539
+ Aim: create a durable reference page with a clear scope instead of dumping raw notes
540
+ into the wiki.
541
+
542
+ Arc:
543
+
544
+ 1. Ask what topic this page should become the canonical place for.
545
+ 2. Ask whether it is a durable wiki page or supporting evidence.
546
+ 3. Ask what future lookup, decision, or collaboration this page should support.
547
+ 4. Ask about linked entities, aliases, or tags only if they will make the page more
548
+ navigable later.
549
+
550
+ Helpful follow-up lanes:
551
+
552
+ - what this page should be the home for
553
+ - what should belong on the page versus remain linked evidence
554
+ - who would open this page later and what they should quickly understand
555
+
556
+ Ready to save when:
557
+
558
+ - the page scope is clear
559
+ - the page kind is clear enough
560
+ - the title is stable enough to find later
561
+
562
+ Preferred opening question:
563
+
564
+ - "What should this page become the main reference for?"
375
565
 
376
566
  ## Insight
377
567
 
@@ -506,6 +696,33 @@ Preferred opening question:
506
696
 
507
697
  - "Which task should I start?"
508
698
 
699
+ ## Work Adjustment
700
+
701
+ Aim: correct tracked minutes truthfully without pretending a live run happened.
702
+
703
+ Arc:
704
+
705
+ 1. Ask what existing task or project the minutes belong to.
706
+ 2. Ask whether time should be added or removed.
707
+ 3. Ask what real work or correction the adjustment is meant to capture.
708
+ 4. Ask for a short audit note only if the reason would otherwise be unclear later.
709
+
710
+ Helpful follow-up lanes:
711
+
712
+ - what record the correction belongs to
713
+ - whether the adjustment is positive or negative
714
+ - what truthful reason should stay attached to the correction
715
+
716
+ Ready to act when:
717
+
718
+ - the target task or project is clear
719
+ - the minute delta is clear
720
+ - the note is clear enough when an audit trail matters
721
+
722
+ Preferred opening question:
723
+
724
+ - "Which task or project should this time correction belong to?"
725
+
509
726
  ## Self Observation
510
727
 
511
728
  Aim: capture one observation clearly enough that it can support later reflection
@@ -514,9 +731,10 @@ without pretending it is already a full interpretation.
514
731
  Arc:
515
732
 
516
733
  1. Ask what was observed.
517
- 2. Ask when it happened or became noticeable.
518
- 3. Ask what it may connect to: pattern, belief, value, mode, task, project, or note.
519
- 4. Ask for tags or extra context only if that will help later review.
734
+ 2. Reflect the moment without pretending it is already a finished interpretation.
735
+ 3. Ask when it happened or became noticeable.
736
+ 4. Ask what it may connect to: pattern, belief, value, mode, task, project, or note.
737
+ 5. Ask for tags or extra context only if that will help later review.
520
738
 
521
739
  If the user already gave the moment or timing, move straight to what they noticed most
522
740
  clearly instead of re-asking when.
@@ -529,7 +747,7 @@ Ready to save when:
529
747
 
530
748
  Preferred opening question:
531
749
 
532
- - "What did you notice that feels worth capturing?"
750
+ - "What did you notice most clearly in that moment?"
533
751
 
534
752
  ## Sleep Session
535
753
 
@@ -572,6 +790,195 @@ Preferred opening question:
572
790
 
573
791
  - "What about this workout feels most worth remembering or connecting?"
574
792
 
793
+ ## Calendar Connection
794
+
795
+ Aim: connect the right provider deliberately without turning setup into a credential
796
+ dump.
797
+
798
+ Arc:
799
+
800
+ 1. Ask which provider the user wants to connect and what they want Forge to do with
801
+ it.
802
+ 2. Ask whether the goal is read-only visibility, writable planning, or both.
803
+ 3. Ask only for the next provider-specific step that still matters, such as auth flow,
804
+ label, or calendar selection.
805
+ 4. Move into the actual connection flow once the setup goal is clear.
806
+
807
+ Helpful follow-up lanes:
808
+
809
+ - what calendar workflow the user wants to unlock
810
+ - whether writable projection matters
811
+ - whether the provider requires a local sign-in step instead of manual fields
812
+
813
+ Ready to act when:
814
+
815
+ - the provider is clear
816
+ - the intended sync behavior is clear enough
817
+ - the next setup step is obvious
818
+
819
+ Preferred opening question:
820
+
821
+ - "Which calendar provider are you trying to connect, and what do you want Forge to do with it?"
822
+
823
+ ## Preference Judgment
824
+
825
+ Aim: capture one pairwise preference decision with the right context, not just log a
826
+ left-versus-right click.
827
+
828
+ Arc:
829
+
830
+ 1. Ask what comparison the user is actually trying to settle.
831
+ 2. Ask which context or domain this judgment belongs to.
832
+ 3. Ask whether the result is left, right, tie, or skip.
833
+ 4. Ask for reason tags or strength only if they will improve later interpretation.
834
+
835
+ Helpful follow-up lanes:
836
+
837
+ - what the comparison is really about
838
+ - which preference context should own the signal
839
+ - whether the choice feels decisive, weak, tied, or not ready
840
+
841
+ Ready to act when:
842
+
843
+ - the left and right items are clear
844
+ - the outcome is clear
845
+ - the relevant context or profile is clear enough
846
+
847
+ Preferred opening question:
848
+
849
+ - "What comparison are you actually trying to settle here?"
850
+
851
+ ## Preference Signal
852
+
853
+ Aim: store a direct preference signal such as favorite, veto, bookmark, or
854
+ compare-later with the context that makes it interpretable later.
855
+
856
+ Arc:
857
+
858
+ 1. Ask what item the user wants to mark.
859
+ 2. Ask what signal they want to give it.
860
+ 3. Ask what domain or context this belongs to if that is still unclear.
861
+ 4. Ask about strength only if the user is expressing a gradient rather than a simple mark.
862
+
863
+ Helpful follow-up lanes:
864
+
865
+ - what item is being marked
866
+ - whether this is a favorite, veto, bookmark, neutral, or compare-later signal
867
+ - what context makes the signal meaningful
868
+
869
+ Ready to act when:
870
+
871
+ - the item is clear
872
+ - the signal type is clear
873
+ - the context is clear enough if it changes interpretation
874
+
875
+ Preferred opening question:
876
+
877
+ - "What do you want Forge to remember about this item right now?"
878
+
879
+ ## Movement
880
+
881
+ Aim: clarify whether the user wants to understand time in place, review travel
882
+ behavior, add or update a stay or trip, inspect one place, or link movement context to
883
+ another Forge record before choosing the dedicated route family.
884
+
885
+ Arc:
886
+
887
+ 1. Ask whether the user is trying to query behavior, add something manually, update an existing movement item, or link movement to another Forge entity.
888
+ 2. Ask whether the focus is a stay, a trip, a place, a timeline window, or a selected span.
889
+ 3. Ask for the time window, place, or movement item that makes the question concrete.
890
+ 4. Ask what they are trying to notice, preserve, or answer through that movement context.
891
+ 5. Route to the dedicated movement read or write path once the surface is clear.
892
+
893
+ Direct action rules:
894
+
895
+ - If the user is clearly talking about a missing-data gap that should become a stay or
896
+ trip, use a user-defined movement box.
897
+ - Preflight with `/api/v1/movement/user-boxes/preflight` when overlap or exact timing
898
+ is unclear, then create the overlay with `/api/v1/movement/user-boxes`.
899
+ - Use `kind: "stay"` when the user stayed in one place and `kind: "trip"` when they
900
+ traveled.
901
+ - Use raw `PATCH /api/v1/movement/stays/:id` or `/api/v1/movement/trips/:id` only for
902
+ editing an already-recorded stay or trip, not for filling a missing span.
903
+ - When the user has already given the real answer, for example "I stayed home during
904
+ that missing block", do not ask a broad review question again. Confirm only the
905
+ interval or place if that is still ambiguous, then act.
906
+
907
+ Helpful follow-up lanes:
908
+
909
+ - whether the user wants time-in-place, travel history, one specific stay or trip, a
910
+ place summary, or a link
911
+ - what time window, place, stay, trip, or selection is in scope
912
+ - whether the question is behavioral, such as time at home, travel frequency, or place
913
+ distribution, versus an edit
914
+ - whether the edit is a missing-gap overlay versus a true recorded stay/trip patch
915
+
916
+ Ready to act when:
917
+
918
+ - the movement surface is clear
919
+ - the time range, place, stay, trip, or selection is clear enough
920
+ - the user goal is clear enough to choose the route
921
+
922
+ Preferred opening question:
923
+
924
+ - "Are you trying to understand where you stayed and traveled, change one stay or trip, or answer a question about your movement behavior?"
925
+
926
+ ## Life Force
927
+
928
+ Aim: clarify whether the user wants to review current energy state, change durable
929
+ profile assumptions, edit weekday curves, or log a real-time fatigue signal.
930
+
931
+ Arc:
932
+
933
+ 1. Ask whether the job is overview, profile change, weekday-template change, or fatigue signaling.
934
+ 2. Ask what part of the current energy picture feels most important or inaccurate.
935
+ 3. Ask what should stay true if they are changing profile or template assumptions.
936
+ 4. Route to the dedicated life-force path once the lane is clear.
937
+
938
+ Helpful follow-up lanes:
939
+
940
+ - whether the user wants explanation, editing, or signaling
941
+ - what part of the energy model feels off or useful
942
+ - what durable assumption versus real-time state is being changed
943
+
944
+ Ready to act when:
945
+
946
+ - the life-force lane is clear
947
+ - the relevant weekday, profile field, or signal is clear enough
948
+ - the user intent is clear enough to choose overview versus mutation
949
+
950
+ Preferred opening question:
951
+
952
+ - "Do you want to understand the current energy picture, change how Forge models it, or log how you feel right now?"
953
+
954
+ ## Workbench
955
+
956
+ Aim: clarify whether the user wants to inspect a flow, edit it, run it, or inspect
957
+ results so the agent uses the dedicated workbench contract instead of vague CRUD.
958
+
959
+ Arc:
960
+
961
+ 1. Ask whether the job is flow discovery, one flow edit, execution, run history, published output, node-level inspection, or latest-node-output lookup.
962
+ 2. Ask which flow, slug, run, or node the request is about.
963
+ 3. Ask what the user is trying to learn, repair, or publish through that flow.
964
+ 4. Route to the dedicated workbench route family once the execution lane is clear.
965
+
966
+ Helpful follow-up lanes:
967
+
968
+ - whether the user wants structure, execution, or results
969
+ - what exact flow or run is in scope
970
+ - whether they need whole-flow output or node-level detail
971
+
972
+ Ready to act when:
973
+
974
+ - the workbench lane is clear
975
+ - the flow, run, or node is clear enough
976
+ - the requested read or mutation is clear enough to choose the route
977
+
978
+ Preferred opening question:
979
+
980
+ - "Are you trying to inspect a flow, change it, run it, or inspect one run's outputs?"
981
+
575
982
  ## Preference Catalog
576
983
 
577
984
  Aim: define a useful comparison pool, not just a list with no decision purpose.
@@ -597,7 +1004,7 @@ Ready to save when:
597
1004
 
598
1005
  Preferred opening question:
599
1006
 
600
- - "What preference question do you want this catalog to help answer?"
1007
+ - "What decision or taste question should this catalog help with?"
601
1008
 
602
1009
  ## Preference Catalog Item
603
1010
 
@@ -624,7 +1031,7 @@ Ready to save when:
624
1031
 
625
1032
  Preferred opening question:
626
1033
 
627
- - "What makes this item worth comparing in that catalog?"
1034
+ - "What makes this option meaningfully worth comparing?"
628
1035
 
629
1036
  ## Preference Context
630
1037
 
@@ -633,9 +1040,10 @@ Aim: define a real operating mode for preferences, not a decorative label.
633
1040
  Arc:
634
1041
 
635
1042
  1. Ask what situation or mode this context is meant to represent.
636
- 2. Ask what should count inside that context and what should stay outside it.
637
- 3. Ask whether it should be active, default, or kept separate from other evidence.
638
- 4. Offer a concise name if the mode is clearer than the wording.
1043
+ 2. Ask what decisions or comparisons should feel different inside that context.
1044
+ 3. Ask what should count inside that context and what should stay outside it.
1045
+ 4. Ask whether it should be active, default, or kept separate from other evidence.
1046
+ 5. Offer a concise name if the mode is clearer than the wording.
639
1047
 
640
1048
  Helpful follow-up lanes:
641
1049
 
@@ -651,7 +1059,7 @@ Ready to save when:
651
1059
 
652
1060
  Preferred opening question:
653
1061
 
654
- - "What situation or mode should this context help Forge treat differently?"
1062
+ - "In what situation should Forge treat your preferences differently here?"
655
1063
 
656
1064
  ## Preference Item
657
1065
 
@@ -695,9 +1103,10 @@ Arc:
695
1103
 
696
1104
  1. Ask what the questionnaire is meant to measure or surface.
697
1105
  2. Ask who it is for and when it should be used.
698
- 3. Ask what kind of questions would make it honest and useful before getting into
699
- item wording.
700
- 4. Move to draft creation once the purpose is clear.
1106
+ 3. Ask what kind of honest moment or decision it should help someone answer before
1107
+ getting into item wording.
1108
+ 4. Reflect the practical use case back in plain language.
1109
+ 5. Move to draft creation once the purpose is clear.
701
1110
 
702
1111
  Ready to act when:
703
1112
 
@@ -707,7 +1116,7 @@ Ready to act when:
707
1116
 
708
1117
  Preferred opening question:
709
1118
 
710
- - "What is this questionnaire meant to help surface or measure?"
1119
+ - "What would this questionnaire help someone notice or track?"
711
1120
 
712
1121
  ## Questionnaire Run
713
1122
 
@@ -726,7 +1135,7 @@ Ready to act when:
726
1135
 
727
1136
  Preferred opening question:
728
1137
 
729
- - "Are you trying to start a questionnaire, continue one, or review a finished run?"
1138
+ - "Do you want to start, continue, review, or finish a questionnaire run?"
730
1139
 
731
1140
  ## Event Type
732
1141
 
@@ -751,7 +1160,7 @@ Ready to save when:
751
1160
 
752
1161
  Preferred opening question:
753
1162
 
754
- - "What kind of moment do you want this event type to help you name more consistently?"
1163
+ - "What kind of moment keeps happening that you want future reports to name the same way each time?"
755
1164
 
756
1165
  ## Emotion Definition
757
1166
 
@@ -763,6 +1172,11 @@ Arc:
763
1172
  2. Ask what distinguishes it from nearby emotions if that matters.
764
1173
  3. Ask for a short description only if later reports would benefit from it.
765
1174
 
1175
+ Helpful follow-up lanes:
1176
+
1177
+ - what tells the user this is that feeling and not a nearby one
1178
+ - what kind of moments this emotion name should be used for later
1179
+
766
1180
  Ready to save when:
767
1181
 
768
1182
  - the label is clear
@@ -770,4 +1184,4 @@ Ready to save when:
770
1184
 
771
1185
  Preferred opening question:
772
1186
 
773
- - "When you say this feeling, what does it actually feel like for you?"
1187
+ - "When this feeling is present, what tells you it is this feeling and not a nearby one?"