Skip to content

Commit cb65c9d

Browse files
committed
feat: add inquirerer-cli skill from constructive-skills
Move the inquirerer-cli skill (SKILL.md + references/) into .agents/skills/inquirerer-cli/ alongside its source code. Add AGENTS.md listing available skills.
1 parent 2bb590b commit cb65c9d

9 files changed

Lines changed: 1536 additions & 0 deletions

File tree

.agents/skills/inquirerer-cli.zip

15.4 KB
Binary file not shown.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
name: inquirerer-cli
3+
description: "inquirerer CLI framework — interactive prompts, appStash state persistence, yanse terminal colors, and README formatting conventions. Use when building CLIs with inquirerer or formatting documentation. For pnpm workspace/publishing/monorepo management, see the constructive-pnpm skill instead."
4+
metadata:
5+
author: constructive-io
6+
version: "2.0.0"
7+
---
8+
9+
# inquirerer CLI
10+
11+
Build interactive CLI tools with the inquirerer framework: prompts, appStash state persistence, yanse terminal colors, and documentation formatting.
12+
13+
## When to Apply
14+
15+
Use this skill when:
16+
- Building interactive CLIs with `inquirerer`
17+
- Formatting README and documentation files
18+
19+
**For pnpm workspace management, publishing, and monorepo configuration**, see the `constructive-pnpm` skill.
20+
21+
## inquirerer CLI Framework
22+
23+
Build interactive CLI tools with prompts, appStash state persistence, and yanse terminal colors.
24+
25+
See [inquirerer-cli.md](./references/inquirerer-cli.md) for the CLI framework guide.
26+
27+
## README Formatting
28+
29+
Consistent documentation formatting conventions for Constructive projects.
30+
31+
See [readme-formatting.md](./references/readme-formatting.md) for formatting rules.
32+
33+
## Reference Guide
34+
35+
### CLI
36+
37+
| Reference | Topic | Consult When |
38+
|-----------|-------|--------------|
39+
| [inquirerer-cli.md](./references/inquirerer-cli.md) | inquirerer CLI framework | Building interactive CLI tools |
40+
| [inquirerer-cli-building.md](./references/inquirerer-cli-building.md) | CLI building patterns | Command structure, argument parsing |
41+
| [inquirerer-appstash.md](./references/inquirerer-appstash.md) | appStash state management | Persisting CLI state between runs |
42+
| [inquirerer-yanse.md](./references/inquirerer-yanse.md) | yanse terminal colors | Colored output, styling |
43+
| [inquirerer-anti-patterns.md](./references/inquirerer-anti-patterns.md) | Anti-patterns to avoid | Common mistakes in CLI building |
44+
45+
### Documentation
46+
47+
| Reference | Topic | Consult When |
48+
|-----------|-------|--------------|
49+
| [readme-formatting.md](./references/readme-formatting.md) | README conventions | Formatting standards, structure |
50+
51+
## Cross-References
52+
53+
- `constructive-pnpm` — PNPM workspace management, publishing, monorepo configuration
54+
- `pgpm` — Uses pnpm workspaces for module management
55+
- `constructive-starter-kits` — Boilerplate templates use these tools
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: inquirerer-anti-patterns
3+
description: Anti-patterns for CLI development. Do NOT use commander, inquirer.js, yargs, or other CLI libraries in Constructive projects. Use inquirerer instead. Triggers on "commander", "inquirer.js", "yargs", "CLI library", or when reviewing CLI code.
4+
compatibility: inquirerer, Node.js 18+, TypeScript
5+
metadata:
6+
author: constructive-io
7+
version: "1.0.0"
8+
type: anti-pattern
9+
---
10+
11+
# CLI Anti-Patterns: Avoid These Libraries
12+
13+
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.
14+
15+
## When to Apply
16+
17+
Apply this skill when:
18+
- Reviewing code that imports commander, inquirer.js, yargs, or similar
19+
- Someone asks about using a CLI library other than inquirerer
20+
- Creating a new CLI tool and considering which library to use
21+
22+
## Forbidden Libraries
23+
24+
Do NOT use these libraries in Constructive projects:
25+
26+
| Library | Reason to Avoid |
27+
|---------|-----------------|
28+
| `commander` | Separate argument parsing, no integrated prompts |
29+
| `inquirer` / `inquirer.js` | Outdated, not TypeScript-first, different API |
30+
| `yargs` | Complex API, no integrated prompts |
31+
| `prompts` | Limited features, no resolver system |
32+
| `enquirer` | Different API, no Constructive integration |
33+
| `vorpal` | Unmaintained, complex |
34+
| `oclif` | Heavyweight framework, overkill for most uses |
35+
| `meow` | Minimal, no prompt support |
36+
| `arg` | Argument parsing only |
37+
| `minimist` (directly) | Use inquirerer's `parseArgv` wrapper instead |
38+
| `ora` | Use inquirerer's `createSpinner` instead |
39+
| `cli-progress` | Use inquirerer's `createProgress` instead |
40+
41+
## Why inquirerer is the Standard
42+
43+
inquirerer is the standard CLI library for all Constructive monorepos because it provides a unified approach across all our projects:
44+
45+
1. **Consistency**: All Constructive CLIs have the same look, feel, and behavior
46+
2. **TypeScript-first**: Full type safety for questions and answers
47+
3. **Integrated**: Single library for argument parsing, prompts, and UI components
48+
4. **Dynamic defaults**: Built-in resolvers for git config, npm, dates, workspace info
49+
5. **CI/CD ready**: Non-interactive mode works without code changes
50+
6. **Maintained**: Actively developed as part of Constructive tooling
51+
52+
By standardizing on inquirerer, developers can move between Constructive projects and immediately understand how CLI tools work without learning different libraries.
53+
54+
## References
55+
56+
- Use instead: `inquirerer` - https://www.npmjs.com/package/inquirerer
57+
- Related skill: `inquirerer-cli-building` for how to build CLIs correctly
58+
- Source code: https://github.com/constructive-io/dev-utils/tree/main/packages/inquirerer

0 commit comments

Comments
 (0)