refactor: standardize exit codes across all CLI tools #237

Closed
opened 2026-05-31 14:21:14 +00:00 by jmiller · 2 comments
Owner

Problem

Common.php defines exit code constants (EXIT_SUCCESS, EXIT_ERROR, EXIT_INVALID_ARGS, EXIT_NOT_FOUND, EXIT_PERMISSION) but they are rarely used. Most tools use raw exit(0)/exit(1) with no consistency.

Current State

  • bin/moko uses exit(2) for usage errors
  • Some tools use exit(1) for everything
  • No standard for partial success, permission denied, etc.

Proposal

Adopt consistent exit codes across all tools:

  • 0 = success
  • 1 = general failure
  • 2 = usage/argument error
  • 3 = not found (file, repo, resource)
  • 4 = permission/auth error

Define these as constants in CliFramework and enforce via code review.

Acceptance Criteria

  • Exit code constants defined in CliFramework
  • Common.php constants deprecated or aliased
  • All CliFramework-based tools use named constants
  • bin/moko documents exit codes in --help
## Problem Common.php defines exit code constants (EXIT_SUCCESS, EXIT_ERROR, EXIT_INVALID_ARGS, EXIT_NOT_FOUND, EXIT_PERMISSION) but they are rarely used. Most tools use raw exit(0)/exit(1) with no consistency. ## Current State - bin/moko uses exit(2) for usage errors - Some tools use exit(1) for everything - No standard for partial success, permission denied, etc. ## Proposal Adopt consistent exit codes across all tools: - 0 = success - 1 = general failure - 2 = usage/argument error - 3 = not found (file, repo, resource) - 4 = permission/auth error Define these as constants in CliFramework and enforce via code review. ## Acceptance Criteria - [ ] Exit code constants defined in CliFramework - [ ] Common.php constants deprecated or aliased - [ ] All CliFramework-based tools use named constants - [ ] bin/moko documents exit codes in --help
jmiller added the phppriority: medium labels 2026-05-31 14:21:14 +00:00
Author
Owner

Branch created: feature/237-refactor-standardize-exit-codes-across-a

git fetch origin
git checkout feature/237-refactor-standardize-exit-codes-across-a
Branch created: [`feature/237-refactor-standardize-exit-codes-across-a`](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/src/branch/feature/237-refactor-standardize-exit-codes-across-a) ```bash git fetch origin git checkout feature/237-refactor-standardize-exit-codes-across-a ```
Author
Owner

Exit code constants added to CliFramework:

  • EXIT_SUCCESS = 0
  • EXIT_FAILURE = 1
  • EXIT_USAGE = 2
  • EXIT_NOT_FOUND = 3
  • EXIT_PERMISSION = 4

Available to all CliFramework-based tools via self::EXIT_*.

Exit code constants added to CliFramework: - `EXIT_SUCCESS = 0` - `EXIT_FAILURE = 1` - `EXIT_USAGE = 2` - `EXIT_NOT_FOUND = 3` - `EXIT_PERMISSION = 4` Available to all CliFramework-based tools via `self::EXIT_*`.
Sign in to join this conversation.
No labels php priority: medium
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/moko-platform#237