wp-phpstan

tarafından wordpress

PHPStan yapılandırması, hata düzeltme ve WordPress projeleri için temel yönetimi. WordPress'e özgü yazım kalıplarını işler: WP_REST_Request ile REST uç noktaları, doğru @param türleriyle hook geri çağrıları, veritabanı sonuçları ve Action Scheduler iş argümanları. Saplamalar (php-stubs/woocommerce-stubs, php-stubs/acf-pro-stubs) ve hedeflenmiş yok sayma desenleri aracılığıyla üçüncü taraf eklenti/tema sınıfı çözümlemesini yönetir. Belirleyici PHPStan keşfi, yapılandırma doğrulaması, temel...

npx skills add https://github.com/wordpress/agent-skills --skill wp-phpstan

WP PHPStan

When to use

Use this skill when working on PHPStan in a WordPress codebase, for example:

  • setting up or updating phpstan.neon / phpstan.neon.dist
  • generating or updating phpstan-baseline.neon
  • fixing PHPStan errors via WordPress-friendly PHPDoc (REST requests, hooks, query results)
  • handling third-party plugin/theme classes safely (stubs/autoload/targeted ignores)

Inputs required

  • wp-project-triage output (run first if you haven't)
  • Whether adding/updating Composer dev dependencies is allowed (stubs).
  • Whether changing the baseline is allowed for this task.

Procedure

0) Discover PHPStan entrypoints (deterministic)

  1. Inspect PHPStan setup (config, baseline, scripts):
    • node skills/wp-phpstan/scripts/phpstan_inspect.mjs

Prefer the repo’s existing composer script (e.g. composer run phpstan) when present.

1) Ensure WordPress core stubs are loaded

szepeviktor/phpstan-wordpress or php-stubs/wordpress-stubs are effectively required for most WordPress plugin/theme repos. Without it, expect a high volume of errors about unknown WordPress core functions.

  • Confirm the package is installed (see composer.dependencies in the inspect report).
  • Ensure the PHPStan config references the stubs (see references/third-party-classes.md).

2) Ensure a sane phpstan.neon for WordPress projects

  • Keep paths focused on first-party code (plugin/theme directories).
  • Exclude generated and vendored code (vendor/, node_modules/, build artifacts, tests unless explicitly analyzed).
  • Keep ignoreErrors entries narrow and documented.

See:

  • references/configuration.md

3) Fix errors with WordPress-specific typing (preferred)

Prefer correcting types over ignoring errors. Common WP patterns that need help:

  • REST endpoints: type request parameters using WP_REST_Request<...>
  • Hook callbacks: add accurate @param types for callback args
  • Database results and iterables: use array shapes or object shapes for query results
  • Action Scheduler: type $args array shapes for job callbacks

See:

  • references/wordpress-annotations.md

4) Handle third-party plugin/theme classes (only when needed)

When integrating with plugins/themes not present in the analysis environment:

  • First, confirm the dependency is real (installed/required).
  • Prefer plugin-specific stubs already used in the repo (common examples: php-stubs/woocommerce-stubs, php-stubs/acf-pro-stubs).
  • If PHPStan still cannot resolve classes, add targeted ignoreErrors patterns for the specific vendor prefix.

See:

  • references/third-party-classes.md

5) Baseline management (use as a migration tool, not a trash bin)

  • Generate a baseline once for legacy code, then reduce it over time.
  • Do not “baseline” newly introduced errors.

See:

  • references/configuration.md

Verification

  • Run PHPStan using the discovered command (composer run ... or vendor/bin/phpstan analyse).
  • Confirm the baseline file (if used) is included and didn’t grow unexpectedly.
  • Re-run after changing ignoreErrors to ensure patterns are not masking unrelated issues.

Failure modes / debugging

  • “Class not found”:
    • confirm autoloading/stubs, or add a narrow ignore pattern
  • Huge error counts after enabling PHPStan:
    • reduce paths, add excludePaths, start at a lower level, then ratchet up
  • Inconsistent types around hooks / REST params:
    • add explicit PHPDoc (see references) rather than runtime guards

