Claude-skill-registry howdy-structure
Create PHP classes following Howdy framework conventions. Use when creating new classes or files in the plugin.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/howdy-structure" ~/.claude/skills/majiayu000-claude-skill-registry-howdy-structure && rm -rf "$T"
manifest:
skills/data/howdy-structure/SKILL.mdsource content
Howdy Structure Helper
Instructions
When creating new PHP classes or files:
-
Place in correct directory:
- Classes:
app/Namespace/Class.php - Includes:
directoryinc/
- Classes:
-
Apply namespace:
- Base:
Retrologin\ - Example:
Retrologin\Admin\Settings
- Base:
-
Add required file header:
declare(strict_types=1);- Docblock with description and
@since
-
Include ABSPATH check at the top
File Structure Pattern
retrologin.php # Main plugin file (header only) app/ Admin/ Settings.php # Class: Retrologin\Admin\Settings Frontend/ Login.php # Class: Retrologin\Frontend\Login inc/ bootstrap/ app.php # Bootstrap file
Class Template
<?php declare(strict_types=1); /** * Short description of the class. * * Longer description if needed. * * @package Retrologin * @since 0.1.0 */ namespace Retrologin\Admin; if (! defined('ABSPATH')) { exit; } /** * Class description. * * @since 0.1.0 */ class Settings { /** * Constructor. * * @since 0.1.0 */ public function __construct() { // Hooks, filters, etc. } /** * Method description. * * @param string $param Description. * @return void * @since 0.1.0 */ public function method( string $param ): void { // ... } }
Key Conventions
- Autoloading: Composer's PSR-4 maps
toRetrologin\app/ - Don't manually
files - use autoloadingrequire - Coding standard: Syntatis (configured in phpcs.xml.dist)
- Linter:
composer run lint - Auto-fix:
composer run format