library/specializations/cli-mcp-development/skills/clap-scaffolder/SKILL.md
Generate Clap-based Rust CLI applications with derive macros, subcommands, and modern Rust patterns. Creates production-ready Rust CLI with proper cargo structure.
npx skillsauth add a5c-ai/babysitter clap-scaffolderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a complete Clap CLI application with Rust, derive macros, and best practices.
Invoke this skill when you need to:
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | projectName | string | Yes | Name of the CLI project (kebab-case) | | description | string | Yes | Short description of the CLI | | commands | array | No | List of commands to scaffold | | deriveFeatures | array | No | Clap derive features to enable | | colorOutput | boolean | No | Enable colored output (default: true) |
{
"commands": [
{
"name": "run",
"description": "Run the application",
"args": [
{ "name": "target", "help": "Target to run", "required": true }
],
"options": [
{ "long": "watch", "short": "w", "help": "Watch for changes" },
{ "long": "port", "short": "p", "value_name": "PORT", "default": "3000" }
]
}
]
}
<projectName>/
├── Cargo.toml
├── Cargo.lock
├── README.md
├── .gitignore
├── src/
│ ├── main.rs # Entry point
│ ├── cli.rs # Clap definitions
│ ├── commands/
│ │ ├── mod.rs # Command exports
│ │ └── <command>.rs # Individual commands
│ ├── config.rs # Configuration
│ └── error.rs # Error types
├── tests/
│ └── cli.rs # CLI integration tests
└── completions/
├── _<projectName> # Zsh completions
├── <projectName>.bash # Bash completions
└── <projectName>.fish # Fish completions
use clap::{Parser, Subcommand, Args};
#[derive(Parser)]
#[command(name = "<projectName>")]
#[command(author, version, about, long_about = None)]
pub struct Cli {
/// Enable verbose output
#[arg(short, long, global = true)]
pub verbose: bool,
/// Configuration file path
#[arg(short, long, global = true)]
pub config: Option<PathBuf>,
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
/// Run the application
Run(RunArgs),
/// Build the project
Build(BuildArgs),
/// Generate shell completions
Completions {
/// Shell to generate completions for
#[arg(value_enum)]
shell: clap_complete::Shell,
},
}
#[derive(Args)]
pub struct RunArgs {
/// Target to run
pub target: String,
/// Watch for changes
#[arg(short, long)]
pub watch: bool,
/// Port to use
#[arg(short, long, default_value = "3000")]
pub port: u16,
}
use anyhow::Result;
use clap::Parser;
use colored::Colorize;
mod cli;
mod commands;
mod config;
mod error;
use cli::{Cli, Commands};
fn main() -> Result<()> {
let cli = Cli::parse();
// Setup logging based on verbosity
if cli.verbose {
env_logger::Builder::from_env(
env_logger::Env::default().default_filter_or("debug")
).init();
}
match cli.command {
Commands::Run(args) => commands::run::execute(args)?,
Commands::Build(args) => commands::build::execute(args)?,
Commands::Completions { shell } => {
generate_completions(shell);
}
}
Ok(())
}
use anyhow::Result;
use colored::Colorize;
use crate::cli::RunArgs;
pub fn execute(args: RunArgs) -> Result<()> {
println!("{} Running target: {}", "→".blue(), args.target.green());
if args.watch {
println!("{} Watch mode enabled", "!".yellow());
}
println!("{} Listening on port {}", "✓".green(), args.port);
Ok(())
}
[package]
name = "<projectName>"
version = "0.1.0"
edition = "2021"
[dependencies]
clap = { version = "4.4", features = ["derive", "env"] }
clap_complete = "4.4"
anyhow = "1.0"
thiserror = "1.0"
colored = "2.0"
env_logger = "0.10"
log = "0.4"
[dev-dependencies]
assert_cmd = "2.0"
predicates = "3.0"
development
Model documentation skill for generating model cards following Google's model card framework.
development
MLflow integration skill for experiment tracking, model registry, and artifact management. Enables LLMs to log experiments, compare runs, manage model lifecycle, and retrieve artifacts through the MLflow API.
data-ai
LIME-based local explanation skill for individual predictions across tabular, text, and image data.
devops
Kubeflow Pipelines skill for ML workflow orchestration, component management, and Kubernetes-native ML.