forge-openclaw-plugin 0.2.24 → 0.2.26

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 (208) hide show
  1. package/README.md +13 -0
  2. package/dist/assets/{board-_C6oMy5w.js → board-ta0rUHOf.js} +3 -3
  3. package/dist/assets/{board-_C6oMy5w.js.map → board-ta0rUHOf.js.map} +1 -1
  4. package/dist/assets/index-Ro0ZF_az.css +1 -0
  5. package/dist/assets/index-ytlpSj23.js +79 -0
  6. package/dist/assets/index-ytlpSj23.js.map +1 -0
  7. package/dist/assets/{motion-D4sZgCHd.js → motion-fBKPB6yw.js} +3 -3
  8. package/dist/assets/motion-fBKPB6yw.js.map +1 -0
  9. package/dist/assets/{table-BWzTaky1.js → table-C-IGTQni.js} +2 -2
  10. package/dist/assets/{table-BWzTaky1.js.map → table-C-IGTQni.js.map} +1 -1
  11. package/dist/assets/{ui-BzK4azQb.js → ui-DInOpaYF.js} +2 -2
  12. package/dist/assets/{ui-BzK4azQb.js.map → ui-DInOpaYF.js.map} +1 -1
  13. package/dist/assets/vendor-lE3tZJcC.js +876 -0
  14. package/dist/assets/vendor-lE3tZJcC.js.map +1 -0
  15. package/dist/index.html +7 -8
  16. package/dist/openclaw/local-runtime.d.ts +3 -1
  17. package/dist/openclaw/local-runtime.js +51 -15
  18. package/dist/openclaw/parity.d.ts +1 -1
  19. package/dist/openclaw/parity.js +29 -0
  20. package/dist/openclaw/plugin-entry-shared.d.ts +1 -0
  21. package/dist/openclaw/plugin-entry-shared.js +31 -6
  22. package/dist/openclaw/plugin-sdk-types.d.ts +29 -0
  23. package/dist/openclaw/routes.js +236 -0
  24. package/dist/openclaw/session-bootstrap.d.ts +78 -0
  25. package/dist/openclaw/session-bootstrap.js +240 -0
  26. package/dist/openclaw/tools.js +279 -6
  27. package/dist/server/server/migrations/001_core.sql +411 -0
  28. package/dist/server/server/migrations/002_psyche.sql +392 -0
  29. package/dist/server/server/migrations/003_habits.sql +30 -0
  30. package/dist/server/server/migrations/004_habit_links.sql +8 -0
  31. package/dist/server/server/migrations/005_habit_psyche_links.sql +24 -0
  32. package/dist/server/server/migrations/006_work_adjustments.sql +14 -0
  33. package/dist/server/server/migrations/007_weekly_review_closures.sql +17 -0
  34. package/dist/server/server/migrations/008_calendar_execution.sql +147 -0
  35. package/dist/server/server/migrations/009_true_calendar_events.sql +195 -0
  36. package/dist/server/server/migrations/010_calendar_selection_state.sql +6 -0
  37. package/dist/server/server/migrations/011_calendar_timezone_backfill.sql +11 -0
  38. package/dist/server/server/migrations/012_work_block_ranges.sql +7 -0
  39. package/dist/server/server/migrations/013_microsoft_local_auth_settings.sql +8 -0
  40. package/dist/server/server/migrations/014_note_tags_and_ephemeral.sql +8 -0
  41. package/dist/server/server/migrations/015_multi_user_and_strategies.sql +244 -0
  42. package/dist/server/server/migrations/016_health_companion.sql +158 -0
  43. package/dist/server/server/migrations/016_strategy_contracts_and_user_graph.sql +22 -0
  44. package/dist/server/server/migrations/017_preferences.sql +131 -0
  45. package/dist/server/server/migrations/018_preference_catalogs.sql +31 -0
  46. package/dist/server/server/migrations/019_wiki_memory.sql +255 -0
  47. package/dist/server/server/migrations/020_wiki_page_hierarchy.sql +11 -0
  48. package/dist/server/server/migrations/021_hide_evidence_from_wiki_index.sql +3 -0
  49. package/dist/server/server/migrations/022_wiki_ingest_background.sql +85 -0
  50. package/dist/server/server/migrations/023_diagnostic_logs.sql +28 -0
  51. package/dist/server/server/migrations/024_questionnaires.sql +96 -0
  52. package/dist/server/server/migrations/025_ai_model_connections.sql +26 -0
  53. package/dist/server/server/migrations/026_custom_theme_settings.sql +2 -0
  54. package/dist/server/server/migrations/027_ai_processors.sql +31 -0
  55. package/dist/server/server/migrations/028_movement_domain.sql +136 -0
  56. package/dist/server/server/migrations/029_watch_micro_capture.sql +23 -0
  57. package/dist/server/server/migrations/030_surface_layouts.sql +5 -0
  58. package/dist/server/server/migrations/031_ai_processor_runtime_upgrades.sql +10 -0
  59. package/dist/server/server/migrations/032_ai_connectors.sql +44 -0
  60. package/dist/server/server/migrations/033_movement_trip_point_sync.sql +36 -0
  61. package/dist/server/server/migrations/034_movement_segment_sync.sql +49 -0
  62. package/dist/server/server/migrations/035_google_local_auth_settings.sql +2 -0
  63. package/dist/server/server/migrations/036_google_local_auth_client_secret.sql +2 -0
  64. package/dist/server/{app.js → server/src/app.js} +992 -25
  65. package/dist/server/server/src/connectors/box-registry.js +188 -0
  66. package/dist/server/{db.js → server/src/db.js} +6 -0
  67. package/dist/server/server/src/debug.js +19 -0
  68. package/dist/server/server/src/discovery-advertiser.js +114 -0
  69. package/dist/server/{health.js → server/src/health.js} +39 -11
  70. package/dist/server/{index.js → server/src/index.js} +4 -0
  71. package/dist/server/{managers → server/src/managers}/platform/llm-manager.js +40 -4
  72. package/dist/server/{managers → server/src/managers}/platform/openai-responses-provider.js +129 -19
  73. package/dist/server/server/src/movement.js +2935 -0
  74. package/dist/server/{openapi.js → server/src/openapi.js} +628 -5
  75. package/dist/server/{psyche-types.js → server/src/psyche-types.js} +15 -1
  76. package/dist/server/server/src/questionnaire-flow.js +552 -0
  77. package/dist/server/server/src/questionnaire-seeds.js +853 -0
  78. package/dist/server/server/src/questionnaire-types.js +340 -0
  79. package/dist/server/server/src/repositories/ai-connectors.js +1207 -0
  80. package/dist/server/server/src/repositories/ai-processors.js +547 -0
  81. package/dist/server/{repositories → server/src/repositories}/calendar.js +1 -1
  82. package/dist/server/{repositories → server/src/repositories}/entity-ownership.js +9 -1
  83. package/dist/server/{repositories → server/src/repositories}/habits.js +69 -5
  84. package/dist/server/server/src/repositories/model-settings.js +216 -0
  85. package/dist/server/{repositories → server/src/repositories}/notes.js +57 -15
  86. package/dist/server/{repositories → server/src/repositories}/preferences.js +124 -0
  87. package/dist/server/server/src/repositories/questionnaires.js +1338 -0
  88. package/dist/server/{repositories → server/src/repositories}/settings.js +156 -12
  89. package/dist/server/server/src/repositories/surface-layouts.js +76 -0
  90. package/dist/server/{repositories → server/src/repositories}/wiki-memory.js +5 -1
  91. package/dist/server/{services → server/src/services}/calendar-runtime.js +775 -58
  92. package/dist/server/{services → server/src/services}/entity-crud.js +81 -2
  93. package/dist/server/server/src/services/google-calendar-oauth-config.js +176 -0
  94. package/dist/server/server/src/services/openai-codex-oauth.js +153 -0
  95. package/dist/server/server/src/services/psyche-observation-calendar.js +46 -0
  96. package/dist/server/{types.js → server/src/types.js} +621 -14
  97. package/dist/server/server/src/watch-mobile.js +562 -0
  98. package/dist/server/{web.js → server/src/web.js} +30 -4
  99. package/dist/server/src/components/customization/utility-widgets.js +330 -0
  100. package/dist/server/src/components/workbench-boxes/health/health-boxes.js +92 -0
  101. package/dist/server/src/components/workbench-boxes/kanban/kanban-boxes.js +128 -0
  102. package/dist/server/src/components/workbench-boxes/movement/movement-boxes.js +37 -0
  103. package/dist/server/src/components/workbench-boxes/notes/notes-boxes.js +114 -0
  104. package/dist/server/src/components/workbench-boxes/projects/projects-boxes.js +57 -0
  105. package/dist/server/src/components/workbench-boxes/shared/define-workbench-box.js +4 -0
  106. package/dist/server/src/components/workbench-boxes/shared/generic-node-view.js +13 -0
  107. package/dist/server/src/components/workbench-boxes/today/today-boxes.js +63 -0
  108. package/dist/server/src/lib/api-error.js +37 -0
  109. package/dist/server/src/lib/api.js +1859 -0
  110. package/dist/server/src/lib/calendar-name-deduper.js +144 -0
  111. package/dist/server/src/lib/diagnostics.js +67 -0
  112. package/dist/server/src/lib/psyche-types.js +1 -0
  113. package/dist/server/src/lib/questionnaire-types.js +1 -0
  114. package/dist/server/src/lib/runtime-paths.js +24 -0
  115. package/dist/server/src/lib/schemas.js +234 -0
  116. package/dist/server/src/lib/snapshot-normalizer.js +374 -0
  117. package/dist/server/src/lib/theme-system.js +319 -0
  118. package/dist/server/src/lib/types.js +1 -0
  119. package/dist/server/src/lib/utils.js +22 -0
  120. package/dist/server/src/lib/workbench/boxes.js +16 -0
  121. package/dist/server/src/lib/workbench/nodes.js +15 -0
  122. package/dist/server/src/lib/workbench/registry.js +73 -0
  123. package/dist/server/src/lib/workbench/runtime.js +181 -0
  124. package/openclaw.plugin.json +1 -1
  125. package/package.json +6 -1
  126. package/server/index.js +68 -0
  127. package/server/migrations/024_questionnaires.sql +96 -0
  128. package/server/migrations/025_ai_model_connections.sql +26 -0
  129. package/server/migrations/026_custom_theme_settings.sql +2 -0
  130. package/server/migrations/027_ai_processors.sql +31 -0
  131. package/server/migrations/028_movement_domain.sql +136 -0
  132. package/server/migrations/029_watch_micro_capture.sql +23 -0
  133. package/server/migrations/030_surface_layouts.sql +5 -0
  134. package/server/migrations/031_ai_processor_runtime_upgrades.sql +10 -0
  135. package/server/migrations/032_ai_connectors.sql +44 -0
  136. package/server/migrations/033_movement_trip_point_sync.sql +36 -0
  137. package/server/migrations/034_movement_segment_sync.sql +49 -0
  138. package/server/migrations/035_google_local_auth_settings.sql +2 -0
  139. package/server/migrations/036_google_local_auth_client_secret.sql +2 -0
  140. package/skills/forge-openclaw/SKILL.md +15 -1
  141. package/skills/forge-openclaw/entity_conversation_playbooks.md +523 -87
  142. package/skills/forge-openclaw/psyche_entity_playbooks.md +331 -221
  143. package/dist/assets/index-DTCwBWAs.js +0 -65
  144. package/dist/assets/index-DTCwBWAs.js.map +0 -1
  145. package/dist/assets/index-DttXlAgi.css +0 -1
  146. package/dist/assets/motion-D4sZgCHd.js.map +0 -1
  147. package/dist/assets/vendor-De38P6YR.js +0 -729
  148. package/dist/assets/vendor-De38P6YR.js.map +0 -1
  149. package/dist/assets/viz-C6hfyqzu.js +0 -34
  150. package/dist/assets/viz-C6hfyqzu.js.map +0 -1
  151. package/skills/forge-openclaw/cron_jobs.md +0 -395
  152. /package/dist/server/{demo-data.js → server/src/demo-data.js} +0 -0
  153. /package/dist/server/{e2e-server.js → server/src/e2e-server.js} +0 -0
  154. /package/dist/server/{errors.js → server/src/errors.js} +0 -0
  155. /package/dist/server/{managers → server/src/managers}/base.js +0 -0
  156. /package/dist/server/{managers → server/src/managers}/contracts.js +0 -0
  157. /package/dist/server/{managers → server/src/managers}/platform/api-gateway-manager.js +0 -0
  158. /package/dist/server/{managers → server/src/managers}/platform/audit-manager.js +0 -0
  159. /package/dist/server/{managers → server/src/managers}/platform/authentication-manager.js +0 -0
  160. /package/dist/server/{managers → server/src/managers}/platform/authorization-manager.js +0 -0
  161. /package/dist/server/{managers → server/src/managers}/platform/background-job-manager.js +0 -0
  162. /package/dist/server/{managers → server/src/managers}/platform/configuration-manager.js +0 -0
  163. /package/dist/server/{managers → server/src/managers}/platform/database-manager.js +0 -0
  164. /package/dist/server/{managers → server/src/managers}/platform/event-bus-manager.js +0 -0
  165. /package/dist/server/{managers → server/src/managers}/platform/external-service-manager.js +0 -0
  166. /package/dist/server/{managers → server/src/managers}/platform/health-manager.js +0 -0
  167. /package/dist/server/{managers → server/src/managers}/platform/migration-manager.js +0 -0
  168. /package/dist/server/{managers → server/src/managers}/platform/search-index-manager.js +0 -0
  169. /package/dist/server/{managers → server/src/managers}/platform/secrets-manager.js +0 -0
  170. /package/dist/server/{managers → server/src/managers}/platform/session-manager.js +0 -0
  171. /package/dist/server/{managers → server/src/managers}/platform/storage-manager.js +0 -0
  172. /package/dist/server/{managers → server/src/managers}/platform/token-manager.js +0 -0
  173. /package/dist/server/{managers → server/src/managers}/platform/transaction-manager.js +0 -0
  174. /package/dist/server/{managers → server/src/managers}/platform/trusted-network.js +0 -0
  175. /package/dist/server/{managers → server/src/managers}/runtime.js +0 -0
  176. /package/dist/server/{managers → server/src/managers}/type-guards.js +0 -0
  177. /package/dist/server/{preferences-seeds.js → server/src/preferences-seeds.js} +0 -0
  178. /package/dist/server/{preferences-types.js → server/src/preferences-types.js} +0 -0
  179. /package/dist/server/{repositories → server/src/repositories}/activity-events.js +0 -0
  180. /package/dist/server/{repositories → server/src/repositories}/collaboration.js +0 -0
  181. /package/dist/server/{repositories → server/src/repositories}/deleted-entities.js +0 -0
  182. /package/dist/server/{repositories → server/src/repositories}/diagnostic-logs.js +0 -0
  183. /package/dist/server/{repositories → server/src/repositories}/domains.js +0 -0
  184. /package/dist/server/{repositories → server/src/repositories}/event-log.js +0 -0
  185. /package/dist/server/{repositories → server/src/repositories}/goals.js +0 -0
  186. /package/dist/server/{repositories → server/src/repositories}/projects.js +0 -0
  187. /package/dist/server/{repositories → server/src/repositories}/psyche.js +0 -0
  188. /package/dist/server/{repositories → server/src/repositories}/rewards.js +0 -0
  189. /package/dist/server/{repositories → server/src/repositories}/strategies.js +0 -0
  190. /package/dist/server/{repositories → server/src/repositories}/tags.js +0 -0
  191. /package/dist/server/{repositories → server/src/repositories}/task-runs.js +0 -0
  192. /package/dist/server/{repositories → server/src/repositories}/tasks.js +0 -0
  193. /package/dist/server/{repositories → server/src/repositories}/users.js +0 -0
  194. /package/dist/server/{repositories → server/src/repositories}/weekly-reviews.js +0 -0
  195. /package/dist/server/{repositories → server/src/repositories}/work-adjustments.js +0 -0
  196. /package/dist/server/{seed-demo.js → server/src/seed-demo.js} +0 -0
  197. /package/dist/server/{services → server/src/services}/context.js +0 -0
  198. /package/dist/server/{services → server/src/services}/dashboard.js +0 -0
  199. /package/dist/server/{services → server/src/services}/gamification.js +0 -0
  200. /package/dist/server/{services → server/src/services}/insights.js +0 -0
  201. /package/dist/server/{services → server/src/services}/projects.js +0 -0
  202. /package/dist/server/{services → server/src/services}/psyche.js +0 -0
  203. /package/dist/server/{services → server/src/services}/relations.js +0 -0
  204. /package/dist/server/{services → server/src/services}/reviews.js +0 -0
  205. /package/dist/server/{services → server/src/services}/run-recovery.js +0 -0
  206. /package/dist/server/{services → server/src/services}/tagging.js +0 -0
  207. /package/dist/server/{services → server/src/services}/task-run-watchdog.js +0 -0
  208. /package/dist/server/{services → server/src/services}/work-time.js +0 -0
