Human Made PHP coding standards for WordPress development. Apply when writing PHP, reviewing PHP code, or working on WordPress plugins and themes. Covers PHPCS HM-Minimum ruleset, namespacing conventions, bootstrap patterns, type hints, and file organization.
Install
npx skillscat add humanmade/claude-code-standards/php-human-made Install via the SkillsCat registry.
SKILL.md
Human Made PHP Standards
These standards follow the Human Made coding standards (HM-Minimum PHPCS ruleset).
Architecture
- Prefer namespaced procedural code over unnecessary OOP abstractions
- Use classes only when genuinely modeling objects or when the pattern benefits from encapsulation
- Group code by feature, not by technology (e.g.,
Project\ReportsnotProject\CLI)
Bootstrap Pattern
Use the bootstrap pattern for feature initialization:
<?php
namespace Project\Feature;
function bootstrap() : void {
add_action( 'init', __NAMESPACE__ . '\\register' );
add_filter( 'the_content', __NAMESPACE__ . '\\filter_content' );
}
function register() : void {
// Implementation
}File Naming
- Main plugin file:
plugin.php - Main theme file:
functions.php - Classes:
class-{classname}.php(lowercase) - Namespaced functions:
namespace.phpor{feature}.php - Top-level namespace directory:
inc/
Code Conventions
- Array syntax:
[]overarray() - Yoda conditions: Not required
- Visibility: Always declare
public,protected,private - Prefer
protectedoverprivatefor extensibility - Type hints: Use for internal functions; exercise caution with WordPress callbacks that may pass unexpected types
- Return types: Only declare when function returns exactly one type
WordPress Security
- Sanitize all input:
sanitize_text_field(),absint(),wp_kses_post(), etc. - Escape all output:
esc_html(),esc_attr(),esc_url(),wp_kses_post() - Use nonces for form submissions and AJAX requests
- Check capabilities before performing actions:
current_user_can() - Use prepared statements for database queries:
$wpdb->prepare()
Linting
Projects use PHPCS with Human Made standards:
- Ruleset:
HM-Minimum(or project-specific extension) - Config file:
phpcs.xmlorphpcs.xml.dist - Run with:
composer run phpcsorvendor/bin/phpcs
PHPStan is used for static analysis:
- Level: 5 (typical)
- Config file:
phpstan.neonorphpstan.neon.dist - Run with:
composer run phpstanorvendor/bin/phpstan analyse