All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.24.2 - 2026-04-30
- Prefer project-local tooling binaries when available and fall back to the active DevTools runtime for
php-cs-fixer, Rector, ECS, Jack, and Composer Dependency Analyser during globaldev-toolsruns (#292)
1.24.1 - 2026-04-30
- Keep global
dev-tools testsruns loading the packaged PHPUnit extension by generating a bootstrap shim that falls back to the active DevTools autoloader when the working directory does not install DevTools locally (#289)
1.24.0 - 2026-04-28
- Add a configurable DevTools generated artifact workspace through
--workspace-dirandFAST_FORWARD_WORKSPACE_DIR, keeping explicit output/cache command options authoritative (#274) - Add a standalone DevTools
self-updatecommand plus global--working-dirand--auto-updatebinary options for local or global installations (#272) - Show the DevTools ASCII logo by default on all top-level command executions, while adding a
--no-logoglobal option and automatically suppressing the banner for--json/--pretty-jsoninvocations (including automatic forwarding of--no-logoto internal DevTools subprocesses) to avoid banner repetition in orchestrated command queues (#277)
- Prevent DevTools from breaking changelog workflows by keeping raw output clean for
changelog:showandchangelog:next-version(suppressing the startup ASCII logo when these commands run without explicit--json/--pretty-json) (#280)
1.23.0 - 2026-04-26
- Add a hybrid command runtime bootstrap and capability bridge that keeps command discovery split between migrated Symfony commands (
DevTools) and legacy ComposerBaseCommandcommands (DevToolsComposer) while exposing proxy commands during Composer execution for the first migration step (#199)
1.22.3 - 2026-04-25
- Add a branch-protection-safe changelog validation context that fails normal
- Teach pull-request publication guidance to read the published PR body back
- Keep workflow-dispatched test runs from failing before job creation by treating
max-outdatedas a string input and relying on the workflow default when release, wiki, or conflict automation dispatches required test status mirroring.
1.22.2 - 2026-04-24
- Dispatch required test status mirroring after changelog release-preparation workflows create or update release pull requests so release branches no longer require branch-protection bypass for workflow-authored commits (#250)
1.22.1 - 2026-04-24
- Promote any remaining project-board
Mergedwork toReleasedduring release publication so bypassed or skipped preparation transitions do not leave completed items stale (#253) - Grant project-board write permission in the packaged changelog workflow wrapper so consumer release workflows can call the reusable changelog automation without GitHub rejecting the requested permissions (#251)
1.22.0 - 2026-04-24
- Auto-resolve pull-request conflicts limited to workflow-managed
.github/wikipointers andCHANGELOG.mdUnreleaseddrift (#192) - Teach the pull-request review skill, review-guardian agent, and review request brief to require explicit validation strategies for workflow, local-action, and packaged-wrapper changes, including local
actionlintinstallation guidance (#241)
- Preserve color-friendly nested command environments, explicit Symfony Console ANSI flags, concise process section labels, and fixture-safe PhpMetrics execution with bounded Packagist lookups without restoring PTY (#239)
- Disable Xdebug for queued child processes unless coverage requires it without PCOV, reducing repeated Composer Xdebug warnings in orchestrated commands (#239)
- Keep the reports workflow permission warning loop shell-safe for paths containing backslashes (#244)
- Keep required PHPUnit matrix checks reporting after workflow-managed
.github/wikipointer commits by running the pull-request test workflow without top-level path filters and aligning the packaged consumer test wrapper (#230) - Publish pending and per-version required PHPUnit statuses for workflow-dispatched test runs so wiki pointer commits do not wait for an all-matrix aggregate status (#230)
- Ignore intentional Composer Dependency Analyser shadow dependency findings by default while adding
dependencies --show-shadow-dependenciesfor audits (#233) - Dispatch the required test workflow after wiki preview automation updates a pull-request
.github/wikipointer, avoiding permanently pending required checks on bot-authored pointer commits (#230) - Mirror workflow-dispatched wiki pointer test results into required
Run Testscommit statuses so branch protection recognizes bot-authored pointer commits (#230)
1.21.0 - 2026-04-24
- GitHub Actions(deps): Bump peter-evans/create-pull-request from 7 to 8 (#181)
- GitHub Actions(deps): Bump marocchino/sticky-pull-request-comment from 2 to 3 (#182)
- GitHub Actions(deps): Bump actions/github-script from 8 to 9 (#183)
- Auto-create and push minimal changelog entries for same-repository Dependabot pull requests before changelog validation reruns (#186)
- Resolve Dependabot changelog fallback state from the actual PR head branch and report
already-present,auto-created, ormissingin the workflow summary so rebased PRs cannot pass on inheritedUnreleasedentries alone (#191)
- Preserve literal angle brackets around maintainer emails when generating LICENSE files from composer metadata (#179)
- Keep packaged
.agentspayloads exportable and synchronize packaged skills and agents with repository-relative symlink targets so consumer repositories no longer receive broken absolute machine paths (#188) - Rewrite drifted Git hooks by removing the previous target first, restore the intended
0o755executable mode, and report unwritable hook replacements cleanly when.git/hooksstays locked (#190) - Keep Composer plugin command discovery compatible with consumer environments by moving unsupported Symfony Console named parameters out of command metadata/configuration and by decoupling the custom filesystem wrapper from Composer's bundled Symfony Filesystem signatures (#185)
- Keep Composer autoload, Rector, and ECS from traversing nested fixture
vendordirectories when the composer-plugin consumer fixture has installed dependencies (#179) - Skip LICENSE generation cleanly when a consumer composer manifest omits or leaves the
licensefield empty (#227) - Run nested DevTools subprocesses without forcing PTY, fixing aggregate commands in non-interactive environments (#171)
1.20.0 - 2026-04-23
- Force reusable workflows to sparse-checkout
.github/actionsinto a dedicated.dev-tools-actionsworkspace before resolving local GitHub Actions so consumer wrappers stop failing on missing action paths (#180)
1.19.0 - 2026-04-23
- Package a rigorous pull-request review skill, review-guardian agent, and ready-for-review workflow brief for repositories and synchronized consumers (#147)
- Retry failed GitHub Actions jobs once when failed workflow logs match transient GitHub-side checkout or transport errors (#175)
- Teach the review and pull-request agent skills to treat workflow-managed wiki pointer updates as expected state and to prefer fresh follow-up issues plus PRs over reviving closed deleted branches (#147)
- Require GitHub issue write readback verification in the github-issues skill (#165)
- Standardize cache flags and nested cache-dir propagation across cache-aware commands (#162)
- Add
GITHUB_STEP_SUMMARYoutput to tests, reports, wiki, and changelog workflows for clearer final-state workflow results (#148)
1.18.0 - 2026-04-23
- Consolidate repository-local DevTools caches under
.dev-tools/cache, keep published reports free of cache directories, and audit managed artifact path defaults across commands, workflows, and documentation (#151) - Refresh repository mascot artwork (#166)
1.17.1 - 2026-04-22
- Keep the packaged pull-request label-sync action from failing when a PR does not reference any linked issue (#157)
1.17.0 - 2026-04-22
- Add structured command output across the DevTools command surface with
--jsonand--pretty-json, including pretty-printed JSON and agent-aware JSON defaults (#33) - Group queued subprocess output and emit GitHub Actions workflow annotations for clearer CI logs and error surfaces (#33)
- Propagate structured output flags through nested DevTools subprocesses, simplify logger context extraction, and keep machine-readable runs quieter by default (#33)
- Adopt
--progressas the positive opt-in for transient progress rendering while keeping supported commands quiet by default (#33) - Teach packaged issue-authoring skills and prompts to reuse existing GitHub issue metadata, infer project field values, preserve relationships with open issues, and mirror linked issue project metadata onto pull requests (#152)
- Automate the configured GitHub Project board across issue intake, PR review, merge, release preparation, and changelog-driven release publication using repository-level Project variables (#152)
- Reorganize packaged GitHub Actions documentation to reflect the local
.github/actionsgroups forphp,project-board,github-pages,wiki, andchangelog, plus the split between wiki preview and wiki maintenance workflows (#152)
- Stabilize logger and process-queue test expectations in CI by making GitHub Actions output detection deterministic during the PHPUnit suite (#33)
- Restore raw text output for
changelog:next-versionandchangelog:showso changelog release workflows can keep capturing versions and redirecting release notes safely (#149)
1.16.0 - 2026-04-20
- Skip pull-request changelog entry validation for generated release branches so release PRs can promote
Unreleasedwithout failing CI (#138) - Restore dependency workflow documentation so README, AGENTS, and command guides match the required CI dependency-health behavior (#138)
- Require the GitHub pull-request skill to refresh
mainfrom the remote before branching for a new implementation so changelog and release state start from the latest baseline (#138)
1.15.0 - 2026-04-20
- Consolidate dependency analysis on
composer-dependency-analyser, add a reusable packaged analyzer config, remove the redundantcomposer-unuseddependency, and expose--dump-usageplus report-only--max-outdated=-1support (#135)
1.14.0 - 2026-04-20
- Add CODEOWNERS generation and sync support for consumer repositories (#67)
- Package a create-agentsmd skill for repository-level AGENTS.md authoring (#128)
- Add an agents-maintainer project agent for ongoing AGENTS.md upkeep (#128)
- Synchronize packaged project-agent prompts into consumer repositories (#130)
1.13.0 - 2026-04-19
- Add community health files plus issue and pull request templates for contributors (#37)
- Document required GitHub Actions permissions for changelog release automation (#118)
- Add the project mascot image to README and documentation (#121)
- Upgrade the packaged phpDocumentor bootstrap template to v2.0.0 (#121)
- Refresh outdated console bootstrap, sync, and dependency-injection documentation (#123)
1.12.0 - 2026-04-19
- Add Keep a Changelog management commands and release automation workflows (#28).
- Package changelog maintenance skills, docs, and the changelog-maintainer project agent (#28).
- Force workflow colors through FORCE_COLOR across packaged GitHub Actions for clearer CI logs (#28).
1.11.0 - 2026-04-19
- Ship role-based project agents for issue implementation, docs, README, tests, and changelog work (#75) (#109).
- Show diffs for overwritten synchronized resources and add preview/check modes to dev-tools:sync (#66) (#110) (#62) (#111).
- Verify deployed reports health, synchronize funding metadata, and infer workflow PHP versions from project metadata (#70) (#112) (#56) (#113) (#76) (#114).
- Package the PHP version resolver action from resources/ so GitHub Actions can load it correctly (#115) (#116).
1.10.0 - 2026-04-19
- Refresh dependency and reporting docs to match the shipped commands and workflows (#105) (#106).
- Move generated outputs into .dev-tools by default instead of public/ (#107) (#108).
- Preserve Git history in metrics previews so PhpMetrics reports show meaningful contributor and file history (#103) (#104).
1.9.0 - 2026-04-19
- Generate PhpMetrics reports for consumer repositories (#98).
- Add a Jack-powered dependency workflow to the dependencies command (#34) (#102).
- Unify metrics outputs under a target directory (#99) (#100).
- Address code quality findings and sync safety regressions in command and test code (#94) (#95) (#96) (#97).
1.8.0 - 2026-04-18
- Canonicalize packaged Git hooks during synchronization (#92) (#93).
- Isolate Finder creation behind a factory to make filesystem traversal extensible (#90) (#91).
1.7.0 - 2026-04-18
- Publish branch protection, migration, troubleshooting, and release-publishing guidance for consumer repositories (#61) (#72) (#79) (#80).
- Synchronize README metadata during composer sync and expand PHPUnit output controls (#57) (#84).
- Validate and clean up wiki and reports preview branches in packaged GitHub Actions workflows (#68) (#69) (#83).
- Reduce default GitHub Actions token permissions across packaged workflows (#63).
1.6.0 - 2026-04-17
- Introduce copy-resource, update-composer-json, and git-hooks commands plus packaged funding and support metadata.
- Publish pull request Pages previews for reports and document the consumer preview workflow (#54) (#55).
- Refactor command architecture around filesystem abstractions, resource copy and update commands, and dependency-injected process handling (#46).
1.5.0 - 2026-04-14
- Package pull request auto-assign and label-sync GitHub Actions workflows (#35).
- Standardize Composer installation and caching across packaged reports, tests, and wiki workflows.
- Reorganize commands into the Console namespace and migrate to the GrumPHP shim (#42) (#44).
- Make wiki publishing work under branch protection and synced submodule pointer updates.
1.4.0 - 2026-04-11
- Replace external coverage-check tooling with native PHPUnit coverage summary validation (#30) (#31).
- Update Symfony component constraints to support Symfony 8.0 (#31).
1.3.0 - 2026-04-11
- Manage .gitattributes export-ignore rules through dedicated gitattributes tooling (#27).
- Exclude context7.json from packaged exports and broaden GitAttributes test coverage (#27).
1.2.2 - 2026-03-26
- Bundle GrumPHP support into packaged scripts and installation commands.
- Reuse packaged GitHub Actions workflows and synchronize .editorconfig and wiki submodule assets during setup.
- Resolve packaged workflow and wiki resource paths more reliably during script synchronization.
1.2.1 - 2026-04-10
- Refine license-generation documentation and export-ignore defaults (#26).
1.2.0 - 2026-04-10
- Synchronize packaged skills into consumer repositories with the skills command (#23).
- Bundle dependency analysis tooling and the dependencies command (#10).
- Generate repository LICENSE files through dev-tools:sync and the license command (#25).
1.1.0 - 2026-04-09
- Package reusable skills for Sphinx docs, README maintenance, PHPUnit, and GitHub issue workflows.
- Synchronize .gitignore files through dedicated gitignore tooling (#21).
- Make ECS and Rector configuration extensible for consumer overrides (#19).
1.0.4 - 2026-03-26
- Resolve DocsCommand configuration files correctly from relative paths.
1.0.3 - 2026-03-26
- Verify the consumer package name before installing packaged scripts.
1.0.2 - 2026-03-26
- Move the composer/composer dependency into the required package metadata.
1.0.1 - 2026-03-26
- Introduce the unified Composer plugin command suite for tests, docs, reports, wiki publishing, and packaged script installation.
- Improve GitHub Actions and reports deployment handling for TTY, coverage, and Pages publishing.
1.0.0 - 2026-04-08
- Rename the installation workflow to dev-tools:sync and synchronize Dependabot, GitHub Actions, and repository defaults.
- Support PHPUnit test filtering, phpDocumentor bootstrap templates, and richer test notifications.
- Standardize README badges, funding metadata, and documentation references for the packaged plugin.
- Normalize workflow PHP extension setup and Git submodule path handling for synced repositories.