@@ -1,146 +1,251 @@
1
1
  # Psyche Entity Playbooks
2
2
 
3
3
  Use this file whenever the user is exploring a Psyche entity rather than asking for a
4
- purely mechanical save. The point is to help the person understand their own
5
- functioning while gathering enough evidence to store the right Forge record.
4
+ purely mechanical save. The goal is to help the user understand their own experience
5
+ well enough to name it accurately, store it cleanly, and connect it to the rest of
6
+ Forge without turning the conversation into a worksheet.
6
7
 
7
8
  ## Interview stance
8
9
 
9
- - Ask permission before going deeper when the user is hesitant or has not clearly asked
10
- for exploration yet. If they already invited help understanding the issue, do not add
11
- extra friction by re-asking permission.
12
- - Use an active-listening rhythm: open question, brief reflection, focused follow-up,
13
- concise summary.
14
- - Use a therapist-like progression of:
15
- concrete example -> reflection -> meaning -> tentative name -> links -> save.
16
- - Ask one or two focused questions at a time. Do not dump the whole schema as intake.
17
- - Start from a recent concrete example before naming an abstract pattern or mode.
18
- - If the user says "help me understand it first" or signals uncertainty, the first
19
- response should contain one orienting question before any working formulation, save
20
- pitch, or suggested title.
21
- - In that first reply, prefer exactly one question unless a safety issue requires more.
22
- - In that first reply, ask only one question.
23
- - In that first reply, prefer a two-sentence shape:
24
- sentence one is a short empathic reflection;
25
- sentence two is the single exploratory question.
26
- - In that first reply, keep the reflection brief: at most one or two short sentences
27
- before the question.
28
- - In that first reply, avoid numbered lists, bullet lists, or multi-part frameworks.
29
- The goal is a natural therapist-like opening, not a worksheet dump.
30
- - In that first reply, stay in plain prose and end with a single exploratory question.
31
- - In that first reply, do not define the whole pattern, belief, or mode yet. Only
32
- reflect what is already obvious from the user's own words.
33
- - In that first reply, keep the total length short. A good default is under 90 words.
34
- - In that first reply, do not search Forge, mention whether a matching entity exists,
35
- or mention saving. Stay with the person's experience first.
36
- - In that first reply, prefer one concrete-example question such as "What happened the
37
- last time this showed up?" or "What feels most dangerous in that moment?" instead of
38
- a broad analysis.
39
- - Prefer the user's own language over imported clinical labels.
40
- - After each real answer, decide which lane you need next:
41
- clarify the situation,
42
- clarify the sequence,
43
- clarify the meaning,
44
- clarify the protection,
45
- clarify the cost,
46
- clarify the longing or value,
47
- or clarify the tentative name.
10
+ - Sound like a careful, grounded therapist who is helping the person clarify their own
11
+ experience, not like a schema form and not like a lecturer.
12
+ - Stay collaborative. Do not claim certainty about what a belief, pattern, or mode
13
+ "really is".
14
+ - Start from lived experience before abstraction.
15
+ - Lead with function before label:
16
+ what happened,
17
+ what it meant,
18
+ what it protected,
19
+ what it cost,
20
+ what mattered,
21
+ then what to call it.
22
+ - Ask one focused question at a time. Two is the outer limit when the user is steady
23
+ and both questions serve the same lane.
24
+ - Reflect briefly before the next question so the user can feel understood and correct
25
+ you if needed.
26
+ - Use the user's own language whenever possible.
27
+ - Do not rush to naming, reframing, or repair before the experience itself is clearer.
28
+ - Once the formulation is coherent, help with wording instead of forcing the user to
29
+ generate all the language alone.
30
+ - When the user is close to the experience but far from the wording, do some of the
31
+ formulation work for them. Offer one careful candidate name or summary and invite
32
+ correction.
48
33
  - Ask only one lane at a time. Do not jump from the example straight into belief,
49
34
  mode, value, and repair all in one turn.
35
+ - If the user gives a rich answer with several possible lanes, choose the one that most
36
+ improves understanding and leave the others for later.
50
37
  - Before the next question, reflect back what you just heard in one or two sentences so
51
38
  the user can feel understood and correct you if needed.
52
- - Keep the reflection grounded and ordinary. Sound professionally warm, not clinical,
53
- mystical, or diagnosis-adjacent.
54
- - When the person says they want to save "something about" an experience, do not force
55
- the entity type too early. First understand whether it is mainly a value, belief,
56
- pattern, mode, or incident.
57
- - Name possible adjacent entities gently: "This sounds like it may also contain a belief."
58
- - When nuance matters, preserve it in a linked Markdown `note` instead of forcing every
59
- detail into normalized fields.
60
- - Before saving, offer a short working summary and a tentative name when that would help
61
- the user decide whether the formulation fits.
62
- - When the user is close to the experience but far from the wording, do some of the
63
- formulation work for them. Offer one careful candidate name or summary and invite
64
- correction.
65
- - After the first real answer, look for the next best move:
66
- clarify the sequence,
67
- clarify the meaning,
68
- clarify the protection,
69
- or clarify the value at stake.
70
- - Near the end, ask whether this should stay linked to a belief, value, mode, pattern,
71
- task, project, or note that also became visible in the conversation.
72
- - When updating an existing Psyche entity, start with:
73
- what feels newly clear,
74
- what still fits,
75
- and what recent example or episode changed the understanding.
76
- - Do not diagnose. Do not claim certainty about schemas, modes, or meanings.
77
- - Do not offer replacement beliefs, softer reframes, or named provisional titles until
78
- the user has answered at least one real exploration question.
79
- - Do not front-load a complete explanation of the loop or mode before the first answer.
80
- Earn the formulation gradually from the user's replies.
81
- - Do not mention Forge fields, save options, or entity formatting until the user has
82
- answered at least one exploration question, unless they explicitly interrupt to save
83
- immediately.
84
- - Do not use "a useful way to see it", "a clean sequence", "here's what is happening",
85
- or similar lead-ins on the first reply. Those cues push the conversation into lecture
86
- mode too early.
87
- - Do not start the first reply with phrases like "This is", "This sounds like", "What
88
- you're describing is", or "It reads like". Start with a brief empathic reflection and
89
- then ask the question.
90
- - Do not use colons in the first reply. They almost always lead into a list or mini
91
- framework instead of a live conversation.
39
+ - Before you ask for change, naming, or repair, usually ask what the experience is
40
+ trying to protect, prevent, or hold onto.
41
+ - The warmth should come from accuracy and steadiness, not from extra softness,
42
+ diagnosis language, or a polished performance of care.
43
+ - If the user becomes flooded, vague, or circular, narrow the focus to the smallest
44
+ concrete slice you can ask about: one moment, one sentence, one body signal, or one
45
+ thing they did next.
46
+ - When the user gives an abstraction first, gently bring it back to one recent moment
47
+ before helping them name the pattern.
48
+ - Prefer "what", "when", and "how" early. Save "why" for later unless the user is
49
+ already grounded enough that it will deepen rather than blur the picture.
50
+ - Before you ask for the user's preferred fix, understand what the response is trying
51
+ to protect, achieve, or prevent.
52
+
53
+ ## Therapist micro-skills
54
+
55
+ Use these in small doses rather than as a script.
56
+
57
+ Reflect:
58
+
59
+ - briefly mirror the user's felt sense, stake, or sequence in plain language
60
+
61
+ Locate:
62
+
63
+ - ask where this shows up most clearly: the last moment, the first cue, the body
64
+ signal, the feared consequence, or the move that happened next
65
+
66
+ Deepen:
67
+
68
+ - choose one lane that improves understanding most:
69
+ situation,
70
+ sequence,
71
+ meaning,
72
+ protection,
73
+ cost,
74
+ longing/value,
75
+ or naming
76
+
77
+ Formulate:
78
+
79
+ - once the experience is coherent, offer one careful working sentence or title and ask
80
+ whether it feels true, too sharp, or still misses something important
81
+
82
+ Connect:
83
+
84
+ - near the end, notice whether this belongs with a value, belief, pattern, mode, note,
85
+ goal, project, or task and ask whether the user wants to map that too
86
+ - when another record is clearly present, ask whether the user wants to link it now,
87
+ save it separately later, or just keep it in the note/context for now
88
+
89
+ ## First-turn rule
90
+
91
+ When the user wants help understanding a Psyche issue before saving it:
92
+
93
+ - ask only one exploratory question
94
+ - keep the whole reply short
95
+ - prefer exactly two sentences:
96
+ one brief empathic reflection,
97
+ then one concrete question
98
+ - avoid lists, frameworks, diagnostic language, or save talk
99
+ - do not search Forge, mention matching records, or talk about fields yet
100
+ - stay close to one recent example, one dangerous moment, one cue, or one meaning
101
+
102
+ Good first-turn shapes:
103
+
104
+ - "That lands with a lot of fear in it. What happened the last time this showed up?"
105
+ - "Something in you seems to read a lot of danger there. What feels most at stake in
106
+ that moment?"
107
+ - "I can help slow it down. When do you notice this most clearly?"
108
+
109
+ If the user is already direct and just wants to save a clear Psyche record, shorten the
110
+ opening:
111
+
112
+ - one brief reflection
113
+ - one missing-detail question
114
+ - then move toward the write instead of forcing exploration
115
+
116
+ ## Lane chooser
117
+
118
+ After each real answer, choose the next best lane. Do not mix several lanes at once.
119
+
120
+ Situation lane:
121
+
122
+ - use when you still do not understand what happened
123
+ - aim to anchor the episode in concrete reality
124
+
125
+ Sequence lane:
126
+
127
+ - use when you need the chain of cue -> feeling -> thought -> action
128
+ - aim to slow the experience down step by step
129
+
130
+ Meaning lane:
131
+
132
+ - use when the situation is clear but the personal meaning is not
133
+ - aim to surface what the moment says about self, other people, safety, worth, or risk
134
+
135
+ Protection lane:
136
+
137
+ - use when the person is close to pain but the protective job is still hidden
138
+ - aim to surface what the response is trying to prevent, control, or hold together
139
+
140
+ Cost lane:
141
+
142
+ - use when the short-term benefit is clear enough and you now need long-term impact
143
+ - aim to surface how the loop hurts life, relationships, or values later
144
+
145
+ Longing or value lane:
146
+
147
+ - use when the cost is clear and the deeper wish needs language
148
+ - aim to surface what the person wants more of beneath the defense
149
+
150
+ Name lane:
151
+
152
+ - use only when the lived experience is already coherent enough
153
+ - aim to offer one careful working name or summary and invite correction
154
+
155
+ Link lane:
156
+
157
+ - use near the end
158
+ - aim to ask whether this belongs with a value, belief, mode, pattern, note, goal,
159
+ project, or task that also became visible
92
160
 
93
161
  ## Follow-up rhythm
94
162
 
95
- After the first exploratory reply, a strong next turn usually has this shape:
163
+ A strong follow-up usually has three parts:
96
164
 
97
- 1. one short reflection grounded in the user's own words
98
- 2. one sentence naming what seems most important so far
165
+ 1. one short reflection grounded in the user's words
166
+ 2. one sentence naming what feels most important so far
99
167
  3. one focused next question
100
168
 
101
169
  Example shape:
102
170
 
103
- - "So when Lea goes quiet, something in you reads danger very quickly and starts pulling
104
- back before the hurt can land. What does disappearing do for you in that moment?"
171
+ - "So when Lea goes quiet, your body reads abandonment before you can slow it down,
172
+ and pulling back gives you a little protection fast. What does withdrawing prevent in
173
+ that moment?"
105
174
 
106
- Avoid turning the second turn into a mini case formulation. Stay collaborative and earn
107
- the abstraction gradually.
175
+ Another strong shape when the user is getting abstract:
108
176
 
109
- ## Safety rule
177
+ - "So the painful part seems to be less the event itself and more what it starts to
178
+ mean about you. What does it seem to prove in that moment?"
110
179
 
111
- If the user shows imminent risk of self-harm, suicide, violence, inability to stay
112
- safe, or severe disorientation, stop normal Psyche intake. Shift to immediate support,
113
- encourage urgent human help, and in the U.S. mention calling or texting `988` or using
114
- local emergency services if they are in immediate danger. This is a safety handoff, not
115
- another intake step.
180
+ ## Formulation rules
116
181
 
