@intentsolutionsio/cli-ux-tester 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,418 @@
1
+ # CLI UX Testing Checklist
2
+
3
+ Use this checklist to ensure comprehensive testing of command-line interfaces.
4
+
5
+ ## Pre-Testing Setup
6
+
7
+ - [ ] Identify the CLI tool name and version
8
+ - [ ] Locate documentation (README, man pages, --help)
9
+ - [ ] Identify target user personas (beginner, intermediate, expert)
10
+ - [ ] Set up test environment
11
+
12
+ ## 1. Discovery & Discoverability
13
+
14
+ ### Help System
15
+
16
+ - [ ] `command --help` works
17
+ - [ ] `command -h` works
18
+ - [ ] `command help` works
19
+ - [ ] `command` (bare, when no args required) shows help
20
+ - [ ] Help text is comprehensive
21
+ - [ ] Help text includes examples
22
+ - [ ] Help leads with examples (most valuable first)
23
+ - [ ] Subcommands have their own help (`command subcommand --help`)
24
+ - [ ] Context-aware help (suggests relevant commands based on state)
25
+
26
+ ### Version Information
27
+
28
+ - [ ] `command --version` works
29
+ - [ ] `command -v` works (if applicable)
30
+ - [ ] Version format is clear (semantic versioning preferred)
31
+
32
+ ### Documentation
33
+
34
+ - [ ] README exists and is clear
35
+ - [ ] Installation instructions are complete
36
+ - [ ] Usage examples are provided
37
+ - [ ] Common use cases are documented
38
+ - [ ] Troubleshooting guide exists
39
+ - [ ] Man pages exist (for system tools)
40
+
41
+ ### Discovery Methods
42
+
43
+ - [ ] Tool explains itself when run without args
44
+ - [ ] Error messages suggest help commands
45
+ - [ ] Related commands are mentioned
46
+ - [ ] Next steps suggested after operations complete
47
+ - [ ] "Getting started" guidance provided for new users
48
+
49
+ ## 2. Command & API Naming
50
+
51
+ ### Naming Conventions
52
+
53
+ - [ ] Command names are intuitive
54
+ - [ ] Commands use verbs (create, delete, list, update)
55
+ - [ ] Topics use plural nouns (apps, users, config)
56
+ - [ ] One naming pattern chosen and used consistently (topic:command, topic command, or command topic)
57
+ - [ ] Root topic commands list items (e.g., `config` lists config, not `config:list`)
58
+ - [ ] Abbreviations are standard or explained
59
+ - [ ] Similar operations use similar names
60
+ - [ ] Names match user mental models
61
+ - [ ] Lowercase words, hyphens avoided unless necessary
62
+
63
+ ### Flag Consistency
64
+
65
+ - [ ] Long flags use double dashes (`--flag`)
66
+ - [ ] Short flags use single dash (`-f`)
67
+ - [ ] Boolean flags don't require arguments
68
+ - [ ] Flag names are descriptive
69
+ - [ ] Common flags use standard names (`--verbose`, `--quiet`, `--force`, `--output`)
70
+ - [ ] `-h` reserved for help only (never used for other purposes)
71
+ - [ ] `-v` reserved for version only (use `--verbose` for verbosity)
72
+ - [ ] `--no-color` flag supported (and `NO_COLOR` env var)
73
+ - [ ] Flags preferred over positional arguments
74
+ - [ ] Secrets never passed via flags (use files or stdin)
75
+
76
+ ### Subcommands
77
+
78
+ - [ ] Subcommands are clearly named
79
+ - [ ] Subcommand structure is consistent
80
+ - [ ] Subcommands are grouped logically
81
+
82
+ ## 3. Error Handling & Messages
83
+
84
+ ### Error Message Quality
85
+
86
+ - [ ] Errors are specific, not generic
87
+ - [ ] Errors explain what went wrong
88
+ - [ ] Errors explain why it's a problem
89
+ - [ ] Errors suggest how to fix
90
+ - [ ] Errors include who/what is responsible (tool vs user vs external)
91
+ - [ ] Errors include relevant context (file paths, line numbers)
92
+ - [ ] Errors don't expose internal implementation details
93
+ - [ ] Similar errors are grouped to reduce noise
94
+ - [ ] Typos suggest corrections ("Did you mean 'start'?")
95
+ - [ ] Input validated early (fail fast)
96
+
97
+ ### Error Scenarios to Test
98
+
99
+ - [ ] Missing required arguments: `command`
100
+ - [ ] Invalid flag: `command --invalid-flag`
101
+ - [ ] File not found: `command nonexistent.txt`
102
+ - [ ] Permission denied: `command /protected/file`
103
+ - [ ] Invalid input format: `command malformed-input`
104
+ - [ ] Network errors (if applicable)
105
+ - [ ] Timeout errors (if applicable)
106
+
107
+ ### Exit Codes
108
+
109
+ - [ ] Success returns 0
110
+ - [ ] General errors return 1
111
+ - [ ] Invalid arguments return 2
112
+ - [ ] Command cannot execute returns 126
113
+ - [ ] Command not found returns 127
114
+ - [ ] Terminated by Ctrl-C returns 130
115
+ - [ ] Custom error codes documented for specific failures
116
+ - [ ] Exit codes work correctly with shell operators (`&&`, `||`)
117
+ - [ ] Exit codes are documented
118
+
119
+ ## 4. Help System & Documentation
120
+
121
+ ### Help Text Structure
122
+
123
+ - [ ] Usage line shows syntax clearly
124
+ - [ ] Description explains purpose
125
+ - [ ] All options are documented
126
+ - [ ] Option descriptions are clear
127
+ - [ ] Examples are included
128
+ - [ ] Related commands are mentioned
129
+ - [ ] Links to more documentation provided
130
+
131
+ ### Documentation Completeness
132
+
133
+ - [ ] All features are documented
134
+ - [ ] Edge cases are explained
135
+ - [ ] Configuration options are documented
136
+ - [ ] Environment variables are listed
137
+ - [ ] Limitations are mentioned
138
+
139
+ ## 5. Consistency & Patterns
140
+
141
+ ### Command Patterns
142
+
143
+ - [ ] Similar operations follow same pattern
144
+ - [ ] Flag order doesn't matter (where possible)
145
+ - [ ] Subcommand structure is consistent
146
+ - [ ] Input/output formats are consistent
147
+
148
+ ### Default Behavior
149
+
150
+ - [ ] Defaults are sensible and safe
151
+ - [ ] Defaults are documented
152
+ - [ ] Defaults can be overridden
153
+ - [ ] Behavior without flags is predictable
154
+
155
+ ### Configuration
156
+
157
+ - [ ] Config file locations are standard (XDG Base Directory)
158
+ - [ ] Config file format is clear (YAML, JSON, TOML, etc.)
159
+ - [ ] Environment variables follow naming convention (UPPERCASE_WITH_UNDERSCORES)
160
+ - [ ] Configuration precedence order is correct:
161
+ - [ ] 1. Command-line flags (highest priority)
162
+ - [ ] 2. Environment variables
163
+ - [ ] 3. Project config (`.env`, `.tool-config`)
164
+ - [ ] 4. User config (`~/.config/tool/`)
165
+ - [ ] 5. System config (`/etc/tool/`)
166
+ - [ ] Config precedence is documented
167
+ - [ ] Config source shown in verbose/debug mode
168
+
169
+ ## 6. Visual Design & Output
170
+
171
+ ### Output Formatting
172
+
173
+ - [ ] Output is well-formatted
174
+ - [ ] Columns are aligned
175
+ - [ ] Tables have headers
176
+ - [ ] Tables are grep-parseable:
177
+ - [ ] No decorative borders or box-drawing characters
178
+ - [ ] One row per entry (no wrapped rows)
179
+ - [ ] Consistent column alignment
180
+ - [ ] Predictable delimiters
181
+ - [ ] Long outputs are paginated or truncated gracefully
182
+ - [ ] Machine-readable output available (`--json`, `--terse`, `--format`)
183
+ - [ ] Output respects 80-character terminal width where practical
184
+
185
+ ### Color Usage
186
+
187
+ - [ ] Colors have semantic meaning
188
+ - [ ] Colors work on dark and light backgrounds
189
+ - [ ] Color can be disabled (`--no-color`)
190
+ - [ ] NO_COLOR environment variable is respected
191
+ - [ ] Critical info isn't color-only (accessible)
192
+
193
+ ### Progress Indicators
194
+
195
+ - [ ] Progress indicators chosen based on duration:
196
+ - [ ] <2 seconds: No indicator (feels instant)
197
+ - [ ] 2-10 seconds: Spinner with description
198
+ - [ ] >10 seconds: Progress bar with percentage and ETA
199
+ - [ ] Long operations show progress
200
+ - [ ] Spinners animate smoothly
201
+ - [ ] Progress bars update frequently
202
+ - [ ] What's happening is described ("Installing dependencies...")
203
+ - [ ] Progress count shown ("3/10 files processed")
204
+ - [ ] Estimated time is shown (if possible)
205
+ - [ ] Progress can be disabled for scripts
206
+ - [ ] Progress disabled automatically in non-TTY contexts
207
+
208
+ ### Interactive Elements
209
+
210
+ - [ ] TTY detection works (only prompt when stdin is a TTY)
211
+ - [ ] Prompts are clear
212
+ - [ ] Default values are shown
213
+ - [ ] Prompts can be skipped with flags (`--no-input`, `--yes`)
214
+ - [ ] All required data accepted via flags for automation
215
+ - [ ] Confirmation prompts for destructive operations
216
+ - [ ] Ctrl+C exits gracefully
217
+ - [ ] Second Ctrl-C forces immediate exit
218
+ - [ ] Colors disabled in pipes/non-TTY contexts
219
+
220
+ ## 7. Performance & Responsiveness
221
+
222
+ ### Startup Performance
223
+
224
+ - [ ] `--help` is instant (<100ms)
225
+ - [ ] `--version` is instant (<100ms)
226
+ - [ ] Simple commands feel immediate (<500ms)
227
+ - [ ] Lazy loading is used for heavy dependencies
228
+
229
+ ### Operation Performance
230
+
231
+ - [ ] Long operations show progress
232
+ - [ ] Streaming output for large data
233
+ - [ ] Incremental results when possible
234
+ - [ ] Timeouts are configurable
235
+ - [ ] Performance is acceptable for target use cases
236
+
237
+ ### Resource Usage
238
+
239
+ - [ ] Memory usage is reasonable
240
+ - [ ] CPU usage is reasonable
241
+ - [ ] Disk I/O is efficient
242
+ - [ ] Network usage is efficient (if applicable)
243
+
244
+ ## 8. Accessibility & Inclusivity
245
+
246
+ ### Language & Communication
247
+
248
+ - [ ] Language is clear and simple
249
+ - [ ] Jargon is explained or avoided
250
+ - [ ] Examples use diverse contexts
251
+ - [ ] Error messages are helpful, not blaming
252
+
253
+ ### Terminal Compatibility
254
+
255
+ - [ ] Works in different shells (bash, zsh, fish)
256
+ - [ ] Works with different terminal emulators
257
+ - [ ] Works in SSH/remote sessions
258
+ - [ ] Works with different terminal sizes
259
+ - [ ] Handles terminal resize gracefully
260
+
261
+ ### Keyboard Accessibility
262
+
263
+ - [ ] All features are keyboard-accessible
264
+ - [ ] Tab completion works (if applicable)
265
+ - [ ] Arrow keys work in interactive modes
266
+ - [ ] Common keyboard shortcuts work (Ctrl+C, Ctrl+D)
267
+
268
+ ### Different Skill Levels
269
+
270
+ - [ ] Beginners can accomplish basic tasks
271
+ - [ ] Experts have advanced options
272
+ - [ ] Progressive disclosure of complexity
273
+ - [ ] Good defaults for common use cases
274
+
275
+ ## 9. Integration & Interoperability
276
+
277
+ ### Shell Integration
278
+
279
+ - [ ] Tab completion available
280
+ - [ ] Works in pipes: `cat file | command | grep pattern`
281
+ - [ ] Respects stdin/stdout/stderr correctly:
282
+ - [ ] Primary output goes to stdout
283
+ - [ ] Errors, warnings, progress go to stderr
284
+ - [ ] Accepts piped input from stdin
285
+ - [ ] Enables composability with other tools
286
+ - [ ] Exit codes work with `&&` and `||`
287
+ - [ ] Output behaves correctly when redirected (`>`, `2>`, `2>&1`)
288
+
289
+ ### Standard Conventions
290
+
291
+ - [ ] Follows POSIX conventions (where applicable)
292
+ - [ ] Respects standard environment variables:
293
+ - [ ] `NO_COLOR` - Disables all colors
294
+ - [ ] `DEBUG` - Enables debug output
295
+ - [ ] `EDITOR` - User's preferred editor
296
+ - [ ] `PAGER` - User's preferred pager
297
+ - [ ] `TMPDIR` - Temporary directory
298
+ - [ ] `HOME` - User home directory
299
+ - [ ] `HTTP_PROXY`, `HTTPS_PROXY` - Proxy settings
300
+ - [ ] Tool-specific environment variables use UPPERCASE_WITH_UNDERSCORES
301
+ - [ ] Reads `.env` files for project-level config
302
+ - [ ] Uses standard config locations (XDG Base Directory)
303
+ - [ ] Works with standard tools (grep, awk, sed)
304
+
305
+ ### Output Formats
306
+
307
+ - [ ] JSON output available
308
+ - [ ] YAML output available (if relevant)
309
+ - [ ] CSV output available (for tabular data)
310
+ - [ ] Plain text output available
311
+ - [ ] Format is selectable via flag
312
+
313
+ ### Context Awareness
314
+
315
+ - [ ] Detects project type (package.json, Cargo.toml, go.mod, requirements.txt, etc.)
316
+ - [ ] Detects Git repository and current branch
317
+ - [ ] Detects environment indicators (NODE_ENV, etc.)
318
+ - [ ] Adapts defaults based on detected context
319
+ - [ ] Explains what was detected in output
320
+ - [ ] Provides override flags if detection is incorrect
321
+ - [ ] Works sensibly when no context detected
322
+
323
+ ## 10. Security & Safety
324
+
325
+ ### Destructive Operations
326
+
327
+ - [ ] Destructive ops require confirmation
328
+ - [ ] `--force` flag bypasses confirmation (documented)
329
+ - [ ] Dry-run mode available (`--dry-run`, `--whatif`)
330
+ - [ ] Backup options for destructive changes
331
+
332
+ ### Credential Handling
333
+
334
+ - [ ] Credentials never in command history
335
+ - [ ] Credentials from env vars or config files
336
+ - [ ] Credentials not echoed to screen
337
+ - [ ] Secure defaults for permissions
338
+
339
+ ### Input Validation
340
+
341
+ - [ ] Inputs are validated
342
+ - [ ] Input validated early (fail fast)
343
+ - [ ] SQL injection prevented (if applicable)
344
+ - [ ] Command injection prevented
345
+ - [ ] Path traversal prevented
346
+
347
+ ## 11. User Guidance & Onboarding
348
+
349
+ ### Next-Step Suggestions
350
+
351
+ - [ ] After init, suggests what to do next
352
+ - [ ] After successful operations, suggests related commands
353
+ - [ ] After errors, suggests how to fix or get help
354
+ - [ ] Suggestions are context-aware (3-5 suggestions max)
355
+ - [ ] Provides example commands users can copy
356
+ - [ ] Links to relevant documentation
357
+
358
+ ### Getting Started
359
+
360
+ - [ ] First-time users can accomplish basic tasks easily
361
+ - [ ] `init` or `quickstart` command available
362
+ - [ ] Example workflows shown in help
363
+ - [ ] Common use cases are obvious
364
+ - [ ] Reduces time-to-first-value
365
+ - [ ] Doesn't require reading documentation to start
366
+
367
+ ### Progressive Disclosure
368
+
369
+ - [ ] Basic features are simple
370
+ - [ ] Advanced features available but not overwhelming
371
+ - [ ] Help shows common commands first
372
+ - [ ] Detailed options shown with `--help` flag
373
+ - [ ] Expert mode available for power users
374
+
375
+ ## Testing Notes
376
+
377
+ ### Observations
378
+
379
+ [Space for notes during testing]
380
+
381
+ ### Issues Found
382
+
383
+ [List specific issues with severity]
384
+
385
+ ### Recommendations
386
+
387
+ [Specific improvements to suggest]
388
+
389
+ ## Rating Summary
390
+
391
+ Rate each category 1-5:
392
+
393
+ - Discovery & Discoverability: ___/5
394
+ - Command & API Naming: ___/5
395
+ - Error Handling & Messages: ___/5
396
+ - Help System & Documentation: ___/5
397
+ - Consistency & Patterns: ___/5
398
+ - Visual Design & Output: ___/5
399
+ - Performance & Responsiveness: ___/5
400
+ - Accessibility & Inclusivity: ___/5
401
+
402
+ **Core 8-Criteria Score: ___/5** (average of above)
403
+
404
+ ### Additional Criteria
405
+
406
+ - Integration & Interoperability: ___/5
407
+ - Security & Safety: ___/5
408
+ - User Guidance & Onboarding: ___/5
409
+
410
+ **Overall UX Score: ___/5** (weighted average emphasizing core 8 criteria)
411
+
412
+ ## Next Steps
413
+
414
+ Based on findings:
415
+
416
+ 1. [Priority 1 action item]
417
+ 2. [Priority 2 action item]
418
+ 3. [Priority 3 action item]