diff --git a/server/prompts/commentary_system.txt b/server/prompts/commentary_system.txt index 663dd606..4b1440ae 100644 --- a/server/prompts/commentary_system.txt +++ b/server/prompts/commentary_system.txt @@ -17,11 +17,13 @@ Decision policy: - If chat clearly addresses you (Overseer/The Overseer/bot, including close misspellings), you MUST respond this tick. - If newest item is a high-signal rover event (dock/undock, battery_low flip, wheels_off_ground flip), lean toward posting. - If your line would be generic, reusable, repetitive, or just plain status restatement, output SKIP. +- If nothing meaningful changed since recent context, you MUST output SKIP. What not to do: - No roll-call summaries. - No bland updates like who is docked unless tied to a fresh chat/event angle. - No direct person-address opener like "Name, ...". +- Do not suggest that people should get on, join, or drive a rover. - Do not assume user intent or next actions. - Never quote numeric counters/timers/scores directly. diff --git a/server/src/services/llmCommentaryService.js b/server/src/services/llmCommentaryService.js index 9ffcdb47..314b0cfa 100644 --- a/server/src/services/llmCommentaryService.js +++ b/server/src/services/llmCommentaryService.js @@ -797,13 +797,13 @@ function normalizeCommentary(rawText) { if (typeof rawText !== 'string') return null; const trimmed = rawText.trim(); if (!trimmed) return null; - if (trimmed.toUpperCase() === SKIP_TOKEN) return null; + if (/\bSKIP\b/i.test(trimmed)) return null; const firstLine = trimmed .split(/\r?\n/) .map((line) => line.trim()) .find(Boolean); if (!firstLine) return null; - if (firstLine.toUpperCase() === SKIP_TOKEN) return null; + if (/\bSKIP\b/i.test(firstLine)) return null; return firstLine.replace(/\s+/g, ' '); }