spec_driven_docs/cli/gate.rs
1//! `gate` subcommand: parse-shape.
2//!
3//! Holds the clap derive struct only. No I/O, no business logic.
4
5use crate::domain::gate_id::GateId;
6
7/// Run one delivered gate against the working directory.
8#[derive(Debug, clap::Args)]
9pub struct GateArgs {
10 /// The gate to run.
11 #[arg(value_enum, required_unless_present = "list")]
12 pub id: Option<GateId>,
13
14 /// Files to judge, or extra record roots — whatever the gate's hook
15 /// wiring passes.
16 pub files: Vec<String>,
17
18 /// List every delivered gate instead of running one.
19 #[arg(long, conflicts_with = "id")]
20 pub list: bool,
21}