use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(
name = "agent-policy",
version,
about = "Schema-first generator for coding-agent repo policies.",
long_about = "Generates AGENTS.md, CLAUDE.md, and .cursor/rules from a canonical agent-policy.yaml.\n\nSee https://github.com/CameronBrooks11/agent-policy for documentation."
)]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
}
#[derive(Subcommand)]
pub enum Command {
Init {
#[arg(long)]
force: bool,
},
Generate {
#[arg(long, short, default_value = "agent-policy.yaml")]
config: camino::Utf8PathBuf,
#[arg(long, short, value_delimiter = ',')]
targets: Option<Vec<String>>,
},
Check {
#[arg(long, short, default_value = "agent-policy.yaml")]
config: camino::Utf8PathBuf,
#[arg(long, short, value_delimiter = ',')]
targets: Option<Vec<String>>,
},
Lint {
#[arg(long, short, default_value = "agent-policy.yaml")]
config: camino::Utf8PathBuf,
},
#[command(name = "list-targets")]
ListTargets,
#[command(name = "install-hooks")]
InstallHooks {
#[arg(long)]
pre_push: bool,
},
Import,
}