Communitygithub.com

YepAPI/skills

Commander.js, invites interactives avec Clack, spinners, couleurs, fichiers de configuration, codes de sortie et publication npm.

Qu'est-ce que skills ?

Ce skill fournit un guide complet et des modèles de code pour la création d'outils en ligne de commande (CLI) en JavaScript/TypeScript. Il standardise l'utilisation de bibliothèques populaires comme Commander.js pour l'analyse des arguments, @clack/prompts pour les invites interactives modernes, ora pour les spinners d'opérations longues, et chalk pour la coloration stylisée des sorties. Le skill spécifie également des règles claires pour la gestion des fichiers de configuration via cosmiconfig, les codes de sortie (0 pour succès, 1 pour erreur générale, 2 pour erreur d'utilisation), ainsi que les bonnes pratiques de publication npm incluant le champ `bin`, le shebang et le type de module ESM. Destiné aux développeurs et aux agents IA comme Claude Code ou Cursor, ce skill garantit des CLI à la fois esthétiques, robustes et conformes aux standards de l'industrie.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/cli-tools

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Outils CLI

Règles

  • Commander.js pour l'analyse des arguments — .command(), .option(), .argument() avec descriptions
  • Invites interactives : @clack/prompts (moderne, esthétique) ou inquirer — pour la saisie utilisateur quand les arguments ne sont pas fournis
  • Spinners : ora pour les opérations longues — démarrer, mettre à jour le message, réussite/échec
  • Couleurs : chalk pour un affichage stylisé — à utiliser avec parcimonie : rouge pour les erreurs, vert pour les succès, jaune pour les avertissements, grisé pour les informations secondaires
  • Fichiers de configuration : cosmiconfig — recherche automatiquement .toolrc, .toolrc.json, tool.config.js, clé dans package.json
  • Codes de sortie : 0 pour succès, 1 pour erreur générale, 2 pour erreur d'utilisation — toujours process.exit(code)
  • Indicateurs --help et --version : Commander les ajoute automatiquement — écrire des descriptions claires pour chaque option
  • Gestion des erreurs : capturer les erreurs au niveau supérieur, afficher un message convivial sur stderr, quitter avec le code 1
  • Publication : champ bin dans package.json, shebang #!/usr/bin/env node, "type": "module" pour ESM

Modèles

#!/usr/bin/env node
import { Command } from "commander";
import * as p from "@clack/prompts";
import ora from "ora";
import chalk from "chalk";

const program = new Command()
  .name("my-tool")
  .description("Un CLI qui fait des choses utiles")
  .version("1.0.0");

program
  .command("init")
  .description("Initialiser un nouveau projet")
  .option("-t, --template <name>", "modèle à utiliser", "default")
  .action(async (options) => {
    p.intro(chalk.bold("Configuration du projet"));

    const name = await p.text({ message: "Nom du projet ?", placeholder: "my-app" });
    if (p.isCancel(name)) { p.cancel("Annulé."); process.exit(0); }

    const spinner = ora("Création du projet...").start();
    await createProject(name, options.template);
    spinner.succeed(chalk.green("Projet créé !"));

    p.outro(`Exécutez ${chalk.cyan(`cd ${name} && npm install`)}`);
  });

program.parse();

// package.json: { "bin": { "my-tool": "./dist/index.js" } }

Éviter

  • Imprimer les erreurs sur stdout — utiliser console.error() ou process.stderr.write() pour les erreurs
  • Quitter sans code en cas d'échec — toujours process.exit(1) pour que les scripts et l'IC détectent l'échec
  • Murs de texte non formaté — utiliser les couleurs chalk, les sections et les espaces pour la lisibilité
  • Exiger une saisie interactive sans alternative par indicateur — toujours supporter les remplacements --flag pour l'IC/scripting
  • Oublier le shebang #!/usr/bin/env node — sans lui, npx et les installations globales ne fonctionneront pas

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Tenant isolation (row-level vs schema), subdomain routing, per-tenant config, and data partitioning.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Skills associés