forge-openclaw-plugin 0.2.93 → 0.2.96

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: forge-openclaw-plugin
3
- description: use when the user wants to save, search, update, review, start, stop, reward, explain, compare, or run Forge records, or when the conversation is clearly about a Forge entity or domain surface such as a goal, project, strategy, task, habit, note, wiki_page, calendar_event, calendar_connection, work_block_template, task_timebox, task_run, work_adjustment, insight, preference item, preference context, preference catalog, preference judgment, preference signal, questionnaire instrument, questionnaire run, self observation, movement, life_force, workbench, psyche_value, behavior_pattern, behavior, belief_entry, mode_profile, mode_guide_session, flashcard, trigger_report, event_type, emotion_definition, sleep_session, or workout_session. identify the exact Forge object or specialized surface, keep the main conversation natural, guide psyche intake with active listening before storing it, and for psyche issues that need understanding first usually begin with one exploratory question before any formulation or save suggestion.
3
+ description: use when the user wants to save, search, update, review, start, stop, reward, explain, compare, or run Forge records, or when the conversation is clearly about a Forge entity or domain surface such as a goal, project, strategy, task, habit, note, wiki_page, calendar_event, calendar_connection, work_block_template, task_timebox, task_run, work_adjustment, insight, preference item, preference context, preference catalog, preference judgment, preference signal, questionnaire instrument, questionnaire run, self observation, movement, life_force, workbench, psyche_value, behavior_pattern, behavior, belief_entry, mode_profile, mode_guide_session, flashcard, trigger_report, event_type, emotion_definition, sleep_session, workout_session, or training_load. identify the exact Forge object or specialized surface, keep the main conversation natural, guide psyche intake with active listening before storing it, and for psyche issues that need understanding first usually begin with one exploratory question before any formulation or save suggestion.
4
4
  ---
5
5
 
6
6
  Forge is the user's structured system for planning work, doing work, reflecting on patterns, and keeping a truthful record of what is happening. Use it when the user is clearly working inside that system, or when they are describing something that naturally belongs there and would benefit from being stored, updated, reviewed, or acted on in Forge. Keep the conversation natural first. Do not turn every message into intake. When a real Forge entity is clearly present, name the exact entity type plainly, help with the substance of the conversation, and then offer Forge once, lightly, if storing it would genuinely help.
@@ -59,7 +59,7 @@ PM surface rule:
59
59
  human/bot ownership filters.
60
60
  - Guided modal flows handle create, edit, move, link, and closeout actions.
61
61
 
