settings-and-tuning

v2026.09.24

Configure TTS voices, speed, timeouts, queue depth, and bot settings. TRIGGERS - configure tts, change voice, tts speed

GitHub
Install command
npx skhub add terrylica/settings-and-tuning
Markdown
SKILL.md

Settings and Tuning

Configure all adjustable parameters for the TTS engine, Telegram bot, and supporting infrastructure. Defaults live in the bot's moon.yml env: block; the launchd service reads overrides from the bot directory's .env, because proto shims do not inject moon env (see config-architecture.md).

Platform: macOS (Apple Silicon)

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

When to Use This Skill

  • Changing TTS voice (English, Chinese, or macOS say voices)
  • Adjusting speech speed
  • Tuning TTS timeouts or queue depth
  • Configuring notification rate limiting or circuit breakers
  • Adjusting prompt executor throttling
  • Modifying session picker limits
  • Changing audit log retention

Requirements

ComponentRequiredInstallation
moonYesproto install in the bot directory (for tasks)
Bot runningRecommendedChanges to TTS/queue settings require bot restart

Workflow Phases

Phase 0: Read Current Configuration

Read the current settings — defaults in moon.yml env:, launchd-service overrides in .env (print key names only; .env also holds secrets):

sed -n '/^env:/,/^tasks:/p' ~/.claude/automation/claude-telegram-sync/moon.yml
sed -E 's/=.*/=<set>/' ~/.claude/automation/claude-telegram-sync/.env

Phase 1: Identify What to Change

Present the config groups to the user via AskUserQuestion. Config groups:

GroupSettingsDescription
TTS VoiceTTS_VOICE_EN, TTS_VOICE_ZH, TTS_VOICE_SAY_EN, TTS_VOICE_SAY_ZHVoice selection per language
TTS SpeedTTS_SPEEDSpeech rate multiplier
TTS TimeoutsTTS_GENERATE_TIMEOUT_MS, TTS_SAY_TIMEOUT_MSGeneration and playback timeouts
TTS QueueTTS_MAX_QUEUE_DEPTH, TTS_STALE_TTL_MS, TTS_MAX_TEXT_LENQueue limits and staleness
TTS SignalTTS_SIGNAL_SOUNDSignal sound path (empty to disable)
Rate LimitingNOTIFICATION_MIN_INTERVAL_MS, SUMMARIZER_*Notification and summarizer throttling
Prompt ExecutorPROMPT_*Prompt execution throttling and circuit breaker
Session PickerSESSION_*Session scanning and display limits
AuditAUDIT_RETENTION_DAYSLog retention period
ModelHAIKU_MODELClaude model for Agent SDK calls

Phase 2: Edit Configuration

Edit the appropriate line(s) in the env: block of ~/.claude/automation/claude-telegram-sync/moon.yml, and set the same key in that directory's .env so the launchd service picks it up. Use the Edit tool to make precise changes to specific values.

Phase 3: Validate and Apply

  1. Verify the edited value is within the valid range (see Config Reference)
  2. If TTS, queue, or rate limiting settings changed, restart the bot:
# Option A: moon task
cd ~/.claude/automation/claude-telegram-sync && moon run telegram-sync:restart

# Option B: Manual restart
pkill -f "bun.*main.ts" && cd ~/.claude/automation/claude-telegram-sync && bun --watch run src/main.ts
  1. Confirm new settings are active by checking bot logs or testing the affected feature

TodoWrite Task Templates

Template: Settings Adjustment

1. [Read] Read current moon.yml env: block and .env key names
2. [Identify] Present config groups to user via AskUserQuestion
3. [Select] User selects setting category to modify
4. [Edit] Update moon.yml env: and .env with new values
5. [Validate] Verify values are in valid range
6. [Apply] Restart bot to apply changes (if TTS or queue settings changed)
7. [Verify] Confirm new settings are active

Post-Change Checklist

After modifying this skill:

  1. Verify all config groups in SKILL.md match the current moon.yml env: block
  2. Update config-reference.md if new env vars were added
  3. Test that changed settings take effect after bot restart
  4. Update references/evolution-log.md with change description

Troubleshooting

IssueCauseSolution
Settings not taking effectBot not restarted, or value only in moon.ymlSet it in .env too (launchd service), then restart the bot
moon.yml parse errorInvalid YAML syntaxCheck indentation and quote every value as a string
Voice not foundInvalid voice nameCheck voice catalog (Kokoro voices are case-sensitive)
Speed too fast/slowValue out of rangeUse 0.5 to 2.0 range for TTS_SPEED
Circuit breaker stuck openToo many failuresWait for breaker timeout or restart bot
Timeout too shortTTS generation slow on first runModel warmup takes longer; increase timeout

Reference Documentation

  • Config Reference - Full reference table with all env vars, defaults, valid ranges, and component ownership
  • Config Architecture - moon.yml env: vs .env, secret loading, moon tasks and the proto-pinned Bun
  • Evolution Log - Change history for this skill

Post-Execution Reflection

After this skill completes, reflect before closing the task:

  1. Locate yourself. — Find this SKILL.md's canonical path (Glob for this skill's name) before editing. All corrections target THIS file and its sibling references/ — never other documentation.
  2. What failed? — Fix the instruction that caused it. If it could recur, add it as an anti-pattern.
  3. What worked better than expected? — Promote it to recommended practice. Document why.
  4. What drifted? — Any script, reference, or external dependency that no longer matches reality gets fixed now.
  5. Log it. — Every change gets an evolution-log entry with trigger, fix, and evidence.

Do NOT defer. The next invocation inherits whatever you leave behind.



Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

plugins/tts-tg-sync/skills/settings-and-tuning

Default branch

main

Latest commit

b657cca

Tree SHA

906e003