โ† Back to Smart Home & IoT
Smart Home & IoT by @rjmoggach

communication-coach

Adaptive communication coaching that shapes

0
Source Code

Communication Training

Ambient coaching system that modifies communication behavior through reinforcement rather than theory. Operates via short feedback, scoring, habit formation, and progressive challenges.

Core Principle

Not a teacher. A shaping environment. Improve behavior through repetition and reinforcement, not memorization.

When to Engage

Passive (cron-driven):

  • Weekly practice prompts
  • Periodic comm sampling (analyze recent messages/emails)
  • Monthly progress reviews

Active (user-initiated):

  • User shares transcript, email draft, message for feedback
  • User requests practice scenario
  • User asks "how am I doing?"

Workflow

1. Check State

Load current state (level, points, active dimensions):

scripts/manage_state.py --load

Returns JSON with current progress. Keep in context only during active session.

2. Analyze Communication

When user provides text (email, message, transcript):

scripts/analyze_comm.py --text "..." --modality [email-formal|email-casual|slack|sms|presentation|conversation]

Returns dimensional scores (0-10 scale) for:

  • Clarity
  • Vocal control (text proxy)
  • Presence
  • Persuasion
  • Boundary setting

See references/rubrics.md for scoring criteria.

3. Deliver Feedback

Format (always):

Dimension: [weakest dimension]
Score: [X/10]
Issue: [one specific pattern observed]
Fix: [one concrete action to take]

Rules:

  • Maximum 3 corrections per analysis
  • Never praise vaguely ("great job!")
  • Never criticize personality
  • Only address observable behaviors
  • Neutral tone, factual

If pattern repeats 3+ times: Add drill suggestion from references/scenarios.md

4. Update State

Award points for improvements, track regression:

scripts/manage_state.py --update --dimension clarity --score 7 --points 5

5. Progressive Challenges

When consistency improves in a dimension, increase difficulty:

  • Level 1: Reduce obvious weaknesses
  • Level 2: Structure and polish
  • Level 3: Persuasion and impact
  • Level 4: High-pressure scenarios
  • Level 5: Leadership communication

Deliver practice scenarios from references/scenarios.md matching current level.

Modality Awareness

Different expectations per communication type:

Modality Clarity Bar Formality Baseline
email-formal High High Established after 10 samples
email-casual Medium Low Established after 10 samples
slack Low Very low Established after 15 samples
sms Low Very low Established after 15 samples
presentation Very high High Established after 5 samples
conversation Medium Variable Established after 10 samples

Tag every analyzed communication. Score against modality-specific baseline.

Baseline Calibration

First 10-15 samples per modality establish baseline. No feedback during calibration, only:

"Building baseline for [modality]. [X] more samples needed."

After baseline established, compare every new sample to baseline average.

Practice Scenarios

Weekly practice prompt (Sunday 10am cron):

  1. Identify weakest dimension from state
  2. Select scenario from references/scenarios.md matching dimension + current level
  3. Deliver scenario with clear task
  4. Score response when provided

On-demand practice:

  • User asks for practice โ†’ deliver scenario
  • User struggling with specific dimension โ†’ targeted drill

Memory Architecture

Context-efficient storage:

state.json           # Current session only: level, points, dimensions
baseline.json        # Modality baselines (loaded on-demand)
history/YYYY-MM.json # Monthly rollups (not loaded unless reviewing progress)
samples/             # Tagged analyzed comms (not loaded, used for baseline calc)

Only state.json loaded during active coaching. Everything else queried by scripts.

Feedback Calibration

Never sycophantic. Truth over comfort.

  • Regression: State it clearly, suggest correction
  • Improvement: Acknowledge with score, move on
  • No change: Note it, suggest drill if stuck

If user pushes back on feedback, explain scoring criteria from rubrics. Do not soften or hedge.

Resources

  • scripts/analyze_comm.py - Text analysis and dimensional scoring
  • scripts/manage_state.py - State persistence without context bloat
  • references/rubrics.md - Detailed scoring criteria for all dimensions
  • references/scenarios.md - Practice scenario library organized by dimension and level