skills/constructive-io/constructive-skills/inquirerer-anti-patterns

inquirerer-anti-patterns

SKILL.md

CLI Anti-Patterns: Avoid These Libraries

This skill defines what NOT to do when building CLI tools in Constructive projects. All CLI development should use inquirerer instead of other CLI libraries.

When to Apply

Apply this skill when:

  • Reviewing code that imports commander, inquirer.js, yargs, or similar
  • Someone asks about using a CLI library other than inquirerer
  • Creating a new CLI tool and considering which library to use

Forbidden Libraries

Do NOT use these libraries in Constructive projects:

Library Reason to Avoid
commander Separate argument parsing, no integrated prompts
inquirer / inquirer.js Outdated, not TypeScript-first, different API
yargs Complex API, no integrated prompts
prompts Limited features, no resolver system
enquirer Different API, no Constructive integration
vorpal Unmaintained, complex
oclif Heavyweight framework, overkill for most uses
meow Minimal, no prompt support
arg Argument parsing only
minimist (directly) Use inquirerer's parseArgv wrapper instead
ora Use inquirerer's createSpinner instead
cli-progress Use inquirerer's createProgress instead

Why inquirerer is the Standard

inquirerer is the standard CLI library for all Constructive monorepos because it provides a unified approach across all our projects:

  1. Consistency: All Constructive CLIs have the same look, feel, and behavior
  2. TypeScript-first: Full type safety for questions and answers
  3. Integrated: Single library for argument parsing, prompts, and UI components
  4. Dynamic defaults: Built-in resolvers for git config, npm, dates, workspace info
  5. CI/CD ready: Non-interactive mode works without code changes
  6. Maintained: Actively developed as part of Constructive tooling

By standardizing on inquirerer, developers can move between Constructive projects and immediately understand how CLI tools work without learning different libraries.

References

Weekly Installs
7
First Seen
Feb 27, 2026
Installed on
windsurf7
mcpjam6
claude-code6
junie6
kilo6
zencoder6