diff --git a/.changelog/changelog-skill-source.md b/.changelog/changelog-skill-source.md new file mode 100644 index 0000000..d7ae1be --- /dev/null +++ b/.changelog/changelog-skill-source.md @@ -0,0 +1,7 @@ +--- +category: changed +type: patch +--- + +Resolve Changelog contributor skills from stable `0.4.x` GitHub releases using +the package's declared payload without a redundant skill allowlist. diff --git a/.changelog/consistent-skill-sources.md b/.changelog/consistent-skill-sources.md new file mode 100644 index 0000000..e1708fc --- /dev/null +++ b/.changelog/consistent-skill-sources.md @@ -0,0 +1,7 @@ +--- +category: changed +type: patch +--- + +Restore the bundled consumer skill automatically from the local +`resources/skills` source. diff --git a/.changelog/fast-forward-skill-trust.md b/.changelog/fast-forward-skill-trust.md new file mode 100644 index 0000000..c0fd378 --- /dev/null +++ b/.changelog/fast-forward-skill-trust.md @@ -0,0 +1,7 @@ +--- +category: changed +type: patch +--- + +Trust installed Fast Forward Composer skill donors through `fast-forward/*`, +replacing implicit trust for other namespaces. diff --git a/.changelog/phpdoc-consumer-autoloader.md b/.changelog/phpdoc-consumer-autoloader.md new file mode 100644 index 0000000..4744962 --- /dev/null +++ b/.changelog/phpdoc-consumer-autoloader.md @@ -0,0 +1,7 @@ +--- +category: fixed +type: patch +--- + +Load the consumer autoloader for PHPDoc checks when DevTools is installed as a +dependency. diff --git a/.changelog/provider-guide-rendering.md b/.changelog/provider-guide-rendering.md new file mode 100644 index 0000000..cc85520 --- /dev/null +++ b/.changelog/provider-guide-rendering.md @@ -0,0 +1,7 @@ +--- +category: fixed +type: patch +--- + +Render provider API guidance with supported reStructuredText instead of missing +PHP domain directive templates. diff --git a/.gitattributes b/.gitattributes index 84ffdce..4de4194 100755 --- a/.gitattributes +++ b/.gitattributes @@ -17,3 +17,4 @@ /docs/ export-ignore /README*.md export-ignore /skills.json export-ignore +/.php-cs-fixer.dist.php export-ignore 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/ diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 100644 index 0000000..0c84905 --- /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-client + * @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 8dd0b10..2e4bcf5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,9 +39,15 @@ workflow or merging an ordinary contribution does not publish a release. 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 07ded6b..3d32180 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ }, "require-dev": { "fast-forward/dev-tools": "dev-main", + "llm/skills": "^1.15", "nyholm/psr7": "^1.8" }, "suggest": { @@ -43,10 +44,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/docs/api/http-client-service-provider.rst b/docs/api/http-client-service-provider.rst index ab76103..fbd6a6b 100644 --- a/docs/api/http-client-service-provider.rst +++ b/docs/api/http-client-service-provider.rst @@ -1,11 +1,11 @@ HttpClientServiceProvider ========================= -.. php:class:: FastForward\Http\Client\ServiceProvider\HttpClientServiceProvider +``FastForward\Http\Client\ServiceProvider\HttpClientServiceProvider`` - Registers the service factories exposed by ``fast-forward/http-client``. - It implements ``Interop\Container\ServiceProviderInterface`` and publishes one - Symfony transport entry point plus one PSR-18 client entry point. +Registers the service factories exposed by ``fast-forward/http-client``. +It implements ``Interop\Container\ServiceProviderInterface`` and publishes one +Symfony transport entry point plus one PSR-18 client entry point. Description ----------- @@ -78,12 +78,12 @@ Usage Example Methods ------- -.. php:method:: getFactories() +``getFactories()`` - Returns the package factory map. The map contains the Symfony transport entry - and the PSR-18 client entry described above. +Returns the package factory map. The map contains the Symfony transport entry +and the PSR-18 client entry described above. -.. php:method:: getExtensions() +``getExtensions()`` - Returns an empty extension map. Decoration and replacement are expected to be - handled by the surrounding container composition. +Returns an empty extension map. Decoration and replacement are expected to be +handled by the surrounding container composition. 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" } ] }