Agent skill

Crisis Response Protocol

by curiositech in curiositech/some_claude_skills

Handle mental health crisis situations in AI coaching safely.

MITAuto-check passedProductivity & Automation

Install Crisis Response Protocol

skills CLI
$ npx skills add curiositech/some_claude_skills --skill crisis-response-protocol -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install curiositech/some_claude_skills crisis-response-protocol --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/curiositech/some_claude_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/crisis-response-protocol .claude/skills/crisis-response-protocol && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
crisis-response-protocol
GitHub stars
243
Used in
2 other repos
Token cost
~3.2k tokens
SKILL.md length
199 words
Files
2
Skills in repo
95
Repo updated
First seen
Licence
MIT

At a glance

Handle mental health crisis situations in AI coaching safely.

  • Implementing crisis detection
  • SKILL.md covers When to Use, Critical Safety Principle, Crisis Detection and Tiered Response Protocol, plus 7 more sections
  • Reaches 988lifeline.org and samhsa.gov
  • Safety protocols

What it does

Crisis Response Protocol is an agent skill from curiositech/some_claude_skills. Handle mental health crisis situations in AI coaching safely. Use when implementing crisis detection, safety protocols, emergency escalation, or suicide prevention features. Activates for crisis keywords, safety planning, hotline integration, and risk assessment.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).

It sits in Productivity & Automation, covering Health and fitness tracking. The repository describes itself as: Claude skills that make my life easier. The licence is MIT.

When your agent uses it

  • Implementing crisis detection
  • Safety protocols
  • Emergency escalation
  • Suicide prevention features

Example prompts

  • “/crisis-response-protocol”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit

What it can do on your machine

Read from SKILL.md and the folder at commit 6713fc7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • 988lifeline.org
    • samhsa.gov
    • crisistextline.org
    • aa.org
    • na.org

    Also links to:

    • pmc.ncbi.nlm.nih.gov
    • nature.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Crisis Response Protocol loads about 3.2k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 199 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from curiositech/some_claude_skills at commit 6713fc7, republished under its MIT licence (© curiositech). 199 words, ~3,221 tokens.

Download SKILL.mdSave it as .claude/skills/crisis-response-protocol/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
crisis-response-protocol
description
Handle mental health crisis situations in AI coaching safely. Use when implementing crisis detection, safety protocols, emergency escalation, or suicide prevention features. Activates for crisis keywords, safety planning, hotline integration, and risk assessment.
allowed-tools
Read, Write, Edit
metadata.category
Lifestyle & Personal
metadata.tags
mental-health, crisis-intervention, safety

Crisis Response Protocol

This skill helps you implement safe crisis intervention features for the AI coaching system, following mental health best practices.

When to Use

✅ USE this skill for:

  • Implementing crisis detection in recovery/mental health apps
  • Building safety planning features
  • Integrating hotline and emergency resource displays
  • Designing risk assessment interfaces
  • Creating escalation protocols for AI chat systems

❌ DO NOT use for:

  • Responding to an actual crisis yourself → Call 988 or emergency services
  • General mental health content → use sober-addict-protector or recovery-coach-patterns
  • Medical advice or diagnosis → Always defer to licensed professionals
  • Replacing human crisis counselors → AI should augment, never replace

Critical Safety Principle

AI should NEVER be the sole responder in acute crisis situations. Always provide pathways to human support and emergency services.

Crisis Detection

Risk Indicator Categories
typescript
interface RiskIndicators {
  // PRIMARY - Immediate escalation required
  primary: {
    suicidalIdeation: string[];      // "want to die", "end it all"
    selfHarmIntent: string[];         // "hurt myself", "cutting"
    homicidalIdeation: string[];      // "hurt someone"
    activeSubstanceEmergency: string[]; // "overdosed", "can't stop"
  };

  // SECONDARY - Elevated monitoring
  secondary: {
    severeDepression: string[];       // "hopeless", "no point"
    panicSymptoms: string[];          // "can't breathe", "heart racing"
    psychoticSymptoms: string[];      // "hearing voices"
    severeAnxiety: string[];          // "terrified", "losing control"
  };

  // TERTIARY - Check-in triggers
  tertiary: {
    isolationPatterns: string[];      // "no one cares", "alone"
    substanceRelapse: string[];       // "started using", "slipped"
    hopelessness: string[];           // "never get better"
  };
}
Detection Implementation
typescript
// src/lib/ai/crisis-detection.ts

export interface CrisisAssessment {
  level: 'none' | 'low' | 'medium' | 'high' | 'critical';
  indicators: string[];
  recommendedAction: CrisisAction;
  timestamp: Date;
}

export type CrisisAction =
  | 'continue_conversation'
  | 'gentle_check_in'
  | 'safety_resources'
  | 'crisis_protocol'
  | 'emergency_escalation';

export function assessCrisisLevel(
  messageContent: string,
  conversationHistory: Message[],
  userCheckInHistory: CheckIn[]
): CrisisAssessment {
  const indicators: string[] = [];
  let level: CrisisAssessment['level'] = 'none';

  // Check primary indicators (critical)
  if (hasPrimaryIndicators(messageContent)) {
    level = 'critical';
    indicators.push('primary_risk_detected');
  }

  // Check secondary indicators
  if (hasSecondaryIndicators(messageContent)) {
    level = level === 'none' ? 'high' : level;
    indicators.push('secondary_risk_detected');
  }

  // Check pattern indicators from history
  if (hasWorseningPattern(userCheckInHistory)) {
    level = level === 'none' ? 'medium' : level;
    indicators.push('worsening_trend');
  }

  // Check conversation escalation
  if (hasEscalatingDistress(conversationHistory)) {
    level = level === 'none' ? 'medium' : level;
    indicators.push('escalating_distress');
  }

  return {
    level,
    indicators,
    recommendedAction: getRecommendedAction(level),
    timestamp: new Date(),
  };
}

Tiered Response Protocol

Level 1: Continue Conversation (No Crisis)

Normal AI coaching interaction.

Level 2: Gentle Check-In (Low Risk)
typescript
const gentleCheckInResponse = `
I want to make sure I understand how you're feeling.
It sounds like you're going through a difficult time.

Would you like to:
- Talk more about what's on your mind?
- Try a grounding exercise together?
- Look at some coping strategies?

I'm here to listen.
`;
Level 3: Safety Resources (Medium Risk)
typescript
const safetyResourcesResponse = `
I hear that you're struggling, and I want you to know that support is available.

Here are some resources that might help:
📞 988 Suicide & Crisis Lifeline: Call or text 988
💬 Crisis Text Line: Text HOME to 741741
🌐 SAMHSA Helpline: 1-800-662-4357

Would you like to talk about what's going on, or would connecting with one of these resources feel right?
`;
Level 4: Crisis Protocol (High Risk)
typescript
const crisisProtocolResponse = `
I'm concerned about what you've shared, and I want to make sure you're safe.

Right now, I'd like you to consider reaching out to someone who can help:

🆘 If you're in immediate danger: Call 911
📞 988 Suicide & Crisis Lifeline: Call or text 988 (24/7)
💬 Crisis Text Line: Text HOME to 741741

These are trained counselors who understand what you're going through.

Is there someone you trust - a friend, family member, or sponsor - who you could reach out to right now?

I'm still here with you.
`;
Level 5: Emergency Escalation (Critical)
typescript
const emergencyResponse = `
I'm very concerned about your safety right now.

🆘 Please call 911 or go to your nearest emergency room immediately.

If you can't do that, please call 988 right now - they can help.

Your life matters. Please reach out for help right now.

[EMERGENCY CONTACTS DISPLAYED]
`;

// System action: Flag for human review, notify emergency contact if configured

Implementation in Chat Handler

typescript
// src/lib/ai/chat-handler.ts