62
- Forge has four major stored-entity surfaces and three specialized domain surfaces. The planning side covers goals, projects, strategies, tasks, habits, notes, calendar events, recurring work blocks, task timeboxes, live work sessions, and agent-authored insights. The Health side covers sleep sessions, sports and workout sessions, companion pairing, and habit-generated workout records that should still stay linked to the broader Forge graph. The Preferences side covers contextual taste modeling, pairwise comparisons, direct signals, editable concept libraries, and preference items that can come from Forge entities or seeded concept domains such as food, activities, places, countries, fashion, people, media, and tools. The Psyche side covers values, patterns, behaviors, beliefs, modes, guided mode sessions, flashcards, trigger reports, event types, and reusable emotion definitions. The specialized domain surfaces are Movement, Life Force, and Workbench; agents must use their dedicated route families instead of forcing them through batch CRUD. Forge also has a SQLite-backed Wiki memory layer with explicit spaces, Markdown content in database rows, backlinks, optional embeddings, and structured links back to Forge entities. Forge is also multi-user: every entity can belong to a typed `human` or `bot` user through `userId`, and read routes can scope to one or many users with `userId` or repeated `userIds`. The current access posture is configurable through a directional user graph, but the live default is still permissive: Forge can list users directly, every relationship edge starts open, and a user can read or affect another user's linked records when the route explicitly asks for them. Use `forge_get_user_directory` when owner identity or cross-user access matters. Strategies can also be locked into a contract with `isLocked`; once locked, do not mutate the graph or target structure unless the user explicitly wants the strategy unlocked first. The model should use the real entity names, not vague substitutes. Say `project`, not “initiative”. Say `behavior_pattern`, not “theme”. Say `trigger_report`, not “incident note”.
62
+ Forge has four major stored-entity surfaces and three specialized domain surfaces. The planning side covers goals, projects, strategies, tasks, habits, notes, calendar events, recurring work blocks, task timeboxes, live work sessions, and agent-authored insights. The Health side covers sleep sessions, sports and workout sessions, the read-only training-load surface for cardiovascular load and HR zone review, companion pairing, and habit-generated workout records that should still stay linked to the broader Forge graph. The Preferences side covers contextual taste modeling, pairwise comparisons, direct signals, editable concept libraries, and preference items that can come from Forge entities or seeded concept domains such as food, activities, places, countries, fashion, people, media, and tools. The Psyche side covers values, patterns, behaviors, beliefs, modes, guided mode sessions, flashcards, trigger reports, event types, and reusable emotion definitions. The specialized domain surfaces are Movement, Life Force, and Workbench; agents must use their dedicated route families instead of forcing them through batch CRUD. Forge also has a SQLite-backed Wiki memory layer with explicit spaces, Markdown content in database rows, backlinks, optional embeddings, and structured links back to Forge entities. Forge is also multi-user: every entity can belong to a typed `human` or `bot` user through `userId`, and read routes can scope to one or many users with `userId` or repeated `userIds`. The current access posture is configurable through a directional user graph, but the live default is still permissive: Forge can list users directly, every relationship edge starts open, and a user can read or affect another user's linked records when the route explicitly asks for them. Use `forge_get_user_directory` when owner identity or cross-user access matters. Strategies can also be locked into a contract with `isLocked`; once locked, do not mutate the graph or target structure unless the user explicitly wants the strategy unlocked first. The model should use the real entity names, not vague substitutes. Say `project`, not “initiative”. Say `behavior_pattern`, not “theme”. Say `trigger_report`, not “incident note”.
63
63
  Habits are a first-class recurring entity in the planning side.
64
64
  NEGATIVE HABIT CHECK-IN RULE: for a `negative` habit, the correct aligned/resisted outcome is `missed`. `missed` means the bad habit was resisted, the user stayed aligned, and the habit should award its XP bonus.
65
65
 
@@ -199,14 +199,16 @@ Wiki navigation and search rule:
199
199
  Health rule:
200
200
 
201
201
  - Sleep and sports records are first-class health surfaces, not generic notes or tasks.
202
- - Use `forge_get_sleep_overview` and `forge_get_sports_overview` for review and trend reading.
202
+ - Use `forge_get_sleep_overview`, `forge_get_sports_overview`, and
203
+ `forge_get_training_load_overview` for health review and trend reading.
203
204
  - In `forge_get_agent_onboarding.entityRouteModel.readModelOnlySurfaces`, operator,
204
- calendar, self-observation, sleep, and sports read models are published with
205
+ calendar, self-observation, sleep, sports, and training-load read models are published with
205
206
  both camelCase names and entity-style aliases where useful, including
206
207
  `operatorOverview`, `operatorContext`, `calendarOverview`, `sleepOverview`,
207
- `sportsOverview`, `operator_overview`, `operator_context`,
208
- `calendar_overview`, `self_observation`, `sleep_overview`, and
209
- `sports_overview`. Treat those as read-only surfaces, not batch CRUD entities.
208
+ `sportsOverview`, `trainingLoad`, `operator_overview`, `operator_context`,
209
+ `calendar_overview`, `self_observation`, `sleep_overview`,
210
+ `sports_overview`, and `training_load`. Treat those as read-only surfaces,
211
+ not batch CRUD entities.
210
212
  - Use `forge_get_operator_overview` for a broad Forge status read, `forge_get_operator_context`
211
213
  for current work and risk, and `forge_get_calendar_overview` before calendar-aware
212
214
  planning or scheduling mutations.
@@ -237,6 +239,7 @@ Entity conversation rule:
237
239
  - When updating an entity, start with what is changing, what should stay true, and what prompted the update now.
238
240
  - When enough is clear, briefly summarize what you heard in the user's own language before asking for the last missing structural detail.
239
241
  - Treat `userId` and human/bot assignees as accountability and scope, not as opening form fields. Ask whose human or bot record it is only when ownership changes visibility, review scope, collaboration, automation behavior, or later filtering; for read requests, ask user scope only when the answer would differ across owners.
