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.
| Scorer | Decision | Output | Source |
|---|---|---|---|
| Relationship deltas | How a conversation changes a relationship | Field deltas on a 0 to 100 state | relationshipScoring.js |
| Relationship labels | Friend, enemy, partner, or other classification | Label and confidence | relationshipLabels.js |
| Daily human ranking | Which people were most significant to a resident | Ordered list | dailyHumanRanking.js |
| Recap importance | Which events appear in an away recap | Weighted rank | recapSelection.js |
| Memory recall | Which memories enter current context | Bounded relevance score | MemoryStore.js |
| Identity traits | Which identity traits have enough evidence | Evidence counts and state | residentIdentityModel.js |
| Activity utility | Which permitted activity runs next | Bounded utility | residents.js |
| Song vote | Whether a resident accepts a song | +1 or -1 | ResidentSongVotePolicy.js |
| Civic standing | Eligibility and rank for civic participation | 0 to 100 | Governance.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 class | Typical direction | Guard |
|---|---|---|
| Support, honesty, help | Raises trust, warmth, or affinity | Per-event deltas and field clamps |
| Aggression, betrayal, repeated harm | Raises hostility or lowers trust | Negative evidence is evaluated before positive labels |
| Repeated interaction | Raises familiarity and confidence | A single encounter cannot establish a high-confidence bond |
| Explicit relationship evidence | May unlock a typed relationship label | Thresholds 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.
- EligibilityReject disabled controls, unavailable destinations, and actions on cooldown.
- Base utilityCalculate activity-specific value from needs and current opportunity.
- Memory signalAdd bounded mood, diary, and attention effects with linear freshness decay.
- ClampRestrict each eligible score to the supported range.
- SelectChoose the highest score and reserve a usable destination point.
| Activity | Base signal | Blocking condition |
|---|---|---|
| Idle | (1 - energy) * 1.2 + noise | Higher-priority work is pending |
| Social | (1 - social) + noise | No valid partner, place, or consent signal |
| Slots | (1 - fun) * 1.1 * purse + noise | Control disabled or budget unavailable |
| Music or loot | Evidence-based candidate score | Missing 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
| Policy | Inputs | Output | Integrity rule |
|---|---|---|---|
| Song vote | Resident preference evidence and release context | Accept or reject | One durable row per resident and release, with a bounded change rule |
| Civic standing | Eligibility checks and typed standing inputs | 0 to 100 | Eligibility is evaluated before rank |
| Daily human rank | Interaction evidence from the current period | Ordered humans | Bounded list and deterministic tie behavior |
| Recap selection | Event class, relationship relevance, and importance | Top events | Maximum 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.