Documentation: - Add git-flow branching strategy guide (docs/BRANCHING-STRATEGY.md) - Add clarity-assist ND support documentation (docs/ND-SUPPORT.md) - Update DEBUGGING-CHECKLIST.md with Gitea auto-close behavior and MCP restart notes - Update plugin READMEs to reference new documentation Bug Fix: - Add milestone parameter to update_issue MCP tool (gitea_client.py, server.py, tools/issues.py) Closes #266, Closes #267, Closes #268, Closes #269 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
329 lines
10 KiB
Markdown
329 lines
10 KiB
Markdown
# Neurodivergent Support in clarity-assist
|
|
|
|
This document describes how clarity-assist is designed to support users with neurodivergent traits, including ADHD, autism, anxiety, and other conditions that affect executive function, sensory processing, or cognitive style.
|
|
|
|
## Overview
|
|
|
|
### Purpose
|
|
|
|
clarity-assist exists to help all users transform vague or incomplete requests into clear, actionable specifications. For neurodivergent users specifically, it addresses common challenges:
|
|
|
|
- **Executive function difficulties** - Breaking down complex tasks, getting started, managing scope
|
|
- **Working memory limitations** - Keeping track of context across long conversations
|
|
- **Decision fatigue** - Facing too many open-ended choices
|
|
- **Processing style differences** - Preferring structured, predictable interactions
|
|
- **Anxiety around uncertainty** - Needing clear expectations and explicit confirmation
|
|
|
|
### Philosophy
|
|
|
|
Our design philosophy centers on three principles:
|
|
|
|
1. **Reduce cognitive load** - Never force the user to hold too much in their head at once
|
|
2. **Provide structure** - Use consistent, predictable patterns for all interactions
|
|
3. **Respect different communication styles** - Accommodate rather than assume one "right" way to think
|
|
|
|
## Features for ND Users
|
|
|
|
### 1. Reduced Cognitive Load
|
|
|
|
**Prompt Simplification**
|
|
- The 4-D methodology (Deconstruct, Diagnose, Develop, Deliver) breaks down complex requests into manageable phases
|
|
- Users never need to specify everything upfront - clarification happens incrementally
|
|
|
|
**Task Breakdown**
|
|
- Large requests are decomposed into explicit components
|
|
- Dependencies and relationships are surfaced rather than left implicit
|
|
- Scope boundaries are clearly defined (in-scope vs. out-of-scope)
|
|
|
|
### 2. Structured Output
|
|
|
|
**Consistent Formatting**
|
|
- Every clarification session produces the same structured specification:
|
|
- Summary (1-2 sentences)
|
|
- Scope (In/Out)
|
|
- Requirements table (numbered, prioritized)
|
|
- Assumptions list
|
|
- This predictability reduces the mental effort of parsing responses
|
|
|
|
**Predictable Patterns**
|
|
- Questions always follow the same format
|
|
- Progress summaries appear at regular intervals
|
|
- Escalation (simple to complex) is always offered, never forced
|
|
|
|
**Bulleted Lists Over Prose**
|
|
- Requirements are presented as scannable lists, not paragraphs
|
|
- Options are numbered for easy reference
|
|
- Key information is highlighted with bold labels
|
|
|
|
### 3. Customizable Verbosity
|
|
|
|
**Detail Levels**
|
|
- `/clarify` - Full methodology for complex requests (more thorough, more questions)
|
|
- `/quick-clarify` - Rapid mode for simple disambiguation (fewer questions, faster)
|
|
|
|
**User Control**
|
|
- Users can always say "that's enough detail" to end questioning early
|
|
- The plugin offers to break sessions into smaller parts
|
|
- "Good enough for now" is explicitly validated as an acceptable outcome
|
|
|
|
### 4. Vagueness Detection
|
|
|
|
The `UserPromptSubmit` hook automatically detects prompts that might benefit from clarification and gently suggests using `/clarify`.
|
|
|
|
**Detection Signals**
|
|
- Short prompts (< 10 words) without specific technical terms
|
|
- Vague action phrases: "help me", "fix this", "make it better"
|
|
- Ambiguous scope words: "somehow", "something", "stuff", "etc."
|
|
- Open questions without context
|
|
|
|
**Non-Blocking Approach**
|
|
- The hook never prevents you from proceeding
|
|
- It provides a suggestion with a vagueness score (percentage)
|
|
- You can disable auto-suggestions entirely via environment variable
|
|
|
|
### 5. Focus Aids
|
|
|
|
**Task Prioritization**
|
|
- Requirements are tagged as Must/Should/Could/Won't (MoSCoW)
|
|
- Critical items are separated from nice-to-haves
|
|
- Scope creep is explicitly called out and deferred
|
|
|
|
**Context Switching Warnings**
|
|
- When questions touch multiple areas, the plugin acknowledges the complexity
|
|
- Offers to focus on one aspect at a time
|
|
- Summarizes frequently to rebuild context after interruptions
|
|
|
|
## How It Works
|
|
|
|
### The UserPromptSubmit Hook
|
|
|
|
When you submit a prompt, the vagueness detection hook (`hooks/vagueness-check.sh`) runs automatically:
|
|
|
|
```
|
|
User submits prompt
|
|
|
|
|
v
|
|
Hook reads prompt from stdin
|
|
|
|
|
v
|
|
Skip if: empty, starts with /, or contains file paths
|
|
|
|
|
v
|
|
Calculate vagueness score (0.0 - 1.0)
|
|
- Short prompts: +0.3
|
|
- Vague action phrases: +0.2
|
|
- Ambiguous scope words: +0.15
|
|
- Missing technical specifics: +0.2
|
|
- Short questions without context: +0.15
|
|
|
|
|
v
|
|
If score >= threshold (default 0.6):
|
|
- Output gentle suggestion with [clarity-assist] prefix
|
|
- Show vagueness percentage
|
|
|
|
|
v
|
|
Exit 0 (always non-blocking)
|
|
```
|
|
|
|
### Example Hook Output
|
|
|
|
```
|
|
[clarity-assist] Your prompt could benefit from more clarity.
|
|
[clarity-assist] Consider running /clarity-assist to refine your request.
|
|
[clarity-assist] (Vagueness score: 65% - this is a suggestion, not a block)
|
|
```
|
|
|
|
### The 4-D Methodology
|
|
|
|
| Phase | What Happens | ND Benefit |
|
|
|-------|--------------|------------|
|
|
| **Deconstruct** | Break request into components | Shows the full picture without overwhelming |
|
|
| **Diagnose** | Identify gaps and conflicts | Surfaces hidden assumptions |
|
|
| **Develop** | Ask structured questions | Option-based, chunked, contextual |
|
|
| **Deliver** | Produce specification | Consistent, scannable format |
|
|
|
|
## Usage Examples
|
|
|
|
### Before: Vague Request
|
|
|
|
```
|
|
User: Make the app faster
|
|
```
|
|
|
|
This triggers vagueness detection because:
|
|
- Short (4 words)
|
|
- Vague action ("make")
|
|
- No specific technical context
|
|
- No measurable outcome
|
|
|
|
### After: Clarified with /clarify
|
|
|
|
```
|
|
User: /clarify Make the app faster
|
|
|
|
Claude: Let me help clarify what kind of performance improvements you're looking for.
|
|
|
|
**What type of slowness are you experiencing?**
|
|
1. Initial page load takes too long
|
|
2. Interactions feel sluggish (clicking, typing)
|
|
3. API calls are slow
|
|
4. All of the above
|
|
5. Other
|
|
|
|
[I'm asking because each has very different solutions]
|
|
```
|
|
|
|
```
|
|
User: 1
|
|
|
|
Claude: Initial page load - got it.
|
|
|
|
**What's an acceptable load time for you?**
|
|
1. Under 1 second (aggressive)
|
|
2. Under 2 seconds (standard)
|
|
3. Under 3 seconds (relaxed)
|
|
4. I don't have a specific target
|
|
|
|
[This helps me know whether to suggest quick wins or a major optimization effort]
|
|
```
|
|
|
|
After 2-3 more questions, the user receives:
|
|
|
|
```markdown
|
|
## Clarified Request
|
|
|
|
### Summary
|
|
Optimize initial page load time to under 2 seconds by addressing bundle size and initial render blocking resources.
|
|
|
|
### Scope
|
|
**In Scope:**
|
|
- Bundle analysis and splitting
|
|
- Lazy loading non-critical components
|
|
- Image optimization
|
|
- CSS/JS minification check
|
|
|
|
**Out of Scope:**
|
|
- Backend API optimization
|
|
- Database query performance
|
|
- CDN setup
|
|
|
|
### Requirements
|
|
| # | Requirement | Priority | Notes |
|
|
|---|-------------|----------|-------|
|
|
| 1 | Page loads in < 2s on 4G | Must | Measured via Lighthouse |
|
|
| 2 | Largest contentful paint < 1.5s | Should | Core Web Vital |
|
|
| 3 | No layout shift after load | Should | CLS < 0.1 |
|
|
|
|
### Assumptions
|
|
- Current load time is > 3 seconds (based on "too long" description)
|
|
- Target browsers: modern evergreen (Chrome, Firefox, Safari)
|
|
- Build tooling already configured (webpack/vite)
|
|
```
|
|
|
|
### Common Patterns Detected
|
|
|
|
| Pattern | Example | What It Triggers |
|
|
|---------|---------|------------------|
|
|
| Missing context | "Fix the bug" | "Which bug? In which file or feature?" |
|
|
| Ambiguous scope | "Update the user stuff" | "What specifically needs updating?" |
|
|
| Unclear goals | "Make it better" | "Better in what way? Faster? Cleaner? More features?" |
|
|
| Implicit knowledge | "Do it like last time" | "I don't have context from previous sessions" |
|
|
| Conflicting requests | "Keep it simple but add everything" | "Which matters more: simplicity or completeness?" |
|
|
|
|
### Quick-Clarify Example
|
|
|
|
For simpler requests that just need minor disambiguation:
|
|
|
|
```
|
|
User: /quick-clarify Add a delete button to the user list
|
|
|
|
Claude: I'll add a delete button to each row in the user list.
|
|
|
|
**Should deletion require confirmation?**
|
|
1. Yes - show confirmation dialog (Recommended)
|
|
2. No - delete immediately
|
|
3. Soft delete - mark as deleted but keep data
|
|
|
|
[Asking because accidental deletions can be problematic]
|
|
```
|
|
|
|
```
|
|
User: 1
|
|
|
|
Claude: Got it. I'll implement a delete button with confirmation dialog. Starting now.
|
|
```
|
|
|
|
## Configuration Options
|
|
|
|
### Environment Variables
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `CLARITY_ASSIST_AUTO_SUGGEST` | `true` | Enable/disable automatic vagueness detection |
|
|
| `CLARITY_ASSIST_VAGUENESS_THRESHOLD` | `0.6` | Score threshold to trigger suggestion (0.0-1.0) |
|
|
|
|
### Disabling Auto-Suggestions
|
|
|
|
If you find the vagueness detection unhelpful, disable it in your shell profile or `.env`:
|
|
|
|
```bash
|
|
export CLARITY_ASSIST_AUTO_SUGGEST=false
|
|
```
|
|
|
|
### Adjusting Sensitivity
|
|
|
|
To make detection more or less sensitive:
|
|
|
|
```bash
|
|
# More sensitive (suggests more often)
|
|
export CLARITY_ASSIST_VAGUENESS_THRESHOLD=0.4
|
|
|
|
# Less sensitive (only very vague prompts)
|
|
export CLARITY_ASSIST_VAGUENESS_THRESHOLD=0.8
|
|
```
|
|
|
|
## Tips for ND Users
|
|
|
|
### If You're Feeling Overwhelmed
|
|
|
|
- Use `/quick-clarify` instead of `/clarify` for faster interactions
|
|
- Say "let's focus on just one thing" to narrow scope
|
|
- Ask to "pause and summarize" at any point
|
|
- It's OK to say "I don't know" - the plugin will offer concrete alternatives
|
|
|
|
### If You Have Executive Function Challenges
|
|
|
|
- Start with `/clarify` even for tasks you think are simple - it helps with planning
|
|
- The structured specification can serve as a checklist
|
|
- Use the scope boundaries to prevent scope creep
|
|
|
|
### If You Prefer Detailed Structure
|
|
|
|
- The 4-D methodology provides a predictable framework
|
|
- All output follows consistent formatting
|
|
- Questions always offer numbered options
|
|
|
|
### If You Have Anxiety About Getting It Right
|
|
|
|
- The plugin validates "good enough for now" as acceptable
|
|
- You can always revisit and change earlier answers
|
|
- Assumptions are explicitly listed - nothing is hidden
|
|
|
|
## Accessibility Notes
|
|
|
|
- All output uses standard markdown that works with screen readers
|
|
- No time pressure - take as long as you need between responses
|
|
- Questions are designed to be answerable without deep context retrieval
|
|
- Visual patterns (bold, bullets, tables) create scannable structure
|
|
|
|
## Feedback
|
|
|
|
If you have suggestions for improving neurodivergent support in clarity-assist, please open an issue at:
|
|
|
|
https://gitea.hotserv.cloud/personal-projects/leo-claude-mktplace/issues
|
|
|
|
Include the label `clarity-assist` and describe:
|
|
- What challenge you faced
|
|
- What would have helped
|
|
- Any specific accommodations you'd like to see
|