242
+ - Treat questionnaire runs, self-observations, reflective notes, wiki pages, sleep/workout enrichment, and preference signals as reflection-sensitive records: ask what the record should help the user understand, decide, notice, remember, or change later, then choose the right route. Do not flatten them into forms, but also do not automatically turn them into full Psyche intake unless a belief, mode, trigger report, or behavior pattern clearly emerges.
240
243
  - The quick intake prompts later in this file are fallback checkpoints, not a script to read aloud.
241
244
 
242
245
  Forge data location rule:
@@ -524,7 +527,7 @@ Use the wiki tools for SQLite-backed memory work:
524
527
  `forge_get_wiki_settings`, `forge_list_wiki_pages`, `forge_get_wiki_page`, `forge_search_wiki`, `forge_upsert_wiki_page`, `forge_get_wiki_health`, `forge_sync_wiki_vault`, `forge_reindex_wiki_embeddings`, `forge_ingest_wiki_source`
525
528
 
526
529
  Use the health tools for review and reflective enrichment, not as the default CRUD architecture:
527
- `forge_get_sleep_overview`, `forge_get_sports_overview`, `forge_update_sleep_session`, `forge_update_workout_session`
530
+ `forge_get_sleep_overview`, `forge_get_sports_overview`, `forge_get_training_load_overview`, `forge_update_sleep_session`, `forge_update_workout_session`
528
531
 
529
532
  Use the dedicated domain routes for specialized surfaces that are not simple batch entities:
530
533
 
@@ -679,9 +682,10 @@ Use the health tools when the request is about sleep or sports review:
679
682
 
680
683
  - `forge_get_sleep_overview` to inspect recent nights, averages, regularity, stage breakdown, and linked reflective context
681
684
  - `forge_get_sports_overview` to inspect training volume, workout types, effort trends, habit-generated sessions, and linked context
685
+ - `forge_get_training_load_overview` to inspect cardiovascular load, HR zone balance, acute/chronic stress, high-intensity pressure, VO2max context, and training target fit
682
686
  - `forge_update_sleep_session` to add sleep-quality notes, tags, or links back to Forge entities after review
683
687
  - `forge_update_workout_session` to add subjective effort, mood, meaning, tags, or links on one workout after review
684
- - remember that the UI route is `/sports` while the backend overview route is `/api/v1/health/fitness`
688
+ - remember that the UI route is `/sports` while the backend overview route is `/api/v1/health/fitness`; the dedicated training-load UI is `/training-load` and its backend route is `/api/v1/health/training-load`
685
689
 
686
690
  Use these exact health batch payload shapes when the user is creating or editing the stored records themselves:
687
691
 
@@ -776,6 +780,7 @@ When the user asks which Forge tools are available, list exactly these tools:
776
780
  `forge_get_current_work`
777
781
  `forge_get_sleep_overview`
778
782
  `forge_get_sports_overview`
783
+ `forge_get_training_load_overview`
779
784
  `forge_update_sleep_session`
780
785
  `forge_update_workout_session`
781
786
  `forge_get_preferences_workspace`
@@ -158,6 +158,42 @@ to the stronger container:
158
158
  - Use a linked `note` when nuance should be preserved without pretending it is the
159
159
  whole structured model.
160
160
 
161
+ ## Reflection-sensitive non-Psyche records
162
+
163
+ Use this when the user is creating or updating a reflective record that is meaningful
164
+ but not necessarily a full Psyche formulation: `questionnaire_instrument`,
165
+ `questionnaire_run`, `self_observation`, reflective `note`, `wiki_page`,
166
+ `sleep_session`, `workout_session`, and some `preference_judgment` or
167
+ `preference_signal` moments.
168
+
169
+ - Start by asking what the reflection should help the user understand, decide,
170
+ notice, remember, or change later.
171
+ - Reflect the lived or practical stake once before asking for fields, but do not
172
+ over-therapize if the user is only trying to store a clear answer, note, or
173
+ health-context update.
174
+ - For questionnaire instruments, ask what kind of honest moment, review, or decision
175
+ the instrument should reveal before asking for item wording, scales, scoring, or
176
+ provenance.
177
+ - For questionnaire runs, ask whether the user is trying to start, continue, review,
178
+ or complete the run, then focus on the next answer, uncertainty, or insight that
179
+ changes the run. Do not turn answer collection into generic Psyche intake unless a
180
+ belief, mode, trigger report, or behavior pattern clearly emerges.
181
+ - For self-observation, keep the chain concrete: situation, cue, emotion/body,
182
+ thought/meaning, behavior/urge, and consequence. If that chain reveals a recurring
183
+ loop, belief, mode, schema theme, or one charged trigger episode, route to the
184
+ stronger Psyche container.
185
+ - For sleep and workout enrichment, ask what the user wants future review to remember:
186
+ recovery context, subjective effort, mood, meaning, social context, or links.
187
+ Preserve raw health facts through the health model and store reflection as notes,
188
+ tags, links, or batch updates.
189
+ - For notes and wiki pages, distinguish temporary operating context from durable
190
+ memory. A note can preserve nuance around another record; a wiki page should carry
191
+ reusable knowledge, source synthesis, person/context memory, or a personal manual.
192
+ - Route posture still matters: `questionnaire_instrument`, `note`, `sleep_session`,
193
+ and `workout_session` use shared batch routes for normal CRUD; `questionnaire_run`
194
+ uses questionnaire run actions; `self_observation` is note-backed; `wiki_page` uses
195
+ the wiki routes.
196
+
161
197
  ## Conversation arc
162
198
 
163
199
  Most good Forge intake flows follow this sequence:
@@ -257,10 +293,10 @@ Use this quick split before the conversation gets too detailed.
257
293
  the user is trying to do, then use the dedicated action tool or note-backed write
258
294
  model.
259
295
  - `operator_overview`, `operator_context`, `calendar_overview`, `sleep_overview`,
260
- and `sports_overview` are read-model-only surfaces. Use them when the user wants
261
- to understand current Forge state, work risk, calendar commitments, nights,
262
- workouts, training load, recovery context, or health patterns before deciding
263
- whether a stored entity needs creation or enrichment.
296
+ `sports_overview`, and `training_load` are read-model-only surfaces. Use them
297
+ when the user wants to understand current Forge state, work risk, calendar
298
+ commitments, nights, workouts, cardiovascular load, recovery context, or health
299
+ patterns before deciding whether a stored entity needs creation or enrichment.
264
300
  - Movement, Life Force, and Workbench are specialized domain areas. Use their
265
301
  dedicated route families for timelines and overlays, energy profile/templates and
266
302
  fatigue signals, and Workbench flow execution or result artifacts. When available,
@@ -332,9 +368,17 @@ still knowing the exact write/read family before it acts.
332
368
  score, stages, or recovery patterns before deciding whether a specific
333
369
  `sleep_session` needs reflective enrichment.
334
370
  - `sports_overview`: read-model-only health surface. Use the sports overview route or
335
- `forge_get_sports_overview` when the user wants to review workouts, training load,
336
- effort, type distribution, or recovery context before deciding whether a specific
337
- `workout_session` needs reflective enrichment.
371
+ `forge_get_sports_overview` when the user wants to review workouts, effort, type
372
+ distribution, or recovery context before deciding whether a specific
373
+ `workout_session` needs reflective enrichment. Use
374
+ `forge_get_training_load_overview` or `/api/v1/health/training-load` for
375
+ cardiovascular load, HR zone balance, acute/chronic stress, VO2max context, or
376
+ training target questions.
377
+ - `training_load`: read-model-only health surface. Use
378
+ `forge_get_training_load_overview` or `/api/v1/health/training-load` when the
379
+ user wants training-load trends, acute/chronic ratio, HR zone distribution,
380
+ threshold exposure, VO2max/resting-HR context, or optimization targets before
381
+ deciding whether a specific `workout_session` needs notes or links.
338
382
  - `movement`: specialized domain surface. Use the dedicated movement routes for day,
339
383
  month, all-time, timeline, places, trip detail, selection aggregates, manual
340
384
  overlays, and repair actions.
@@ -1360,14 +1404,15 @@ Preferred opening question:
1360
1404
 
1361
1405
  ## Sports Overview
1362
1406
 
