Skip to content

feat: cultural communication calibration — installer profiles + deep-calibration skill#990

Open
brycemagera wants to merge 2 commits intodanielmiessler:mainfrom
brycemagera:feature/cultural-communication-calibration
Open

feat: cultural communication calibration — installer profiles + deep-calibration skill#990
brycemagera wants to merge 2 commits intodanielmiessler:mainfrom
brycemagera:feature/cultural-communication-calibration

Conversation

@brycemagera
Copy link
Copy Markdown

@brycemagera brycemagera commented Mar 24, 2026

Problem

PAI defaults to American communication norms — fill silence, performative warmth, constant affirmation, immediate solutions — which are culturally wrong for most of the world. A Finnish user, a Japanese user, and a user with autism all experience a miscalibrated AI out of the box, and had no path to fix it beyond manually adjusting the communication preferences.

Solution

Two-tier calibration system:

Tier 1 — Installer (Step 4: Identity)

Users now select a communication style profile during installation. Five profiles based on Erin Meyer's Culture Map and cross-cultural communication research:

Profile Description
Direct & Expressive Warm, action-oriented, fills silence, frequent affirmation
Direct & Reserved Silence is respect, earned praise, depth over breadth
Warm & Relational Relationship-first, expressive, context-rich
Harmonious & Nuanced Harmony-preserving, patient, reads between the lines
Balanced / Custom Neutral starting point for manual customization

Each profile sets 12 personality trait values (0–100) in settings.json → daidentity.personality and generates USER/COMMUNICATIONSTYLE.md with communication patterns and behavioral steering rules.

Design note: Profile choices display behavioral descriptions only — no national labels ("Nordic/Finnish/German") that would prime self-stereotyping before behavioral questions are answered.

Tier 2 — CommunicationCalibration Skill (/calibrate-communication)

An interactive skill users can invoke anytime for deep calibration via a three-layer questionnaire:

Layer 1 — Cultural Context (5 questions)
Based on Meyer's Culture Map: Communicating, Evaluating, Persuading, Disagreeing, Trusting. Applies additive trait deltas computed against the profile baseline (not current values — idempotent by design).

Layer 2 — Cognitive Processing (5 questions)
Structure preference, language style (literal vs. figurative), information chunking, information density, and re-engagement style. Captures neurodivergent communication patterns:

  • Autism: literal language, consistent structure, explicit re-engagement
  • ADHD: key-points-first chunking, minimal density, novelty variation

Information density (volume per response) is treated as independent from chunking (pace) — they are orthogonal dimensions.

Layer 3 — Personal Style (filtered)
One question per personality trait. Filtered to only traits that moved >10 points from the profile baseline — reduces question count from 21 to ~13–18 depending on prior layers, preventing survey fatigue.

Supporting infrastructure:

  • Tools/UpdateCalibration.ts — safe write tool with backup → validate → write pattern
  • Tools/Profiles.ts — self-contained profile definitions (no installer dependency)
  • Workflows/Review.md — read-only ASCII bar chart view of current calibration
  • Workflows/Reset.md — reset to any named profile

Files Changed

Installer:

  • PAI-Install/engine/communication-profiles.ts (new) — 5 profile definitions
  • PAI-Install/engine/actions.ts — Step 4 identity now includes profile selection
  • PAI-Install/engine/types.tscommunicationStyle added to InstallState, PAIConfig, InstallSummary
  • PAI-Install/engine/config-gen.ts — writes communicationStyle to settings.json
  • PAI-Install/cli/index.ts, web/routes.ts — pass getChoice to runIdentity
  • PAI/CONTEXT_ROUTING.md — routing entry for COMMUNICATIONSTYLE.md

Skill:

  • skills/Utilities/CommunicationCalibration/ (new directory) — full skill implementation

Test Plan

  • Run PAI installer through Step 4 — verify profile choices appear with behavioral descriptions only (no national labels)
  • Select "Direct & Reserved" — verify settings.json → daidentity.personality contains the correct trait values and USER/COMMUNICATIONSTYLE.md is generated
  • Run /calibrate-communication → All three layers — verify delta computation uses profile baseline, not current settings
  • Run /calibrate-communication twice with same answers — verify identical trait output (idempotency)
  • Run /calibrate-communication review — verify ASCII bar chart renders current traits
  • Run /reset communication style — verify traits reset to selected profile values
  • Verify Layer 3 shows only traits that moved >10 points from baseline

🤖 Generated with Claude Code

brycemagera and others added 2 commits March 24, 2026 14:56
Addresses the problem that AI defaults to American communication norms
(fill silence, performative warmth, constant affirmation) which are
culturally wrong for most users worldwide, and doesn't serve
neurodivergent communication needs.

## Tier 1 — Installer (Step 4: Identity)
- Add `communication-profiles.ts` with 5 profiles: direct-expressive,
  direct-reserved, warm-relational, harmonious-nuanced, balanced
- Step 4 now presents behavioral-only profile choices (no national labels)
  and applies personality trait overrides to settings.json
- Generates USER/COMMUNICATIONSTYLE.md with communication patterns,
  steering rules, and applied trait values
- Updates types.ts, config-gen.ts, cli/index.ts, web/routes.ts

## Tier 2 — CommunicationCalibration Skill
Three-layer interactive questionnaire usable anytime:
- Layer 1: 5 cultural context questions (Meyer's Culture Map) with
  additive trait deltas computed against profile baselines (idempotent)
- Layer 2: 5 cognitive processing questions including new information
  density dimension (orthogonal to chunking; ADHD/autism coverage)
- Layer 3: per-trait fine-tuning filtered to traits that moved >10pts
  from baseline (reduces fatigue from 21 questions to ~13-18)

Council review improvements:
- Idempotency: deltas computed from profile baselines not current values
- Cultural label priming removed from selection UI
- Information density added as independent Layer 2 dimension
- Option ordering/anchoring bias notes in workflow instructions
- Maintenance contract documented for baseline trait table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Label shuffling (presenting (c) before (a)) was intended to reduce
anchoring bias but caused user confusion — the expectation that
(a) = first/low option is too strong to violate. Updated instructions
to maintain consistent (a)/(b)/(c) display order and address anchoring
bias through question wording variation instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant