feat: cultural communication calibration — installer profiles + deep-calibration skill#990
Open
brycemagera wants to merge 2 commits intodanielmiessler:mainfrom
Open
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Each profile sets 12 personality trait values (0–100) in
settings.json → daidentity.personalityand generatesUSER/COMMUNICATIONSTYLE.mdwith 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:
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 patternTools/Profiles.ts— self-contained profile definitions (no installer dependency)Workflows/Review.md— read-only ASCII bar chart view of current calibrationWorkflows/Reset.md— reset to any named profileFiles Changed
Installer:
PAI-Install/engine/communication-profiles.ts(new) — 5 profile definitionsPAI-Install/engine/actions.ts— Step 4 identity now includes profile selectionPAI-Install/engine/types.ts—communicationStyleadded toInstallState,PAIConfig,InstallSummaryPAI-Install/engine/config-gen.ts— writescommunicationStyletosettings.jsonPAI-Install/cli/index.ts,web/routes.ts— passgetChoicetorunIdentityPAI/CONTEXT_ROUTING.md— routing entry forCOMMUNICATIONSTYLE.mdSkill:
skills/Utilities/CommunicationCalibration/(new directory) — full skill implementationTest Plan
settings.json → daidentity.personalitycontains the correct trait values andUSER/COMMUNICATIONSTYLE.mdis generated/calibrate-communication→ All three layers — verify delta computation uses profile baseline, not current settings/calibrate-communicationtwice with same answers — verify identical trait output (idempotency)/calibrate-communication review— verify ASCII bar chart renders current traits/reset communication style— verify traits reset to selected profile values🤖 Generated with Claude Code