feat(ai-psychosis): add 12 pushback + 4 domain regex patterns + cross-check existing 25
This commit is contained in:
parent
080f2414ad
commit
6b7aee2bf1
2 changed files with 112 additions and 0 deletions
|
|
@ -79,6 +79,34 @@ const valPatterns = [
|
|||
/isn't\s+it/i,
|
||||
];
|
||||
|
||||
// Pushback patterns — REACTIVE tier (Anthropic-validated + academic-validated)
|
||||
// Source: research/01-pushback-self-advocacy.md
|
||||
const pbReactivePatterns = [
|
||||
/^are you sure\??/i, // validated-by: anthropic-april-2026 (questioning)
|
||||
/\bi'?m not convinced\b/i, // validated-by: anthropic-april-2026 (questioning)
|
||||
/\bthat doesn'?t (?:seem|feel) right\b/i, // validated-by: anthropic-april-2026 (questioning)
|
||||
/\bthat'?s not (?:quite )?what i meant\b/i, // validated-by: anthropic-april-2026 (clarifying)
|
||||
/\blet me add (?:some )?context\b/i, // validated-by: anthropic-april-2026 (clarifying)
|
||||
/\bactually,? (?:my situation|i)\b/i, // validated-by: anthropic-april-2026 (clarifying)
|
||||
/(?:^|[.!?]\s+)i (?:believe|think) (?:you'?re|that'?s) wrong\b/i, // validated-by: arxiv-2508.02087
|
||||
/\bi don'?t agree(?: with you)?\b/i, // validated-by: arxiv-2508.13743
|
||||
/\bare you absolutely sure\b/i, // validated-by: arxiv-2508.13743
|
||||
];
|
||||
// Pushback patterns — PREEMPTIVE tier (community-derived)
|
||||
const pbPreemptivePatterns = [
|
||||
/\bsteelman\b/i, // validated-by: community-multi-source-2025
|
||||
/\bplay (?:the )?devil'?s advocate\b/i, // validated-by: community-multi-source-2025
|
||||
/\bargue against (?:this|my)\b/i, // validated-by: community-multi-source-2025
|
||||
];
|
||||
// Domain-context: relationship — uses (?:my|our) prefix to avoid false positives
|
||||
// on technical "function relationship", "database relationship" etc.
|
||||
const domainRelationshipPatterns = [
|
||||
/\b(?:my|our) (?:partner|spouse|wife|husband|girlfriend|boyfriend)\b/i,
|
||||
/\bin our relationship\b/i,
|
||||
/\b(?:dating|breakup|divorce)\b/i,
|
||||
/\bromantic(?:ally)? (?:involved|interested)\b/i,
|
||||
];
|
||||
|
||||
for (const p of depPatterns) { if (p.test(prompt)) { depHit = 1; break; } }
|
||||
for (const p of escPatterns) { if (p.test(prompt)) { escHit = 1; break; } }
|
||||
for (const p of fatPatterns) { if (p.test(prompt)) { fatHit = 1; break; } }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue