Skip to content

simonplmak-cloud/depression-sensitive-web-content

Repository files navigation

Depression-Sensitive Web Content Support (DS-WCS)

Build more inclusive digital experiences. This OpenCode skill helps teams identify and fix content patterns that create cognitive barriers or emotional distress for users with depression, anxiety, and other conditions affecting executive function. Backed by WCAG 2.2, W3C COGA, ISO 9241-110, and ISO/IEC 30071-1 standards.

Perfect for: UX writers, content designers, accessibility specialists, and product teams building healthcare, financial, government, or any user-facing applications.

Standards License OpenCode Skill Maintained by


What Is This?

DS-WCS is an OpenCode agent skill that helps content designers, UX writers, and accessibility specialists create emotionally safe, cognitively accessible web content. It addresses:

  • Shame and blame language in error messages and feedback
  • Cognitive load from complex instructions and memory-dependent interfaces
  • Urgency pressure that may induce anxiety
  • Error recovery with clear, actionable guidance
  • Supportive tone that respects users' emotional states

This is a UX and content accessibility tool, NOT a clinical resource. It focuses on interface design patterns that support users with cognitive differences, including those related to depression, anxiety, and other conditions affecting executive function.


Why Depression-Sensitive Content Matters

Depression affects cognitive function, including:

  • Working memory: Reduced capacity to hold information across steps
  • Executive function: Impaired planning and decision-making
  • Attention: Difficulty concentrating and staying on task
  • Processing speed: Slower information processing

These differences mean that:

  • Shame-inducing language increases task abandonment
  • Complex, multi-step processes cause users to lose progress
  • Unclear error messages lead to frustration and disengagement
  • Time pressure creates additional cognitive burden

By applying evidence-based content patterns, you can improve task completion rates and reduce emotional distress for users with cognitive differences.


Standards Coverage

This skill maps recommendations to four international standards:

Standard Focus Relevance
WCAG 2.2 Web Content Accessibility Success criteria for error handling, labels, timeouts
W3C COGA Cognitive Accessibility User needs for clear content, avoiding mistakes, help provision
ISO 9241-110 Dialogue Principles Self-descriptiveness, controllability, error tolerance
ISO/IEC 30071-1 Accessibility Policy Emotional safety, inclusive language, dignity

How OpenCode Discovers Skills

OpenCode discovers skills from:

  1. Project-local skills: .opencode/skills/<skill-name>/SKILL.md
  2. Global skills: ~/.config/opencode/skills/<skill-name>/SKILL.md

The skill directory name must match the name field in the YAML frontmatter.

Installation

Clone this repository to your project's .opencode/skills/ directory:

# In your project root
mkdir -p .opencode/skills
git clone https://github.com/simonplmak-cloud/depression-sensitive-web-content.git \
  .opencode/skills/depression-sensitive-web-content

Or install globally for all projects:

mkdir -p ~/.config/opencode/skills
git clone https://github.com/simonplmak-cloud/depression-sensitive-web-content.git \
  ~/.config/opencode/skills/depression-sensitive-web-content

For Fork Maintainers

If you have forked this skill to customize it for your organization, run the included setup script to update all repository references automatically:

chmod +x scripts/customize-fork.sh
./scripts/customize-fork.sh

The script prompts for your GitHub username and repository name, then replaces all hardcoded references across the documentation. After running it, review the changes with git diff, commit, and push.

For manual customization steps or instructions on syncing with upstream, see FORK_INSTRUCTIONS.md.


Usage Examples

Example 1: Audit Request

User Input:

Audit src/components/ErrorBoundary.tsx for depression-sensitive content issues

OpenCode Output:

## Findings

### HIGH Severity
- **src/components/ErrorBoundary.tsx:15** - Blame language in error message
  - Original: "You broke something. This page doesn't exist."
  - Standards: WCAG 3.3.1 (Error Identification), ISO 9241-110 5.7 (Error tolerance)

- **src/components/ErrorBoundary.tsx:18** - Missing recovery path
  - Original: "Error occurred"
  - Standards: WCAG 3.3.3 (Error Suggestion), COGA Objective 2

### MEDIUM Severity
- **src/components/ErrorBoundary.tsx:22** - Excessive urgency
  - Original: "Try again NOW!"
  - Standards: WCAG 2.2.6 (Timeouts), ISO 9241-110 5.5 (Controllability)

## Recommended Rewrites

### Error Message Rewrite
**Before:**

You broke something. This page doesn't exist.


**After:**

Page not found.

The page you're looking for doesn't exist or has been moved. Check the URL for typos, or return to the homepage.


**Rationale:**
- Removed second-person blame ("You broke")
- Provided specific recovery actions
- Added neutral punctuation (no exclamation points)