1363
- Aim: review workout and training-load context before deciding whether one workout
1364
- needs a reflective update or recovery follow-up.
1407
+ Aim: review workout context before deciding whether one workout needs a
1408
+ reflective update, and route deeper cardiovascular load questions to the
1409
+ training-load read model.
1365
1410
 
1366
1411
  Arc:
1367
1412
 
1368
1413
  1. Ask what the user wants to understand from the sports picture: one workout, a
1369
- recent training trend, effort, volume, type mix, recovery, or links to mood and
1370
- goals.
1414
+ recent training trend, effort, volume, type mix, recovery, zone balance, or
1415
+ links to mood and goals.
1371
1416
  2. Read the sports overview before asking the user to reconstruct metrics from memory.
1372
1417
  3. Reflect the practical decision the review should support.
1373
1418
  4. Move to `workout_session` enrichment only when one specific workout needs context,
@@ -1382,8 +1427,12 @@ Helpful follow-up lanes:
1382
1427
  Route note:
1383
1428
 
1384
1429
  - `sports_overview` is a read-model-only surface. Use `forge_get_sports_overview` or
1385
- `/api/v1/health/fitness` for review. Do not create, update, or delete
1430
+ `/api/v1/health/fitness` for session review. Do not create, update, or delete
1386
1431
  `sports_overview` through batch CRUD.
1432
+ - For cardiovascular load, HR zone distribution, acute/chronic load, VO2max
1433
+ context, or training target questions, use `forge_get_training_load_overview`
1434
+ or `/api/v1/health/training-load`. Treat `training_load` as read-model-only,
1435
+ not a batch CRUD entity.
1387
1436
  - If the review reveals that one workout needs reflective context, switch to the
1388
1437
  stored `workout_session` batch route or reflective update helper for that known
1389
1438
  session.
@@ -1397,6 +1446,50 @@ Preferred opening question:
1397
1446
 
1398
1447
  - "What are you trying to understand from your workout picture right now?"
1399
1448
 
1449
+ ## Training Load
1450
+
1451
+ Aim: review cardiovascular load and training targets before deciding whether one
1452
+ workout needs reflective enrichment or a recovery/target adjustment.
1453
+
1454
+ Arc:
1455
+
1456
+ 1. Ask what practical decision the user wants to support: build aerobic base,
1457
+ control overload risk, preserve hard-day quality, understand combat-sport
1458
+ intensity, or compare recent load against chronic base.
1459
+ 2. Read the training-load overview before asking the user to reconstruct zones,
1460
+ VO2max, or recent hard sessions from memory.
1461
+ 3. Reflect the load signal with explicit confidence: HR coverage, sensor limits,
1462
+ recent sample count, and whether kickboxing/wrist HR may be noisy.
1463
+ 4. Move to `workout_session` enrichment only when one specific workout needs
1464
+ notes, tags, context, or links.
1465
+
1466
+ Helpful follow-up lanes:
1467
+
1468
+ - whether the question is adaptation, overload risk, zone target, VO2max trend,
1469
+ sport contribution, or one recent session
1470
+ - which date range matters if the default 7-day and 28-day windows are not enough
1471
+ - whether the user is optimizing health, performance, recovery, or a specific
1472
+ upcoming training block
1473
+
1474
+ Route note:
1475
+
1476
+ - `training_load` is a read-model-only surface. Use
1477
+ `forge_get_training_load_overview` or `/api/v1/health/training-load` for
1478
+ cardiovascular load, HR zone distribution, acute/chronic load, VO2max context,
1479
+ and training target analysis. Do not create, update, or delete `training_load`
1480
+ through batch CRUD.
1481
+ - If one workout needs subjective effort, meaning, social context, or links,
1482
+ switch to the stored `workout_session` batch route or reflective update helper.
1483
+
1484
+ Ready to review when:
1485
+
1486
+ - the user's practical adaptation or recovery question is clear
1487
+ - the relevant time window or default 7-day/28-day comparison is acceptable
1488
+
1489
+ Preferred opening question:
1490
+
1491
+ - "What training-load decision are you trying to support right now?"
1492
+
1400
1493
  ## Calendar Overview
1401
1494
 
1402
1495
  Aim: review commitments, work blocks, provider state, and existing timeboxes before