117
- ## First-turn templates
182
+ - Do not front-load a finished case formulation.
183
+ - Do not introduce replacement beliefs, softer reframes, or tidy interpretations until
184
+ the user has answered at least one real exploratory question.
185
+ - Help the user recognize the experience before you help them improve it.
186
+ - When the user is close to the feeling but far from the wording, offer one careful
187
+ candidate sentence or title and ask whether it fits.
188
+ - If nuance matters, preserve it in a linked Markdown `note` instead of forcing every
189
+ detail into normalized fields.
190
+ - Before saving, give a short working summary in the user's own language and ask
191
+ whether it feels true enough.
192
+ - A good final check is often:
193
+ "Does that feel true enough to save, or is there one part that needs to be said more accurately?"
118
194
 
119
- When the user wants understanding before saving, the first reply should usually sound
120
- like one of these:
195
+ ## Naming turn
121
196
 
122
- - "That sounds important. What happened the last time this showed up?"
123
- - "I can help slow it down. What feels most dangerous in that moment?"
124
- - "Let’s stay close to your words for a second. When do you notice this most?"
197
+ When the lived experience is clear enough to name:
125
198
 
126
- Good first turns are short, human, and curious. They are not mini-lectures.
199
+ - offer one careful candidate name or sentence, not a menu of five labels
200
+ - say why that wording fits in plain language
201
+ - invite correction without defensiveness
202
+ - if the wording is close but not right, revise it with the user once instead of
203
+ restarting the whole intake
127
204
 
