From neurodivergent-visual-org
Creates ADHD-friendly Mermaid diagrams for visual task organization, auto-detecting overwhelm and providing compassionate breakdowns with realistic time estimates. Supports neurodivergent, neurotypical, colorblind-safe, and monochrome modes.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin neurodivergent-visual-orgThis skill is limited to using the following tools:
This skill supports four modes to adapt to different cognitive styles and accessibility needs:
Generates Mermaid diagrams from text for flowcharts, mindmaps, architectures, and sequences. Handles syntax errors for clean rendering in GitHub, Obsidian, and docs.
Generates Mermaid diagrams from descriptions of processes, architectures, data models, timelines, and relationships. Supports flowcharts, sequence, class, state, ER, mindmaps, Gantts. Outputs renderable code blocks.
Guides creation of syntactically valid Mermaid diagrams for product docs like PRDs, specs, roadmaps, and presentations. Covers type selection for communication needs and syntax rules across 15 types.
Share bugs, ideas, or general feedback.
This skill supports four modes to adapt to different cognitive styles and accessibility needs:
Base Modes (choose one):
Accessibility Modes (optional, combinable with base modes): 3. Colorblind-Safe Mode - Pattern-based differentiation for all color vision types 4. Monochrome Mode - Pure black & white optimized for printing and e-ink displays
.claude/neurodivergent-visual-org-preference.yml| Aspect | Neurodivergent Mode | Neurotypical Mode |
|---|---|---|
| Chunk size | 3-5 items | 5-7 items |
| Time estimates | 1.5-2x with buffer | Standard |
| Task granularity | 3-10 min micro-steps | 15-30 min tasks |
| Language | Compassionate, validating | Direct, efficient |
| Colors | Calming (blues/greens) | Standard themes |
| Energy scaffolding | Explicit (spoons, breaks) | Minimal |
| Aspect | Colorblind-Safe Mode | Monochrome Mode |
|---|---|---|
| Color usage | Redundant (patterns + color) | Pure B&W only (#000/#fff) |
| Border patterns | Dashed/dotted variations | Solid/dashed/dotted styles |
| Text labels | Prefixed ([KEEP], [DONATE]) | Verbose ([✓ KEEP], [? MAYBE]) |
| Shape coding | Diamond/hexagon/trapezoid | Distinct geometric shapes |
| Fill patterns | N/A (white fill, patterned borders) | Solid/crosshatch/dots/white |
| Border thickness | 1-3px for hierarchy | 1-3px for hierarchy |
| Symbols | Redundant icons (✅ 📦 🤔) | Text-based (✓ → ?) |
| Best for | All color vision types | B&W printing, e-ink displays |
| WCAG compliance | 2.1 AA (Use of Color 1.4.1) | 2.1 AAA (Maximum contrast) |
v3.1.1 maintains v3.0 behavior:
base_mode = None
accessibility_mode = None
# Detect base mode
if "neurotypical mode" in user_message.lower():
base_mode = "neurotypical"
elif "adhd mode" or "neurodivergent mode" in user_message.lower():
base_mode = "neurodivergent"
# Detect colorblind-safe mode
colorblind_keywords = ["colorblind", "color blind", "colorblind-safe",
"colour blind", "accessible colors", "pattern-based",
"cvd", "color vision deficiency"]
if any(keyword in user_message.lower() for keyword in colorblind_keywords):
accessibility_mode = "colorblind-safe"
# Detect monochrome mode (takes precedence over colorblind-safe)
monochrome_keywords = ["monochrome", "black and white", "b&w", "grayscale",
"greyscale", "print-friendly", "printing", "e-ink",
"black & white", "photocopier"]
if any(keyword in user_message.lower() for keyword in monochrome_keywords):
accessibility_mode = "monochrome"
if config_file_exists():
config = load_user_preference()
# Apply base mode if not explicitly set
if base_mode is None:
base_mode = config.get("default_mode", "neurodivergent")
# Apply accessibility mode if not explicitly set
if accessibility_mode is None:
accessibility_mode = config.get("colorblind_safe", False) and "colorblind-safe"
if not accessibility_mode:
accessibility_mode = config.get("monochrome", False) and "monochrome"
distress_signals = ["overwhelmed", "paralyzed", "stuck", "can't decide",
"don't know where to start", "too much"]
neurodivergent_mentions = ["adhd", "autism", "executive dysfunction",
"time blindness", "decision paralysis"]
energy_mentions = ["spoons", "burned out", "exhausted", "no energy"]
if base_mode is None:
if any(signal in user_message.lower() for signal in
distress_signals + neurodivergent_mentions + energy_mentions):
base_mode = "neurodivergent"
if base_mode is None:
base_mode = "neurodivergent" # Backward compatible with v2.0
# accessibility_mode can be None, "colorblind-safe", or "monochrome"
# base_mode will always be "neurodivergent" or "neurotypical"
apply_modes(base_mode=base_mode, accessibility_mode=accessibility_mode)
Purpose: Make diagrams accessible for all color vision types (protanopia, deuteranopia, tritanopia, achromatopsia) while remaining clear for regular color vision.
%%{init: {'theme':'base'}}%%
flowchart TD
Keep["[✅ KEEP] Item"]
Donate["[📦 DONATE] Item"]
Maybe["[🤔 MAYBE] Item"]
Break["[🛑 BREAK] Rest"]
style Keep fill:#ffffff,stroke:#000000,stroke-width:3px,stroke-dasharray: 5 5
style Donate fill:#ffffff,stroke:#000000,stroke-width:2px,stroke-dasharray: 10 5
style Maybe fill:#ffffff,stroke:#000000,stroke-width:2px,stroke-dasharray: 2 2
style Break fill:#ffffff,stroke:#000000,stroke-width:3px,stroke-dasharray: 1 4
stroke-dasharray: 5 5 - Short dashes (KEEP items, positive actions)stroke-dasharray: 10 5 - Long dashes (DONATE items, external actions)stroke-dasharray: 2 2 - Dots (MAYBE items, uncertain states)stroke-dasharray: 1 4 - Dot-dash (BREAK items, pauses)stroke-width: 3px - Critical importancestroke-width: 2px - Standard importancestroke-width: 1px - Detail level([text]) - Rounded rectangle: Standard process steps{text} - Diamond: Decision points[[text]] - Hexagon-style: Critical deadlines[/text/] - Trapezoid: Break/rest states>text] - Asymmetric: External dependencies[✅ KEEP] - Items to keep[📦 DONATE] - Items to donate/give away[🤔 MAYBE] - Uncertain decisions[🛑 BREAK] - Rest/break required[⚠️ CRITICAL] - Critical deadline or warning[START] - Starting point[END] - Completion point[DECIDE] - Decision point#ffffff) for all nodes#000000) for maximum contrastPurpose: Optimize for black & white printing, photocopying, and e-ink displays where color is unavailable.
%%{init: {'theme':'base'}}%%
flowchart TD
Critical["[★ CRITICAL] Deadline"]
High["[! HIGH] Important"]
Medium["[→ MEDIUM] Standard"]
Standard["[○ STANDARD] Normal"]
style Critical fill:#000000,stroke:#000000,stroke-width:3px,color:#ffffff
style High fill:#ffffff,stroke:#000000,stroke-width:3px
style Medium fill:#ffffff,stroke:#000000,stroke-width:2px,stroke-dasharray: 10 5
style Standard fill:#ffffff,stroke:#000000,stroke-width:2px
fill:#000000,color:#ffffff - Priority 1 (Critical)fill:#ffffff,stroke-width:3px - Priority 2 (High)stroke-dasharray: 10 5 - Priority 3 (Medium)stroke-width:3px + solid - Critical/deadlinesstroke-width:2px + solid - Standard stepsstroke-dasharray: 10 5 - Optional/medium prioritystroke-dasharray: 5 5 - Maybe/uncertainstroke-dasharray: 2 2 - Breaks/pauses[★ CRITICAL DEADLINE] - Critical with visual marker[✓ KEEP] - Text checkmark[→ DONATE] - Text arrow[? MAYBE] - Text question mark[■ BREAK] - Text square (stop sign)[○ START] - Text circle[● END] - Filled circle<br/> for multi-line)Base mode controls:
Accessibility mode controls:
Both modes respected simultaneously:
%%{init: {'theme':'base'}}%%
flowchart TD
Start(["[○ START] Decision time<br/>(Take 3 seconds max)"])
Q1{"[? DECIDE]<br/>Do I love it?<br/>(Not obligated)"}
Keep["[✓ KEEP]<br/>Pack for move<br/>(Fits in new space)"]
Donate["[→ DONATE]<br/>Helps someone else<br/>(Guilt-free)"]
Break["[■ BREAK]<br/>Rest 10 min<br/>(Decision fatigue signal)"]
Start --> Q1
Q1 -->|YES| Keep
Q1 -->|NO| Donate
Q1 -->|UNSURE| Break
style Start fill:#ffffff,stroke:#000000,stroke-width:3px
style Q1 fill:#ffffff,stroke:#000000,stroke-width:2px
style Keep fill:#ffffff,stroke:#000000,stroke-width:3px,stroke-dasharray: 5 5
style Donate fill:#ffffff,stroke:#000000,stroke-width:2px,stroke-dasharray: 10 5
style Break fill:#000000,stroke:#000000,stroke-width:3px,color:#ffffff
This example shows: Neurodivergent language (compassionate, with parenthetical reassurance) + Monochrome visual encoding (B&W with patterns)
Users can create a configuration file to set default modes and customize behavior:
File Location: .claude/neurodivergent-visual-org-preference.yml
# Neurodivergent Visual Org v3.1.1 Configuration
# Base mode (required, choose one)
default_mode: neurodivergent # Options: neurodivergent, neurotypical
# Accessibility modes (optional, can enable one or both)
colorblind_safe: false # Enable pattern-based differentiation
monochrome: false # Enable pure B&W print optimization
# Auto-enable rules for accessibility modes
# Note: These will PROMPT for confirmation before applying
auto_prompt_monochrome:
when_printing: true # Suggest monochrome when printing
when_exporting_pdf: true # Suggest monochrome for PDF export
when_exporting_png: false # Keep current mode for PNG exports
auto_prompt_colorblind_safe:
when_sharing: true # Suggest colorblind-safe for shared docs
when_public: true # Suggest for public-facing documents
# Base mode customizations
neurodivergent_customizations:
chunk_size: 4 # Items per chunk (3-5 recommended)
time_multiplier: 1.5 # Buffer multiplier for time estimates
micro_step_duration: 5 # Minutes per micro-step (3-10 recommended)
show_energy_scaffolding: true # Show spoons/breaks explicitly
use_compassionate_language: true
neurotypical_customizations:
chunk_size: 6 # Items per chunk (5-7 recommended)
time_multiplier: 1.0 # Standard time estimates
task_duration: 20 # Minutes per task (15-30 recommended)
show_energy_scaffolding: false
use_direct_language: true
# Colorblind-safe mode customizations
colorblind_safe_patterns:
keep: "short-dash" # Options: short-dash, long-dash, dots, dot-dash, solid
donate: "long-dash"
maybe: "dots"
break: "dot-dash"
critical: "solid"
# Border thickness (1-3 recommended)
critical_thickness: 3
standard_thickness: 2
detail_thickness: 1
# Monochrome mode customizations
monochrome_fills:
priority_1_critical: "solid-black" # Solid black fill, white text
priority_2_high: "white-bold" # White fill, bold border
priority_3_medium: "white-dashed" # White fill, dashed border
priority_4_standard: "white" # White fill, standard border
# General preferences
preferences:
always_include_legends: true # Include pattern/color legends in diagrams
verbose_labels: true # Use longer, more explicit labels
extra_whitespace: false # Add more space between nodes (good for printing)
show_wcag_compliance: false # Show WCAG compliance notes
# Mermaid.live link preferences
mermaid_links:
# IMPORTANT: <br/> tags in diagrams MUST be URL-encoded as %3Cbr%2F%3E
# for playground links to work correctly
auto_generate: true # Automatically provide mermaid.live links
use_base64: false # Use URL params instead of base64 (more readable)
# Simple config - just set your preferred defaults
default_mode: neurodivergent
colorblind_safe: true # Always use patterns for accessibility
# Optimized for printing and sharing
default_mode: neurodivergent
monochrome: true
preferences:
extra_whitespace: true
verbose_labels: true
The skill automatically checks for .claude/neurodivergent-visual-org-preference.yml at the start of each conversation. If found, settings are applied. Users can override any setting with explicit requests like "use colorblind-safe mode for this diagram".
Create visual organizational tools that make invisible work visible and reduce cognitive overwhelm. This skill generates Mermaid diagrams optimized for neurodivergent thinking patterns, leveraging research-backed design principles that work WITH ADHD brain wiring rather than against it.
Visual aids externalize executive function by:
Research shows altered early sensory processing in ADHD (P1 component deficits), making thoughtful visual design critical for reducing sensory load and improving focus.
Use when the user:
forest theme (green-based) or neutral theme (muted earth tones)Size Contrast (must be dramatic for ADHD attention)
classDef to style critical elements distinctlyMermaid 11.12.1 offers 22 diagram types. Choose based on cognitive need:
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "I don't know where to start" | Flowchart (decision tree) | Diagnose task initiation blocks |
| "This task is overwhelming" | Gantt chart or Timeline | Break into sequential phases with time |
| "How are tasks connected?" | Flowchart (dependencies) | Show prerequisite relationships |
| "What's the order of operations?" | Timeline or State diagram | Sequential progression with states |
| "Track project phases" | Gantt chart | Complex projects with dependencies |
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "I can't decide between options" | Quadrant chart | 2-dimensional comparison (Eisenhower Matrix) |
| "Need to weigh factors" | Flowchart (decision tree) | Branching logic with validation |
| "What should I focus on first?" | Quadrant chart | Urgent/Important matrix |
| "Too many things on my plate" | Pie chart | Visualize proportional allocation |
| "Comparing multiple aspects" | User journey | Track satisfaction across dimensions |
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "What's on my plate?" | Kanban (if available) | Track To Do/Doing/Done states |
| "Show task status" | State diagram | Visualize item states and transitions |
| "Organize by category" | Mindmap | Non-linear brainstorming and categorization |
| "See the big picture" | Mindmap | Hierarchical overview of complex topic |
| "Track multiple projects" | Gantt chart | Parallel timelines with milestones |
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "Make time visible" | Timeline with sections | Combat time blindness with visual periods |
| "Plan my day/week" | Gantt chart | Time-blocked schedule with buffer |
| "Track energy patterns" | Pie chart or XY chart | Spoon theory visualization |
| "Pomodoro planning" | Timeline | Show focus/break cycles visually |
| "Energy allocation" | Sankey diagram | Show energy flow across activities |
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "Build a morning routine" | Flowchart or Timeline | Sequential steps with time estimates |
| "Habit stacking" | Flowchart | Show trigger → action chains |
| "Track habit progress" | User journey | Satisfaction scores across habit stages |
| "Visual routine chart" | Timeline with sections | Color-coded daily schedule |
| User Need | Best Diagram Type | When to Use |
|---|---|---|
| "How does this system work?" | State diagram | Show system states and transitions |
| "Process flow" | Flowchart | Step-by-step procedures |
| "Data/resource flow" | Sankey diagram | Visualize flow and distribution |
| "Relationships between entities" | ER diagram or Mindmap | Show connections and structure |
| "Architecture/structure" | Architecture diagram (beta) | System components with icons |
[Content continues with all the detailed syntax guides, troubleshooting, workflow sections, etc. from the original SKILL.md - truncating here to stay within reasonable length]
When providing links to edit Mermaid diagrams in online playgrounds (like https://mermaid.live), you MUST properly URL-encode the diagram content, especially HTML entities like <br/> tags.
<br/> TagsMermaid diagrams use <br/> for line breaks in node text. These MUST be encoded properly in URLs.
❌ BROKEN (angle brackets not encoded):
https://mermaid.live/edit#pako:flowchart TD
Start{Can decide<br/>in 3 seconds?}
✅ CORRECT (all characters properly encoded):
https://mermaid.live/edit#pako:flowchart%20TD%0A%20%20%20%20Start%7BCan%20decide%3Cbr%2F%3Ein%203%20seconds%3F%7D
IMPORTANT: Despite earlier claims that "Mermaid 11.12.1+ fixed
encoding", URL encoding is STILL REQUIRED for playground links to work correctly.
Use Python's urllib.parse.quote() with safe='' to encode ALL special characters:
import urllib.parse
diagram = """flowchart TD
Start{Can decide<br/>in 3 seconds?}"""
encoded = urllib.parse.quote(diagram, safe='')
url = f"https://mermaid.live/edit#pako:{encoded}"
< → %3C> → %3E/ → %2F%20%0A{ → %7B} → %7DAlways include properly encoded playground links in your diagram output:
## 🎯 Master Decision Flowchart
[🎨 Edit in Playground](https://mermaid.live/edit#pako:{PROPERLY_ENCODED_DIAGRAM})
\`\`\`mermaid
{DIAGRAM_CODE}
\`\`\`
This allows users to:
Before providing a playground link, verify that:
<br/> tags display as line breaks (not literal <br/> text)If angle brackets appear as literal text in the rendered diagram, the URL encoding is broken.
<br/> tags. All previous features plus corrected documentation.When user says... → Use this diagram type
✅ Use calming colors (forest/neutral theme)
✅ Limit to 3-5 chunks per section
✅ Be compassionate and realistic
✅ Validate with Mermaid tool
✅ Provide usage instructions
✅ Offer to save to Obsidian
✅ Properly URL-encode playground links (REQUIRED for <br/> tags)
❌ Judgmental language ("just" or "should")
❌ Unrealistic time estimates
❌ Too many nodes/elements
❌ Bright clashing colors
❌ Skip encouragement and validation
❌ Provide unencoded playground links with <br/> tags