Activity Catalog
Grounded activity families already implied by the current Valenar docs and the committed Generated set.
This page uses activity as the live behavior noun throughout. Higher-level plans are composed approaches above activities; they are not SECS keywords and they do not replace the activity or policy vocabulary. "Routine Activity" and "Composite Activity" are planning-layer readback labels only — see ../systems/gd-objectives-clues-missions.md.
Most early play uses short atomic activities. Later repeated patterns can surface as reusable plans, but this page does not define a second runtime layer or a large named planning catalog.
Catalog as Activity Detail Opener
The Activity Catalog is one of the canonical openers for the shared Activity Detail inspector defined in ../ux/gd-shell-screen-model.md § Activity Detail. In the Activities panel, selecting a catalog row opens Activity Detail with:
- source surface:
'catalog' - the activity def id of the selected row
Activity Detail surfaces description, duration, costs and rewards, the
effect-plan preview when available, and a Queue button. The Activities panel
exposes three catalog filter modes: here limits the catalog to activities
available at the current location; reachable extends to neighbours; all
shows the full catalog. Opening Activity Detail from all does not imply the
activity is currently available — the Queue button is disabled when the
server availability snapshot indicates the activity cannot start, and the
client surfaces the blocked-reason chip when one is known (client-derived
today; server-confirmed blocked reason is Wave B-owned, pending sync).
This page does not lock backend DTO field names — those are Wave B-owned, pending sync.
Committed Activity Families
The activity names below are committed entries in
examples/valenar/Generated/Hashes.cs with matching .secs source files
under examples/valenar/Content/activities/. Wire-id strings for activities
being renamed in Wave B (notably ScoutApproach) are labeled Wave B-owned,
pending sync.
Early Survival And Exploration
ForageForest— gather wild food from the forest floor (food yield)ForageFoodPatch— forage from a scouted foraging ground (food yield)SurveyFoodSigns— read signs of game and forage in the areaForage— generic early-game gather activityHuntGame— pursue a single game animalHuntForestTracks— follow animal tracks for a hunt leadGatherBranches— collect fuel from forest-floor debrisChopWood— cut and split timberRestAtCamp— rest and recover stamina at an active campMakeCamp— establish a temporary camp at the current locationRepairEquipment— field-repair damaged gear
Exploration And Survey
ScoutApproach— scout the approach lines for a territory (wire id Wave B-owned, pending sync after the rename from the legacy lead identifier)ScoutArea— broad survey of the surrounding area for threats and featuresSurveyLand— deeper survey of a Territory's terrain and resourcesSurveyForest— survey a forest stand for timber, game, and shelterInvestigateRuin— enter and examine a ruin's surface structureClearRubble— clear debris from a ruin interior for deeper accessStudyMarkings— study inscriptions and markings found in a ruin
Water Lead Chain
ListenForWater— listen for water-sound signs (first step in the water lead chain)FollowWaterSound— follow a water sound to its sourceSurveyWaterSource— survey a found water source for reliability
The water lead chain is the canonical recursive Activity Detail illustration:
opening Activity Detail for a running ListenForWater exposes a child-run
drill-in to FollowWaterSound, and from there to SurveyWaterSource, using
the parent-run / child-run reference fields the activity run snapshot exposes
(Wave B-owned, pending sync). See
../ux/gd-shell-screen-model.md § Activity Detail
for the recursive drill-stack semantics.
Threat And Corruption Observation
TraceHum— trace a mysterious hum across the areaInspectBlackAsh— examine black-ash deposits for corruption signsWatchAshPatch— watch an ash patch for active corruption presence
Mineral Work
InspectOutcrop— examine a mineral outcrop surfaceSurveyDeposit— survey a confirmed mineral deposit for quality and depth
Training
TrainSwordsmanship— practice swordsmanship techniqueArcheryDrills— practice archery disciplineEnduranceDrill— build physical endurance through conditioningWeaponsmithPractice— practice weapons crafting at a forge or camp anvil
Settlement
RecruitGarrison— recruit and train garrison soldiers at the settlement
Force And Operation Activities
These activities become available at Act 4 (Banner Network) and later, when Forces become the canonical mobile container for inter-Territory defense and Operations. Each activity is a sub-activity of the Force-level Operation that contains it; see ../systems/gd-operations.md for the canonical seven-phase decomposition.
MarchToTerritory— Force moves from current Territory to a target Territory along the safest or fastest committed RoutePatrolTerritory— Force cycles patrol over a Territory; generates threat intelligence and suppresses hostile pressureSecureRoute— Force clears and holds a Route corridor between two Territories (or between a Territory and a Site)AssaultSite— Force assaults a hostile-occupied SiteBesiegeSite— Force initiates sustained siege of a defended SiteGarrisonSite— Assign a garrison detachment to a Site after the Site has been securedEscortCaravan— Force escorts a supply or trade caravan along a designated RouteContainThreat— Force establishes a containment perimeter around an active Threat sourceCleanseSite— Force coordinates cleansing of a demonic Site; ward-team escort requiredInterceptForce— Force pursues and engages a hostile Force in motionRelief— Force marches to lift a siege or reinforce a besieged garrisonWithdraw— Force executes ordered retreat to a designated fallback Territory or SitePushFront— Coordinated offensive advance across a Front objective at Crown scaleReclaimArea— Force-led multi-Territory reclamation sweepSealGateScar— Force-escorted ward-work sealing of a demonic gate scar
Generic-Mechanic Content Families
Generic mechanic activities are parameterised by typed args that carry a
content row's TemplateId. Adding a new spell, recipe, or item does not require
a new activity hash; the existing generic activity dispatches based on the
typed argument. See .claude/rules/behavior-vocabulary.md for the canonical
generic-mechanic allowlist.
Activity_CastSpell— cast a spell from aSpellDefinitiontemplateActivity_BuildStructure— build a structure from aStructureDefinitiontemplateActivity_UseItem— use an item from anItemDefinitiontemplate
Composed Plan Example
This page does not define a formal planning catalog. It can still describe a
composed planning example such as an overnight camp routine, where the player
thinks in one bundle but the queue executes atomic activities like
MakeCamp, setting a watch, RestAtCamp, and breaking camp. Composed
approaches surface in Activity Detail as planning-layer readback labels (e.g.
"part of: Overnight Camp Routine") supplied by the opener; they are not a
runtime executor and do not commit to a source keyword.
Opener Taxonomy Quick Reference
The Activity Catalog is one of the canonical openers for Activity Detail. The
full opener taxonomy (Queue, Territory Dossier, Activity Catalog, Current Plan,
Objectives, ContextPanel, BottomQueueSlots, Journal, recursive 'detail') is
defined in
../ux/gd-shell-screen-model.md § Activity Detail — Opener taxonomy.
Each opener passes a typed opener-context payload that Activity Detail
preserves across the drill stack.
Implementation status
| Surface / Example | Shipped wave | Status |
|---|---|---|
| Catalog rows for every name in § Committed Activity Families | Wave C | Names committed in Generated/Hashes.cs; .secs sources committed in Content/activities/ |
Catalog row → Activity Detail opener (source: 'catalog') | Wave C | Ships via the Activities panel summary + expansion; opener-context tag 'catalog' is the Wave M target architecture |
Activities panel filter modes (here / reachable / all) | Wave C | Ships in ActivitiesSummary |
Catalog browse example (InvestigateRuin — all filter, Ruin group) | Wave C | Activity is committed in Generated/Hashes.cs; selecting the catalog row opens Activity Detail with description, time cost, requirements, effect-plan preview, and Queue button |
ScoutApproach canonical name | Wave B | Wave B-owned, pending sync (wire-id rename from the legacy lead identifier; legacy activity is retired in Wave B) |
ListenForWater → FollowWaterSound → SurveyWaterSource recursive drill | Deferred, Wave B | Activities exist; recursive drill-stack UI requires parent-run / child-run reference projection on the activity run snapshot — Wave B-owned, pending sync |
| Server-confirmed blocked-reason on catalog rows | Deferred, Wave B | Client-derived availability snapshot today; server-confirmed blocked reason is Wave B-owned, pending sync |
Generic-mechanic content families (Activity_CastSpell, Activity_BuildStructure, Activity_UseItem) | Wave C | Generic activities are the engine-side parameterised pattern; specific content rows live as definition templates |
Notes
This page is a documentation catalog, not a compiled source-identifier list.
The activity names above correspond to committed entries in
examples/valenar/Generated/Hashes.cs and their matching .secs source
files under examples/valenar/Content/activities/. Wire-id strings for the
activities being renamed in Wave B (notably ScoutApproach) are labelled
Wave B-owned, pending sync.
Use queue and activity execution for behavior vocabulary and queue rules. Use ../ux/gd-shell-screen-model.md § Activity Detail for the opener taxonomy that connects catalog rows to the shared inspection surface.