ddtcorex/maestro-skills/govard-wordpress
- community
Checking that the SKILL.md file is still in the repository.
This skill should be used when the user asks to "clear WordPress cache", "run wp cli", "run wp commands", "flush rewrite rules", "manage WordPress plugins via govard", "wordpress wp-config", "audit WordPress", "lint WordPress", "govard audit", "deploy WordPress", or "govard deploy". Provides WordPress-specific Govard shortcuts. DEPENDENT on govard-toolbox for base commands.
Install
npx vskill@latest install ddtcorex/maestro-skills/govard-wordpressSKILL.md
Govard WordPress Commands
WordPress-specific shortcuts and commands for Govard environments.
Related Skills
REQUIRED BACKGROUND: Load govard-toolbox first. This skill only covers WordPress-specific behavior layered on top of Govard's base environment commands (govard up, govard sh, govard db, remote sync, Xdebug setup). For generic PHP (strict_types, PSR-12, PHPStan, security) see php-dev-core.
Docker requirement: stack commands here need Docker. Check what a command needs with govard capabilities. Unlike some frameworks, WordPress has no container-free govard audit run --checks integrity (it fails with "does not support integrity audit").
WP-CLI
wp runs inside the PHP container. govard up installs it when missing.
Most wp commands that touch the database (plugin list, theme list, cache flush, rewrite flush) fail with "The site you have requested is not installed" until the site is installed. A checkout brought up with govard up has wp-config.php wired to the Govard database but an empty database, so installing is your step, not a red flag:
(govard bootstrap --fresh runs the install itself.) Read the project's runtime values instead of assuming them:
govard bootstrap --framework-version <v> is pinned, not "latest": a bare 6 is normalised to 6.0 and that exact archive is downloaded from wordpress.org. Omit the flag to track latest. Bedrock layout (web/wp/wp-includes/version.php) is auto-detected (see govard-toolbox for provider details).
Audit
Lint is the supported check: govard audit run --checks lint --lint-provider govard --mode project --format json (see govard-toolbox ## Audit for the cross-framework matrix). On WordPress:
--checks integrityand--checks profilerare not supported (exit 1, "framework wordpress does not support ... audit").- With Xdebug enabled (the default in many
.govard.ymlfiles) audit refuses to run: pass--allow-xdebugor rungovard config set stack.features.xdebug falsefirst. - Linting a full WordPress tree can take minutes and exits 1 when it reports findings; scope with
--scope diff --base <ref>for day-to-day use.
Cache Management
There is no Govard-level frontend_sync for WordPress; use govard tool npm run watch if the theme has a build step.
Plugin & Theme Management
Must-use plugins live in wp-content/mu-plugins and are not managed by wp plugin.
Rewrite & Core
wp-config.php is generated (DB credentials, fresh salts, proxy/HTTPS support) only when it is missing at bootstrap time. govard up does not rewrite an existing wp-config.php or regenerate its salts. For multisite, add extra_domains in .govard.yml for each site domain, then govard env up:
govard domain add|remove|list manages the same list.
Database
Privacy filters match by table name, so they need the prefix. --no-noise and --no-pii exclude WordPress tables (users, usermeta, comments, commentmeta for PII; a few cache/log tables for noise) with the table prefix prepended. Govard reads the literal $table_prefix from wp-config.php, locally and, for a remote, from the remote's own wp-config.php through the credentials probe. It never borrows the local prefix for a remote.
--no-pii fails closed: when no table can match (the remote's prefix cannot be read, or $table_prefix is built dynamically, for example from getenv()), the command is refused instead of writing a dump that still holds wp_users. --no-noise and --plan only warn. Still spot-check a dump before sharing it (grep -c 'INSERT INTO wp_users' must be 0). db dump -e <remote> --file <path> writes <path> on the remote; add --local to stream the dump into the project's var/ directory.
Environment
- Do not commit
wp-config.phpsecrets. - For staging/prod overrides use
GOVARD_ENV=staging govard env up(loads.govard.staging.yml). - Xdebug:
govard debug on|off|status(offrewrites.govard.ymland re-runsenv up). govard shell -c "..."/govard sh -c "..."run one command in the PHP container.
Deployment
WordPress ships a deploy recipe for the classic layout only: core files and wp-content/ in the repository root. A Bedrock layout (core in vendor/, docroot web/) and a content-only checkout are not supported.
The remote needs a branch (--branch, --revision, --tag, or a configured branch) for plan, and a deploy_path (or an existing deploy layout) for check/status; otherwise they exit 4. Add --json to plan for machine-readable output. See govard deploy --help for every flag.
| Step | Command on the target | |
|---|---|---|
build:vendors | composer install ... only when composer.json exists | |
db:migrate | wp core update-db, or wp_upgrade() through wp-load.php without wp-cli | |
app:cache:flush | wp cache flush + wp rewrite flush --hard, or the PHP equivalents | |
maintenance:enable / disable | writes/removes .maintenance and a marked wp-content/maintenance.php in the served path | |
db:backup / restore | wp db export / wp db import | |
deploy:verify (app) | wp core is-installed, or is_blog_installed() without wp-cli |
Three steps are hybrids: wp when the target has wp-cli, a wp-load.php PHP bootstrap when it does not.
- Seed `shared/wp-config.php` before the first deploy.
deploy:sharedlinks a shared entry only when it already exists, so an unseededshared/leaves the release with the repository'swp-config.php, the one naming the development database. The first run fails atdb:migrate("Error establishing a database connection"), and the lock and release directory are kept. Seeding afterwards does not repair that release:--resumeskipsdeploy:sharedas already done (and--fromdoes not re-run it), so link the shared file into the release by hand (ln -sfn <deploy_path>/shared/wp-config.php <release>/wp-config.php) before resuming, or start a fresh release. In one resumed run the unlinked release passeddb:migrateand was activated beforeapp:cache:flushfailed with the same connection error, so an unseeded release can go live. deploy:checkrefuses a verify URL that redirects. A database copied from another environment keeps that environment'ssiteurl, so WordPress answers the verify URL with a 301 and the preflight stops. The sandbox seed rewritessiteurl/hometo its own URL; for any other target pointsiteurl/homeat the target URL (wp option update), or setdeploy.verify.follow_redirects: true.- Maintenance writes
time() + 86400, not WordPress's owntime(): a flag older than ten minutes expires, so a longer window would silently reopen the site mid-migration. The drop-in carries a marker, so a project's own maintenance page is kept. A deploy that fails aftermaintenance:enableleaves the flag and the lock behind;--resume(afterdeploy unlock --forceif the lock is fresh) finishes the release and removes the flag. --db-backupuseswp db export/wp db importwhen the target has wp-cli, and otherwise a plainmariadb-dump/mysqldumpthat readswp-config.phpand hands the credentials to the client through a private option file (never on a command line). A target with none of the three is refused up front as a configuration error (exit4). Without the flag thedb:backuprow is reported as skipped, with the reason. With it the dump lands inshared/backups/deploy/<release>/dump.sql.deploy rollback --with-dbrestores the dump recorded by the release after the rollback target, and refuses (exit1) when that release has none, for example the newest one.deploy unlockrefuses a fresh lock without--force.deploy --resumewith nothing unfinished starts a new release, and says "already runs ... nothing to do" when the revision is already live (use--force).- In artifact mode the only build step is the guarded
composer install; the database steps still run on the target. - Shared:
wp-config.php(file),wp-content/uploads(dir); writable:wp-content/{uploads,cache,upgrade,languages}.
Rehearsing on the sandbox
govard sandbox up gives a disposable target with wp-cli, a MySQL client, the usual PHP extensions and mariadb + redis-server, so a deploy can be rehearsed with govard deploy --remote sandbox --yes. The origin environment must be running to seed.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/govard-wordpress/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ddtcorex/maestro-skills/govard-wordpress)