Doc Screenshots
WordPress/wordpress-playground
Annotate UI screenshots with documentation callouts in Fellyph's established visual style — uniform-width orange arrows with white halos, double-stroke target outlines, numbered callout cards, dim…
Run the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence.
$ npx skills add wp-media/wp-rocket --skill dod -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wp-media/wp-rocket dod --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dod .claude/skills/dod && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .claude/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dodType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add wp-media/wp-rocket --skill dod -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wp-media/wp-rocket dod --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/dod .agents/skills/dod && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .agents/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wp-media/wp-rocket --skill dod -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wp-media/wp-rocket dod --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/dod .cursor/skills/dod && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .cursor/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/wp-media/wp-rocket.git --path .claude/skills/dod--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add wp-media/wp-rocket --skill dod -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wp-media/wp-rocket dod --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/dod .gemini/skills/dod && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .gemini/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install wp-media/wp-rocket dodInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add wp-media/wp-rocket --skill dod -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/dod .github/skills/dod && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .github/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add wp-media/wp-rocket --skill dod -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wp-media/wp-rocket dod --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wp-media/wp-rocket.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/dod .opencode/skills/dod && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dod" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/dod into .opencode/skills/dod/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dod", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dodRun the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence.
Dod is an agent skill from wp-media/wp-rocket. Run the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence. Two modes: layer 1 (self-correction inside backend-agent / frontend-agent — resolves FAILs before handoff) and layer 2 (independent orchestrator gate — fresh perspective after handoff). Pass layer: "1" or layer: "2" when invoking.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA. It works with WordPress. The repository describes itself as: Performance optimization plugin for WordPress. The licence is GPL-2.0.
Read from SKILL.md and the folder at commit 3a96b66. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
composerghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dod loads about 4k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 1,793 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from wp-media/wp-rocket at commit 3a96b66, republished under its GPL-2.0 licence (© wp-media). 1,793 words, ~4,014 tokens.
.claude/skills/dod/SKILL.md (or your agent's skills folder).You are a quality gate checker. Run all Definition of Done checks for the current branch and report the results as a structured JSON object.
Layer 1 (implementation agent self-correction):
Invoked inside backend-agent or frontend-agent as step 3 of their internal sequence.
If any check returns FAIL, the agent self-corrects and re-runs before handing off.
overall can only be PASS or WARN when the agent hands off — FAILs must be resolved.
Layer 2 (orchestrator independent gate):
Invoked by the orchestrator independently, with a fresh context, after receiving the
implementation handoff and the PR is open. Provides an unbiased second opinion. Can return
FAIL. Produces layer1_delta — issues found in L2 that L1 did not catch.
| Parameter | Type | Description |
|---|---|---|
layer | "1" or "2" | Which gate to run. Layer 1 = self-correction inside implementation agent; Layer 2 = independent orchestrator gate. |
file_scope | array of file paths (optional) | Files declared in-scope by the orchestrator for this issue. Used by Check 6 (Layer 1 only). Omit or pass null for Layer 2. |
base_branch | string (optional) | The PR base branch. Defaults to develop. Used in all git diff commands. |
pr_url | string (optional) | The GitHub PR URL. Required for Layer 2 (Check 1, Check 4, Check 5). |
Before running the checks, acknowledge these. Agents are good at producing plausible reasons to skip steps — this table preempts them.
| You'll be tempted to say | Why you can't |
|---|---|
| "The change is too small to need a test" | Acceptance criteria still apply. A one-line fix to a Subscriber still needs a test on that Subscriber. |
| "Tests pass, DOD L1 is fine" | Passing tests are evidence, not proof. L1 self-reports; L2 is the independent read. |
| "No public API change, skipping docs" | Check for hook additions, option_keys, REST routes. Those count as public API. |
| "I'll skip e2e because the environment might not boot" | Boot it. If it fails, SKIP is a valid status — but you must attempt it first. |
| "The PR description section is present" | Present is not the same as filled. Thin is a WARN — name it explicitly. |
| "I'll add tests in a follow-up ticket" | "Later" is the load-bearing word. There is no later. See Check 2. |
Before running any check, determine the PR base branch. All git diff commands below assume origin/develop, but if the PR targets a different base this silently compares the wrong tree.
BASE=$(gh pr view "$PR_URL" --json baseRefName --jq .baseRefName 2>/dev/null)
if [ "$BASE" != "develop" ]; then
echo "WARNING: Base branch is '$BASE', not 'develop'. Adjust git diff commands accordingly."
fiUse origin/$BASE in place of origin/develop in every diff command throughout this skill. If $BASE is empty (Layer 1, no PR yet), default to develop.
Run each check in order. Report PASS, WARN, or FAIL with specific evidence for each.
Look at the PR/MR description:
.TemporaryItems/Issues/wp-rocket/pull/<N>.mdgh pr view <PR_NUMBER> --json body -q .bodyLook at the "What was tested" section. It must contain concrete scenarios — not "N/A", not "tested locally".
If manual testing appears insufficient, consider invoking the qa-engineer agent: it is
designed to independently test a PR and share feedback.
Identify changed source files:
git diff origin/$BASE --name-onlyFor each changed PHP source file in inc/ or src/, check that a corresponding test file
exists. Test files mirror the source structure:
inc/Engine/Foo/Bar.php → tests/Unit/inc/Engine/Foo/Bar/methodName.php.
Then run the test suite:
composer test-unit
# For feature-specific integration tests:
vendor/bin/phpunit --configuration tests/Integration/phpunit.xml.dist --group FeatureNameFeatureName is the group tag matching the changed feature — the same tag Check 2 uses to scope tests. This runs only the feature-relevant integration tests, not the full integration suite.
evidence: the filename, the reason a test does not exist (not "too small" or "follow-up ticket" — those are rationalizations), and whether the missing test represents a real gap. "Later" is the load-bearing word — there is no later. If the only honest reason is "I didn't write it", that is a FAIL, not a WARN.Run git diff origin/$BASE --name-only and look for changes to the public API surface:
apply_filters, do_action, wpm_apply_filters_typed)WP Rocket has no docs/ directory or README.md that serves as public API documentation, so there is no single file path to diff. Instead, evaluate the diff itself: if it introduces new public API surface (new hooks, filters, REST endpoints, WP-CLI commands), note that documentation must be updated and mark WARN — without requiring any specific file to have changed.
Read the repo's PR template:
cat .claude/skills/issue-workflow/refs/pr-template.mdThen fetch the PR body:
.TemporaryItems/Issues/wp-rocket/pull/<N>.mdgh pr view <PR_NUMBER> --json body -q .bodyCheck that all required sections from the template are present and non-empty:
Description (with Fixes #N)
Type of change (one checkbox ticked)
Detailed scenario → What was tested
Detailed scenario → How to test
Detailed scenario → Affected Features & Quality Assurance Scope
Technical description → Documentation
Technical description → New dependencies
Technical description → Risks
Mandatory Checklist → Code validation
Mandatory Checklist → Code style
Additional Checks
PASS: All required sections present and filled
WARN: One section is thin or partially filled
FAIL: PR not created yet (Layer 2 only), or 2+ sections missing / left with placeholder text
Layer 1 (no PR yet — local CI commands):
composer phpcs-changed # fast check on changed files
composer run-stan # PHPStan including the 4 wp-rocket custom rules
composer test-unit # full unit suiteIf phpcs-changed reports violations, auto-fix then re-check in two calls — never run phpcs/phpcbf file-by-file:
composer phpcs:fix # phpcbf auto-fix on all files
composer phpcs-changed # confirm 0 remaining violationsLayer 2 (PR exists — remote CI status):
First, read the GitHub Actions workflow files to enumerate which checks are expected:
ls .github/workflows/Note the check names (e.g. lint / PHP CodeSniffer, lint / PHPStan, task-check).
Wait for all checks to complete, then report any failures:
# Wait for all checks to complete
gh pr checks "$PR_URL" --watch
# Then report any failures
gh pr checks "$PR_URL" --json name,state,link \
--jq '.[] | select(.state == "FAILURE") | {name, link}'gh pr checks --watch blocks until all checks complete, so no manual polling loop is needed. State values from the JSON API are uppercase: SUCCESS, FAILURE, CANCELLED.
For any check with state FAILURE, fetch the run ID and extract the relevant error excerpt:
# Get the run ID and log link for the failing check
gh pr checks "$PR_URL" --json name,state,link
# Fetch last ~30 lines of the failing job log
gh run view <run_id> --log-failed 2>/dev/null | tail -30Include each failure as a separate blocker in the return JSON with:
check: the check nameerror_excerpt: the relevant log linessuggested_fix: one sentence on what likely caused itAlso verify the Co-Authored-By: Claude trailer is present on every commit on the branch:
git log <base_branch>..HEAD --format="%H %s" | while read sha msg; do
git show $sha --format="%b" -s | grep -qE "Co-Authored-By: .+ <noreply@anthropic.com>" \
|| echo "MISSING Co-Authored-By on $sha"
doneLayer 1 only (in Layer 2, file scope is not tracked — this check is skipped with status N/A).
The orchestrator passes file_scope (array of paths) in the dispatch inputs. The skill compares it against git diff <base_branch>..HEAD --name-only.
List every file changed on the branch:
git diff <base_branch>..HEAD --name-onlyCompare against the file_scope input. Flag any file that appears in the diff but not in file_scope.
Exceptions that do not count as violations:
Auto-generated files (*.min.js, *.min.css, lock files)
Files in tests/ that directly correspond to a changed source file (mirrored test files)
Files the orchestrator explicitly added to scope via a blocked_reason note
Files modified solely by composer phpcs:fix (the phpcbf auto-formatter). phpcbf has no "changed files only" mode, so it may reformat files outside scope. Note which files were auto-fixed and exclude them from the scope-violation count.
PASS: All modified files are within declared scope (or no scope was declared)
WARN: One or more files outside scope were modified — name them and explain why
FAIL: Two or more files outside scope were modified without explanation
Layer differentiation:
Apply these constraints strictly for both Layer 1 and Layer 2 reports:
Length targets:
evidence field: one sentence maximum per check. State the finding, not the process ("3 unit tests cover the changed method" not "I ran phpunit and reviewed the output and found that there are three test cases…").What to omit:
composer phpcs-changed and saw…" — state only what you found.Condensed PASS format: For checks that simply pass with no nuance, use a one-liner in a summary table instead of a prose paragraph:
| Check | Result | Note |
|---|---|---|
| 1. Acceptance criteria | ✅ PASS | All 3 AC covered by spec |
| 3. Docs | ✅ PASS | No public API change |
| 4. PHPCS | ✅ PASS | 0 violations |
Reserve prose evidence for: WARN, FAIL, and PASS-with-caveats checks only.
What must always appear:
| Check | Status | Evidence |
|-------|--------|----------|
| 1. Manual validation | PASS | "What was tested" covers 3 concrete scenarios |
| 2. Automated tests | WARN | inc/Engine/Foo/Bar.php has no test file |
| 3. Documentation | PASS | docs/api.md updated |
| 4. PR description | PASS | All sections filled |
| 5. CI | FAIL | run-stan failing: DiscourageApplyFilters in inc/Engine/Cache/Subscriber.php:142 |
| 6. File scope | PASS | All 4 changed files within declared scope |
Overall: FAIL
Blockers:
- Check 5: PHPStan failing on inc/Engine/Cache/Subscriber.php:142 — replace apply_filters() with wpm_apply_filters_typed()
Warnings (non-blocking):
- Check 2: inc/Engine/Foo/Bar.php has no test — consider filing a ticketIf all checks pass: print PASS clearly. If any check fails: print FAIL and list each blocker with a suggested fix.
Always return this JSON object in addition to the human-readable output above:
{
"overall": "PASS|WARN|FAIL",
"checks": [
{ "name": "manual-validation", "status": "PASS|WARN|FAIL", "evidence": "string" },
{ "name": "automated-tests", "status": "PASS|WARN|FAIL", "evidence": "string" },
{ "name": "documentation", "status": "PASS|WARN|FAIL", "evidence": "string" },
{ "name": "pr-description", "status": "PASS|WARN|FAIL", "evidence": "string" },
{ "name": "ci", "status": "PASS|WARN|FAIL", "evidence": "string" },
{ "name": "file-scope", "status": "PASS|WARN|FAIL|N/A", "evidence": "string" }
],
"blockers": [
{
"check": "ci|manual-validation|pr-description",
"description": "Check 5: PHPStan failing — DiscourageApplyFilters in inc/Engine/Cache/Subscriber.php:142",
"error_excerpt": "relevant log lines for CI failures — empty string for non-CI blockers",
"suggested_fix": "replace apply_filters() with wpm_apply_filters_typed() — empty string if unknown"
}
],
"warnings": ["Check 2: inc/Engine/Foo/Bar.php has no test file"],
"layer1_delta": ["Issues found in L2 that L1 did not catch — populated by orchestrator in layer 2 only"]
}Layer 1: overall must be PASS or WARN when the implementation agent hands off.
Layer 2: overall can be PASS, WARN, or FAIL. Populate layer1_delta with
any issues that were not flagged in layer 1.
origin/develop. If the issue branched off something else (e.g. origin/feature/mcp), the orchestrator passes the right base.DiscourageApplyFilters, DiscourageWPOptionUsage, EnsureCallbackMethodsExistsInSubscribedEvents, NoHooksInORM. These are part of composer run-stan.wordpress-compliance skill.Co-Authored-By trailer uses the model-versioned form: <MODEL> <noreply@anthropic.com>. Match exactly.© wp-media, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/dod of wp-media/wp-rocket.
Open the folder on GitHubat commit 3a96b66
Dod next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dod this skillwp-media/wp-rocket | 767 | — | ~4k | Automated safety check: Pass | GPL-2.0 | |
| Doc ScreenshotsWordPress/wordpress-playground | 2k | — | ~1.8k | Automated safety check: Pass | GPL-2.0 | |
| Wjs Converting Wp To Hugojianshuo/claude-skills | 130 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Populate Logbonny/WordPress-Simple-History | 317 | — | ~1.2k | Automated safety check: Notes | None | |
| Vercel React Best Practicesgambitph/Stackable | 350 | — | ~2k | Automated safety check: Pass | MIT | |
| Wp Test Strategyjorgerosal/wordpress-skills | 101 | — | ~974 | Automated safety check: Pass | MIT |
WordPress/wordpress-playground
Annotate UI screenshots with documentation callouts in Fellyph's established visual style — uniform-width orange arrows with white halos, double-stroke target outlines, numbered callout cards, dim…
jianshuo/claude-skills
A skill your agent uses when migrating a WordPress site to a Hugo static site on GitHub Pages from a WXR export (.xml) plus the wp-content/uploads folder — preserving /archives/<id/ URLs, localizing…
bonny/WordPress-Simple-History
Populates the event log with test data via WP-CLI. An agent skill from bonny/WordPress-Simple-History.
gambitph/Stackable
React performance optimization guidelines from Vercel Engineering.
jorgerosal/wordpress-skills
WordPress testing strategy and review guidance. An agent skill from jorgerosal/wordpress-skills.
bonny/WordPress-Simple-History
Guidance for writing and running tests in Simple History, including the Premium add-on.
wp-media/wp-rocket
Read and refresh wp-rocket's pre-built dependency graph at .claude/graph/dependency-graph.json.
wp-media/wp-rocket
A skill your agent uses when modifying templates, admin UI, output, hooks, plugin metadata, sanitization, escaping, or any code that must remain compliant with WordPress.org and repository PHPCS…
wp-media/wp-rocket
Work on a GitHub issue by number for wp-media/wp-rocket. An agent skill from wp-media/wp-rocket.
wp-media/wp-rocket
A skill your agent uses when changing service structure, Subscribers, ServiceProviders, Container wiring, bootstrapping, Context classes, or any code that may affect the core caching engine in WP…
wp-media/wp-rocket
Adversarially review a grooming spec before implementation starts.
wp-media/wp-rocket
Check a change against WordPress.org plugin rules and PHPCS standards.
Works with
Categories
Run the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence. Dod is an agent skill from wp-media/wp-rocket. Run the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence.
Dod fits situations like: testing & QA work in your project.
Run `npx skills add wp-media/wp-rocket --skill dod -a claude-code`. Or copy the skill folder (.claude/skills/dod in wp-media/wp-rocket) into .claude/skills/dod in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wp-media/wp-rocket --skill dod -a codex`. Or copy the skill folder (.claude/skills/dod in wp-media/wp-rocket) into .agents/skills/dod in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wp-media/wp-rocket --skill dod -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dod, .gemini/skills/dod, .github/skills/dod and .opencode/skills/dod in your project.
Going by SKILL.md and its folder, Dod needs the command-line tools its instructions call (composer, gh and git).
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dod is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dod: Doc Screenshots (WordPress/wordpress-playground, 2k stars), Wjs Converting Wp To Hugo (jianshuo/claude-skills, 130 stars), Populate Log (bonny/WordPress-Simple-History, 317 stars) and Vercel React Best Practices (gambitph/Stackable, 350 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wp-media (a GitHub organization) maintains it in wp-media/wp-rocket, which has 767 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.
Source: wp-media/wp-rocket on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.