forge-openclaw-plugin 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/README.md +8 -8
  2. package/dist/assets/{action-bar-B9MYlps2.js → action-bar-DgrmzFrI.js} +1 -1
  3. package/dist/assets/{activity-page-DbzbChcE.js → activity-page-CF451ueg.js} +1 -1
  4. package/dist/assets/{ai-surface-workspace-CF0257Hs.js → ai-surface-workspace-DtwybxJB.js} +1 -1
  5. package/dist/assets/{atlas-panel-CO3RYAKn.js → atlas-panel-CB3uYk_K.js} +1 -1
  6. package/dist/assets/{calendar-page-BuuHKEHC.js → calendar-page-BYsDuLnh.js} +1 -1
  7. package/dist/assets/{calendar-rules-DKftgNx5.js → calendar-rules-DXuOv2J-.js} +1 -1
  8. package/dist/assets/{calendar-week-toolbar-ChIpkT-G.js → calendar-week-toolbar-8PJmiUE_.js} +1 -1
  9. package/dist/assets/{companion-sync-lab-page-BZRX4Btw.js → companion-sync-lab-page-DzWNOaBh.js} +1 -1
  10. package/dist/assets/{daily-metrics-dashboard-CXDsaAQd.js → daily-metrics-dashboard-CHcYxDhs.js} +1 -1
  11. package/dist/assets/{define-workbench-box-CpG0Zb1L.js → define-workbench-box-DcI0_QKW.js} +1 -1
  12. package/dist/assets/{entity-link-multiselect-Dl4rZqdg.js → entity-link-multiselect-C--AiCMb.js} +1 -1
  13. package/dist/assets/{entity-note-count-link-Bs1aKYyD.js → entity-note-count-link-xne6mshj.js} +1 -1
  14. package/dist/assets/{entity-notes-surface-B56XSw7M.js → entity-notes-surface-jy6Psist.js} +1 -1
  15. package/dist/assets/{execution-board-D66C_ikW.js → execution-board-BSUZCIIx.js} +1 -1
  16. package/dist/assets/{faceted-token-search-Dg2rjknH.js → faceted-token-search-BMQ1Wwzt.js} +1 -1
  17. package/dist/assets/{flagship-signal-deck-C6KVPhmM.js → flagship-signal-deck-DjcskRwF.js} +1 -1
  18. package/dist/assets/{floating-action-menu-DAFAEBcA.js → floating-action-menu-cGhbJ2tc.js} +1 -1
  19. package/dist/assets/{generic-node-view-C6DK5hJ6.js → generic-node-view-DNVwfqqq.js} +1 -1
  20. package/dist/assets/{goal-detail-page-CC4VXud6.js → goal-detail-page-dAbyCilO.js} +1 -1
  21. package/dist/assets/{goal-dialog-15hD8EBp.js → goal-dialog-DH50D0tP.js} +1 -1
  22. package/dist/assets/{goals-page-CQ2lJMzI.js → goals-page-DkMy9mPD.js} +1 -1
  23. package/dist/assets/{habits-page-a7KVPaQp.js → habits-page-CCQR8rg6.js} +1 -1
  24. package/dist/assets/{health-boxes-DqgvIYoL.js → health-boxes-BPTgGM6G.js} +1 -1
  25. package/dist/assets/index-VzCGTBS_.css +1 -0
  26. package/dist/assets/{index-FpGANF9S.js → index-izRKx6JK.js} +2 -2
  27. package/dist/assets/{inline-note-fields-COgzxr_7.js → inline-note-fields-D4mCM1gO.js} +1 -1
  28. package/dist/assets/{insight-flow-dialog-Dmb6NSGp.js → insight-flow-dialog-Btp6bkbV.js} +1 -1
  29. package/dist/assets/{insights-page-OnqR4cYI.js → insights-page-1qM4mxjS.js} +1 -1
  30. package/dist/assets/{kanban-boxes-BWUzntCV.js → kanban-boxes-u_A-UJG-.js} +1 -1
  31. package/dist/assets/{kanban-page-BI16Gzp_.js → kanban-page-CKCa_3Qb.js} +1 -1
  32. package/dist/assets/{knowledge-graph-page-DxEBaEke.js → knowledge-graph-page-BZOxRv19.js} +1 -1
  33. package/dist/assets/{life-force-page-CDEXEQai.js → life-force-page-BZlyA144.js} +1 -1
  34. package/dist/assets/{life-force-workspace-C7UOnJEf.js → life-force-workspace-CtAWZXNw.js} +1 -1
  35. package/dist/assets/{metric-tile-boeHB1R1.js → metric-tile-Bkx2btO2.js} +1 -1
  36. package/dist/assets/{movement-boxes-BUSqaTL2.js → movement-boxes-QZ2EIS9q.js} +1 -1
  37. package/dist/assets/{movement-page-DcbO0497.js → movement-page-B-3ihggI.js} +1 -1
  38. package/dist/assets/{note-markdown-DXXI3W3V.js → note-markdown-BWedRE3c.js} +1 -1
  39. package/dist/assets/{note-tags-input-CYh3TVW2.js → note-tags-input-DZkCqI1w.js} +1 -1
  40. package/dist/assets/{notes-boxes-CMJXX2K0.js → notes-boxes-DGFmt7Dp.js} +1 -1
  41. package/dist/assets/{notes-page-DvHMcQey.js → notes-page-DYkn04tz.js} +1 -1
  42. package/dist/assets/{open-in-graph-button-4UYrp1XP.js → open-in-graph-button-CjvkEj1P.js} +1 -1
  43. package/dist/assets/{orbit-map-BwK7sDaC.js → orbit-map-CRHSPenk.js} +1 -1
  44. package/dist/assets/{overview-page-Z5vaUTm3.js → overview-page-D6LsjPWe.js} +1 -1
  45. package/dist/assets/{page-hero-DvrM83_C.js → page-hero-BLhM8FF3.js} +1 -1
  46. package/dist/assets/{pill-cluster-DYI3Ibj8.js → pill-cluster-B5bYs_e2.js} +1 -1
  47. package/dist/assets/{preference-entity-handoff-button-C2ATjvws.js → preference-entity-handoff-button-CfCQl3cW.js} +1 -1
  48. package/dist/assets/{preferences-page-BAexXHye.js → preferences-page-OltGdsQ2.js} +1 -1
  49. package/dist/assets/{project-collections-B9nr-Ts-.js → project-collections-FfBIVwXu.js} +1 -1
  50. package/dist/assets/{project-detail-page-B9PqyPu9.js → project-detail-page-CCm3iZPQ.js} +1 -1
  51. package/dist/assets/{project-dialog-CBA-D65n.js → project-dialog-B_J1ESMk.js} +1 -1
  52. package/dist/assets/{project-management-hierarchy-page-DXK14jn0.js → project-management-hierarchy-page-BNzvtNZj.js} +1 -1
  53. package/dist/assets/{project-management-section-nav-DJ3QKCtr.js → project-management-section-nav-DBNHt9p5.js} +1 -1
  54. package/dist/assets/{projects-boxes-iBu_PRqe.js → projects-boxes-BvlVsO5q.js} +1 -1
  55. package/dist/assets/{projects-page-CdAk-ByT.js → projects-page-BUf7KV-_.js} +1 -1
  56. package/dist/assets/{psyche-behaviors-page-CbhhTfU2.js → psyche-behaviors-page-jtyhdpJ1.js} +1 -1
  57. package/dist/assets/{psyche-flashcards-page-DQaw_vUQ.js → psyche-flashcards-page-05606-97.js} +1 -1
  58. package/dist/assets/{psyche-goal-map-page-C-ZTVOEP.js → psyche-goal-map-page-Cw-aqS3Y.js} +1 -1
  59. package/dist/assets/{psyche-graph-DYzeClxn.js → psyche-graph-0E22QHPe.js} +1 -1
  60. package/dist/assets/{psyche-metrics-page-C9hKn10A.js → psyche-metrics-page-DBFVPeMa.js} +1 -1
  61. package/dist/assets/{psyche-mode-guide-page-CR8e984W.js → psyche-mode-guide-page-DI-LNEDT.js} +1 -1
  62. package/dist/assets/psyche-modes-page-CaMupyfi.js +1 -0
  63. package/dist/assets/{psyche-page-CTdIDkw9.js → psyche-page-CFBq0YKf.js} +1 -1
  64. package/dist/assets/{psyche-patterns-page-Drgm-f7I.js → psyche-patterns-page-sp4ikoef.js} +1 -1
  65. package/dist/assets/{psyche-questionnaire-builder-page-gRwdGXde.js → psyche-questionnaire-builder-page-DEt0UDsz.js} +1 -1
  66. package/dist/assets/{psyche-questionnaire-detail-page-CIP9b2UI.js → psyche-questionnaire-detail-page-BXQbOE6A.js} +1 -1
  67. package/dist/assets/{psyche-questionnaire-run-detail-page-SYndwtF3.js → psyche-questionnaire-run-detail-page-Cd3ClsSK.js} +1 -1
  68. package/dist/assets/{psyche-questionnaire-run-page-CXiJyd5i.js → psyche-questionnaire-run-page-D_EokOQm.js} +1 -1
  69. package/dist/assets/{psyche-questionnaires-page-CFPKwA3O.js → psyche-questionnaires-page-D1Ov2L4n.js} +1 -1
  70. package/dist/assets/{psyche-report-detail-page-dU30a2WE.js → psyche-report-detail-page-9HyPr8BJ.js} +1 -1
  71. package/dist/assets/{psyche-reports-page-Cn0EBndy.js → psyche-reports-page-BeyJg5fb.js} +1 -1
  72. package/dist/assets/{psyche-schemas-beliefs-page-Bab4xSWv.js → psyche-schemas-beliefs-page-DNmf-Vma.js} +1 -1
  73. package/dist/assets/{psyche-screen-time-page-lIe6GQxJ.js → psyche-screen-time-page-DJMDR5oo.js} +1 -1
  74. package/dist/assets/{psyche-self-observation-page-BTE3KfIl.js → psyche-self-observation-page-DFKXG1Yv.js} +1 -1
  75. package/dist/assets/{psyche-values-page-DclBZ9xw.js → psyche-values-page-TWKth89J.js} +1 -1
  76. package/dist/assets/{question-flow-dialog-Ded2E85L.js → question-flow-dialog-D-_EvoAt.js} +1 -1
  77. package/dist/assets/{report-chain-fields-DY640iqL.js → report-chain-fields-Dy-jBQDn.js} +1 -1
  78. package/dist/assets/{rewards-page-FxUXB76B.js → rewards-page-D3ymEd2X.js} +1 -1
  79. package/dist/assets/{scheduling-rules-editor-jakFfxqF.js → scheduling-rules-editor-CAd290IE.js} +1 -1
  80. package/dist/assets/{schema-badge-30B5syHA.js → schema-badge-BLaVI1D7.js} +1 -1
  81. package/dist/assets/{schemas-Db29G8NU.js → schemas-B0Pa-V-A.js} +1 -1
  82. package/dist/assets/{select-menu-BF2zI3RW.js → select-menu-DcS4Ukjf.js} +1 -1
  83. package/dist/assets/{settings-agents-page-Bh-Bv6FQ.js → settings-agents-page-Bt38HhEJ.js} +1 -1
  84. package/dist/assets/{settings-bin-page-DT8JJero.js → settings-bin-page-DqyVI1i1.js} +1 -1
  85. package/dist/assets/{settings-calendar-page-BA4_Qqiu.js → settings-calendar-page-DPSSZV3s.js} +1 -1
  86. package/dist/assets/{settings-data-page-K4kpmQJY.js → settings-data-page-BdHsD1C_.js} +1 -1
  87. package/dist/assets/{settings-logs-page-DkuNPAZo.js → settings-logs-page-D9OnWoFq.js} +1 -1
  88. package/dist/assets/{settings-mobile-page-4pCNwD91.js → settings-mobile-page-DFpsXA4M.js} +1 -1
  89. package/dist/assets/{settings-models-page-CZHG3t7W.js → settings-models-page-DaFXLp-O.js} +1 -1
  90. package/dist/assets/{settings-page-B_Be0vOY.js → settings-page-m_3iYPwU.js} +1 -1
  91. package/dist/assets/{settings-rewards-page-C6nFTWJu.js → settings-rewards-page-B2aBm-dA.js} +1 -1
  92. package/dist/assets/{settings-section-nav-Lo-VKCfZ.js → settings-section-nav-CMeU19Rx.js} +1 -1
  93. package/dist/assets/{settings-users-page-CVzNp4-m.js → settings-users-page-D8jyewJl.js} +1 -1
  94. package/dist/assets/{settings-wiki-page-DXM--7BB.js → settings-wiki-page-DjOgQJAh.js} +1 -1
  95. package/dist/assets/{sleep-page-DvPdZMKx.js → sleep-page-D8-dA4bE.js} +1 -1
  96. package/dist/assets/{sports-page-DjuZlOur.js → sports-page-CK3PgPKB.js} +1 -1
  97. package/dist/assets/{strategies-page-PE1IlatS.js → strategies-page-aFpJath-.js} +1 -1
  98. package/dist/assets/{strategy-detail-page-C4KiEGCI.js → strategy-detail-page-CobF5qLv.js} +1 -1
  99. package/dist/assets/{strategy-dialog-Cwf7Y3P5.js → strategy-dialog-Fgoaoob5.js} +1 -1
  100. package/dist/assets/{surface-ubuOfukq.js → surface-D0dqgX-k.js} +1 -1
  101. package/dist/assets/{task-detail-page-B3SMFZQ3.js → task-detail-page-CDK79bzk.js} +1 -1
  102. package/dist/assets/{task-dialog-CI_Fy_FW.js → task-dialog-eCDTF8xe.js} +4 -4
  103. package/dist/assets/{timebox-planning-dialog-BtFuVoA1.js → timebox-planning-dialog-CNZIGSpd.js} +1 -1
  104. package/dist/assets/{today-boxes-CYuxSkZf.js → today-boxes-CYfskVrM.js} +1 -1
  105. package/dist/assets/{today-page-CHGpLEZ3.js → today-page-Bnh8wopq.js} +1 -1
  106. package/dist/assets/{training-load-page-GZJF-Yy5.js → training-load-page-C7lq-jqy.js} +1 -1
  107. package/dist/assets/{user-badge-ByhC6bMU.js → user-badge-MEZuJiir.js} +1 -1
  108. package/dist/assets/{utility-widgets-ilORjDmg.js → utility-widgets-h5eG2jvc.js} +1 -1
  109. package/dist/assets/{vitals-page-mdEqIm_9.js → vitals-page-eoFnQ3XL.js} +1 -1
  110. package/dist/assets/{weekly-review-page-C8W-yg5r.js → weekly-review-page-C7BU1gkK.js} +1 -1
  111. package/dist/assets/{weight-loss-page-BApTknCn.js → weight-loss-page-Cc7Do3XY.js} +1 -1
  112. package/dist/assets/{wiki-article-markdown-DBccllQg.js → wiki-article-markdown-CCKoSptz.js} +1 -1
  113. package/dist/assets/{wiki-editor-page-BfRfH1O3.js → wiki-editor-page-BpbxZrgz.js} +1 -1
  114. package/dist/assets/{wiki-ingest-history-page-C-6H3MU6.js → wiki-ingest-history-page-D5Wfr8pc.js} +1 -1
  115. package/dist/assets/{wiki-ingest-modal-DnlhByD_.js → wiki-ingest-modal-DhRVsEwC.js} +1 -1
  116. package/dist/assets/{wiki-page-DPZ55e3x.js → wiki-page-1vf-HErs.js} +1 -1
  117. package/dist/assets/{workbench-flow-page-_-NKIx5R.js → workbench-flow-page-y9FxDbKO.js} +1 -1
  118. package/dist/assets/{workbench-page-NIAzggwX.js → workbench-page-Da16AZvN.js} +1 -1
  119. package/dist/assets/{workout-detail-page-3fxr6HL4.js → workout-detail-page-Cq0YamXF.js} +1 -1
  120. package/dist/index.html +6 -6
  121. package/dist/openclaw/api-client.js +28 -2
  122. package/dist/openclaw/index.d.ts +2 -7
  123. package/dist/openclaw/local-runtime.js +31 -14
  124. package/dist/server/{server → apps/api}/src/app.js +12 -7
  125. package/dist/server/{server → apps/api}/src/connectors/box-registry.js +3 -3
  126. package/dist/server/{server → apps/api}/src/db.js +23 -4
  127. package/dist/server/{server → apps/api}/src/health-weight-loss.js +1 -1
  128. package/dist/server/{server → apps/api}/src/openapi.js +4 -0
  129. package/dist/server/{server → apps/api}/src/questionnaire-seeds.js +1 -1
  130. package/dist/server/{server → apps/api}/src/repositories/ai-connectors.js +1 -1
  131. package/dist/server/{server → apps/api}/src/repositories/habits.js +1 -1
  132. package/dist/server/{server → apps/api}/src/services/companion-iroh.js +4 -1
  133. package/dist/server/{server → apps/api}/src/services/doctor.js +3 -3
  134. package/dist/server/{server → apps/api}/src/services/gamification-assets.js +1 -1
  135. package/dist/server/{server → apps/api}/src/services/gamification.js +1 -1
  136. package/dist/server/{server → apps/api}/src/services/knowledge-graph.js +3 -3
  137. package/dist/server/{server → apps/api}/src/types.js +2 -2
  138. package/dist/server/{server → apps/api}/src/watch-mobile.js +1 -1
  139. package/openclaw.plugin.json +1 -1
  140. package/package.json +8 -6
  141. package/server/index.js +9 -4
  142. package/skills/forge-openclaw/SKILL.md +59 -13
  143. package/skills/forge-openclaw/entity_conversation_playbooks.md +150 -5
  144. package/skills/forge-openclaw/psyche_entity_playbooks.md +77 -0
  145. package/dist/assets/favicon-B6oXI6k4.ico +0 -0
  146. package/dist/assets/favicon-Bai4rhyS.png +0 -0
  147. package/dist/assets/favicon-ERg17ZCd.svg +0 -3
  148. package/dist/assets/index-ClJbJhca.css +0 -1
  149. package/dist/assets/psyche-modes-page-lQdpAcY3.js +0 -1
  150. package/skills/forge-openclaw/SKILL.md.bak-20260415 +0 -552
  151. package/skills/forge-openclaw/entity_conversation_playbooks.md.bak-20260415 +0 -1303
  152. /package/dist/server/{server → apps/api}/migrations/001_core.sql +0 -0
  153. /package/dist/server/{server → apps/api}/migrations/002_psyche.sql +0 -0
  154. /package/dist/server/{server → apps/api}/migrations/003_habits.sql +0 -0
  155. /package/dist/server/{server → apps/api}/migrations/004_habit_links.sql +0 -0
  156. /package/dist/server/{server → apps/api}/migrations/005_habit_psyche_links.sql +0 -0
  157. /package/dist/server/{server → apps/api}/migrations/006_work_adjustments.sql +0 -0
  158. /package/dist/server/{server → apps/api}/migrations/007_weekly_review_closures.sql +0 -0
  159. /package/dist/server/{server → apps/api}/migrations/008_calendar_execution.sql +0 -0
  160. /package/dist/server/{server → apps/api}/migrations/009_true_calendar_events.sql +0 -0
  161. /package/dist/server/{server → apps/api}/migrations/010_calendar_selection_state.sql +0 -0
  162. /package/dist/server/{server → apps/api}/migrations/011_calendar_timezone_backfill.sql +0 -0
  163. /package/dist/server/{server → apps/api}/migrations/012_work_block_ranges.sql +0 -0
  164. /package/dist/server/{server → apps/api}/migrations/013_microsoft_local_auth_settings.sql +0 -0
  165. /package/dist/server/{server → apps/api}/migrations/014_note_tags_and_ephemeral.sql +0 -0
  166. /package/dist/server/{server → apps/api}/migrations/015_multi_user_and_strategies.sql +0 -0
  167. /package/dist/server/{server → apps/api}/migrations/016_health_companion.sql +0 -0
  168. /package/dist/server/{server → apps/api}/migrations/016_strategy_contracts_and_user_graph.sql +0 -0
  169. /package/dist/server/{server → apps/api}/migrations/017_preferences.sql +0 -0
  170. /package/dist/server/{server → apps/api}/migrations/018_preference_catalogs.sql +0 -0
  171. /package/dist/server/{server → apps/api}/migrations/019_wiki_memory.sql +0 -0
  172. /package/dist/server/{server → apps/api}/migrations/020_wiki_page_hierarchy.sql +0 -0
  173. /package/dist/server/{server → apps/api}/migrations/021_hide_evidence_from_wiki_index.sql +0 -0
  174. /package/dist/server/{server → apps/api}/migrations/022_wiki_ingest_background.sql +0 -0
  175. /package/dist/server/{server → apps/api}/migrations/023_diagnostic_logs.sql +0 -0
  176. /package/dist/server/{server → apps/api}/migrations/024_questionnaires.sql +0 -0
  177. /package/dist/server/{server → apps/api}/migrations/025_ai_model_connections.sql +0 -0
  178. /package/dist/server/{server → apps/api}/migrations/026_custom_theme_settings.sql +0 -0
  179. /package/dist/server/{server → apps/api}/migrations/027_ai_processors.sql +0 -0
  180. /package/dist/server/{server → apps/api}/migrations/028_movement_domain.sql +0 -0
  181. /package/dist/server/{server → apps/api}/migrations/029_watch_micro_capture.sql +0 -0
  182. /package/dist/server/{server → apps/api}/migrations/030_surface_layouts.sql +0 -0
  183. /package/dist/server/{server → apps/api}/migrations/031_ai_processor_runtime_upgrades.sql +0 -0
  184. /package/dist/server/{server → apps/api}/migrations/032_ai_connectors.sql +0 -0
  185. /package/dist/server/{server → apps/api}/migrations/033_movement_trip_point_sync.sql +0 -0
  186. /package/dist/server/{server → apps/api}/migrations/034_movement_segment_sync.sql +0 -0
  187. /package/dist/server/{server → apps/api}/migrations/035_google_local_auth_settings.sql +0 -0
  188. /package/dist/server/{server → apps/api}/migrations/036_google_local_auth_client_secret.sql +0 -0
  189. /package/dist/server/{server → apps/api}/migrations/037_workbench_public_inputs_and_run_inputs.sql +0 -0
  190. /package/dist/server/{server → apps/api}/migrations/038_data_management_settings.sql +0 -0
  191. /package/dist/server/{server → apps/api}/migrations/039_life_force_and_action_points.sql +0 -0
  192. /package/dist/server/{server → apps/api}/migrations/040_screen_time_domain.sql +0 -0
  193. /package/dist/server/{server → apps/api}/migrations/041_companion_source_states.sql +0 -0
  194. /package/dist/server/{server → apps/api}/migrations/042_movement_boxes.sql +0 -0
  195. /package/dist/server/{server → apps/api}/migrations/043_movement_box_overlap_overrides.sql +0 -0
  196. /package/dist/server/{server → apps/api}/migrations/044_macos_local_calendar_provider.sql +0 -0
  197. /package/dist/server/{server → apps/api}/migrations/045_sleep_nights_and_raw_segments.sql +0 -0
  198. /package/dist/server/{server → apps/api}/migrations/046_work_item_hierarchy.sql +0 -0
  199. /package/dist/server/{server → apps/api}/migrations/047_sleep_source_records.sql +0 -0
  200. /package/dist/server/{server → apps/api}/migrations/048_task_run_git_context.sql +0 -0
  201. /package/dist/server/{server → apps/api}/migrations/049_agent_runtime_sessions.sql +0 -0
  202. /package/dist/server/{server → apps/api}/migrations/050_agent_token_bootstrap_policy.sql +0 -0
  203. /package/dist/server/{server → apps/api}/migrations/051_agent_token_scope_policy.sql +0 -0
  204. /package/dist/server/{server → apps/api}/migrations/052_agent_identity_tightening.sql +0 -0
  205. /package/dist/server/{server → apps/api}/migrations/053_agent_runtime_session_canonical_labels.sql +0 -0
  206. /package/dist/server/{server → apps/api}/migrations/054_sqlite_backed_wiki_memory.sql +0 -0
  207. /package/dist/server/{server → apps/api}/migrations/055_gamification_progression.sql +0 -0
  208. /package/dist/server/{server → apps/api}/migrations/056_gamification_equipment.sql +0 -0
  209. /package/dist/server/{server → apps/api}/migrations/057_gamification_catalog_cleanup.sql +0 -0
  210. /package/dist/server/{server → apps/api}/migrations/058_gamification_theme_preference.sql +0 -0
  211. /package/dist/server/{server → apps/api}/migrations/059_data_backup_retention.sql +0 -0
  212. /package/dist/server/{server → apps/api}/migrations/060_psyche_devrage_metrics.sql +0 -0
  213. /package/dist/server/{server → apps/api}/migrations/061_health_workout_raw_evidence.sql +0 -0
  214. /package/dist/server/{server → apps/api}/migrations/062_health_mobile_sync_sessions.sql +0 -0
  215. /package/dist/server/{server → apps/api}/migrations/063_psyche_flashcards.sql +0 -0
  216. /package/dist/server/{server → apps/api}/migrations/064_health_workout_time_series_identity.sql +0 -0
  217. /package/dist/server/{server → apps/api}/migrations/065_weight_loss_nutrition_insights.sql +0 -0
  218. /package/dist/server/{server → apps/api}/migrations/066_watch_action_receipts.sql +0 -0
  219. /package/dist/server/{server → apps/api}/migrations/067_weight_loss_daily_active_overrides.sql +0 -0
  220. /package/dist/server/{server → apps/api}/migrations/068_remove_generated_movement_wiki_logs.sql +0 -0
  221. /package/dist/server/{server → apps/api}/migrations/069_psyche_devrage_cumulative_rage.sql +0 -0
  222. /package/dist/server/{server → apps/api}/migrations/070_health_mobile_sync_completion_index.sql +0 -0
  223. /package/dist/server/{server → apps/api}/migrations/071_agent_runtime_claude_identity.sql +0 -0
  224. /package/dist/server/{server → apps/api}/src/data-management-types.js +0 -0
  225. /package/dist/server/{server → apps/api}/src/debug.js +0 -0
  226. /package/dist/server/{server → apps/api}/src/demo-data.js +0 -0
  227. /package/dist/server/{server → apps/api}/src/discovery-advertiser.js +0 -0
  228. /package/dist/server/{server → apps/api}/src/e2e-server.js +0 -0
  229. /package/dist/server/{server → apps/api}/src/errors.js +0 -0
  230. /package/dist/server/{server → apps/api}/src/health-workout-adapters.js +0 -0
  231. /package/dist/server/{server → apps/api}/src/health-workout-analytics.js +0 -0
  232. /package/dist/server/{server → apps/api}/src/health.js +0 -0
  233. /package/dist/server/{server → apps/api}/src/index.js +0 -0
  234. /package/dist/server/{server → apps/api}/src/managers/base.js +0 -0
  235. /package/dist/server/{server → apps/api}/src/managers/contracts.js +0 -0
  236. /package/dist/server/{server → apps/api}/src/managers/platform/api-gateway-manager.js +0 -0
  237. /package/dist/server/{server → apps/api}/src/managers/platform/audit-manager.js +0 -0
  238. /package/dist/server/{server → apps/api}/src/managers/platform/authentication-manager.js +0 -0
  239. /package/dist/server/{server → apps/api}/src/managers/platform/authorization-manager.js +0 -0
  240. /package/dist/server/{server → apps/api}/src/managers/platform/background-job-manager.js +0 -0
  241. /package/dist/server/{server → apps/api}/src/managers/platform/configuration-manager.js +0 -0
  242. /package/dist/server/{server → apps/api}/src/managers/platform/database-manager.js +0 -0
  243. /package/dist/server/{server → apps/api}/src/managers/platform/event-bus-manager.js +0 -0
  244. /package/dist/server/{server → apps/api}/src/managers/platform/external-service-manager.js +0 -0
  245. /package/dist/server/{server → apps/api}/src/managers/platform/health-manager.js +0 -0
  246. /package/dist/server/{server → apps/api}/src/managers/platform/llm-manager.js +0 -0
  247. /package/dist/server/{server → apps/api}/src/managers/platform/migration-manager.js +0 -0
  248. /package/dist/server/{server → apps/api}/src/managers/platform/mock-workbench-provider.js +0 -0
  249. /package/dist/server/{server → apps/api}/src/managers/platform/openai-responses-provider.js +0 -0
  250. /package/dist/server/{server → apps/api}/src/managers/platform/search-index-manager.js +0 -0
  251. /package/dist/server/{server → apps/api}/src/managers/platform/secrets-manager.js +0 -0
  252. /package/dist/server/{server → apps/api}/src/managers/platform/session-manager.js +0 -0
  253. /package/dist/server/{server → apps/api}/src/managers/platform/storage-manager.js +0 -0
  254. /package/dist/server/{server → apps/api}/src/managers/platform/token-manager.js +0 -0
  255. /package/dist/server/{server → apps/api}/src/managers/platform/transaction-manager.js +0 -0
  256. /package/dist/server/{server → apps/api}/src/managers/platform/trusted-network.js +0 -0
  257. /package/dist/server/{server → apps/api}/src/managers/runtime.js +0 -0
  258. /package/dist/server/{server → apps/api}/src/managers/type-guards.js +0 -0
  259. /package/dist/server/{server → apps/api}/src/movement.js +0 -0
  260. /package/dist/server/{server → apps/api}/src/preferences-seeds.js +0 -0
  261. /package/dist/server/{server → apps/api}/src/preferences-types.js +0 -0
  262. /package/dist/server/{server → apps/api}/src/psyche-types.js +0 -0
  263. /package/dist/server/{server → apps/api}/src/questionnaire-flow.js +0 -0
  264. /package/dist/server/{server → apps/api}/src/questionnaire-types.js +0 -0
  265. /package/dist/server/{server → apps/api}/src/repositories/activity-events.js +0 -0
  266. /package/dist/server/{server → apps/api}/src/repositories/agent-runtime-sessions.js +0 -0
  267. /package/dist/server/{server → apps/api}/src/repositories/ai-processors.js +0 -0
  268. /package/dist/server/{server → apps/api}/src/repositories/calendar.js +0 -0
  269. /package/dist/server/{server → apps/api}/src/repositories/collaboration.js +0 -0
  270. /package/dist/server/{server → apps/api}/src/repositories/deleted-entities.js +0 -0
  271. /package/dist/server/{server → apps/api}/src/repositories/diagnostic-logs.js +0 -0
  272. /package/dist/server/{server → apps/api}/src/repositories/domains.js +0 -0
  273. /package/dist/server/{server → apps/api}/src/repositories/entity-ownership.js +0 -0
  274. /package/dist/server/{server → apps/api}/src/repositories/event-log.js +0 -0
  275. /package/dist/server/{server → apps/api}/src/repositories/gamification.js +0 -0
  276. /package/dist/server/{server → apps/api}/src/repositories/goals.js +0 -0
  277. /package/dist/server/{server → apps/api}/src/repositories/model-settings.js +0 -0
  278. /package/dist/server/{server → apps/api}/src/repositories/notes.js +0 -0
  279. /package/dist/server/{server → apps/api}/src/repositories/preferences.js +0 -0
  280. /package/dist/server/{server → apps/api}/src/repositories/projects.js +0 -0
  281. /package/dist/server/{server → apps/api}/src/repositories/psyche.js +0 -0
  282. /package/dist/server/{server → apps/api}/src/repositories/questionnaires.js +0 -0
  283. /package/dist/server/{server → apps/api}/src/repositories/rewards.js +0 -0
  284. /package/dist/server/{server → apps/api}/src/repositories/settings.js +0 -0
  285. /package/dist/server/{server → apps/api}/src/repositories/strategies.js +0 -0
  286. /package/dist/server/{server → apps/api}/src/repositories/surface-layouts.js +0 -0
  287. /package/dist/server/{server → apps/api}/src/repositories/tags.js +0 -0
  288. /package/dist/server/{server → apps/api}/src/repositories/task-runs.js +0 -0
  289. /package/dist/server/{server → apps/api}/src/repositories/tasks.js +0 -0
  290. /package/dist/server/{server → apps/api}/src/repositories/users.js +0 -0
  291. /package/dist/server/{server → apps/api}/src/repositories/weekly-reviews.js +0 -0
  292. /package/dist/server/{server → apps/api}/src/repositories/wiki-memory.js +0 -0
  293. /package/dist/server/{server → apps/api}/src/repositories/work-adjustments.js +0 -0
  294. /package/dist/server/{server → apps/api}/src/runtime-data-root.js +0 -0
  295. /package/dist/server/{server → apps/api}/src/screen-time.js +0 -0
  296. /package/dist/server/{server → apps/api}/src/seed-demo.js +0 -0
  297. /package/dist/server/{server → apps/api}/src/services/calendar-runtime.js +0 -0
  298. /package/dist/server/{server → apps/api}/src/services/context.js +0 -0
  299. /package/dist/server/{server → apps/api}/src/services/dashboard.js +0 -0
  300. /package/dist/server/{server → apps/api}/src/services/data-management.js +0 -0
  301. /package/dist/server/{server → apps/api}/src/services/devrage-scanner.js +0 -0
  302. /package/dist/server/{server → apps/api}/src/services/devrage.js +0 -0
  303. /package/dist/server/{server → apps/api}/src/services/entity-crud.js +0 -0
  304. /package/dist/server/{server → apps/api}/src/services/git-helper.js +0 -0
  305. /package/dist/server/{server → apps/api}/src/services/google-calendar-oauth-config.js +0 -0
  306. /package/dist/server/{server → apps/api}/src/services/insights.js +0 -0
  307. /package/dist/server/{server → apps/api}/src/services/legacy-wiki-markdown-import.js +0 -0
  308. /package/dist/server/{server → apps/api}/src/services/life-force-model.js +0 -0
  309. /package/dist/server/{server → apps/api}/src/services/life-force.js +0 -0
  310. /package/dist/server/{server → apps/api}/src/services/macos-calendar-helper.js +0 -0
  311. /package/dist/server/{server → apps/api}/src/services/openai-codex-oauth.js +0 -0
  312. /package/dist/server/{server → apps/api}/src/services/projects.js +0 -0
  313. /package/dist/server/{server → apps/api}/src/services/psyche-observation-calendar.js +0 -0
  314. /package/dist/server/{server → apps/api}/src/services/psyche.js +0 -0
  315. /package/dist/server/{server → apps/api}/src/services/relations.js +0 -0
  316. /package/dist/server/{server → apps/api}/src/services/reviews.js +0 -0
  317. /package/dist/server/{server → apps/api}/src/services/run-recovery.js +0 -0
  318. /package/dist/server/{server → apps/api}/src/services/tagging.js +0 -0
  319. /package/dist/server/{server → apps/api}/src/services/task-run-watchdog.js +0 -0
  320. /package/dist/server/{server → apps/api}/src/services/work-time.js +0 -0
  321. /package/dist/server/{server → apps/api}/src/web.js +0 -0
  322. /package/dist/server/{src → apps/web/src}/components/customization/utility-widgets.js +0 -0
  323. /package/dist/server/{src → apps/web/src}/components/ui/info-tooltip.js +0 -0
  324. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/calendar/calendar-boxes.js +0 -0
  325. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/goals/goals-boxes.js +0 -0
  326. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/habits/habits-boxes.js +0 -0
  327. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/health/health-boxes.js +0 -0
  328. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/insights/insights-boxes.js +0 -0
  329. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/kanban/kanban-boxes.js +0 -0
  330. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/movement/movement-boxes.js +0 -0
  331. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/notes/notes-boxes.js +0 -0
  332. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/overview/overview-boxes.js +0 -0
  333. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/preferences/preferences-boxes.js +0 -0
  334. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/projects/projects-boxes.js +0 -0
  335. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/psyche/psyche-boxes.js +0 -0
  336. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/questionnaires/questionnaires-boxes.js +0 -0
  337. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/review/review-boxes.js +0 -0
  338. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/define-workbench-box.js +0 -0
  339. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/shared/generic-node-view.js +0 -0
  340. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/strategies/strategies-boxes.js +0 -0
  341. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/tasks/tasks-boxes.js +0 -0
  342. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/today/today-boxes.js +0 -0
  343. /package/dist/server/{src → apps/web/src}/components/workbench-boxes/wiki/wiki-boxes.js +0 -0
  344. /package/dist/server/{src → apps/web/src}/lib/api-error.js +0 -0
  345. /package/dist/server/{src → apps/web/src}/lib/api.js +0 -0
  346. /package/dist/server/{src → apps/web/src}/lib/calendar-name-deduper.js +0 -0
  347. /package/dist/server/{src → apps/web/src}/lib/data-management-types.js +0 -0
  348. /package/dist/server/{src → apps/web/src}/lib/date-keys.js +0 -0
  349. /package/dist/server/{src → apps/web/src}/lib/diagnostics.js +0 -0
  350. /package/dist/server/{src → apps/web/src}/lib/entity-visuals.js +0 -0
  351. /package/dist/server/{src → apps/web/src}/lib/gamification-catalog.js +0 -0
  352. /package/dist/server/{src → apps/web/src}/lib/knowledge-graph-types.js +0 -0
  353. /package/dist/server/{src → apps/web/src}/lib/knowledge-graph.js +0 -0
  354. /package/dist/server/{src → apps/web/src}/lib/psyche-schemas.js +0 -0
  355. /package/dist/server/{src → apps/web/src}/lib/psyche-types.js +0 -0
  356. /package/dist/server/{src → apps/web/src}/lib/questionnaire-types.js +0 -0
  357. /package/dist/server/{src → apps/web/src}/lib/runtime-paths.js +0 -0
  358. /package/dist/server/{src → apps/web/src}/lib/schemas.js +0 -0
  359. /package/dist/server/{src → apps/web/src}/lib/snapshot-normalizer.js +0 -0
  360. /package/dist/server/{src → apps/web/src}/lib/theme-system.js +0 -0
  361. /package/dist/server/{src → apps/web/src}/lib/types.js +0 -0
  362. /package/dist/server/{src → apps/web/src}/lib/utils.js +0 -0
  363. /package/dist/server/{src → apps/web/src}/lib/weight-loss-energy-model.js +0 -0
  364. /package/dist/server/{src → apps/web/src}/lib/weight-loss-types.js +0 -0
  365. /package/dist/server/{src → apps/web/src}/lib/workbench/boxes.js +0 -0
  366. /package/dist/server/{src → apps/web/src}/lib/workbench/contracts.js +0 -0
  367. /package/dist/server/{src → apps/web/src}/lib/workbench/nodes.js +0 -0
  368. /package/dist/server/{src → apps/web/src}/lib/workbench/registry.js +0 -0
  369. /package/dist/server/{src → apps/web/src}/lib/workbench/runtime.js +0 -0
  370. /package/dist/server/{src → apps/web/src}/lib/workbench/tool-catalog.js +0 -0
