POSIX-style flag conventions
Why it matters
Users have thirty years of muscle memory around POSIX flags. When -verbose works but --verbose does not, or when --port=3000 silently parses as --port with a positional =3000, users assume the tool is broken and stop typing. Non-standard flag syntax also breaks shell completions, wrapper scripts, and Makefile recipes that assume GNU conventions. A tool that invents its own flag grammar is a tool that will never be piped into anything.
Severity rationale
Medium because broken POSIX conventions frustrate every user but rarely cause silent data corruption.
Remediation
Use a standard argument parser (commander, yargs, click, cobra, clap) and avoid writing custom flag logic in src/cli/parse-args.ts or equivalent. Short flags must be -x, long flags must be --xxx, and boolean flags must be toggles, not require explicit true/false:
program
.option('-o, --output <path>', 'Output file')
.option('-v, --verbose', 'Verbose output')
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the CLI Quality Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from cli-quality·automated