Install
$ agentstack add skill-pluginslab-wp-agentic-kit-wordpress-scaffold ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
WordPress Scaffold
Scaffolds a brand-new WordPress plugin through a short interview. Greenfield only — if a *.php file with a Plugin Name: header already exists in the working directory, stop and use the wordpress-feature skill.
Phases
- Identity. Ask one question at a time, don't continue without a clear answer:
- Plugin name (e.g. "Order Tracker")
- One-sentence description
- Vendor prefix (optional, e.g.
acme) - Slug — derive
acme-order-trackerororder-tracker; confirm - PHP namespace — PascalCase from slug, e.g.
AcmeOrderTracker; confirm
Show the full identifier set before generating: slug, text domain (= slug), namespace, constant prefix, function prefix, options key.
- Constitution. Write
.claude/plans/constitution.mdfrom the template in @.claude/references/PLANNING.md. The file has two binding levels:
- Default sections (loose) —
@wordpress/*packages, Composer deps, deploy lane, quality gates. Accept the template defaults unless the user wants different. - Allowed sections (strict, security-relevant) — sanitize functions, escape functions, capability constants, forbidden constructs. Match @.claude/references/SECURITY.md exactly.
Confirm both before writing. The distinction is the point: treat everything as strict and the agent asks permission for trivia; treat nothing as strict and the plugin is one missing escape from disclosure.
- Feature selection. Ask one at a time: Settings page? REST API? Gutenberg blocks (@.claude/references/BLOCKS.md)? Editor extensions?
- Spec + plan. Create
.claude/plans/features/000-initial-scaffold/and writespec.md+plan.mddescribing the initial scaffold. This becomes the project's first plan artifact.
- Generate. Standard plugin layout:
{slug}.php(bootstrap with header,*_VERSION/*_PATH/*_URL/*_FILEconstants, singleget_instance()class, top-level activation/deactivation hooks),includes/class-utils.php,includes/class-settings.php(if selected),includes/api/class-rest.php+class-rest-example.php(if selected),src/blocks/test-block/(if selected),src/extensions/(if selected),languages/,package.json(if blocks/extensions),composer.json,phpcs.xml.dist,readme.txt,uninstall.php,.gitignore. Every PHP file MUST start with theABSPATHguard.
- Deliver. Show the file tree. Print the three install commands (
composer install,npm installif blocks/extensions,npm run buildif blocks/extensions). Writeprogress.mdwithstatus: complete, last_completed: scaffoldand immediately movefeatures/000-initial-scaffold/to.claude/plans/archive/{YYYY-MM-DD}-000-initial-scaffold/. Offer to spin upwp-playgroundfor a smoke test. Tell the user: next features go throughwordpress-feature.
Hard rules (this skill)
Every PHP file MUST start with if ( ! defined( 'ABSPATH' ) ) { exit; }. Every generated piece MUST follow @.claude/references/SECURITY.md — sanitize input, escape output, verify nonces, check capabilities, prepare queries. Constitution's strict sections bind hard; default sections are advisory.
Naming (locked at scaffold)
- Slug: kebab-case (
acme-order-tracker) · Text domain: same as slug, literal string - Namespace: PascalCase (
AcmeOrderTracker) - Constants:
ACME_ORDER_TRACKER_*· Functions:acme_order_tracker_* - Class files:
class-{name}.php· Hooks: namespaced action/filter names
After generation
Remind the user to run ./vendor/bin/phpcs, verify activation → deactivation → uninstall leaves no orphan data, commit composer.lock + package-lock.json, and run security-reviewer before the first PR.
References
- @.claude/references/PLANNING.md — plan-file templates and rationale
- @.claude/references/SECURITY.md — complete security checklist
- @.claude/references/BLOCKS.md — Gutenberg block development patterns
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: pluginslab
- Source: pluginslab/wp-agentic-kit
- License: MIT
- Homepage: https://pluginslab.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.