@@ -84,7 +84,7 @@ pub enum Commands {
8484 Unify {
8585 /// Action: 'undo' to restore a backup
8686 action : Option < String > ,
87- /// Preview changes without modifying files
87+ /// Dry-run mode: preview changes without modifying files
8888 #[ arg( long, short = 'c' ) ]
8989 check : bool ,
9090 /// Output format [text, json]
@@ -133,7 +133,7 @@ pub enum Commands {
133133 /// Skip interactive prompts
134134 #[ arg( long) ]
135135 non_interactive : bool ,
136- /// Preview generated config without writing
136+ /// Dry-run mode: preview generated config without writing
137137 #[ arg( long, short = 'c' ) ]
138138 check : bool ,
139139 } ,
@@ -143,14 +143,15 @@ pub enum Commands {
143143 /// Action: 'init' to configure splits, or crate name to split
144144 action : Option < String > ,
145145 /// Additional crate name(s) for init
146+ #[ arg( conflicts_with = "all" ) ]
146147 crate_names : Vec < String > ,
147- /// Split all configured crates
148- #[ arg( short, long) ]
148+ /// Split all configured crates (mutually exclusive with crate names)
149+ #[ arg( short, long, conflicts_with = "action" ) ]
149150 all : bool ,
150151 /// Override remote repository
151152 #[ arg( long) ]
152153 remote : Option < String > ,
153- /// Preview changes without executing
154+ /// Dry-run mode: preview changes without executing
154155 #[ arg( long, short = 'c' ) ]
155156 check : bool ,
156157 /// Output format [text, json]
@@ -160,9 +161,10 @@ pub enum Commands {
160161
161162 /// Sync changes between monorepo and split repos
162163 Sync {
163- /// Crate name to sync
164+ /// Crate name to sync (mutually exclusive with --all)
165+ #[ arg( conflicts_with = "all" ) ]
164166 crate_name : Option < String > ,
165- /// Sync all configured crates
167+ /// Sync all configured crates (mutually exclusive with crate name)
166168 #[ arg( short, long) ]
167169 all : bool ,
168170 /// Override remote repository
@@ -180,7 +182,7 @@ pub enum Commands {
180182 /// Allow direct commits to protected branches
181183 #[ arg( long) ]
182184 no_protected_branches : bool ,
183- /// Preview changes without executing
185+ /// Dry-run mode: preview changes without executing
184186 #[ arg( long, short = 'c' ) ]
185187 check : bool ,
186188 /// Output format [text, json]
@@ -192,15 +194,16 @@ pub enum Commands {
192194 Release {
193195 /// Action: 'init' to configure release settings
194196 action : Option < String > ,
195- /// Crate name(s) to release
197+ /// Crate name(s) to release (mutually exclusive with --all)
198+ #[ arg( conflicts_with = "all" ) ]
196199 crate_names : Vec < String > ,
197- /// Release all workspace crates
198- #[ arg( short, long) ]
200+ /// Release all workspace crates (mutually exclusive with crate names)
201+ #[ arg( short, long, conflicts_with = "action" ) ]
199202 all : bool ,
200203 /// Version bump [major, minor, patch, or "x.y.z"]
201204 #[ arg( long, default_value = "patch" ) ]
202205 bump : String ,
203- /// Preview release plan without executing
206+ /// Dry-run mode: preview release plan without executing
204207 #[ arg( long, short = 'c' ) ]
205208 check : bool ,
206209 /// Skip publishing to crates.io
@@ -216,9 +219,10 @@ pub enum Commands {
216219
217220 /// Validate release readiness
218221 Check {
219- /// Crate name(s) to check
222+ /// Crate name(s) to check (mutually exclusive with --all)
223+ #[ arg( conflicts_with = "all" ) ]
220224 crate_names : Vec < String > ,
221- /// Check all workspace crates
225+ /// Check all workspace crates (mutually exclusive with crate names)
222226 #[ arg( short, long) ]
223227 all : bool ,
224228 /// Output format [text, json]
@@ -237,7 +241,7 @@ pub enum Commands {
237241 /// Clean generated reports
238242 #[ arg( long) ]
239243 reports : bool ,
240- /// Preview what would be cleaned
244+ /// Dry-run mode: preview what would be cleaned
241245 #[ arg( long, short = 'c' ) ]
242246 check : bool ,
243247 } ,
0 commit comments