ADR-065: Surface behavioral attention signals as named user-visible dimensions¶
Status: Proposed
Date: 2026-05-23
Context: player_decision_profiles already measures and stores all of the following: attention_distribution (political, ethical, temporal, financial, interpersonal weights), confidence_calibration (overconfidence/underconfidence rates, calibration score), dissent_profile (consensus deviation rate by category), reasoning_style_distribution (eliminative, consequentialist, systems thinking, principled deductive), and persuadability (stand rate, conviction change sensitivity). These signals currently feed agent_context_block for Hermes only — no part of the user-facing game or insights surfaces them.
This is purely a display decision. No new measurement infrastructure is required.
The content category taxonomy (governance / resource-allocation / team-dynamics / values-culture) describes what scenarios are about; these behavioral signals describe how a player processes any scenario. These are orthogonal axes. Only the content axis is user-visible today.
This gap surfaced in a design session where CoachJ's profile showed 38.6% political attention — his strongest dimension — with no part of the user-facing game or insights acknowledging it. The signal was real and predictive (it showed up repeatedly as the unnamed driver in product decisions — reading co-founder alignment risk, light-paper positioning) but invisible to the player and unnameable in conversation.
At a glance
What it decides: show a curated subset of already-measured behavioral signals — how you decide, not what you decide about — as named cards on the insights/profile pages. Proposed, not in force; a display decision only, no new measurement.
- Surface 5 signals: political attention, temporal attention, calibration, consensus deviation, reasoning style — each gated behind a minimum sample threshold.
- Hold back 2: authenticity alignment (too accusatory without UX) and learning rate (ambiguous without a narrative) stay Hermes-only.
- Main rejected alternative: adding "political" as a 5th content category — signals emerge across all content, so grinding one category generates no new signal.
- Cost/risk: UX copy work to frame "political" as power dynamics/feasibility without Machiavellian connotation.
- Why now: closes the loop so users can see what Hermes already knows about them.
Decision¶
Surface a curated subset of behavioral signals as named, user-visible dimensions in the insights page and profile — alongside category_patterns cards, not replacing them.
Surface these:
| Signal | What it captures | Gate |
|---|---|---|
| Political attention | How much decision weight goes to power dynamics, stakeholder approval, and organizational feasibility | 20+ scenarios |
| Temporal attention | How much weight goes to timing: "is now the right moment?" | 20+ scenarios |
| Calibration | When your conviction is high, how often you're right — overconfidence/underconfidence rate | 10+ calibration events |
| Consensus deviation | How often you deviate from group consensus | 5+ multiplayer sessions |
| Reasoning style | Eliminative vs. consequentialist vs. systems thinking | 15+ scenarios |
Explicitly exclude from user surfacing (internal only):
- Authenticity alignment — "your stated rationale diverges from your actual choices X% of the time" is too sensitive to surface as a card without a dedicated UX treatment. Hermes already reads this; surfacing it without narrative support risks feeling accusatory. Deferred.
- Learning rate — ambiguous without narrative: low rate could mean stable/reliable OR rigid. Not interpretable until we have a story to tell around it. Deferred.
flowchart LR
M[Measured signals<br/>player_decision_profiles] --> P[Political attention]
M --> T[Temporal attention]
M --> C[Calibration]
M --> D[Consensus deviation]
M --> R[Reasoning style]
M --> A[Authenticity alignment]
M --> L[Learning rate]
P --> U[User-visible cards]
T --> U
C --> U
D --> U
R --> U
A --> H[Hermes only]
L --> H
All signals are already measured and feed Hermes; this ADR promotes five of them to user-visible cards while two stay internal-only.
Rationale¶
Content categories answer "what did you decide about?" Behavioral signals answer "how do you decide?" For an agent that represents you, the second question is more useful.
Political attention specifically: a player's 38.6% political weight doesn't come from governance scenarios alone — it's present in how they process team dynamics, values, and resource decisions too. Making it a content category misses the point. Making it a named behavioral signal gives users self-knowledge ("you instinctively read power dynamics") and gives Hermes sharper framing ("factor political feasibility prominently in your recommendations").
Calibration is surfaced because it's the most directly actionable signal: if your high-conviction calls miss 67% of the time, that changes how you — and your agent — should weight your own certainty.
Reasoning style (eliminative → consequentialist → systems thinking) is the signal most likely to produce an "aha" moment for users: most people have no language for the fact that they make decisions by ruling out options first rather than building toward a best answer.
Alternatives Considered¶
-
Add political feasibility as a 5th content category: Rejected. You can't write "political" scenarios in isolation — political signals emerge across all content types. Players grinding this category would be playing the same existing scenarios without any new signal being generated.
-
Surface all 12 signals simultaneously: Rejected. Authenticity alignment is too sensitive without dedicated UX. Learning rate is ambiguous without a narrative. Starting with 5 allows UX iteration before committing to the full surface.
-
Keep all signals internal (status quo): Rejected. The strongest behavioral signals — the ones most predictive of how someone actually decides — aren't visible to users at all. This undercuts the game's core value proposition: self-knowledge that builds over time.
-
Surface signals only via agent_context_block (Hermes only): Rejected. Users currently can't see what Hermes knows about them. Making it visible closes the loop and increases trust in the profile ("the agent knows this about me because I can see it too").
Discussion¶
Why these signals weren't surfaced before: ADR-024 added 12 behavioral signals to the prediction pipeline — they were designed to improve the AI predictor, not as user-facing feedback. The insights page was built around category_patterns because that's the most interpretable structure for a user unfamiliar with behavioral measurement. Surfacing raw signal names (overconfidence_rate, political attention weight) without plain-language framing would have been confusing.
What changed: Two things happened simultaneously. First, CoachJ's profile was read in a Claude Code session during a product design conversation — and the agent_context_block's behavioral characterization ("unusually sensitive to political feasibility and timing"; "confident but unpredictably so") would have changed product recommendations significantly if available. Second, the category-scores design exploration (May 21–22) hit the limits of content categories and surfaced the question: if not fixed content categories, what does a user develop and track? Behavioral attention signals are the answer.
The naming challenge for "political": The word "political" has negative connotations in some contexts (sounds Machiavellian). UX copy should frame it as "organizational feasibility" or "power dynamics" — capturing the real signal (who holds authority, what will get approval, what's actually actionable given the current structure) without implying manipulative intent. This is a UX copy decision, not an architecture decision.
Relationship to category-scores design: This ADR and the deferred category-scores exploration are complements, not competitors. Category-scores expose domain depth (how much signal we have about money decisions vs. people decisions). Behavioral attention signals expose processing style (how you think, regardless of domain). Both can coexist; this ADR is the lower-risk implementation since it doesn't require new scenarios or content reclassification — the signals are already being measured.
Consequences¶
- Insights page gains signal cards alongside existing category_patterns cards
- Gating by minimum sample thresholds prevents low-confidence signals from surfacing prematurely
agent_context_blockalready captures these signals for Hermes; user surfacing makes what Hermes knows visible to users for the first time — increasing transparency and trust in the profile- UX copy work required: plain-language framing for political attention, calibration, and consensus deviation to avoid misinterpretation
- Opens a natural surface for the "what Sync knows about you" content referenced in the audit/explanation reframe discussions
- Authenticity alignment and learning rate remain as internal signals — revisit when UX treatment is designed
Key files:
- src/app/(app)/insights/page.tsx — where signal cards would be added alongside category_patterns
- src/types/database.ts — attention_distribution, confidence_calibration, persuadability, dissent_profile already typed in PlayerDecisionProfile
- public/agent-skill/SKILL.md — agent_context_block already exposes these to Hermes; user-surfacing is the new layer
- src/app/(app)/profile/page.tsx — secondary surface for signal display