# ConsoleContracts Milestones This document defines the implementation milestones for the `getphred/console-contracts` package. ## 1. Project Infrastructure - [x] Initialize repository and `composer.json` with zero runtime dependencies. - [x] Configure PHPUnit and static analysis (PHPStan). - [x] Set up GitHub Actions for continuous integration. ## 2. Core Interfaces - [x] Implement `CommandInterface` and metadata methods. - [x] Implement `InputInterface` for argument and option access. - [x] Implement `OutputInterface` with verbosity and semantic methods. - [x] Implement `ConsoleMiddlewareInterface` for execution wrapping. - [x] Implement `ConsoleExceptionInterface` for standardized errors. ## 3. Standardized Constants - [x] Implement `Verbosity` level constants. - [x] Implement `ExitCode` semantic constants (sysexits.h). ## 4. Helper & DX Contracts - [x] Implement `InteractionInterface` for portable interactivity. - [x] Implement `ProgressBarInterface`, `TableInterface`, and `MarkdownConverterInterface`. - [x] Implement PHP 8 Attributes (`#[Cmd]`, `#[Arg]`, `#[Opt]`). - [x] Implement `HasAttributes` trait for attribute-to-interface bridging.