Design developer experiences that people love. Feedback loops, cognitive load, flow state, and ADHD-friendly patterns for tools and workflows.
/plugin marketplace add nathanvale/side-quest-marketplace/plugin install bookmarks@side-quest-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Build tools and systems that feel natural, reduce friction, and let developers reach flow state. Grounded in research and battle-tested in production.
Based on research by Greiler, Storey, and Noda, the DX Framework defines developer experience through three pillars:
Definition: How quickly developers know if something worked or failed.
Good Feedback:
Bad Feedback:
Definition: How much mental energy developers spend understanding your system.
Reduce Cognitive Load:
Increase Cognitive Load:
Definition: Developers' ability to maintain deep focus and productivity.
Enable Flow:
Block Flow:
Show complexity gradually, not all at once.
Usage: my-cli [options]
Options:
--config FILE Path to config file
--verbose LEVEL Verbosity level (0-3)
--output FORMAT Output format (md, json, html)
--workers N Number of worker threads
--cache STRATEGY Cache strategy (none, memory, disk)
--socket-timeout MS Socket timeout in ms
--max-retries N Maximum retries
--backoff-multiplier N Exponential backoff multiplier
--log-level LEVEL Logging level
... (20 more options)
Result: Overwhelming. Novice developers see too many options.
Usage: my-cli [command] [options]
Commands:
config Show/edit configuration
run Execute the task
help Show help for a command
Basic options:
--verbose Show detailed output
--help Show this help
Examples:
my-cli config # Edit configuration
my-cli run # Run with defaults
my-cli run --verbose # Run with details
Advanced:
See 'my-cli help run' for all options
Result: Novice path is clear. Experts can discover advanced options.
Same patterns everywhere = lower cognitive load.
command subcommand [args] [--flags]# File operations
git status
git add file.txt
git commit -m "message"
git push origin main
# CLI operations (same pattern!)
my-cli frontmatter get note.md
my-cli frontmatter set note.md key=value
my-cli frontmatter migrate note.md
my-cli frontmatter validate note.md
Benefits:
Errors should include: what, why, how to fix.
Error: ENOENT
Problem: User has no idea what's wrong.
Error: Configuration file not found
Expected file: /Users/nathan/.config/my-tool/config.json
To create it, run:
my-cli config --init
Or set the environment variable:
export MY_TOOL_CONFIG=/path/to/config.json
Result: User knows exactly what to do.
Developers thrive on quick validation.
# ❌ Slow: User waits 30s after each command
$ my-cli build
Building... (30 seconds)
✅ Done
# ✅ Fast: Instant feedback on changes
$ my-cli watch
Watching for changes...
✅ Built (0.2s)
✅ Tests (0.8s)
✅ Linted (0.3s)
Ready to go!
Techniques:
Cognitive load affects everyone, but patterns specifically help ADHD brains:
Keep related things together:
ADHD Impact: Context switching is expensive. Minimize jumps between files.
ADHD brains thrive on dopamine from progress signals:
# ✅ Good: Shows what's happening
$ bun test
✓ src/math.test.ts (3 tests) 45ms
✓ src/utils.test.ts (5 tests) 62ms
✓ src/cli.test.ts (8 tests) 125ms
All tests passed ✅ (16 tests, 232ms)
# ❌ Bad: No visibility
$ npm test
... (silent for 10 seconds)
PASS
Make it obvious what to do next:
# Good README next steps
## Getting Started
1. Clone the repo
2. Run `bun install`
3. Run `bun run dev`
4. Open http://localhost:3000
Done! You're running now. Next steps:
- [ ] Read ARCHITECTURE.md
- [ ] Run `bun test` to see tests pass
- [ ] Check CONTRIBUTING.md for code style
Provide good defaults instead of options:
// ❌ Too many choices
const config = {
cacheStrategy: "smart", // Or "none", "memory", "disk"?
workerCount: "auto", // Or number?
timeout: "adaptive", // Or milliseconds?
retryBackoff: "exponential", // Or linear?
};
// ✅ Smart defaults
const config = {
cache: true, // Works for 95% of cases
workers: 4, // Sensible default
timeout: 30000, // 30 seconds (standard)
};
Show not just progress, but context:
# ❌ Generic progress
[████████░░] 80%
# ✅ Meaningful progress
Building...
✓ Compiling TypeScript (2.3s)
✓ Bundling (1.1s)
⟳ Running tests (... 3s remaining)
Next: Linting (estimated 0.5s)
Track developer growth and tool maturity:
| Level | Knowledge | Speed | Independence |
|---|---|---|---|
| 1 Novice | Knows basics | Slow | Needs guidance |
| 2 Beginner | Understands patterns | Medium | Some independence |
| 3 Intermediate | Strong fundamentals | Fast | Self-sufficient |
| 4 Expert | Deep knowledge | Very fast | Mentors others |
| 5 Master | Innovates in domain | Instant | Shapes the field |
Use case: Help developers see their progression. "Moved from Level 2 (Beginner) to Level 3 (Intermediate)" is motivating.
| Level | API Stability | Documentation | Testing | Performance |
|---|---|---|---|---|
| Alpha | Unstable | Minimal | Partial | Unoptimized |
| Beta | Mostly stable | Good | Comprehensive | Optimized |
| Stable | Stable | Excellent | 90%+ coverage | Production-ready |
| Mature | Fixed | Complete | 95%+ coverage | Highly optimized |
Use case: Users know what they're getting. "This is a stable tool" vs. "This is an alpha experiment."
How long until a new developer runs something successfully?
Target: < 10 minutes
1. Clone repo (2 min)
2. Run setup (3 min)
3. Run first command (1 min)
4. See success output (instant)
Total: 6 minutes ✅
How long until a developer knows when something breaks?
Target: < 5 seconds
$ bun test
✓ math.test.ts (3/3) ✅
✗ utils.test.ts (2/3) ❌
Failed: utils.test.ts:15 - expected 5 got 4
Ask developers: "How easy is it to understand this tool?" (1-5 scale)
Target: 4.0+
Q: How do I measure DX improvements? A: Track time-to-first-success, error clarity, and user feedback. Survey developers quarterly.
Q: Is fast startup time important for DX? A: Yes. Bun's 4x speed matters psychologically — faster feedback = better experience.
Q: How much documentation is enough? A: Enough that novices succeed without asking for help. Usually: README + architecture + API docs.
Q: Should I optimize for experts or novices? A: Novices. If experts struggle, the tool is too complex. If novices succeed, experts will find power-user features.
Q: Is cognitive load the same for everyone? A: No. ADHD brains especially benefit from clear structure, visible progress, and minimal context switching.
Last Updated: 2025-12-05 Status: Reference Implementation Based On: DX Framework (Greiler, Storey, Noda), SideQuest Marketplace patterns