Escalation

  • If a type depends on a third-party plugin API you can’t confirm, ask for the dependency version or source before inventing types.
  • If fixing requires adding new Composer dependencies (stubs/extensions), confirm it with the user first.

wordpress tarafından daha fazla skill

blueprint
wordpress
WordPress Playground blueprint JSON dosyalarını oluştururken, düzenlerken veya incelerken kullanılır. Blueprint'lerden, playground yapılandırmasından veya taleplerden bahsedildiğinde tetiklenir…
official
wordpress-router
wordpress
WordPress kod tabanlarını sınıflandırır ve eklentiler, temalar, bloklar ile çekirdek kontrolleri için doğru iş akışına yönlendirir. Depo türünü (eklenti, tema, blok teması, Gutenberg blokları, WP çekirdeği) ve mevcut araçları belirlemek için otomatik proje triyajı çalıştırır. Kullanıcı niyeti ve proje türüne göre sınıflandırma sonuçları ile karar ağacı yönlendirmesini alana özel becerilere çıktı olarak verir. Depo kök erişimi ve bash/Node dosya sistemi işlemleri gerektirir; bazı iş akışları WP-CLI'ye ihtiyaç duyar. WordPress 6.9+ ve PHP
official
wp-abilities-api
wordpress
WordPress Abilities API kaydı, REST sunumu ve WordPress 6.9+ için istemci tarafı tüketimi. wp_register_ability() ve wp_register_ability_category() kullanarak PHP'de kararlı kimlikler, etiketler ve meta verilerle yetenekler ve kategoriler kaydedin. meta.show_in_rest: true ayarını yaparak yetenekleri /wp-json/wp-abilities/v1/ REST uç noktaları aracılığıyla istemcilere sunun. @wordpress/abilities paketini kullanarak JavaScript'te istemci tarafı erişim ve izin kontrolleri için yetenekleri tüketin. WordPress 6.9+ gerektirir...
official
wp-abilities-audit
wordpress
WordPress eklentisinin REST yüzeyini denetleyin ve Abilities API kayıtları öneren standart bir denetim belgesi oluşturun. YAML içeren bir markdown belgesi üretir…
official
wp-abilities-verify
wordpress
WordPress eklentisinin Abilities API kayıtlarını doğrulayın: yetenekleri numaralandırın, geri çağırma davranışının her açıklamanın iddiasıyla eşleşip eşleşmediğini kontrol edin (saldırgan…
official
wp-block-development
wordpress
WordPress blok geliştirme (Gutenberg için): meta veri, kayıt, oluşturma ve derleme iş akışları. Blok oluşturma, block.json yapılandırması, statik ve dinamik oluşturma ile register_block_type_from_metadata() kullanarak sunucu tarafı PHP kaydını kapsar. WordPress 6.9+ uyumluluğu için apiVersion: 3'ü zorunlu kılar; iframe düzenleyici desteği ve stil izolasyonunu içerir. "Geçersiz blok" hatalarını önlemek için nitelik serileştirme, eski sürümler/geçişler ve iç blok kompozisyonunu yönetir. Şunları içerir...
official
wp-block-themes
wordpress
WordPress blok tema geliştirme: theme.json, şablonlar, desenler ve Site Düzenleyici sorun giderme. theme.json düzenleme (ön ayarlar, ayarlar, blok başına stiller), şablonlar ve şablon parçaları, desenler ve WordPress 6.9+ üzerinde stil varyasyonlarını kapsar. Tema köklerini ve blok tema yapısını tespit etmek için triyaj betikleri ile yeni temalar oluşturma veya klasik temaları dönüştürme için rehberli prosedürler içerir. Stil hiyerarşisi sorunları, kullanıcı özelleştirme geçersiz kılmaları ve Site... için hata ayıklama iş akışları sağlar.
official
wp-interactivity-api
wordpress
WordPress Interactivity API özellikleri (data-wp-* yönergeleri, @wordpress/interactivity store/state/actions, block viewScriptModule…) oluştururken veya hata ayıklarken kullanın.
official