37 lines
1.9 KiB
Markdown
37 lines
1.9 KiB
Markdown
|
|
# Tasker Milestones
|
|||
|
|
|
|||
|
|
This document defines the implementation milestones for the `getphred/tasker` runner.
|
|||
|
|
|
|||
|
|
## 1. Project Infrastructure
|
|||
|
|
- [x] Initialize `composer.json` with PSR-4 autoloading and dev tools (PHPUnit, PHPStan, PHPCS).
|
|||
|
|
- [x] Set up GitHub Actions (PHP 8.2/8.3) with fail-on-warning policy.
|
|||
|
|
- [x] Establish coding standards and baseline configuration files.
|
|||
|
|
|
|||
|
|
## 2. Core Runner MVP
|
|||
|
|
- [x] Bootstrap runner accepting a PSR-11 container (`ContainerInterface`).
|
|||
|
|
- [x] Implement explicit command registration API.
|
|||
|
|
- [x] Implement Composer-based discovery via `extra.phred-tasker.commands`.
|
|||
|
|
- [x] Implement basic argv parser for global flags: `-v/-vv/-vvv/-q`, `-n/--no-interaction`, `--no-ansi`, `-h/--help`.
|
|||
|
|
- [x] Implement built-in `list` and `help` commands.
|
|||
|
|
|
|||
|
|
## 3. Middleware Engine
|
|||
|
|
- [x] Define middleware registration via container and ordered execution.
|
|||
|
|
- [x] Implement middleware execution chain (`ConsoleMiddlewareInterface`).
|
|||
|
|
- [x] Add top-level exception guard and standardized exit code mapping (sysexits.h).
|
|||
|
|
|
|||
|
|
## 4. IO & State Wiring
|
|||
|
|
- [x] Initialize default PhredBridge adapters for `InputInterface`/`OutputInterface`.
|
|||
|
|
- [x] Wire verbosity, decoration (ANSI), and non-interactive flags into output and helper behavior.
|
|||
|
|
- [x] Ensure fixed markup set renders (via PhredBridge) or strips when colors are disabled.
|
|||
|
|
|
|||
|
|
## 5. Integration Tests
|
|||
|
|
- [x] End-to-end test: run sample command discovered via Composer.
|
|||
|
|
- [x] Arg/option parsing tests including edge cases (unknown flags, combined short flags rejection, defaults).
|
|||
|
|
- [x] Middleware behavior tests (ordering, early return, error handling).
|
|||
|
|
- [x] Help/list output tests (including non-interactive and `--no-ansi`).
|
|||
|
|
|
|||
|
|
## 6. Developer Experience
|
|||
|
|
- [x] Quick Start guide with container boot example and Composer discovery snippet.
|
|||
|
|
- [x] Example project with 1–2 sample commands using attributes (`#[Cmd]`, `#[Arg]`, `#[Opt]`).
|
|||
|
|
- [x] Troubleshooting section (common exit codes, discovery pitfalls).
|