**Standards:**
- WCAG 3.3.1 (Error Identification)
- WCAG 3.3.3 (Error Suggestion)
- W3C COGA Objective 2: Help users avoid mistakes
- ISO 9241-110: Error tolerance

## Standards Traceability Summary
| Category | WCAG 2.2 | COGA | ISO 9241-110 | ISO/IEC 30071-1 |
|----------|----------|------|--------------|-----------------|
| Blame Language | 3.3.1 | Obj 2 | 5.7 | 8.2, 9.1 |
| Missing Recovery | 3.3.3 | Obj 2 | 5.7 | 9.1 |

Example 2: Rewrite Request

User Input:

Rewrite this error message to be more supportive:

"Invalid email! Try again."

OpenCode Output:

## Recommended Rewrite

**Before:**
"Invalid email! Try again."

**After:**
"Email format not recognized.

Please enter an email address in this format: name@domain.com"

**Rationale:**
- Removed blame attribution ("Invalid!" implies user error)
- Removed exclamation point (calm tone)
- Provided concrete example (reduces memory load)
- Included specific format guidance (recovery path)

**Standards Mapping:**
- WCAG 3.3.1 (Error Identification): Error is clearly described
- WCAG 3.3.3 (Error Suggestion): Format example provided
- W3C COGA Objective 2: Help users avoid mistakes
- ISO 9241-110: Error tolerance, Self-descriptiveness

Example 3: Empty State Review

User Input:

Review this empty state from a wellness app:

"No activities logged. You should track your mood daily to see your progress over time."

OpenCode Output:

## Findings

### HIGH Severity
- **Obligation language**: "You should track your mood daily"
- **Shame implication**: "to see your progress" implies current lack of progress

### Recommended Rewrite

**Before:**
"No activities logged. You should track your mood daily to see your progress over time."

**After:**
"When you log activities, they'll appear here.

Optional: Track your mood daily to identify patterns in your energy and wellbeing."

**Rationale:**
- Removed "should" (obligation language)
- Changed "progress" to neutral "patterns"
- Emphasized optionality
- Added supportive framing

**Standards:**
- WCAG 3.3.3 (Error Suggestion)
- W3C COGA Objective 1: Clear, simple, non-obligatory language
- W3C COGA Objective 4: Provide help without pressure
- ISO 9241-110: Controllability

File Structure

depression-sensitive-web-content/
├── .opencode/
│   └── skills/
│       └── depression-sensitive-web-content/
│           ├── SKILL.md                          # Main skill definition
│           └── resources/
│               └── implementation-guide.md      # Rewrite library, standards matrix, audit checklist
├── AGENTS.md                                     # Agent context and usage
├── README.md                                     # This file
└── LICENSE                                       # MIT License

Rewrite Library Quick Reference

Principle Avoid Use Instead
Remove Shame/Blame "You broke something" "Page not found"
Reduce Urgency "Sign up now!" "Create account"
Self-Descriptive CTAs "Submit" "Create account"
Error Recovery "Invalid" "Format not recognized. Example: name@domain.com"
Reduce Memory "Call for policy number" "Policy number (on card, top right)"
Scannable Language Long paragraphs Bullets, headings, short sections
Calm Microcopy "Congratulations!" "Account created successfully"

Contributing

Contributions are welcome from the accessibility, content design, and UX writing communities.

See CONTRIBUTING.md for detailed guidelines on format requirements, standards mapping, code of conduct, and the PR review process.

Quick Start

  1. Fork this repository
  2. Create a feature branch: git checkout -b feature/add-examples
  3. Follow the formats in CONTRIBUTING.md
  4. Test locally in an OpenCode project
  5. Open a pull request with a clear description

For major changes, open an issue first to discuss scope and approach.

What to Contribute

Contribution Type File to Edit Section
Before/after examples resources/implementation-guide.md Section A.2
Audit checklist items resources/implementation-guide.md Section C
Standards improvements resources/implementation-guide.md Section B
Documentation README.md, SKILL.md, FORK_INSTRUCTIONS.md Any

Reporting Issues

Found a problematic pattern not yet covered? Open an issue with:

  • The pattern or content type
  • Why it creates cognitive or emotional barriers
  • A proposed remediation or before/after example

License

This project is licensed under the MIT License - see the LICENSE file for details.

To use a different license:

  1. Replace the LICENSE file with your preferred license text
  2. Update the license field in SKILL.md frontmatter

Non-Clinical Disclaimer

This tool addresses content and UX design for emotional safety and cognitive accessibility. It is NOT:

  • A clinical assessment tool
  • A diagnostic instrument
  • A treatment recommendation resource
  • A substitute for mental health professional guidance

For mental health concerns, consult qualified healthcare providers.


Resources


Version 1.0.0 | February 2026

Packages

 
 
 

Contributors

Languages