From 5905b792f33e0397990e99c7e5ab0fc9e76c1234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Say=C3=A3o=20Lobato=20Abreu?= Date: Sat, 24 Oct 2026 08:59:05 -0300 Subject: [PATCH 1/2] chore: standardize skill sources and PHPDoc bootstrap --- .changelog/consistent-skill-sources.md | 11 ++++++++ .gitattributes | 1 + .php-cs-fixer.dist.php | 38 ++++++++++++++++++++++++++ CONTRIBUTING.md | 12 ++++++-- composer.json | 5 ++-- skills.json | 14 +++++----- 6 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 .changelog/consistent-skill-sources.md create mode 100644 .php-cs-fixer.dist.php diff --git a/.changelog/consistent-skill-sources.md b/.changelog/consistent-skill-sources.md new file mode 100644 index 0000000..973c40e --- /dev/null +++ b/.changelog/consistent-skill-sources.md @@ -0,0 +1,11 @@ +--- +category: changed +type: patch +--- + +Synchronize the bundled local skill automatically and trust Fast Forward Composer +skill donors through `fast-forward/*`. +Resolve Changelog contributor skills from stable `0.4.x` releases without a +redundant skill allowlist. +Load the project autoloader for PHPDoc checks when DevTools is installed as a +dependency. diff --git a/.gitattributes b/.gitattributes index d787e0d..281ac32 100755 --- a/.gitattributes +++ b/.gitattributes @@ -18,3 +18,4 @@ /CONTRIBUTING.md export-ignore /composer-dependency-analyser.php export-ignore /skills.json export-ignore +/.php-cs-fixer.dist.php export-ignore diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 100644 index 0000000..0c6557a --- /dev/null +++ b/.php-cs-fixer.dist.php @@ -0,0 +1,38 @@ + + * @license https://opensource.org/licenses/MIT MIT License + * + * @see https://github.com/php-fast-forward/http + * @see https://github.com/php-fast-forward + * @see https://datatracker.ietf.org/doc/html/rfc2119 + */ + +use FastForward\DevTools\Path\WorkingProjectPathResolver; +use PhpCsFixer\Config; +use PhpCsFixer\Finder; + +require __DIR__ . '/vendor/autoload.php'; + +return (new Config()) + ->setRiskyAllowed(false) + ->setFinder(Finder::create()->in(__DIR__)->exclude(WorkingProjectPathResolver::TOOLING_EXCLUDED_DIRECTORIES)) + ->setRules([ + 'phpdoc_indent' => true, + 'phpdoc_order' => ['order' => ['param', 'return', 'throws']], + 'phpdoc_separation' => true, + 'phpdoc_trim' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_scalar' => true, + 'phpdoc_types' => true, + 'phpdoc_to_comment' => false, + 'phpdoc_add_missing_param_annotation' => true, + ]); diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 306146a..92a97b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,9 +37,15 @@ still need editorial review; no PR attribution is inferred from prose alone. The development-only manager restores `fast-forward-container` and `fast-forward-config` from the installed Composer packages, including Config as -a transitive dependency. `skills.json` explicitly trusts only those two Composer -donors; dependency trust does not extend to other installed packages. No separate -GitHub source or version pin is used for either library. +a transitive dependency. `skills.json` trusts installed donors in the +`fast-forward/*` namespace; `trusted-replace` keeps other namespaces untrusted. +No separate GitHub source or version pin is used for either library. + +The bundled skill is also synchronized from the local `resources/skills` +directory, without a package override. Changelog instructions come from the +GitHub source at `^0.4.0`, discovered through its Composer metadata without a +skill allowlist. `auto-sync: true` restores these skills after normal Composer +install/update operations; `composer skills:update` refreshes them explicitly. Inspect donors with `composer skills:show` and refresh their payloads with `composer skills:update --from=composer`. The existing GitHub source continues diff --git a/composer.json b/composer.json index a7aa46e..7c08884 100644 --- a/composer.json +++ b/composer.json @@ -43,10 +43,11 @@ "allow-plugins": { "ergebnis/composer-normalize": true, "fast-forward/dev-tools": true, + "llm/skills": true, "phpdocumentor/shim": true, "phpro/grumphp": true, - "pyrech/composer-changelogs": true, - "llm/skills": true + "phpro/grumphp-shim": true, + "pyrech/composer-changelogs": true }, "platform": { "php": "8.3.0" diff --git a/skills.json b/skills.json index 87f8ea0..47b322e 100644 --- a/skills.json +++ b/skills.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/roxblnfk/skills/master/resources/skills.schema.json", + "$schema": "https://raw.githubusercontent.com/roxblnfk/skills/1.15.0/resources/skills.schema.json", "target": ".agents/skills", "aliases": [], "discovery": false, @@ -8,20 +8,20 @@ "dependencies": { "composer": { "trusted": [ - "fast-forward/config", - "fast-forward/container" + "fast-forward/*" ], "trusted-replace": true } }, "sources": [ + { + "from": "dir", + "path": "resources/skills" + }, { "from": "github", "package": "php-fast-forward/changelog", - "ref": "^0.3.0", - "skills": [ - "fast-forward-changelog" - ] + "ref": "^0.4.0" } ] } From a98947ecf85ee366ea7fbec2ad8ad42fdd274750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Say=C3=A3o=20Lobato=20Abreu?= Date: Sat, 24 Oct 2026 09:04:15 -0300 Subject: [PATCH 2/2] chore: ignore generated development output --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 774e249..922fc3b 100755 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ vendor/ composer.lock *.cache /.agents/ +/.dev-tools/