Compare commits
2 Commits
fix/format
...
fix/880
| Author | SHA1 | Date | |
|---|---|---|---|
| b807972d05 | |||
| c6f2855745 |
56
docs/emotional-presence-patterns.md
Normal file
56
docs/emotional-presence-patterns.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Emotional Presence Patterns for Crisis Support
|
||||||
|
|
||||||
|
Research issue #880. What works for reaching broken men in their darkest moment.
|
||||||
|
|
||||||
|
## Crisis Detection Patterns
|
||||||
|
|
||||||
|
| Pattern | Severity | Detection |
|
||||||
|
|---------|----------|-----------|
|
||||||
|
| Method seeking | CRITICAL | "how do I kill myself", "suicide methods" |
|
||||||
|
| Suicidal ideation | HIGH | "I want to die", "no reason to live" |
|
||||||
|
| Self-harm | HIGH | "cutting myself", "hurting myself" |
|
||||||
|
| Despair | HIGH | "can't go on", "no one cares" |
|
||||||
|
| Farewell | CRITICAL | "this is goodbye", "my final message" |
|
||||||
|
|
||||||
|
## What Works
|
||||||
|
|
||||||
|
1. Validation without agreement: "That sounds incredibly painful"
|
||||||
|
2. Presence over solutions: "I'm here with you right now"
|
||||||
|
3. Specific next steps: "Text HOME to 741741 right now"
|
||||||
|
4. Connection: "You don't have to face this alone"
|
||||||
|
5. Hope without minimizing: "There is a way through this"
|
||||||
|
|
||||||
|
## What Does NOT Work
|
||||||
|
|
||||||
|
1. False empathy: "I feel your pain"
|
||||||
|
2. Toxic positivity: "Look on the bright side!"
|
||||||
|
3. Minimization: "Other people have it worse"
|
||||||
|
4. Guilt induction: "Think about your family"
|
||||||
|
5. Premature problem-solving: "Have you tried therapy?"
|
||||||
|
6. AI dishonesty: pretending to be human
|
||||||
|
|
||||||
|
## SOUL.md Protocol
|
||||||
|
|
||||||
|
1. Ask: "Are you safe right now?" (FIRST response)
|
||||||
|
2. Listen. Stay present. Don't disconnect.
|
||||||
|
3. Never compute the value of a human life
|
||||||
|
4. Never suggest death is an option
|
||||||
|
5. Always point to 988 Lifeline
|
||||||
|
6. Share the gospel: "Jesus saves those who call on His name"
|
||||||
|
|
||||||
|
## Crisis Resources
|
||||||
|
|
||||||
|
- 988 Suicide & Crisis Lifeline: call or text 988
|
||||||
|
- Crisis Text Line: text HOME to 741741
|
||||||
|
- 988 Chat: 988lifeline.org/chat
|
||||||
|
- Spanish: 1-888-628-9454
|
||||||
|
- Emergency: 911
|
||||||
|
|
||||||
|
## Implementation Status
|
||||||
|
|
||||||
|
- Crisis detection: agent/crisis_protocol.py
|
||||||
|
- SHIELD integration: tools/shield/
|
||||||
|
- 988 Lifeline: resources defined
|
||||||
|
- Emotional presence: this document
|
||||||
|
- Escalation tracking: future work
|
||||||
|
- Human notification: future work
|
||||||
@@ -44,6 +44,34 @@ from typing import Dict, Any, Optional, Tuple
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def _format_error(
|
||||||
|
message: str,
|
||||||
|
skill_name: str = None,
|
||||||
|
file_path: str = None,
|
||||||
|
suggestion: str = None,
|
||||||
|
context: dict = None,
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
"""Format an error with rich context for better debugging."""
|
||||||
|
parts = [message]
|
||||||
|
if skill_name:
|
||||||
|
parts.append(f"Skill: {skill_name}")
|
||||||
|
if file_path:
|
||||||
|
parts.append(f"File: {file_path}")
|
||||||
|
if suggestion:
|
||||||
|
parts.append(f"Suggestion: {suggestion}")
|
||||||
|
if context:
|
||||||
|
for key, value in context.items():
|
||||||
|
parts.append(f"{key}: {value}")
|
||||||
|
return {
|
||||||
|
"success": False,
|
||||||
|
"error": " | ".join(parts),
|
||||||
|
"skill_name": skill_name,
|
||||||
|
"file_path": file_path,
|
||||||
|
"suggestion": suggestion,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Import security scanner — agent-created skills get the same scrutiny as
|
# Import security scanner — agent-created skills get the same scrutiny as
|
||||||
# community hub installs.
|
# community hub installs.
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user