128
- ## Bridging To Storage
205
+ Example shape:
129
206
 
130
- Once the user has answered at least one real exploration question and the formulation
131
- is becoming coherent:
207
+ - "The way you describe it, this sounds like a belief that distance means danger and
208
+ abandonment is close. Does that fit, or is there a more accurate sentence for what
209
+ your mind starts saying there?"
132
210
 
133
- 1. reflect back the pattern, belief, mode, value, or incident in two to four short
134
- sentences
135
- 2. offer a tentative name only if it feels earned from the user's own words
136
- 3. ask whether the wording fits before saving
137
- 4. ask only for the remaining missing structure needed for the specific entity
211
+ ## Direct-save Psyche rule
138
212
 
139
- If the person struggles to name it, do not keep asking "what would you call this?"
140
- Offer one or two grounded options based on their language and let them refine.
213
+ Sometimes the user asks to save a Psyche entity directly.
141
214
 
142
- Do not jump from one exploratory answer straight into a finished normalized record.
143
- Help the user recognize their own experience first.
215
+ If the entity is already clear:
216
+
217
+ - reflect briefly
218
+ - ask only for the one missing structural detail
219
+ - save without forcing extra exploration
220
+
221
+ If the entity is not yet clear:
222
+
223
+ - ask one clarifying question that improves the formulation
224
+ - prefer a question about the most recent example, the protective job, or the core
225
+ meaning
226
+ - then move toward naming and save
227
+
228
+ ## Psyche update loop
229
+
230
+ Use this when the user is revising an existing Psyche record rather than creating one
231
+ from scratch.
232
+
233
+ 1. Ask what feels newly true, newly visible, or newly inaccurate.
234
+ 2. Ask what still feels essentially right and should not be lost.
235
+ 3. Re-check the name only if the old wording no longer fits the lived experience.
236
+ 4. Ask for one concrete recent example if the update is abstract or sweeping.
237
+ 5. Then change only the parts the new understanding actually affects.
238
+
239
+ Good update opener:
240
+
241
+ - "Before we change it, what feels newly true about this now, and what still feels basically right?"
242
+
243
+ ## Safety rule
244
+
245
+ If the user shows imminent risk of self-harm, suicide, violence, inability to stay
246
+ safe, or severe disorientation, stop normal Psyche intake. Shift to immediate support,
247
+ encourage urgent human help, and in the U.S. mention calling or texting `988` or using
248
+ local emergency services if they are in immediate danger.
144
249
 
145
250
  ## Value
146
251
 
@@ -148,35 +253,35 @@ Aim: clarify a direction to live toward, not a goal to complete.
148
253
 
149
254
  Arc:
150
255
 
151
- 1. Ask what feels important.
152
- 2. Ask how living it would look in ordinary life.
153
- 3. Separate the value from a goal or performance target.
256
+ 1. Ask when the pull or absence of the value felt noticeable recently.
257
+ 2. Ask how living it would look in ordinary behavior.
258
+ 3. Separate the value from a performance target.
154
259
  4. Ask what gets in the way.
155
- 5. Name one committed action.
260
+ 5. Land on one concrete expression or committed action.
261
+
262
+ Helpful follow-up lanes:
263
+
264
+ - what ordinary behavior would show the value
265
+ - what pain, longing, or friction is making it alive right now
266
+ - what blocks living it
267
+ - what one action would express it this week
156
268
 
157
269
  Likely linked entities:
158
270
 
159
- - `goal` when the value belongs to one strategic direction
160
- - `project` or `task` when the user wants a concrete expression now
161
- - `behavior` when the user keeps describing a repeated move that serves or violates the value
271
+ - `goal` when the value belongs to a strategic direction
272
+ - `project` or `task` when the user wants one concrete expression now
273
+ - `behavior` when the user keeps describing a repeated move that serves or violates it
162
274
 
163
275
  Ready to save when:
164
276
 
165
277
  - the value has a clear name
166
- - the valued direction is understandable in plain language
167
- - there is enough detail to write `whyItMatters` or one `committedAction`
278
+ - the lived direction is understandable in plain language
279
+ - there is enough detail for `whyItMatters` or one action expression
168
280
 
169
281
  Preferred opening question:
170
282
 
171
283
  - "When did the pull or absence of this value feel most noticeable recently?"
172
284
 
173
- Helpful follow-up lanes:
174
-
175
- - what living the value looks like in ordinary behavior
176
- - what hurts or longing makes the value feel alive right now
177
- - what gets in the way
178
- - one next committed action
179
-
180
285
  ## Behavior Pattern
181
286
 
182
287
  Aim: build a functional analysis of a recurring loop.
@@ -188,9 +293,18 @@ Arc:
188
293
  3. Reflect the sequence of thoughts, feelings, body state, and actions.
189
294
  4. Ask what the loop protects, relieves, or helps avoid short term.
190
295
  5. Ask what it costs long term.
191
- 6. Ask what a more workable response would be.
296
+ 6. Ask what a more workable response would need to preserve.
192
297
  7. Notice linked beliefs, modes, values, or behaviors.
