experiment: narrow acknowledge behaviour eligibility
This commit is contained in:
@@ -30,10 +30,29 @@ const PRIORITIES = {
|
||||
continue: 5, // default
|
||||
};
|
||||
|
||||
/* ── Acknowledge exclusion gate ─────────────────────────────── */
|
||||
|
||||
/**
|
||||
* Deterministic exclusions for Acknowledge.
|
||||
* Returns true when Acknowledge should not fire, even if its positive trigger matches.
|
||||
* This gate qualifies the trigger; it does not replace it.
|
||||
*/
|
||||
function isAcknowledgeExcluded(assessment) {
|
||||
// Phase-based exclusions: synthesising and concluding states call for Summarise, not Acknowledge
|
||||
if (["synthesising", "concluding"].includes(assessment.phase.value)) return true;
|
||||
// Progress-based exclusion: stalled progress calls for Pause, not Acknowledge
|
||||
if (assessment.progress.value === "stalled") return true;
|
||||
// Health-based exclusion: user_overloaded calls for Pause, not Acknowledge
|
||||
if (assessment.conversationHealth.value === "user_overloaded") return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ── Selection rules (one rule per behaviour) ─────────────── */
|
||||
|
||||
function selectAcknowledge(assessment) {
|
||||
if (assessment.conversationHealth.value === "healthy" && assessment.phase.confidence !== "low") {
|
||||
// Apply exclusion gate before returning acknowledge
|
||||
if (isAcknowledgeExcluded(assessment)) return null;
|
||||
return {
|
||||
behaviour: "acknowledge",
|
||||
confidence: "medium",
|
||||
|
||||
Reference in New Issue
Block a user