What problem does it solve? Shell scripts often ship without automated tests, making regressions and edge-case failures hard to catch. This Skill provides structured patterns for writing, organizing, and running Bats (Bash Automated Testing System) tests so shell utilities can be validated in CI/CD pipelines. ## Core Features & Use Cases - Assertion Patterns: Test exit codes, stdout output, file creation, permissions, and multi-line results using Bats built-ins like run, $status, $output, and $lines. - Fixtures, Mocking & Stubbing: Manage fixture files, mock external commands, stub binaries via PATH injection, and isolate tests with setup/teardown and temp directories. - CI/CD Integration: Run Bats suites in GitHub Actions or Makefiles with TAP output, parallel execution, and shell-dialect compatibility checks (bash, sh, dash). - Use Case: You maintain a deployment shell script and want to verify it fails gracefully on missing arguments and produces correct output files. Use this Skill to scaffold a tests/ directory with Bats tests covering success paths, error conditions, and mocked external tools like curl. ## Quick Start Write Bats unit tests for my deploy.sh script covering its exit codes, output messages, and error handling for missing arguments.