Skip to main content

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}