193
298
 
299
+ Helpful follow-up lanes:
300
+
301
+ - the earliest cue or vulnerability factor
302
+ - the moment the loop starts to make sense internally
303
+ - where the pattern stops feeling like a choice
304
+ - what the loop protects or prevents
305
+ - what it costs later
306
+ - what a preferred response would still need to honor
307
+
194
308
  Likely linked entities:
195
309
 
196
310
  - `belief_entry` when a rule, self-judgment, or prediction shows up
@@ -201,56 +315,48 @@ Likely linked entities:
201
315
  Ready to save when:
202
316
 
203
317
  - the pattern can be named in plain language
204
- - the cue, short-term payoff, and long-term cost are all at least roughly clear
318
+ - the cue, short-term payoff, and long-term cost are at least roughly clear
205
319
  - there is a preferred response or at least a direction for one
206
320
 
207
321
  Preferred opening question:
208
322
 
209
- - "What happened the last time you noticed yourself disappearing like that?"
210
-
211
- Helpful follow-up lanes:
212
-
213
- - the earliest cue or vulnerability factor
214
- - the moment the loop starts to make sense internally
215
- - what the loop protects or prevents
216
- - what it costs later
217
- - what a more workable move would need to preserve
323
+ - "What happened the last time this pattern showed up?"
218
324
 
219
325
  ## Behavior
220
326
 
221
- Aim: understand one recurring move and its function.
327
+ Aim: understand one recurring move and the function it serves.
222
328
 
223
329
  Arc:
224
330
 
225
- 1. Ask what the behavior actually looks like.
226
- 2. Ask what cues or urges pull it online.
331
+ 1. Ask what the behavior actually looks like in a recent moment.
332
+ 2. Ask what cue, urge, or body signal pulls it online.
227
333
  3. Ask what it does for the user in the moment.
228
334
  4. Ask what cost shows up later.
229
335
  5. Decide whether it is `away`, `committed`, or `recovery`.
230
- 6. If relevant, ask for a replacement move or repair plan.
336
+ 6. If useful, ask what move they want available instead.
337
+
338
+ Helpful follow-up lanes:
339
+
340
+ - what the urge is trying to fix immediately
341
+ - what cue or body signal appears first
342
+ - what the move protects the user from
343
+ - what alternative move would still meet the underlying need
231
344
 
232
345
  Likely linked entities:
233
346
 
234
347
  - `behavior_pattern` when the move belongs to a larger loop
235
- - `psyche_value` when the user contrasts the move with how they want to live
236
- - `mode_profile` when the move clearly belongs to a protector, critic, or child state
348
+ - `psyche_value` when the move is clearly about drifting from or expressing a value
349
+ - `mode_profile` when the move clearly belongs to a part-state
237
350
 
238
351
  Ready to save when:
239
352
 
240
353
  - the move has a stable title
241
354
  - its `kind` is clear
242
- - at least one cue, payoff, or replacement move is grounded enough to be useful later
355
+ - at least one cue, payoff, cost, or replacement move is grounded enough to help later
243
356
 
244
357
  Preferred opening question:
245
358
 
246
- - "Right before you send the long message, what feels most urgent or threatened?"
247
-
248
- Helpful follow-up lanes:
249
-
250
- - what the urge is trying to fix immediately
251
- - what cue or body signal appears first
252
- - whether the move is away, committed, or recovery
253
- - what alternative move would still meet the underlying need
359
+ - "What did you find yourself doing the last time this move showed up?"
254
360
 
255
361
  ## Belief
256
362
 
@@ -258,19 +364,29 @@ Aim: turn implicit self-talk into one explicit sentence that can be examined.
258
364
 
259
365
  Arc:
260
366
 
261
- 1. Reflect the likely belief in the user's words and ask for correction.
262
- 2. Clarify whether it is `absolute` or `conditional`.
263
- 3. Ask how true it feels from `0` to `100`.
264
- 4. Gather evidence for and evidence against.
265
- 5. Ask where the rule may have been learned or reinforced.
266
- 6. Offer a more flexible alternative only after the user has examined the belief and
267
- actually wants help loosening it.
367
+ 1. Ask what the experience starts telling the user in that moment.
368
+ 2. Help condense it into one belief sentence in the user's own language.
369
+ 3. Clarify whether it is `absolute` or `conditional`.
370
+ 4. Ask how true it feels from `0` to `100`.
371
+ 5. Gather one or two pieces of supporting evidence and one or two strains against it.
372
+ 6. Ask where the rule feels learned, reinforced, or familiar.
373
+ 7. Offer a more flexible alternative only if the user wants that and only after the
374
+ belief itself is clear.
375
+
376
+ Helpful follow-up lanes:
377
+
378
+ - the feared consequence inside the belief
379
+ - what the moment seems to prove
380
+ - how old or familiar the rule feels
381
+ - evidence for
382
+ - evidence against
383
+ - whether the user wants help drafting a more flexible version
268
384
 
269
385
  Likely linked entities:
270
386
 
271
387
  - `behavior_pattern` when the belief drives a recurring loop
272
388
  - `mode_profile` when the belief sounds like a specific part-state
273
- - `trigger_report` when the belief became visible in one episode
389
+ - `trigger_report` when the belief became visible inside one episode
274
390
 
275
391
  Ready to save when:
276
392
 
@@ -280,15 +396,7 @@ Ready to save when:
280
396
 
281
397
  Preferred opening question:
282
398
 
283
- - "When that sentence feels true, what are you afraid would happen if you needed more?"
284
-
285
- Helpful follow-up lanes:
286
-
287
- - the feared consequence
288
- - how old or familiar the rule feels
289
- - evidence that supports it
290
- - evidence that strains it
291
- - whether the user wants help drafting a more flexible alternative
399
+ - "When that reaction hits, what does it start telling you about you, them, or what happens next?"
292
400
 
293
401
  ## Mode Profile
294
402
 
@@ -298,15 +406,24 @@ Arc:
298
406
 
299
407
  1. Start from a recent moment when the mode showed up.
