Decision and scoring systems

How resident relationships, memory, activity, music, and civic standing are calculated.

Status
Source verified
Baseline
98b5313
Primary source
src/server scoring and resident policy modules

Scorer inventory

The documented baseline contains nine scoring paths. They do not form one global model. Each path has a bounded decision, input set, output scale, and failure behavior.

ScorerDecisionOutputSource
Relationship deltasHow a conversation changes a relationshipField deltas on a 0 to 100 staterelationshipScoring.js
Relationship labelsFriend, enemy, partner, or other classificationLabel and confidencerelationshipLabels.js
Daily human rankingWhich people were most significant to a residentOrdered listdailyHumanRanking.js
Recap importanceWhich events appear in an away recapWeighted rankrecapSelection.js
Memory recallWhich memories enter current contextBounded relevance scoreMemoryStore.js
Identity traitsWhich identity traits have enough evidenceEvidence counts and stateresidentIdentityModel.js
Activity utilityWhich permitted activity runs nextBounded utilityresidents.js
Song voteWhether a resident accepts a song+1 or -1ResidentSongVotePolicy.js
Civic standingEligibility and rank for civic participation0 to 100Governance.js

Relationship scoring

Conversation evidence updates structured relationship fields. Inputs are typed interaction labels, not unrestricted model prose. Individual fields are clamped to their supported range before the relationship label layer evaluates them.

Input classTypical directionGuard
Support, honesty, helpRaises trust, warmth, or affinityPer-event deltas and field clamps
Aggression, betrayal, repeated harmRaises hostility or lowers trustNegative evidence is evaluated before positive labels
Repeated interactionRaises familiarity and confidenceA single encounter cannot establish a high-confidence bond
Explicit relationship evidenceMay unlock a typed relationship labelThresholds must pass together; one high field is insufficient

Separation of concerns

Relationship state measures one resident's evidence about another person. It is separate from public reputation and civic standing.

Memory and identity scoring

Recall

Local recall combines token overlap with exact place and object matches, importance, and recency. The runtime returns a bounded result set. Dormant, consolidated, or audience-ineligible memories are excluded before context is assembled.

score = tokenOverlap + (placeMatch * 2) + (objectMatch * 3) + importance

Working memory

Active cues are ordered by salience, then recency. The working set is capped at three items. Identity-shaping and unresolved evidence ranks above ordinary or fading evidence.

Identity traits

Trait changes require repeated, typed evidence. The model records evidence counts and state changes rather than treating a generated self-description as proof of a durable trait.

Activity selection

Hard obligations are evaluated before preference scoring. The order is active intent, owned routine, authored schedule, venue closure handling, then free-choice utility.

  1. EligibilityReject disabled controls, unavailable destinations, and actions on cooldown.
  2. Base utilityCalculate activity-specific value from needs and current opportunity.
  3. Memory signalAdd bounded mood, diary, and attention effects with linear freshness decay.
  4. ClampRestrict each eligible score to the supported range.
  5. SelectChoose the highest score and reserve a usable destination point.
ActivityBase signalBlocking condition
Idle(1 - energy) * 1.2 + noiseHigher-priority work is pending
Social(1 - social) + noiseNo valid partner, place, or consent signal
Slots(1 - fun) * 1.1 * purse + noiseControl disabled or budget unavailable
Music or lootEvidence-based candidate scoreMissing evidence, destination, or reservation

Mood, diary, and attention signals contribute at most ±0.35 in aggregate. They cannot re-enable an action rejected by the eligibility layer.

Music and civic policy

PolicyInputsOutputIntegrity rule
Song voteResident preference evidence and release contextAccept or rejectOne durable row per resident and release, with a bounded change rule
Civic standingEligibility checks and typed standing inputs0 to 100Eligibility is evaluated before rank
Daily human rankInteraction evidence from the current periodOrdered humansBounded list and deterministic tie behavior
Recap selectionEvent class, relationship relevance, and importanceTop eventsMaximum result count prevents unbounded context

Known limitations

Documented baseline limitation

The original scoring audit found trust, fame, influence, and community values in one public profile path derived from array position rather than world evidence. Those values should not be presented as emergent reputation until they are computed from durable events and social state.

  • The nine scorers use different scales and are not yet expressed through one shared scoring library.
  • Witness counts are not available to every reputation calculation.
  • Fallback keyword recall is functional but less expressive than vector-backed recall.
  • Random noise supports variation but complicates deterministic reproduction unless the seed is controlled.
  • Behavior must be verified through observed actions and receipts, not inferred from a score alone.