@@ -34,6 +34,11 @@ pub const COMMANDS: &[CommandContract] = &[
3434 status : ImplementationStatus :: Implemented ,
3535 purpose : "Validate local git-hook installation readiness" ,
3636 } ,
37+ CommandContract {
38+ name : services:: auth_command:: NAME ,
39+ status : ImplementationStatus :: Implemented ,
40+ purpose : "Authenticate with WorkOS and inspect local auth state" ,
41+ } ,
3742 CommandContract {
3843 name : services:: mcp:: NAME ,
3944 status : ImplementationStatus :: Placeholder ,
@@ -84,13 +89,14 @@ pub fn help_text() -> String {
8489 Usage:\n sce [command]\n \n \
8590 Config usage:\n sce config <show|validate> [--format <text|json>] [options]\n \n \
8691 Setup usage:\n sce setup [--opencode|--claude|--both] [--non-interactive] [--hooks] [--repo <path>]\n \n \
92+ Auth usage:\n sce auth <login|logout|status> [--format <text|json>]\n \n \
8793 Completion usage:\n sce completion --shell <bash|zsh|fish>\n \n \
8894 Output format contract:\n Supported commands accept --format <text|json>\n \n \
89- Examples:\n sce setup\n sce setup --opencode --non-interactive --hooks\n sce setup --hooks --repo ../demo-repo\n sce doctor --format json\n sce version --format json\n \n \
95+ Examples:\n sce setup\n sce setup --opencode --non-interactive --hooks\n sce setup --hooks --repo ../demo-repo\n sce auth status \n sce auth login --format json \n sce doctor --format json\n sce version --format json\n \n \
9096 Commands:\n {}\n \n \
9197 Setup defaults to interactive target selection when no setup target flag is passed, and installs hooks in the same run.\n \
9298 Use '--hooks' to install required git hooks for the current repository or '--repo <path>' for a specific repository.\n \
93- `setup`, `doctor`, and `hooks` are implemented; `mcp` and `sync` remain placeholder-oriented.\n ",
99+ `setup`, `doctor`, `auth`, `hooks`, `version`, and `completion ` are implemented; `mcp` and `sync` remain placeholder-oriented.\n ",
94100 command_rows
95101 )
96102}
@@ -126,6 +132,25 @@ mod tests {
126132 assert ! ( help. contains( "version" ) ) ;
127133 }
128134
135+ #[ test]
136+ fn command_surface_includes_auth_as_known_implemented_command ( ) {
137+ let auth = COMMANDS
138+ . iter ( )
139+ . find ( |command| command. name == crate :: services:: auth_command:: NAME )
140+ . expect ( "auth command should be listed" ) ;
141+
142+ assert_eq ! ( auth. status, ImplementationStatus :: Implemented ) ;
143+ assert ! ( crate :: command_surface:: is_known_command( "auth" ) ) ;
144+ }
145+
146+ #[ test]
147+ fn help_text_mentions_auth_usage_examples ( ) {
148+ let help = help_text ( ) ;
149+ assert ! ( help. contains( "sce auth <login|logout|status> [--format <text|json>]" ) ) ;
150+ assert ! ( help. contains( "sce auth status" ) ) ;
151+ assert ! ( help. contains( "sce auth login --format json" ) ) ;
152+ }
153+
129154 #[ test]
130155 fn help_text_mentions_completion_command ( ) {
131156 let help = help_text ( ) ;
0 commit comments