Tech Stack¶
Core Technologies¶
Language & Runtime¶
- Bash 5.0+ - Primary implementation language
- POSIX-compliant shell scripting
- Cross-platform compatibility (Linux, macOS)
- Built-in string manipulation and process management
Code Quality & Linting¶
- ShellCheck v0.8.0 - Static analysis tool for shell scripts
- Detects common mistakes and potential bugs
- Enforces best practices
- Current status: 0 errors, 28 warnings (mostly style)
Testing Framework¶
- Custom Bash Testing Framework
- 16 comprehensive test suites with 1000+ test cases
- Unit, integration, and end-to-end testing
- Performance benchmarking
- 100% test passing rate
Code Coverage¶
- Bashcov 3.2.0 - Bash code coverage analysis
- Ruby-based SimpleCov integration
- 86% line coverage for main script
- HTML and JSON coverage reports
- CI/CD integration support
Containerization¶
- Docker - For portable deployment
- Alpine Linux 3.19 base image (minimal footprint)
- Multi-stage build support
- Volume mounting for project assessment
Version Control & CI/CD¶
- Git - Version control
- GitHub Actions - CI/CD support (examples provided)
- GitLab CI - Alternative CI/CD support
Detection Capabilities¶
The tool can detect and analyze projects using:
Programming Languages¶
- Node.js/JavaScript
- Python
- Go
- Ruby
- Java
- Rust
- PHP
- .NET/C#
Package Managers¶
- npm/yarn (Node.js)
- pip/pipenv/poetry (Python)
- go mod (Go)
- bundler (Ruby)
- maven/gradle (Java)
- cargo (Rust)
- composer (PHP)
- nuget (.NET)
Container Technologies¶
- Docker
- Docker Compose
- Kubernetes manifests
CI/CD Platforms¶
- GitHub Actions
- GitLab CI
- Jenkins
- CircleCI
Development Tools¶
Build System¶
- Make - Task automation
- npm scripts - JavaScript tooling integration
Documentation¶
- Markdown - All documentation
- JSDoc comments - Code documentation
Error Handling¶
set -euo pipefail- Strict error handling- Exit codes for CI/CD integration
- Comprehensive error messages
System Requirements¶
Minimum Requirements¶
- Bash 4.0+ (5.0+ recommended)
- Git 2.0+
- 50MB disk space
- POSIX-compliant shell environment
Optional Dependencies¶
- Docker (for containerized usage)
- Node.js 14+ (for npm package usage)
- Python 3.6+ (for Python project detection)
- Ruby 3.0+ (for bashcov coverage analysis)
- Make (for Makefile usage)
Test Suite Architecture¶
Core Test Files¶
test-core-assessment.sh- Main functionality testing (46 tests)test-input-validation.sh- Input validation and error handling (15+ tests)test-help-and-verbose.sh- Help function and verbose mode (10+ tests)test-output-formats.sh- JSON/Markdown/Terminal output (25+ tests)test-strict-mode.sh- Strict mode and compliance enforcement (14 tests)test-assessment-paths.sh- Assessment logic paths (30+ tests)test-terminal-output.sh- Terminal report formatting (25+ tests)test-remediation.sh- Remediation suggestions (20+ tests)test-edge-cases.sh- Edge cases and error scenarios (17 tests)
Coverage Analysis¶
- Coverage Scripts:
coverage-analysis.sh,coverage-summary.sh - Report Generation: HTML and JSON formats
- CI Integration: Automated coverage reporting
- Threshold Monitoring: Coverage trend tracking
CLI Interface¶
Primary Command¶
twelve-factor-reviewer- Main CLI entry point (renamed from12factor-assess)- Backward compatibility maintained via package.json bin mappings
Command Structure¶
Supported Output Formats¶
- Terminal - Colorized interactive output
- JSON - Machine-readable structured data
- Markdown - Documentation-friendly reports