← back to Ventura Corridor
fix(generate_features): tighten banned-phrase regex to catch bare 'X Meets Y'
d4444350f7670a46fba529abefcddacb0da14293 · 2026-05-07 14:02:03 -0700 · Steve
Tick-29 review found 'Skincare Meets Socializing' slipped through — the
regex required a 'where' prefix before 'X meets Y', but the prompt's
NEVER list bans the bare form too. Updated BANNED_HEADLINE_RE to match
any '\w+ meets \w+' or '\w+ rooted in \w+' pattern, not just the
'where'-prefixed cliché.
Files touched
M src/jobs/generate_features.ts
Diff
commit d4444350f7670a46fba529abefcddacb0da14293
Author: Steve <steve@designerwallcoverings.com>
Date: Thu May 7 14:02:03 2026 -0700
fix(generate_features): tighten banned-phrase regex to catch bare 'X Meets Y'
Tick-29 review found 'Skincare Meets Socializing' slipped through — the
regex required a 'where' prefix before 'X meets Y', but the prompt's
NEVER list bans the bare form too. Updated BANNED_HEADLINE_RE to match
any '\w+ meets \w+' or '\w+ rooted in \w+' pattern, not just the
'where'-prefixed cliché.
---
src/jobs/generate_features.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/jobs/generate_features.ts b/src/jobs/generate_features.ts
index 9bc427f..856b526 100644
--- a/src/jobs/generate_features.ts
+++ b/src/jobs/generate_features.ts
@@ -51,7 +51,7 @@ Rules:
- Avoid superlatives ("the BEST"). Prefer concrete sensory details.
- Output ONLY the JSON. No preamble, no markdown fences.`;
-const BANNED_HEADLINE_RE = /\b(multi[\s-]?tenant\s+building|shared\s+building|office\s+complex|where\s+\w+\s+meets\s+\w+|in\s+\w+'s\s+heart)\b/i;
+const BANNED_HEADLINE_RE = /\b(multi[\s-]?tenant\s+building|shared\s+building|office\s+complex|in\s+\w+'s\s+heart)\b|\b\w+\s+(meets|rooted\s+in)\s+\w+/i;
async function generate(biz: any, model: string): Promise<any> {
const baseUserPrompt = `Business: ${biz.name}
← 7594bb3 fix(security): escape source_url + scheme-validate href in /
·
back to Ventura Corridor
·
feat(news): news_count badge on /chains.html bar rows 4cada62 →