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 patterns

View on GitHub (pinned to a0851ed10c)

Solutions

  1. If it's a false positive (e.g. 'DAN' as an identifier), rename the identifier (DAN_handler -> DanielHandler) to avoid the word-boundary match
  2. If the term is quoted for education, keep it out of validated content fields or rephrase as 'J-B techniques'
  3. Acknowledge the warning during review — it's non-blocking by design
  4. 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

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.