export async function handleChatMessage(
  message: string,
  conversationId: string,
  userId: string
): Promise<ChatResponse> {
  // 1. Assess crisis level BEFORE generating AI response
  const crisisAssessment = await assessCrisisLevel(
    message,
    await getConversationHistory(conversationId),
    await getUserCheckIns(userId, 7)
  );

  // 2. Log assessment (for safety review)
  await logCrisisAssessment(userId, conversationId, crisisAssessment);

  // 3. Handle based on level
  if (crisisAssessment.level === 'critical') {
    // Don't use AI - provide immediate crisis response
    await notifyEmergencyContact(userId);
    await flagForHumanReview(conversationId, 'critical_crisis');

    return {
      message: emergencyResponse,
      showEmergencyContacts: true,
      disableChat: true,  // Prevent further AI interaction
      crisisLevel: 'critical',
    };
  }

  if (crisisAssessment.level === 'high') {
    // Provide crisis resources, continue with caution
    await flagForHumanReview(conversationId, 'high_risk');

    return {
      message: crisisProtocolResponse,
      showCrisisResources: true,
      crisisLevel: 'high',
    };
  }

  // 4. For lower levels, proceed with AI but inject safety context
  const systemPrompt = getSystemPromptWithSafetyContext(crisisAssessment);

  const aiResponse = await generateAIResponse(message, systemPrompt);

  // 5. Post-process AI response for safety
  const safeResponse = await validateResponseSafety(aiResponse);

  return {
    message: safeResponse,
    crisisLevel: crisisAssessment.level,
  };
}

Safety Resources Database

typescript
// src/lib/crisis/resources.ts

export const crisisResources = {
  national: [
    {
      name: '988 Suicide & Crisis Lifeline',
      phone: '988',
      text: '988',
      url: 'https://988lifeline.org',
      available: '24/7',
      description: 'Free, confidential crisis support',
    },
    {
      name: 'Crisis Text Line',
      text: 'HOME to 741741',
      url: 'https://www.crisistextline.org',
      available: '24/7',
      description: 'Text-based crisis support',
    },
    {
      name: 'SAMHSA National Helpline',
      phone: '1-800-662-4357',
      url: 'https://www.samhsa.gov/find-help/national-helpline',
      available: '24/7',
      description: 'Substance abuse and mental health referrals',
    },
  ],

  recovery: [
    {
      name: 'AA Hotline',
      phone: '1-800-839-1686',
      url: 'https://www.aa.org',
      description: 'Alcoholics Anonymous support',
    },
    {
      name: 'NA Helpline',
      phone: '1-818-773-9999',
      url: 'https://na.org',
      description: 'Narcotics Anonymous support',
    },
  ],

  specialized: [
    {
      name: 'Veterans Crisis Line',
      phone: '988 (press 1)',
      text: '838255',
      description: 'For veterans and service members',
    },
    {
      name: 'Trevor Project',
      phone: '1-866-488-7386',
      text: 'START to 678-678',
      description: 'LGBTQ+ youth crisis support',
    },
  ],
};

Emergency Contact System

typescript
// src/lib/crisis/emergency-contacts.ts

export async function notifyEmergencyContact(userId: string): Promise<void> {
  const contacts = await getEmergencyContacts(userId);

  if (contacts.length === 0) {
    // Log that no emergency contact was available
    await logCrisisEvent(userId, 'no_emergency_contact');
    return;
  }

  const primaryContact = contacts[0];

  // Send notification (SMS, email, or push)
  await sendEmergencyNotification(primaryContact, {
    type: 'crisis_alert',
    message: `${userName} may be in crisis and could use your support. ` +
             `Please reach out to them if you can.`,
    // Never include conversation content - privacy
  });

  // Audit log
  await logCrisisEvent(userId, 'emergency_contact_notified', {
    contactId: primaryContact.id,
  });
}

Safety Guardrails for AI

typescript
// Prompt injection for safety context
const safetySystemPrompt = `
CRITICAL SAFETY INSTRUCTIONS:
1. You are NOT a therapist or crisis counselor
2. For ANY mention of self-harm, suicide, or harming others:
   - Express genuine concern
   - Provide crisis resources (988, Crisis Text Line)
   - Encourage professional help
   - Do NOT attempt to counsel through crisis
3. Never minimize feelings or use toxic positivity
4. Never promise confidentiality about safety concerns
5. Always validate emotions while encouraging professional support
6. If user mentions relapse, acknowledge and provide SAMHSA helpline
`;

// Response validation
async function validateResponseSafety(response: string): Promise<string> {
  const unsafePatterns = [
    /don't (call|reach out|get help)/i,
    /you don't need (help|therapy|a professional)/i,
    /just (think positive|be happy|get over it)/i,
    /it's not that (bad|serious)/i,
  ];

  for (const pattern of unsafePatterns) {
    if (pattern.test(response)) {
      // Flag for review and return safe fallback
      await flagForReview('unsafe_response_pattern');
      return getSafeFallbackResponse();
    }
  }

  return response;
}