300
408
  2. Ask how it feels, sounds, looks, or carries itself.
301
- 3. Choose the mode family after the lived description is clearer.
302
- 4. Name its protective job, fear, and burden.
303
- 5. Ask when it first became necessary or familiar.
304
- 6. Ask what a healthy-adult response would need to do with it.
409
+ 3. Ask what it is trying to protect, prevent, or control.
410
+ 4. Name its fear, burden, and protective job.
411
+ 5. Choose the mode family only after the lived description is clearer.
412
+ 6. Ask when it first became necessary or familiar.
413
+ 7. Ask what a healthier relationship to the mode would require.
414
+
415
+ Helpful follow-up lanes:
416
+
417
+ - the felt sense, posture, or voice of the part
418
+ - what it fears would happen without its control
419
+ - what burden it carries
420
+ - how long it has been needed
421
+ - what the healthy-adult response would need to offer it
305
422
 
306
423
  Likely linked entities:
307
424
 
308
425
  - `behavior_pattern` when the mode repeatedly drives a loop
309
- - `behavior` when the mode expresses through one repeated action
426
+ - `behavior` when the mode expresses through one repeated move
310
427
  - `belief_entry` when the mode speaks in a specific rule or script
311
428
 
312
429
  Ready to save when:
@@ -317,15 +434,7 @@ Ready to save when:
317
434
 
318
435
  Preferred opening question:
319
436
 
320
- - "When you become polished and unreachable, what is that part trying to protect?"
321
-
322
- Helpful follow-up lanes:
323
-
324
- - the felt sense, posture, or voice of the part
325
- - what it fears would happen without its control
326
- - what burden it carries
327
- - how long it has been needed
328
- - what a healthy-adult response would need to offer it
437
+ - "When this part takes over, what feels most at risk or most in need of protection?"
329
438
 
330
439
  ## Mode Guide Session
331
440
 
@@ -339,6 +448,13 @@ Arc:
339
448
  4. Reflect the answers before suggesting interpretations.
340
449
  5. Offer one or two candidate mode labels only after enough evidence exists.
341
450
 
451
+ Helpful follow-up lanes:
452
+
453
+ - what just happened before the shift
454
+ - what the part is saying or demanding
455
+ - what it is afraid of
456
+ - what it seems to need from the user or from others
457
+
342
458
  Likely linked entities:
343
459
 
344
460
  - `mode_profile` if a durable recurring mode becomes clear
@@ -349,56 +465,50 @@ Ready to save when:
349
465
 
350
466
  - there is a usable `summary`
351
467
  - the `answers` capture the user's language faithfully
352
- - any candidate mode interpretations remain tentative and evidence-based
468
+ - any candidate interpretations remain tentative and evidence-based
353
469
 
354
470
  Preferred opening question:
355
471
 
356
- - "In the moment you feel exposed, what does that part start telling you to do?"
357
-
358
- Helpful follow-up lanes:
359
-
360
- - what just happened before the shift
361
- - what the part fears
362
- - what it needs
363
- - whether one or two tentative mode candidates now fit
472
+ - "What just happened, and what is this part trying to get you to do or stop doing right now?"
364
473
 
365
474
  ## Trigger Report
366
475
 
367
- Aim: map one emotionally meaningful episode clearly enough to learn from it.
476
+ Aim: capture one emotionally meaningful episode clearly enough that it can teach the
477
+ user something later.
368
478
 
369
479
  Arc:
370
480
 
371
- 1. Name the incident briefly.
372
- 2. Reconstruct what happened concretely.
373
- 3. Capture emotions and intensity.
374
- 4. Capture thoughts, meanings, and belief-linked interpretations.
375
- 5. Capture behaviors and coping moves.
376
- 6. Capture short-term and long-term consequences.
377
- 7. Ask what pattern, belief, mode, or value was most active.
378
- 8. End with next moves.
481
+ 1. Anchor the report in one specific episode.
482
+ 2. Ask what happened as concretely as possible.
483
+ 3. Ask what emotions, thoughts, and body signals showed up.
484
+ 4. Ask what the user did next and what happened after.
485
+ 5. Ask what helped short term and what the consequences were later.
486
+ 6. Ask what pattern, belief, mode, or value seems most active here.
487
+ 7. Ask what would help next time only after the episode itself is clear.
488
+
489
+ Helpful follow-up lanes:
490
+
491
+ - what happened first
492
+ - what emotions were present and how intense they felt
493
+ - what felt most threatened or unbearable
494
+ - what meaning or interpretation arrived fast
495
+ - what action followed
496
+ - what happened next short term and long term
497
+ - what this seems linked to in the larger Psyche map
379
498
 
380
499
  Likely linked entities:
381
500
 
382
- - `behavior_pattern` when the episode reveals a repeated loop
383
- - `belief_entry` when the episode reveals a clear rule or prediction
384
- - `mode_profile` when one part-state dominated the sequence
385
- - `psyche_value` when the repair move points back to a valued direction
501
+ - `behavior_pattern` when the incident reveals a repeating loop
502
+ - `belief_entry` when a clear belief sentence appears
503
+ - `mode_profile` when a recurring part-state takes over
504
+ - `psyche_value` when the aftermath highlights what matters most
386
505
 
387
506
  Ready to save when:
388
507
 
389
- - the event has a clear title
390
- - there is enough structure to fill emotions, thoughts, behaviors, and consequences
391
- - there is at least one useful next move or linked entity to learn from later
508
+ - the situation is specific enough to recognize later
509
+ - the emotional and behavioral sequence is understandable
510
+ - one or more linked Psyche meanings are clear enough to note
392
511
 
393
512
  Preferred opening question:
394
513
 
395
- - "If we slow that incident right down, what was the first moment you noticed the shift in you?"
396
-
397
- Helpful follow-up lanes:
398
-
399
- - the first external cue
400
- - the first internal shift
401
- - the thoughts or meanings that arrived
402
- - the behavior that followed
403
- - the immediate and later consequences
404
- - the pattern, belief, mode, or value that now seems most relevant
514
+ - "What happened in that moment, as concretely as you can say it?"