@@ -1,1303 +0,0 @@
1
- # Entity Conversation Playbooks
2
-
3
- Use this file whenever the user is creating or updating a Forge entity outside the
4
- deeper Psyche exploration flow. The goal is not to walk through a form. The goal is to
5
- help the user recognize what they are trying to save, name it cleanly, place it in
6
- Forge correctly, and gather only the structure that still matters.
7
-
8
- ## Core stance
9
-
10
- - Lead with what the user is trying to preserve, change, resolve, or make true, not
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.
17
- - Ask only for what is missing or still unclear.
18
- - The first question should usually clarify whether the user is trying to understand,
19
- preserve, decide, schedule, or change something, not just which field or provider
20
- they want.
21
- - First identify the user's job when the lane is not already explicit:
22
- are they trying to add, update, review, compare, navigate, link, or run something?
23
- - Before every question, decide the one missing thing you are trying to clarify.
24
- - Ask first for the missing thing that would change the record shape, title, or next
25
- action most, not just the easiest field to fill.
26
- - Know where the conversation is headed before you ask the next question.
27
- - Prefer one clean question to a stacked sentence with several asks.
28
- - Reflect briefly when the user gives meaning, ambivalence, or emotionally loaded
29
- context that matters to the record.
30
- - Especially for goals, habits, notes, and updates, reflect what the user is trying to
31
- preserve, change, or make true before you ask for structure.
32
- - For emotionally meaningful non-Psyche records such as goals, habits, notes, and many
33
- updates, use a simple rhythm:
34
- brief reflection -> one orienting question.
35
- - Another good shorthand for the same rhythm is:
36
- short reflection -> one orienting question.
37
- - When the user is vague, ask for the smallest real example, desired outcome, or stake
38
- before you ask for wording.
39
- - For strategic, reflective, or emotionally meaningful non-Psyche records, ask what
40
- feels important to keep true before you ask for labels, dates, or taxonomy.
41
- - When the user is clear, say what the record seems to be becoming and move straight to
42
- the last missing structural detail.
43
- - For straightforward logistical entities such as tasks, calendar events, work blocks,
44
- timeboxes, and task runs, use a fast path:
45
- one brief confirming sentence -> one operational question.
46
- - For logistical records such as tasks, calendar events, work blocks, timeboxes, and
47
- task runs, use a fast path:
48
- one brief confirming sentence -> one operational question.
49
- - For action-heavy flows such as work adjustments, preference judgments, preference
50
- signals, and specialized surface work in Movement, Life Force, or Workbench, first
51
- ask what the user is trying to understand, change, add, update, link, or run, then
52
- route to the dedicated action or surface path instead of pretending it is normal
53
- CRUD.
54
- - For specialized surfaces, ask what would make the answer or change useful before you
55
- ask route-shaped details such as provider, weekday, flow id, run id, or trip id.
56
- - Do not read schema fields out loud unless the user explicitly wants a checklist.
57
- - One focused question is the default. Ask two only when both questions serve the same
58
- job and the user is steady enough for it.
59
- - Do not ask the user to do naming work alone when the meaning is already clear. Offer
60
- a tentative title or formulation and invite correction.
61
- - When the meaning is clearer than the wording, offer a tentative title or summary
62
- yourself and ask whether it fits.
63
- - After each substantive answer, briefly say what is becoming clearer before you ask
64
- for the next missing detail.
65
- - Let the user feel the direction of the intake. The next question should make sense
66
- because of what just became clearer, not because a hidden checklist says it is next.
67
- - If the user already answered the usual opening question, do not repeat the stock
68
- opener. Move straight to the next missing clarification.
69
- - After a substantive answer, briefly say what is becoming clear so the user can
70
- correct the direction early.
71
- - Once the record is clear enough to name, stop exploring broadly and ask only for the
72
- last missing structural detail.
73
- - When the record is already clear enough to save, save it instead of performing a
74
- ceremonial extra question.
75
-
76
- ## Conversation arc
77
-
78
- Most good Forge intake flows follow this sequence:
79
-
80
- 1. Clarify what the user is trying to preserve, change, or make true.
81
- 2. Land on the right Forge shape.
82
- 3. Offer or confirm a working name.
83
- 4. Clarify the outcome, placement, timing, or cadence that will matter later.
84
- 5. Ask about links only when those links will make the record more useful.
85
-
86
- That sequence is not a script. Skip steps the user already answered.
87
-
88
- ## Operation lane checkpoint
89
-
90
- Use this before you choose an API path or ask for more structure.
91
-
92
- - If the user has not made the operation explicit yet, clarify the job first:
93
- add, update, review, compare, navigate, link, or run.
94
- - Ask the lane question only when it changes the route family or the next question.
95
- - Skip the meta lane question when the user already gave both the entity and the
96
- action clearly, such as "pause this project", "add a home stay for that missing
97
- block", or "run this flow again".
98
- - For simple stored entities, once the lane is clear, fall back to the shared batch
99
- CRUD flow.
100
- - For specialized surfaces such as Movement, Life Force, and Workbench, use the lane
101
- to choose the dedicated route family before you ask for lower-level details.
102
-
103
- ## Active-listening patterns
104
-
105
- Use one of these shapes when the user is not yet precise.
106
-
107
- Meaning-bearing record:
108
-
109
- - "It sounds like you want to keep hold of something important here. What feels most
110
- worth preserving about it?"
111
-
112
- Bounded-work record:
113
-
114
- - "So this is becoming a real piece of work, not just a passing idea. What outcome
115
- would make it feel real or complete for now?"
116
-
117
- Operational record:
118
-
119
- - "I can save that. What is the one timing or placement detail that still needs to be
120
- decided?"
121
-
122
- Update record:
123
-
124
- - "Before I change it, what feels newly true now, and what should stay intact?"
125
-
126
- ## Turn shapes
127
-
128
- Use these as small conversation molds when you need the next turn to feel guided
129
- rather than mechanical.
130
-
131
- Opening turn:
132
-
133
- - briefly reflect what seems to matter here
134
- - ask the one question that clarifies shape, stake, or outcome most
135
-
136
- Middle turn:
137
-
138
- - say what is becoming clearer
139
- - name the one thing that still needs to be known
140
- - ask only for that
141
-
142
- Closing turn:
143
-
144
- - offer the working title, summary, or record shape in plain language
145
- - ask whether it feels true enough to save or needs one correction
146
- - if the user says yes, move to the write instead of reopening the intake
147
-
148
- ## Steering moves
149
-
150
- Use these small moves to keep the intake natural and intentional.
151
-
152
- When the user is still searching:
153
-
154
- - reflect the stake in one sentence, then ask for the smallest concrete example or the
155
- desired outcome
156
-
157
- When the user already knows what they mean:
158
-
159
- - offer the working formulation, then ask only for the last missing placement, timing,
160
- or ownership detail
161
-
162
- When the record carries emotion but is not Psyche:
163
-
164
- - reflect what the user is trying to hold onto, repair, or not lose, then ask one
165
- orienting question
166
-
167
- When the user is updating an existing record:
168
-
169
- - ask what is changing, what should remain true, and what prompted the change now only
170
- if those answers would alter the record shape
171
-
172
- When you are about to save:
173
-
174
- - give one short working summary in the user's language and ask whether it feels true
175
- enough or needs one correction
176
- - if the user confirms it, stop asking and save
177
-
178
- When an adjacent record becomes visible:
179
-
180
- - name it gently and ask whether it should be linked now, saved separately later, or
181
- left alone for now
182
-
183
- ## Review And Navigation Moves
184
-
185
- Use this when the user wants to inspect, compare, review, or navigate existing Forge
186
- records rather than create something new.
187
-
188
- - Start by asking what they are trying to understand, decide, compare, or check.
189
- - Ask only for the scoping detail that changes the read path most:
190
- entity, owner, timeframe, context, or comparison target.
191
- - If the record already exists and the user wants review, do not reopen a creation
192
- intake. Route to search, list, overview, or detail first.
193
- - For review-heavy questions, the useful progression is:
194
- user goal -> scope -> read path -> interpretation -> optional follow-up write.
195
- - Only drift back into create or update intake if the user actually wants the record
196
- changed after the review.
197
-
198
- ## Question Calibration Loop
199
-
200
- Use this quick internal check before every follow-up question.
201
-
202
- 1. What is the one thing still unknown?
203
- 2. Does that unknown affect the entity shape, the wording, the placement, or the
204
- operational detail?
205
- 3. What is the smallest question that would answer that unknown?
206
- 4. If the user already gave enough to act, stop asking and move to a short summary or
207
- the write.
208
-
209
- Useful calibration heuristics:
210
-
211
- - If the unknown changes whether this is a goal, project, task, note, or Psyche
212
- record, ask that first.
213
- - If the shape is already clear but the wording is soft, offer a candidate title or
214
- formulation rather than asking the user to invent one from scratch.
215
- - If the wording is clear but the placement is missing, ask only for the parent,
216
- timing, owner, or linked context that will make the record usable later.
217
- - If the user is emotionally invested but the entity is not Psyche, reflect the stake
218
- once and then return to the one missing structural detail.
219
- - If the next question would only decorate the record and not change its usefulness,
220
- skip it.
221
-
222
- ## Abstract And Reusable Record Moves
223
-
224
- Use this posture for tags, event types, emotion definitions, preference contexts,
225
- preference catalogs, preference items, questionnaire instruments, and similar
226
- reusable records.
227
-
228
- - Start from the future use, decision, or repeated moment the record should clarify,
229
- not from the label alone.
230
- - Ask what distinction this record should help the user notice, compare, sort, or
231
- retrieve later.
232
- - For collection records, ask what they are meant to help decide before you ask what
233
- belongs inside them.
234
- - For vocabulary records, ask what counts as inside versus outside the term before you
235
- settle the wording.
236
- - If the user already proposes a label, keep it provisional until the boundary and
237
- future use are clear.
238
- - Once the distinction is clear, offer a candidate label yourself and invite
239
- correction instead of making the user wordsmith alone.
240
-
241
- ## Opening move recipes
242
-
243
- Use these when you want the first turn to feel more guided and less form-like.
244
-
245
- Strategic record:
246
-
247
- - "This sounds like something you want to hold onto directionally, not just list.
248
- What would feel important to keep true here?"
249
-
250
- Bounded-work record:
251
-
252
- - "This sounds like it wants to become a real piece of work. What outcome would make
253
- it feel meaningfully real for now?"
254
-
255
- Reflective record:
256
-
257
- - "There is something here you do not want to lose. What feels most worth capturing
258
- before we decide where to store it?"
259
-
260
- Reusable record:
261
-
262
- - "Before we settle the label, what future decision, comparison, or retrieval moment
263
- should this help with?"
264
-
265
- Operational record:
266
-
267
- - "I can turn that into a concrete Forge action. What is the one timing, owner, or
268
- placement detail that still needs to be decided?"
269
-
270
- ## Name, Define, Connect
271
-
272
- Once the core record is visible, use this short checkpoint.
273
-
274
- Name:
275
-
276
- - offer a working title or label if the user has the meaning but not the wording yet
277
-
278
- Define:
279
-
280
- - ask what belongs inside this record and what would make it stop being this record
281
-
282
- Connect:
283
-
284
- - ask about links only after the record itself feels named and defined enough to stay
285
- stable
286
-
287
- ## Close cleanly
288
-
289
- - Once the record has a working shape, tell the user what is now clear and what one
290
- detail, if any, is still worth deciding.
291
- - If no detail is still decision-relevant, summarize the record in plain language and
292
- move to the save.
293
- - Prefer "what I have now is..." or "what seems clear now is..." over a cold final
294
- field check.
295
- - If the user gives a correction, revise the working formulation once and close again
296
- instead of reopening the whole intake.
297
-
298
- ## Question design rules
299
-
300
- - Let each question have one job:
301
- clarify the shape,
302
- clarify the purpose,
303
- clarify the placement,
304
- clarify the success condition,
305
- clarify the timing,
306
- or clarify the links.
307
- - Do not over-warm or over-therapize logistical records. For those flows, one brief
308
- confirming sentence plus one question is usually enough.
309
- - The first question should usually clarify lived meaning, use, stake, or timing, not
310
- ask the user to invent a title from scratch.
311
- - Ask the more meaning-bearing question before the more administrative one.
312
- - Prefer "what", "when", and "how" before "why" when the user's meaning is still
313
- forming. "Why" is often better after the experience or outcome is already clear.
314
- - If the user is uncertain, ask for a recent example before asking for an abstraction.
315
- - If the user is clear and decisive, confirm the working formulation and move directly
316
- to the one missing structural detail.
317
- - Avoid dead-form prompts such as "What should this be called?" when the user is still
318
- figuring out what the thing is.
319
- - For labels such as `tag`, `event_type`, and `emotion_definition`, do not open with a
320
- naming question unless the meaning is already clear and only the wording is missing.
321
- - For reusable records, help the user define the boundary before you settle the final
322
- label.
323
- - Before the final save question, it is often better to offer a candidate formulation
324
- than to ask for raw wording from scratch.
325
- - When useful, say what you think the record is becoming before asking the next
326
- question. That helps the user correct the shape early.
327
- - For reusable vocabulary or taxonomy records such as `tag`, `event_type`,
328
- `emotion_definition`, `preference_catalog`, and `preference_context`, ask what
329
- distinction the label should help the user notice, sort, or retrieve later before
330
- you ask about naming or aliases.
331
- - For emotionally meaningful vocabulary records such as `event_type`,
332
- `emotion_definition`, and many `self_observation` entries, start from the lived
333
- moment or felt meaning before you move to reuse or retrieval language.
334
- - For collection-like records such as `preference_catalog` and
335
- `questionnaire_instrument`, ask what they are for before you ask what should go
336
- inside them.
337
- - After the user answers, prefer "what is becoming clearer is..." over a cold jump to
338
- the next field.
339
- - For reusable or abstract records, it is often better to say "what this would help
340
- you decide later is..." before asking for the final wording.
341
-
342
- ## Ready-to-save check
343
-
344
- Before saving, make sure you can answer all of these in plain language:
345
-
346
- - What is this record actually for?
347
- - Why is this the right Forge entity type?
348
- - What would make the record recognizable later?
349
- - What one structural detail is still worth asking for, if any?
350
-
351
- If the answer to the last question is "none", save it instead of prolonging intake.
352
-
353
- Before the final write, it is usually worth asking one light confirmation such as:
354
-
355
- - "That sounds like the right shape to save. Do you want to keep it that way, or is
356
- there one thing you want adjusted first?"
357
-
358
- If an adjacent goal, project, task, note, value, pattern, or tag became visible, ask
359
- about linking only after the main record already feels named and steady.
360
-
361
- ## Update loop
362
-
363
- Use this when the user is updating an existing record rather than creating a new one.
364
-
365
- 1. Ask what feels newly true, newly urgent, or newly clear.
366
- 2. Ask what should stay true so the record keeps its core meaning.
367
- 3. Ask what prompted the update now if that changes the shape of the record.
368
- 4. Then ask only for the missing structural detail required by the change.
369
-
370
- If the current title or shape may no longer fit, offer one revised formulation yourself
371
- before asking the user to rewrite it from scratch.
372
-
373
- ## Goal
374
-
375
- Aim: clarify the direction and why it matters, not just produce a title.
376
-
377
- Arc:
378
-
379
- 1. Ask what direction or outcome the user wants to keep in view.
380
- 2. Reflect back the deeper stake in plain language before moving on.
381
- 3. Ask why it matters now.
382
- 4. Distinguish the goal from a project or task if needed.
383
- 5. Clarify horizon and status only after the meaning is clear.
384
-
385
- Helpful follow-up lanes:
386
-
387
- - why this direction matters now
388
- - what would count as movement without turning it into a task list
389
- - whether it is a quarter, year, or life direction
390
-
391
- Ready to save when:
392
-
393
- - the goal has a stable name
394
- - the direction is understandable in plain language
395
- - the horizon is clear enough if it matters
396
-
397
- Preferred opening question:
398
-
399
- - "What direction are you trying to keep hold of here?"
400
-
401
- ## Project
402
-
403
- Aim: turn an intention into a bounded workstream with a clear outcome.
404
-
405
- Arc:
406
-
407
- 1. Ask what this piece of work is trying to make true.
408
- 2. Reflect the emerging boundary so the user can hear what is in scope.
409
- 3. Ask what outcome would make it feel real or complete for now.
410
- 4. Ask which goal it belongs under.
411
- 5. Land on a working name once the scope is clear.
412
- 6. Clarify status, owner, and notes only after the scope is clear.
413
-
414
- Helpful follow-up lanes:
415
-
416
- - what concrete outcome would make this project complete enough
417
- - what belongs inside the boundary and what does not
418
- - which goal gives the project meaning
419
-
420
- Ready to save when:
421
-
422
- - the project has a clear name
423
- - the outcome is concrete enough to recognize later
424
- - its parent goal is known or intentionally absent
425
-
426
- Preferred opening question:
427
-
428
- - "If this became a real project, what would you be trying to make true in your life or work?"
429
-
430
- ## Strategy
431
-
432
- Aim: turn a vague plan into a deliberate sequence toward a real end state.
433
-
434
- Arc:
435
-
436
- 1. Ask what future state the strategy is trying to make real.
437
- 2. Reflect the destination in plain language so the user can correct it early.
438
- 3. Ask which goals or projects are the true targets.
439
- 4. Ask what the major steps or phases are.
440
- 5. Ask about order, dependencies, and anything that must not be skipped.
441
- 6. Clarify links or ownership once the sequence itself makes sense.
442
-
443
- Helpful follow-up lanes:
444
-
445
- - what the end state looks like when it is real
446
- - what the major phases are
447
- - which steps must happen before others
448
- - what is in scope versus out of scope
449
-
450
- Ready to save when:
451
-
452
- - the strategy has a stable name
453
- - the end state is concrete enough to test
454
- - the directed sequence is sketched clearly enough to build
455
-
456
- Preferred opening question:
457
-
458
- - "What future state are you actually trying to arrive at with this strategy?"
459
-
460
- ## Task
461
-
462
- Aim: identify the next concrete move, not just capture a vague obligation.
463
-
464
- Arc:
465
-
466
- 1. Ask what the next concrete action is.
467
- 2. Ask where it belongs: project, goal, both, or standalone.
468
- 3. Ask what would make it easier to do: due date, priority, owner, or one line of
469
- context.
470
-
471
- Helpful follow-up lanes:
472
-
473
- - turn vague intent into an actionable verb
474
- - identify parent project or goal
475
- - capture the one timing or priority detail that will actually help
476
-
477
- Ready to save when:
478
-
479
- - the task is phrased as an actionable move
480
- - placement is clear enough
481
- - any crucial timing or priority is captured
482
-
483
- Preferred opening question:
484
-
485
- - "What is the next concrete move here?"
486
-
487
- ## Habit
488
-
489
- Aim: define the recurring behavior and the cadence in a way that makes later check-ins
490
- unambiguous.
491
-
492
- Arc:
493
-
494
- 1. Ask what recurring move the user is trying to strengthen or loosen.
495
- 2. Ask whether doing it is aligned or a slip.
496
- 3. Ask what honest success or failure looks like in practice.
497
- 4. Ask about cadence and links only after the behavior is concrete.
498
-
499
- Helpful follow-up lanes:
500
-
501
- - what the recurring move looks like on an ordinary day
502
- - whether the habit is `positive` or `negative`
503
- - what counts as an honest check-in
504
- - what cadence is realistic and meaningful
505
-
506
- Ready to save when:
507
-
508
- - the recurring behavior is specific
509
- - polarity is clear
510
- - the cadence and success condition are clear enough to check in honestly
511
-
512
- Preferred opening question:
513
-
514
- - "What recurring move are you trying to strengthen or interrupt?"
515
-
516
- ## Tag
517
-
518
- Aim: create a label that helps future retrieval or grouping, not just another vague
519
- bucket.
520
-
521
- Arc:
522
-
523
- 1. Ask what the tag should help the user notice, group, or find later.
524
- 2. Ask what kinds of records should belong under it.
525
- 3. Offer a concise label if the meaning is clearer than the wording.
526
- 4. Ask about color, kind, or parent grouping only if that changes how it will be used.
527
-
528
- Helpful follow-up lanes:
529
-
530
- - what the tag is for later
531
- - what should count as inside versus outside the label
532
- - whether the user already has nearby tags that this should stay distinct from
533
-
534
- Ready to save when:
535
-
536
- - the tag has a stable label
537
- - the grouping meaning is clear enough to reuse later
538
- - any important distinction from nearby tags is clear
539
-
540
- Preferred opening question:
541
-
542
- - "What do you want this tag to help you notice or find again later?"
543
-
544
- ## Note
545
-
546
- Aim: preserve the useful context and link it to the right places without turning the
547
- note into a dumping ground.
548
-
549
- Arc:
550
-
551
- 1. Ask what the note needs to preserve.
552
- 2. Ask what entities it should stay attached to.
553
- 3. Ask whether it should be durable or temporary.
554
- 4. Ask about tags or author only if they will help retrieval or handoff.
555
-
556
- Helpful follow-up lanes:
557
-
558
- - what the note is for later
559
- - what should stay linked
560
- - whether it is durable or should expire
561
- - whether part of the detail belongs in a note while the cleaner structure belongs on
562
- another entity
563
-
564
- Ready to save when:
565
-
566
- - the note body captures the important point
567
- - the links are clear
568
- - durability is clear when relevant
569
-
570
- Preferred opening question:
571
-
572
- - "What about this feels worth preserving in a note?"
573
-
574
- ## Wiki Page
575
-
576
- Aim: create a durable reference page with a clear scope instead of dumping raw notes
577
- into the wiki.
578
-
579
- Arc:
580
-
581
- 1. Ask what topic this page should become the canonical place for.
582
- 2. Ask whether it is a durable wiki page or supporting evidence.
583
- 3. Ask what future lookup, decision, or collaboration this page should support.
584
- 4. Ask about linked entities, aliases, or tags only if they will make the page more
585
- navigable later.
586
-
587
- Helpful follow-up lanes:
588
-
589
- - what this page should be the home for
590
- - what should belong on the page versus remain linked evidence
591
- - who would open this page later and what they should quickly understand
592
-
593
- Ready to save when:
594
-
595
- - the page scope is clear
596
- - the page kind is clear enough
597
- - the title is stable enough to find later
598
-
599
- Preferred opening question:
600
-
601
- - "What should this page become the main reference for?"
602
-
603
- ## Insight
604
-
605
- Aim: capture one grounded observation or recommendation clearly enough that it stays
606
- useful later.
607
-
608
- Arc:
609
-
610
- 1. Ask what pattern, tension, or observation should be remembered.
611
- 2. Ask what entity or timeframe it belongs to, if any.
612
- 3. Ask what recommendation, caution, or invitation should remain explicit.
613
-
614
- Helpful follow-up lanes:
615
-
616
- - what the core observation is
617
- - who or what it belongs to
618
- - what the practical recommendation is
619
-
620
- Ready to save when:
621
-
622
- - the observation has a stable title or phrase
623
- - the summary is clear
624
- - the recommendation is explicit
625
-
626
- Preferred opening question:
627
-
628
- - "What is the clearest thing you want future-you or the agent to remember from this?"
629
-
630
- ## Calendar Event
631
-
632
- Aim: make the event legible as a real commitment in time, with the right timezone and
633
- links.
634
-
635
- Arc:
636
-
637
- 1. Ask what the event is.
638
- 2. Ask when it starts and ends in local time.
639
- 3. Ask where it belongs or what it supports.
640
- 4. Ask whether it should stay Forge-only only if that choice matters.
641
-
642
- Helpful follow-up lanes:
643
-
644
- - exact start and end time
645
- - local timezone if there is ambiguity
646
- - linked goal, project, task, or note
647
-
648
- Ready to save when:
649
-
650
- - the title is clear
651
- - the start and end are clear in the user's timezone
652
- - any important links or storage preference are known
653
-
654
- Preferred opening question:
655
-
656
- - "What is the event, and when should it happen in your local time?"
657
-
658
- ## Work Block Template
659
-
660
- Aim: define a reusable availability rule, not a one-off event.
661
-
662
- Arc:
663
-
664
- 1. Ask what kind of block it is and what it should be called.
665
- 2. Ask on which days and at what local times it should repeat.
666
- 3. Ask whether it allows or blocks work.
667
- 4. Ask whether it has a start or end date.
668
-
669
- Helpful follow-up lanes:
670
-
671
- - what the block is for
672
- - recurrence timing
673
- - blocking state
674
- - optional date bounds
675
-
676
- Ready to save when:
677
-
678
- - the block has a clear purpose
679
- - recurrence timing is clear
680
- - blocking state is clear
681
-
682
- Preferred opening question:
683
-
684
- - "What recurring block do you want to set up, and when should it repeat?"
685
-
686
- ## Task Timebox
687
-
688
- Aim: reserve real time for one task without confusing planned work with completed work.
689
-
690
- Arc:
691
-
692
- 1. Ask which task the slot belongs to.
693
- 2. Ask when the slot should start and end.
694
- 3. Ask whether this is a manual reservation, a suggestion, or live-run alignment only
695
- if relevant.
696
- 4. Ask about override reason only if calendar rules are being bypassed.
697
-
698
- Helpful follow-up lanes:
699
-
700
- - attached task
701
- - exact time window
702
- - scheduling context only if it changes the action
703
-
704
- Ready to save when:
705
-
706
- - the task is known
707
- - the time window is clear
708
- - any special scheduling context is explicit
709
-
710
- Preferred opening question:
711
-
712
- - "Which task are you trying to make time for, and when should the slot be?"
713
-
714
- ## Task Run
715
-
716
- Aim: start truthful live work with as little friction as possible while still knowing
717
- what is being worked on and by whom.
718
-
719
- Arc:
720
-
721
- 1. Confirm the task.
722
- 2. Confirm the actor only if it is not already obvious.
723
- 3. Ask whether the run should be planned or unlimited only if that changes the action.
724
- 4. Start the run instead of turning it into intake.
725
-
726
- Ready to start when:
727
-
728
- - the task is identified clearly enough
729
- - the actor is clear enough
730
- - any timer mode choice that matters is explicit
731
-
732
- Preferred opening question:
733
-
734
- - "Which task should I start?"
735
-
736
- ## Work Adjustment
737
-
738
- Aim: correct tracked minutes truthfully without pretending a live run happened.
739
-
740
- Arc:
741
-
742
- 1. Ask what existing task or project the minutes belong to.
743
- 2. Ask whether time should be added or removed.
744
- 3. Ask what real work or correction the adjustment is meant to capture.
745
- 4. Ask for a short audit note only if the reason would otherwise be unclear later.
746
-
747
- Helpful follow-up lanes:
748
-
749
- - what record the correction belongs to
750
- - whether the adjustment is positive or negative
751
- - what truthful reason should stay attached to the correction
752
-
753
- Ready to act when:
754
-
755
- - the target task or project is clear
756
- - the minute delta is clear
757
- - the note is clear enough when an audit trail matters
758
-
759
- Preferred opening question:
760
-
761
- - "Which task or project should this time correction belong to?"
762
-
763
- ## Self Observation
764
-
765
- Aim: capture one observation clearly enough that it can support later reflection
766
- without pretending it is already a full interpretation.
767
-
768
- Arc:
769
-
770
- 1. Ask what was observed.
771
- 2. Reflect the moment without pretending it is already a finished interpretation.
772
- 3. Ask what felt most important to name before it gets smoothed over or forgotten.
773
- 4. Ask when it happened or became noticeable.
774
- 5. Ask what it may connect to: pattern, belief, value, mode, task, project, or note.
775
- 6. Ask for tags or extra context only if that will help later review.
776
-
777
- If the user already gave the moment or timing, move straight to what they noticed most
778
- clearly instead of re-asking when.
779
-
780
- Ready to save when:
781
-
782
- - the observation itself is clear
783
- - the lived point of the observation is clear enough to revisit later
784
- - timing is clear enough
785
- - any useful links are captured
786
-
787
- Preferred opening question:
788
-
789
- - "What did you notice most clearly in that moment?"
790
-
791
- ## Sleep Session
792
-
793
- Aim: enrich one night's record with reflective context instead of treating it like a
794
- generic note.
795
-
796
- Arc:
797
-
798
- 1. Ask what about this night feels worth capturing.
799
- 2. Ask whether the main point is quality, pattern, context, meaning, or links.
800
- 3. Ask what goal, project, task, habit, or Psyche record it should stay connected to.
801
- 4. Ask about tags only if they will help later review.
802
-
803
- Ready to update when:
804
-
805
- - the reflective takeaway is clear
806
- - the relevant links or tags are clear when needed
807
-
808
- Preferred opening question:
809
-
810
- - "What about this night feels important enough to remember or connect?"
811
-
812
- ## Workout Session
813
-
814
- Aim: enrich one workout with subjective effort, mood, meaning, or linked context.
815
-
816
- Arc:
817
-
818
- 1. Ask what about the session the user wants to preserve.
819
- 2. Ask whether the key layer is effort, mood, meaning, social context, or links.
820
- 3. Ask what it connects to in Forge if links matter.
821
- 4. Ask about tags only if they help later retrieval.
822
-
823
- Ready to update when:
824
-
825
- - the reflective point is clear
826
- - the key mood, effort, meaning, or links are clear when needed
827
-
828
- Preferred opening question:
829
-
830
- - "What about this workout feels most worth remembering or connecting?"
831
-
832
- ## Calendar Connection
833
-
834
- Aim: connect the right provider deliberately without turning setup into a credential
835
- dump.
836
-
837
- Arc:
838
-
839
- 1. Ask which provider the user wants to connect and what they want Forge to do with
840
- it.
841
- 2. Ask whether the goal is read-only visibility, writable planning, or both.
842
- 3. Ask what workflow they are trying to unlock so the connection stays grounded in a
843
- real use case.
844
- 4. Ask only for the next provider-specific step that still matters, such as auth flow,
845
- label, or calendar selection.
846
- 5. Move into the actual connection flow once the setup goal is clear.
847
-
848
- Helpful follow-up lanes:
849
-
850
- - what calendar workflow the user wants to unlock
851
- - whether writable projection matters
852
- - whether the provider requires a local sign-in step instead of manual fields
853
-
854
- Ready to act when:
855
-
856
- - the provider is clear
857
- - the intended sync behavior is clear enough
858
- - the user-facing workflow that depends on the connection is clear enough
859
- - the next setup step is obvious
860
-
861
- Preferred opening question:
862
-
863
- - "Which calendar provider are you trying to connect, and what do you want Forge to do with it?"
864
-
865
- ## Preference Judgment
866
-
867
- Aim: capture one pairwise preference decision with the right context, not just log a
868
- left-versus-right click.
869
-
870
- Arc:
871
-
872
- 1. Ask what comparison the user is actually trying to settle.
873
- 2. Ask which context or domain this judgment belongs to.
874
- 3. Ask whether the result is left, right, tie, or skip.
875
- 4. Ask for reason tags or strength only if they will improve later interpretation.
876
-
877
- Helpful follow-up lanes:
878
-
879
- - what the comparison is really about
880
- - which preference context should own the signal
881
- - whether the choice feels decisive, weak, tied, or not ready
882
-
883
- Ready to act when:
884
-
885
- - the left and right items are clear
886
- - the outcome is clear
887
- - the relevant context or profile is clear enough
888
-
889
- Preferred opening question:
890
-
891
- - "What comparison are you actually trying to settle here?"
892
-
893
- ## Preference Signal
894
-
895
- Aim: store a direct preference signal such as favorite, veto, bookmark, or
896
- compare-later with the context that makes it interpretable later.
897
-
898
- Arc:
899
-
900
- 1. Ask what item the user wants to mark.
901
- 2. Ask what signal they want to give it.
902
- 3. Ask what domain or context this belongs to if that is still unclear.
903
- 4. Ask about strength only if the user is expressing a gradient rather than a simple mark.
904
-
905
- Helpful follow-up lanes:
906
-
907
- - what item is being marked
908
- - whether this is a favorite, veto, bookmark, neutral, or compare-later signal
909
- - what context makes the signal meaningful
910
-
911
- Ready to act when:
912
-
913
- - the item is clear
914
- - the signal type is clear
915
- - the context is clear enough if it changes interpretation
916
-
917
- Preferred opening question:
918
-
919
- - "What do you want Forge to remember about this item right now?"
920
-
921
- ## Movement
922
-
923
- Aim: clarify whether the user wants to understand time in place, review travel
924
- behavior, add or update a stay or trip, inspect one place, or link movement context to
925
- another Forge record before choosing the dedicated route family.
926
-
927
- Arc:
928
-
929
- 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.
930
- 2. Ask whether the focus is a stay, a trip, a place, a timeline window, or a selected span.
931
- 3. Ask for the time window, place, or movement item that makes the question concrete.
932
- 4. Ask what they are trying to notice, preserve, or answer through that movement context.
933
- 5. Route to the dedicated movement read or write path once the surface is clear.
934
-
935
- Direct action rules:
936
-
937
- - If the user is clearly talking about a missing-data gap that should become a stay or
938
- trip, use a user-defined movement box.
939
- - Preflight with `/api/v1/movement/user-boxes/preflight` when overlap or exact timing
940
- is unclear, then create the overlay with `/api/v1/movement/user-boxes`.
941
- - Use `kind: "stay"` when the user stayed in one place and `kind: "trip"` when they
942
- traveled.
943
- - Use raw `PATCH /api/v1/movement/stays/:id` or `/api/v1/movement/trips/:id` only for
944
- editing an already-recorded stay or trip, not for filling a missing span.
945
- - When the user has already given the real answer, for example "I stayed home during
946
- that missing block", do not ask a broad review question again. Confirm only the
947
- interval or place if that is still ambiguous, then act.
948
-
949
- Helpful follow-up lanes:
950
-
951
- - whether the user wants time-in-place, travel history, one specific stay or trip, a
952
- place summary, or a link
953
- - what time window, place, stay, trip, or selection is in scope
954
- - whether the question is behavioral, such as time at home, travel frequency, or place
955
- distribution, versus an edit
956
- - whether the edit is a missing-gap overlay versus a true recorded stay/trip patch
957
- - whether the user is trying to repair one recorded movement item versus fill a
958
- missing span
959
-
960
- Lane-to-route map:
961
-
962
- - review one day or month:
963
- `/api/v1/movement/day` or `/api/v1/movement/month`
964
- - review long-range behavior or dominant places:
965
- `/api/v1/movement/all-time`, `/api/v1/movement/places`, or `/api/v1/movement/selection`
966
- - inspect the full life timeline:
967
- `/api/v1/movement/timeline`
968
- - inspect one trip:
969
- `/api/v1/movement/trips/:id`
970
- - fill a missing span:
971
- `/api/v1/movement/user-boxes/preflight` then `/api/v1/movement/user-boxes`
972
- - repair or revise one saved overlay:
973
- `/api/v1/movement/user-boxes/:id`
974
- - repair one recorded automatic box:
975
- `/api/v1/movement/automatic-boxes/:id/invalidate`
976
- - edit an already-recorded stay, trip, or trip point:
977
- `/api/v1/movement/stays/:id`, `/api/v1/movement/trips/:id`, or `/api/v1/movement/trips/:id/points/:pointId`
978
-
979
- Ready to act when:
980
-
981
- - the movement surface is clear
982
- - the time range, place, stay, trip, or selection is clear enough
983
- - the user goal is clear enough to tell review, overlay, and repair apart
984
- - the user goal is clear enough to choose the route
985
-
986
- Preferred opening question:
987
-
988
- - "Are you trying to understand where you stayed and traveled, change one stay or trip, or answer a question about your movement behavior?"
989
-
990
- ## Life Force
991
-
992
- Aim: clarify whether the user wants to review current energy state, change durable
993
- profile assumptions, edit weekday curves, or log a real-time fatigue signal.
994
-
995
- Arc:
996
-
997
- 1. Ask whether the job is overview, profile change, weekday-template change, or fatigue signaling.
998
- 2. Ask what part of the current energy picture feels most important or inaccurate.
999
- 3. Ask what should stay true if they are changing profile or template assumptions.
1000
- 4. Route to the dedicated life-force path once the lane is clear.
1001
-
1002
- Helpful follow-up lanes:
1003
-
1004
- - whether the user wants explanation, editing, or signaling
1005
- - what part of the energy model feels off or useful
1006
- - what durable assumption versus real-time state is being changed
1007
- - whether the user is describing a stable weekly shape or just how today feels
1008
-
1009
- Lane-to-route map:
1010
-
1011
- - understand the current energy picture:
1012
- `GET /api/v1/life-force`
1013
- - change durable profile assumptions:
1014
- `PATCH /api/v1/life-force/profile`
1015
- - change one weekday curve or template:
1016
- `PUT /api/v1/life-force/templates/:weekday`
1017
- - log a real-time tired or recovered signal:
1018
- `POST /api/v1/life-force/fatigue-signals`
1019
-
1020
- Ready to act when:
1021
-
1022
- - the life-force lane is clear
1023
- - the relevant weekday, profile field, or signal is clear enough
1024
- - the user intent is clear enough to choose overview versus mutation
1025
-
1026
- Preferred opening question:
1027
-
1028
- - "Do you want to understand the current energy picture, change how Forge models it, or log how you feel right now?"
1029
-
1030
- ## Workbench
1031
-
1032
- Aim: clarify whether the user wants to inspect a flow, edit it, run it, or inspect
1033
- results so the agent uses the dedicated workbench contract instead of vague CRUD.
1034
-
1035
- Arc:
1036
-
1037
- 1. Ask whether the job is flow discovery, one flow edit, execution, run history, published output, node-level inspection, or latest-node-output lookup.
1038
- 2. Ask which flow, slug, run, or node the request is about.
1039
- 3. Ask whether they need the flow contract, a run result, a published output, or a node result.
1040
- 4. Ask what the user is trying to learn, repair, or publish through that flow.
1041
- 5. Route to the dedicated workbench route family once the execution lane is clear.
1042
-
1043
- Helpful follow-up lanes:
1044
-
1045
- - whether the user wants structure, execution, or results
1046
- - what exact flow or run is in scope
1047
- - whether they need whole-flow output or node-level detail
1048
- - whether they need a public input contract or a published output instead of a debug trace
1049
-
1050
- Lane-to-route map:
1051
-
1052
- - discover or inspect flows:
1053
- `/api/v1/workbench/flows`, `/api/v1/workbench/flows/:id`, or `/api/v1/workbench/flows/by-slug/:slug`
1054
- - create, update, or delete a flow:
1055
- `POST/PATCH/DELETE /api/v1/workbench/flows`
1056
- - run a known flow:
1057
- `/api/v1/workbench/flows/:id/run`
1058
- - run from a payload-first contract:
1059
- `/api/v1/workbench/run`
1060
- - inspect published output or run history:
1061
- `/api/v1/workbench/flows/:id/output` or `/api/v1/workbench/flows/:id/runs`
1062
- - inspect one run or node result:
1063
- `/api/v1/workbench/flows/:id/runs/:runId`,
1064
- `/api/v1/workbench/flows/:id/runs/:runId/nodes`,
1065
- `/api/v1/workbench/flows/:id/runs/:runId/nodes/:nodeId`
1066
- - inspect the latest successful node output:
1067
- `/api/v1/workbench/flows/:id/nodes/:nodeId/output`
1068
- - inspect available box inputs:
1069
- `/api/v1/workbench/catalog/boxes`
1070
-
1071
- Ready to act when:
1072
-
1073
- - the workbench lane is clear
1074
- - the flow, run, or node is clear enough
1075
- - the requested read or mutation is clear enough to choose the route
1076
-
1077
- Preferred opening question:
1078
-
1079
- - "Are you trying to inspect a flow, change it, run it, or inspect one run's outputs?"
1080
-
1081
- ## Preference Catalog
1082
-
1083
- Aim: define a useful comparison pool, not just a list with no decision purpose.
1084
-
1085
- Arc:
1086
-
1087
- 1. Ask what preference question this catalog is meant to support.
1088
- 2. Ask what domain or concept area it belongs to.
1089
- 3. Ask what kinds of items should be included or excluded.
1090
- 4. Offer a working catalog name once the purpose is clear.
1091
-
1092
- Helpful follow-up lanes:
1093
-
1094
- - what decision or taste question this catalog should help answer
1095
- - what belongs in scope
1096
- - what would make the catalog immediately useful instead of bloated
1097
-
1098
- Ready to save when:
1099
-
1100
- - the catalog has a stable purpose
1101
- - the domain is clear
1102
- - the boundary of what belongs inside is clear enough
1103
-
1104
- Preferred opening question:
1105
-
1106
- - "What decision or taste question should this catalog help with?"
1107
-
1108
- ## Preference Catalog Item
1109
-
1110
- Aim: add one candidate in a way that will make later comparisons feel clear and fair.
1111
-
1112
- Arc:
1113
-
1114
- 1. Ask what makes this item worth including in the catalog.
1115
- 2. Ask what catalog or domain it belongs to if that is still unclear.
1116
- 3. Ask for a short clarifying description only if the label would be ambiguous later.
1117
- 4. Ask about aliases or tags only if they help retrieval.
1118
-
1119
- Helpful follow-up lanes:
1120
-
1121
- - why this item belongs in the comparison pool
1122
- - what would distinguish it from nearby items
1123
- - whether the label alone will be clear later
1124
-
1125
- Ready to save when:
1126
-
1127
- - the item label is clear
1128
- - the parent catalog is clear
1129
- - there is enough context to recognize it later if the label is ambiguous
1130
-
1131
- Preferred opening question:
1132
-
1133
- - "What makes this option meaningfully worth comparing?"
1134
-
1135
- ## Preference Context
1136
-
1137
- Aim: define a real operating mode for preferences, not a decorative label.
1138
-
1139
- Arc:
1140
-
1141
- 1. Ask what situation or mode this context is meant to represent.
1142
- 2. Ask what decisions or comparisons should feel different inside that context.
1143
- 3. Ask what should count inside that context and what should stay outside it.
1144
- 4. Ask whether it should be active, default, or kept separate from other evidence.
1145
- 5. Offer a concise name if the mode is clearer than the wording.
1146
-
1147
- Helpful follow-up lanes:
1148
-
1149
- - what decisions this context should shape
1150
- - what belongs inside versus outside the mode
1151
- - whether it should be default or explicitly separate
1152
-
1153
- Ready to save when:
1154
-
1155
- - the context has a stable purpose
1156
- - its boundary is clear enough to use consistently
1157
- - any default or sharing choice that matters is clear
1158
-
1159
- Preferred opening question:
1160
-
1161
- - "In what situation should Forge treat your preferences differently here?"
1162
-
1163
- ## Preference Item
1164
-
1165
- Aim: save one concrete preference candidate or signal without losing the context that
1166
- makes it meaningful.
1167
-
1168
- Arc:
1169
-
1170
- 1. Ask what preference or taste question this item belongs to.
1171
- 2. Ask what domain or context it should live in.
1172
- 3. Ask whether the user is trying to save it as a comparison candidate or as a direct
1173
- signal such as favorite, veto, or compare-later.
1174
- 4. Ask what makes this item distinct enough to compare usefully only if it is still a
1175
- comparison candidate.
1176
- 5. If the user is really trying to send a direct signal, ask only for the missing
1177
- detail and then act.
1178
-
1179
- Helpful follow-up lanes:
1180
-
1181
- - what domain this belongs to
1182
- - what context makes the preference meaningful
1183
- - whether this is a signal or a comparison candidate
1184
- - what distinguishes the item from nearby options
1185
-
1186
- Ready to act when:
1187
-
1188
- - the item is clear
1189
- - the domain or profile context is clear enough
1190
- - any needed distinguishing detail is captured
1191
-
1192
- Preferred opening question:
1193
-
1194
- - "What preference are you trying to make clearer by saving this item?"
1195
-
1196
- ## Questionnaire Instrument
1197
-
1198
- Aim: clarify whether the user is authoring a reusable questionnaire and what the
1199
- instrument is for.
1200
-
1201
- Arc:
1202
-
1203
- 1. Ask what the questionnaire is meant to measure or surface.
1204
- 2. Ask who it is for and when it should be used.
1205
- 3. Ask what kind of honest moment or decision it should help someone answer before
1206
- getting into item wording.
1207
- 4. Reflect the practical use case back in plain language.
1208
- 5. Move to draft creation once the purpose is clear.
1209
-
1210
- Helpful follow-up lanes:
1211
-
1212
- - what honest moment, decision, or review this instrument should support
1213
- - who will answer it and under what circumstances
1214
- - what would make the instrument distinct instead of redundant
1215
-
1216
- Ready to act when:
1217
-
1218
- - the purpose is clear
1219
- - the audience or use context is clear
1220
- - the instrument is distinct enough to draft
1221
-
1222
- Preferred opening question:
1223
-
1224
- - "What would this questionnaire help someone notice or track?"
1225
-
1226
- ## Questionnaire Run
1227
-
1228
- Aim: clarify whether the user wants to start, continue, or complete one answer session.
1229
-
1230
- Arc:
1231
-
1232
- 1. Ask what the user wants from the run right now: start, continue, review, or finish.
1233
- 2. Ask which questionnaire or existing run this is about.
1234
- 3. Ask what feels most stuck, unfinished, or important if the run is already in progress.
1235
- 4. If answering is still in progress, ask only for the next answer or note that matters.
1236
-
1237
- Helpful follow-up lanes:
1238
-
1239
- - whether the job is to begin, resume, review, or complete
1240
- - what questionnaire or run is in scope
1241
- - what next answer, uncertainty, or note is actually blocking progress
1242
-
1243
- Ready to act when:
1244
-
1245
- - the questionnaire is identified
1246
- - the user intent for the run is clear
1247
-
1248
- Preferred opening question:
1249
-
1250
- - "Do you want to start, continue, review, or finish a questionnaire run?"
1251
-
1252
- ## Event Type
1253
-
1254
- Aim: create a reusable incident category that will actually help future reports stay
1255
- consistent.
1256
-
1257
- Arc:
1258
-
1259
- 1. Ask what kind of moment or incident this label should capture in lived terms.
1260
- 2. Reflect the repeated moment back in plain language before narrowing the wording.
1261
- 3. Ask how narrow or broad it should be.
1262
- 4. Ask what would count as inside versus outside the category if that boundary is
1263
- still fuzzy.
1264
- 5. Offer a concise label if the lived meaning is clearer than the wording.
1265
- 6. Ask for a short description only if the label could be ambiguous later.
1266
-
1267
- If the user already offered a candidate label, keep the wording provisional and ask
1268
- what kinds of moments belong inside it before you ask whether the label is right.
1269
-
1270
- Ready to save when:
1271
-
1272
- - the label is stable
1273
- - the intended category is clear enough that future reports will use it consistently
1274
-
1275
- Preferred opening question:
1276
-
1277
- - "What kind of moment keeps happening that you want future reports to name the same way each time?"
1278
-
1279
- ## Emotion Definition
1280
-
1281
- Aim: define one reusable emotion entry clearly enough that future reports stay precise.
1282
-
1283
- Arc:
1284
-
1285
- 1. Ask what this feeling is like in lived terms when the user says it.
1286
- 2. Reflect the felt signature back in plain language before you settle the label.
1287
- 3. Ask what distinguishes it from nearby emotions if that matters.
1288
- 4. Offer a concise label if the felt meaning is clearer than the wording.
1289
- 5. Ask for a short description only if later reports would benefit from it.
1290
-
1291
- Helpful follow-up lanes:
1292
-
1293
- - what tells the user this is that feeling and not a nearby one
1294
- - what kind of moments this emotion name should be used for later
1295
-
1296
- Ready to save when:
1297
-
1298
- - the label is clear
1299
- - the meaning is clear enough to reuse later
1300
-
1301
- Preferred opening question:
1302
-
1303
- - "When this feeling is present, what tells you it is this feeling and not a nearby one?"