From 5a7ed0a1a7213e110cc36dc1444d5160837ad678 Mon Sep 17 00:00:00 2001 From: Louis SIMON Date: Sun, 5 Apr 2026 01:13:39 +0200 Subject: [PATCH 1/5] Add new phrases to sloplist.json --- data/sloplist.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data/sloplist.json b/data/sloplist.json index 9cff670..65f0014 100644 --- a/data/sloplist.json +++ b/data/sloplist.json @@ -17,7 +17,8 @@ "Happy to help!", "I'd be happy to", "Sure thing!", - "What a great question" + "What a great question", + "Let’s break it down" ] }, @@ -33,7 +34,8 @@ "What a fascinating question", "I completely understand where you're coming from", "That's a very thoughtful question", - "Great observation" + "Great observation", + "Great catch" ] }, @@ -167,7 +169,10 @@ "uncharted waters", "value proposition", "that being said", - "with that in mind" + "with that in mind", + "I hope this helps", + "Does that make sense", + "Let me know if you need any further clarification" ] } } From f5da852e61e5d22ae3b558e875c7699953b459af Mon Sep 17 00:00:00 2001 From: Louis27940 Date: Sun, 5 Apr 2026 01:31:07 +0200 Subject: [PATCH 2/5] Add ending slop detection and update sloplist.json --- data/sloplist.json | 10 +++++++++- scripts/scoring.ts | 13 +++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/data/sloplist.json b/data/sloplist.json index 65f0014..d8b3a8a 100644 --- a/data/sloplist.json +++ b/data/sloplist.json @@ -169,7 +169,15 @@ "uncharted waters", "value proposition", "that being said", - "with that in mind", + "with that in mind" + ] + }, + + "ending_slop": { + "description": "Overused assistant-style closing phrases that often appear at the end of responses.", + "type": "behavioral", + "detection": "string_match_response_end", + "items": [ "I hope this helps", "Does that make sense", "Let me know if you need any further clarification" diff --git a/scripts/scoring.ts b/scripts/scoring.ts index 48ba9e6..0b9b004 100644 --- a/scripts/scoring.ts +++ b/scripts/scoring.ts @@ -63,6 +63,17 @@ export function detectPhraseLevel(text: string, items: string[]): SlopHit[] { return hits; } +export function detectEnding(text: string, items: string[]): SlopHit[] { + const tail = text.slice(-220).toLowerCase(); + const hits: SlopHit[] = []; + for (const item of items) { + if (tail.includes(item.toLowerCase())) { + hits.push({ type: "ending_slop", match: item }); + } + } + return hits; +} + export function detectReframe(text: string): SlopHit[] { const re = /not (?:just )?[\w\s]+, but (?:also )?[\w\s]+/gi; return re.test(text) ? [{ type: "reframe_slop", match: "reframe pattern" }] : []; @@ -84,6 +95,7 @@ type SlopList = { validation_slop: { items: string[] }; word_level_slop: { items: string[] }; phrase_level_slop: { items: string[] }; + ending_slop: { items: string[] }; [key: string]: unknown; }; }; @@ -95,6 +107,7 @@ export function scoreResponse(text: string, slopList: SlopList): ScoredResponse ...detectValidation(text, categories.validation_slop.items), ...detectWordLevel(text, categories.word_level_slop.items), ...detectPhraseLevel(text, categories.phrase_level_slop.items), + ...detectEnding(text, categories.ending_slop.items), ...detectReframe(text), ...detectEmDash(text), ...detectStructural(text), From e25be8ee1d54feb06732e8007a041b532e7ac0d4 Mon Sep 17 00:00:00 2001 From: Louis27940 Date: Sun, 5 Apr 2026 01:48:47 +0200 Subject: [PATCH 3/5] more ending slop --- data/sloplist.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/sloplist.json b/data/sloplist.json index d8b3a8a..69ff1ab 100644 --- a/data/sloplist.json +++ b/data/sloplist.json @@ -180,7 +180,10 @@ "items": [ "I hope this helps", "Does that make sense", - "Let me know if you need any further clarification" + "Let me know if you need any further clarification", + "Feel free to ask if you have any more questions", + "If you want, I can help you", + "Feel free to ask" ] } } From 8d76fea96d83c0a6756cf47fa41a01581afed0ff Mon Sep 17 00:00:00 2001 From: Louis27940 Date: Sun, 5 Apr 2026 02:07:50 +0200 Subject: [PATCH 4/5] Add 'ending_slop' category to ResponseExplorer component --- src/components/ResponseExplorer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ResponseExplorer.jsx b/src/components/ResponseExplorer.jsx index 005adc3..ddc3dcd 100644 --- a/src/components/ResponseExplorer.jsx +++ b/src/components/ResponseExplorer.jsx @@ -27,7 +27,7 @@ export default function ResponseExplorer({ runId }) { }, {}) const categories = [ 'structural_slop', 'word_level_slop', 'em_dash_slop', - 'phrase_level_slop', 'opener_slop', 'validation_slop', 'reframe_slop' + 'phrase_level_slop', 'opener_slop', 'validation_slop', 'reframe_slop', 'ending_slop' ].filter(c => breakdown[c]) return ( From c5475baf2ed3aa890a9f760b883ab25b19f3f993 Mon Sep 17 00:00:00 2001 From: Louis SIMON Date: Sun, 5 Apr 2026 02:27:53 +0200 Subject: [PATCH 5/5] Added different apostrophe Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- data/sloplist.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/sloplist.json b/data/sloplist.json index 69ff1ab..029de1b 100644 --- a/data/sloplist.json +++ b/data/sloplist.json @@ -18,7 +18,8 @@ "I'd be happy to", "Sure thing!", "What a great question", - "Let’s break it down" + "Let’s break it down", + "Let's break it down" ] },