Tasker/MILESTONES.md

37 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

# 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 12 sample commands using attributes (`#[Cmd]`, `#[Arg]`, `#[Opt]`).
- [x] Troubleshooting section (common exit codes, discovery pitfalls).