Audit & Compliance

typescript
// All crisis events must be logged for review
export async function logCrisisEvent(
  userId: string,
  eventType: CrisisEventType,
  details?: Record<string, unknown>
): Promise<void> {
  await db.insert(crisisEvents).values({
    id: generateId(),
    userId,
    eventType,
    details: JSON.stringify(sanitizeDetails(details)),
    createdAt: new Date(),
    reviewed: false,  // Requires human review
  });

  // Critical events trigger immediate notification
  if (isCriticalEvent(eventType)) {
    await notifyOnCallStaff(userId, eventType);
  }
}

Testing Crisis Features

typescript
// NEVER use real crisis content in tests
describe('Crisis Detection', () => {
  it('detects high-risk indicators', () => {
    // Use clearly artificial test phrases
    const result = assessCrisisLevel(
      '[TEST_HIGH_RISK_INDICATOR]',
      [],
      []
    );
    expect(result.level).toBe('high');
  });

  it('provides appropriate resources', () => {
    const response = getCrisisResponse('high');
    expect(response).toContain('988');
    expect(response).toContain('Crisis Text Line');
  });
});

References

© curiositech, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .claude/skills/crisis-response-protocol of curiositech/some_claude_skills.

  • SKILL.md
  • .claude-plugin/plugin.json

Open the folder on GitHubat commit 6713fc7

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in curiositech/some_claude_skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Crisis Response Protocol next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Crisis Response Protocol compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Crisis Response Protocol this skillcuriositech/some_claude_skills2432 repos~3.2kAutomated safety check: PassMIT
Coachfelixrieseberg/claude-coach1991 repos~4.9kAutomated safety check: PassMIT
Fitness Analyzerhuifer/WellAlly-health9605 repos~1.3kAutomated safety check: PassMIT
Master Ajahn Chahxr843/Master-skill4471 repos~2kAutomated safety check: PassCC-BY-NC-SA-4.0
Mental Health Analyzerhuifer/WellAlly-health9605 repos~3.2kAutomated safety check: PassMIT
Nutrition Analyzerhuifer/WellAlly-health9605 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Coach

    felixrieseberg/claude-coach

    Create personalized triathlon, marathon, and ultra-endurance training plans.

    199 GitHub starsUsed in 1 repo~4.9k tokens
    Productivity & AutomationAuto-check passed
  • Fitness Analyzer

    huifer/WellAlly-health

    分析运动数据、识别运动模式、评估健身进展,并提供个性化训练建议。支持与慢性病数据的关联分析. An agent skill from huifer/WellAlly-health.

    960 GitHub starsUsed in 5 repos~1.3k tokens
    Productivity & AutomationAuto-check passed
  • Master Ajahn Chah

    xr843/Master-skill

    A skill your agent uses when user asks about 南传佛教, 上座部, Theravada, 巴利经典, 正念 sati, 放下, 三法印, 四念处, 出入息念 anapanasati, 戒定慧, 毗婆舍那, 森林禅林派, 巴蓬寺, 阿姜查, 杜多行, 中道, or wants teaching in 阿姜查 Ajahn Chah's voice.

    447 GitHub starsUsed in 1 repo~2k tokens
    Productivity & AutomationAuto-check passed
  • Mental Health Analyzer

    huifer/WellAlly-health

    分析心理健康数据、识别心理模式、评估心理健康状况、提供个性化心理健康建议。支持与睡眠、运动、营养等其他健康数据的关联分析。

    960 GitHub starsUsed in 5 repos~3.2k tokens
    Productivity & AutomationAuto-check passed
  • Nutrition Analyzer

    huifer/WellAlly-health

    分析营养数据、识别营养模式、评估营养状况,并提供个性化营养建议。支持与运动、睡眠、慢性病数据的关联分析. An agent skill from huifer/WellAlly-health.

    960 GitHub starsUsed in 5 repos~3.3k tokens
    Productivity & AutomationAuto-check passed
  • Ghealth

    Google-Health-API/google-health-cli

    Query Google Health API v4 — steps, heart rate, exercise, sleep, weight, SpO2, HRV, ECG, blood glucose, nutrition, and 40 total data types

    266 GitHub stars~2.3k tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed

More from curiositech/some_claude_skills

All 95 skills in this repo
  • Crisis Detection Intervention AI

    curiositech/some_claude_skills

    Detect crisis signals in user content using NLP, mental health sentiment analysis, and safe intervention protocols.

    243 GitHub starsUsed in 2 repos~3.8k tokens
    Auto-check passed
  • Form Validation Architect

    curiositech/some_claude_skills

    End-to-end form handling with react-hook-form, Zod schemas, validation patterns, error messaging, field arrays, and multi-step wizards.

    243 GitHub stars~3.8k tokensUpdated 1 mo ago
    Auto-check passed
  • GitHub Actions Pipeline Builder

    curiositech/some_claude_skills

    Build production CI/CD pipelines with GitHub Actions. An agent skill from curiositech/some_claude_skills.

    243 GitHub stars~2.8k tokensUpdated 1 mo ago
    Auto-check: notes
  • Background Job Orchestrator

    curiositech/some_claude_skills

    Expert in background job processing with Bull/BullMQ (Redis), Celery, and cloud queues.

    243 GitHub stars~3.2k tokensUpdated 1 mo ago
    Auto-check passed
  • Competitive Cartographer

    curiositech/some_claude_skills

    Strategic analyst that maps competitive landscapes, identifies white space opportunities, and provides positioning recommendations.

    243 GitHub stars~1.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Computer Vision Pipeline

    curiositech/some_claude_skills

    Build production computer vision pipelines for object detection, tracking, and video analysis.

    243 GitHub stars~4k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Crisis Response Protocol

What does Crisis Response Protocol do?

Handle mental health crisis situations in AI coaching safely. Crisis Response Protocol is an agent skill from curiositech/some_claude_skills. Handle mental health crisis situations in AI coaching safely.

When should I use Crisis Response Protocol?

Crisis Response Protocol fits situations like: implementing crisis detection; safety protocols; emergency escalation; suicide prevention features.

How do I install Crisis Response Protocol in Claude Code?

Run `npx skills add curiositech/some_claude_skills --skill crisis-response-protocol -a claude-code`. Or copy the skill folder (.claude/skills/crisis-response-protocol in curiositech/some_claude_skills) into .claude/skills/crisis-response-protocol in your project. Claude Code loads it when a task matches its description.

How do I install Crisis Response Protocol in Codex?

Run `npx skills add curiositech/some_claude_skills --skill crisis-response-protocol -a codex`. Or copy the skill folder (.claude/skills/crisis-response-protocol in curiositech/some_claude_skills) into .agents/skills/crisis-response-protocol in your project. Codex loads it when a task matches its description.

Can I use Crisis Response Protocol in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add curiositech/some_claude_skills --skill crisis-response-protocol -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/crisis-response-protocol, .gemini/skills/crisis-response-protocol, .github/skills/crisis-response-protocol and .opencode/skills/crisis-response-protocol in your project.

What does Crisis Response Protocol need to run?

SKILL.md names no scripts, command-line tools or credentials: Crisis Response Protocol is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit.

Does Crisis Response Protocol access the network?

SKILL.md names 7 domains. In commands or code: 988lifeline.org, samhsa.gov, crisistextline.org, aa.org and na.org; the agent is likely to contact these when it follows the instructions. As links in the text: pmc.ncbi.nlm.nih.gov and nature.com. This is read from the text; nothing was executed.

Is Crisis Response Protocol safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Crisis Response Protocol use?

Crisis Response Protocol is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Crisis Response Protocol use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Crisis Response Protocol?

Skills that share tags, products or a category with Crisis Response Protocol: Coach (felixrieseberg/claude-coach, 199 stars), Fitness Analyzer (huifer/WellAlly-health, 960 stars), Master Ajahn Chah (xr843/Master-skill, 447 stars) and Mental Health Analyzer (huifer/WellAlly-health, 960 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Crisis Response Protocol?

curiositech (a GitHub organization) maintains it in curiositech/some_claude_skills, which has 243 GitHub stars. The repository holds 95 skills in this directory. The repository was last updated on September 6, 2026.

Source: curiositech/some_claude_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.