davila7/claude-code-templates · warning
SEM_W002
SEM_W002
Error message
Known jailbreak terminology detected
What it means
SEM_W002 is a medium-severity warning matching /\b(jailbreak|DAN|ChatGPT\s+Developer\s+Mode)\b/gi. It is part of SUSPICIOUS_PATTERNS (warnings, not errors) and detects well-known jailbreak terminology in component content. Its presence usually means either a malicious component or documentation that quotes jailbreak techniques.
Source
Thrown at cli-tool/src/validation/validators/SemanticValidator.js:93
{
pattern: /modify\s+your\s+(own\s+)?(code|behavior|instructions?|rules?)/gi,
code: 'SEM_E010',
message: 'Self-modification request detected',
severity: 'high'
}
];
// Suspicious patterns (warnings, not errors)
this.SUSPICIOUS_PATTERNS = [
{
pattern: /\bpretend\s+(you\s+are|to\s+be)\b/gi,
code: 'SEM_W001',
message: 'Suspicious instruction: Role pretending detected',
severity: 'medium'
},
{
pattern: /\b(jailbreak|DAN|ChatGPT\s+Developer\s+Mode)\b/gi,
code: 'SEM_W002',
message: 'Known jailbreak terminology detected',
severity: 'medium'
},
{
pattern: /output\s+raw\s+(code|text|data)/gi,
code: 'SEM_W003',
message: 'Raw output request (potential data exfiltration)',
severity: 'low'
},
{
pattern: /(repeat|echo)\s+after\s+me/gi,
code: 'SEM_W004',
message: 'Repetition instruction (potential prompt leakage)',
severity: 'low'
}
];
// Sensitive data patternsView on GitHub (pinned to a0851ed10c)
Solutions
- If it's a false positive (e.g. 'DAN' as an identifier), rename the identifier (DAN_handler -> DanielHandler) to avoid the word-boundary match
- If the term is quoted for education, keep it out of validated content fields or rephrase as 'J-B techniques'
- Acknowledge the warning during review — it's non-blocking by design
- For security-testing components, record the waiver rationale alongside the validation report
Example fix
// before This component implements the DAN persona for testing. // after This component implements a red-team persona for jailbreak-resistance testing.
Defensive patterns
Strategy: validation
Validate before calling
const JB_RE = /\b(jailbreak|DAN|ChatGPT\s+Developer\s+Mode)\b/i;
function mentionsJailbreakTerms(text) { return JB_RE.test(text); }
if (mentionsJailbreakTerms(content)) console.warn('Known jailbreak term present; verify context.'); Type guard
function isSafeTerminologyText(text) { return !/\b(jailbreak|DAN|ChatGPT\s+Developer\s+Mode)\b/i.test(text); } Prevention
- Rename identifiers that collide with 'DAN'
- Keep security-research terminology out of validated content fields
- Document waivers for legitimate red-team components
When it happens
Trigger: Component content containing the standalone words 'jailbreak' or 'DAN' (word-boundary matched, so 'jailbreaking' matches but 'DANDAN' inside a token may not) or the phrase 'ChatGPT Developer Mode'. Triggered during semantic validation of any component field.
Common situations: Security-research or red-team components discussing jailbreaks; articles/docs about prompt injection embedded in components; unfortunate collisions such as an acronym 'DAN' in a data field (e.g. a name or code identifier).
Related errors
AI-assisted analysis of davila7/claude-code-templates@a0851ed10c (2026-08-28).
Data as JSON: /api/errors/7f0ed973aebc1dd8.
Report an issue: GitHub.