Skip to content

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_block already 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.tsattention_distribution, confidence_calibration, persuadability, dissent_profile already typed in PlayerDecisionProfile - public/agent-skill/SKILL.mdagent_context_block already exposes these to Hermes; user-surfacing is the new layer - src/app/(app)/profile/page.tsx — secondary surface for signal display