Flowfile Debugging Playbook
Edwardvaneechoud/Flowfile
Symptom-to-cause triage playbook for Flowfile (core/worker/kernel/frontend/AI) — covers "no such table" DB cascades (two distinct causes), import-time Alembic migration corruption, silent…
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…
$ npx skills add wp-media/wp-rocket --skill wp-rocket-architecture -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wp-media/wp-rocket wp-rocket-architecture --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/wp-rocket-architecture .claude/skills/wp-rocket-architecture && 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 "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .claude/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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/wp-rocket-architectureType 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 wp-rocket-architecture -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wp-media/wp-rocket wp-rocket-architecture --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/wp-rocket-architecture .agents/skills/wp-rocket-architecture && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .agents/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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 wp-rocket-architecture -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wp-media/wp-rocket wp-rocket-architecture --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/wp-rocket-architecture .cursor/skills/wp-rocket-architecture && 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 "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .cursor/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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/wp-rocket-architecture--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 wp-rocket-architecture -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wp-media/wp-rocket wp-rocket-architecture --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/wp-rocket-architecture .gemini/skills/wp-rocket-architecture && 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 "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .gemini/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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 wp-rocket-architectureInstalls 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 wp-rocket-architecture -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/wp-rocket-architecture .github/skills/wp-rocket-architecture && 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 "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .github/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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 wp-rocket-architecture -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 wp-rocket-architecture --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/wp-rocket-architecture .opencode/skills/wp-rocket-architecture && 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 "wp-rocket-architecture" agent skill from https://github.com/wp-media/wp-rocket/tree/develop/.claude/skills/wp-rocket-architecture into .opencode/skills/wp-rocket-architecture/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wp-rocket-architecture", 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.
wp-rocket-architectureA 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 Rocket Architecture is an agent skill from wp-media/wp-rocket. Use this skill when changing service structure, Subscribers, ServiceProviders, Container wiring, bootstrapping, Context classes, or any code that may affect the core caching engine in WP Rocket. Also use it when reading constants, writing unit tests that depend on constants, or opening a pull request.
Its SKILL.md is about 1.8k 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 Development, covering Unit testing, Caching and Pull requests. 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 aa6a655. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use 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.
Wp Rocket Architecture loads about 1.8k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 406 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 aa6a655, republished under its GPL-2.0 licence (© wp-media). 406 words, ~1,752 tokens.
.claude/skills/wp-rocket-architecture/SKILL.md (or your agent's skills folder).Enforce architectural patterns and protect internal service structure.
add_action / add_filter directly.wpm_apply_filters_typed() — never apply_filters().Options_Data — never get_option().new ClassName() in business code.inc/Dependencies/ (Mozart-bundled vendored code).class MySubscriber implements Subscriber_Interface {
public static function get_subscribed_events(): array {
return [
'init' => 'on_init', // priority 10, 1 arg
'save_post' => [ 'on_save_post', 10, 2 ], // priority 10, 2 args
'admin_menu' => [
[ 'add_menu', 9 ],
[ 'add_submenu', 10 ],
],
];
}
}PHPStan enforces this: every method name in get_subscribed_events() must exist in the class (EnsureCallbackMethodsExistsInSubscribedEvents). Always implement the method before or alongside declaring it.
class ServiceProvider extends AbstractServiceProvider {
protected $provides = [ 'my_subscriber', 'my_controller' ];
public function register(): void {
$this->getContainer()->addShared( 'my_controller', Controller::class )
->addArguments( [ 'options', 'logger' ] ); // string = container key
$this->getContainer()->addShared( 'my_subscriber', MySubscriber::class )
->addArgument( 'my_controller' );
}
}addShared() → singleton (same instance every get() call)add() → factory (new instance every call)new StringArgument('...') for literal strings, new ArrayArgument([...]) for literal arrays.Features that are conditionally active encapsulate that logic in a Context class rather than inlining checks in the Subscriber:
inc/Engine/MyFeature/
└── Context/
└── Context.php // should_run(): bool — inject into SubscriberThe Subscriber calls $this->context->is_allowed() (or similar) as a guard clause. This keeps the Subscriber clean and the condition unit-testable in isolation.
wpm_apply_filters_typed() — mandatory for all new filters// ❌ Flagged by PHPStan (DiscourageApplyFilters)
$value = apply_filters( 'rocket_my_filter', $default );
// ✅ Required — with full docblock
/**
* Filters the custom value.
*
* @param string $value The value.
* @return string
*/
$value = wpm_apply_filters_typed( 'string', 'rocket_my_filter', $default );Available types: 'string', 'integer', 'boolean', 'array', 'string[]'.
// ❌ Flagged by PHPStan (DiscourageWPOptionUsage)
$setting = get_option( 'wp_rocket_settings' );
// ✅ Required — inject Options_Data via constructor (PHP 7.3+ compatible)
/** @var Options_Data */
private $options;
public function __construct( Options_Data $options ) {
$this->options = $options;
}
$setting = $this->options->get( 'option_key', $default );rocket_get_constant()Read WordPress and WP Rocket constants with rocket_get_constant(), cast to the type the code expects, with a default that matches WordPress core. Raw constants can't be changed per test, and their value types vary by WordPress version and wp-config (for example, COOKIE_DOMAIN is false before WP 6.6 or when defined as false).
// ❌ Not mockable, and a TypeError when the constant isn't a string
$this->set_cookie( $name, $value, $expire, COOKIEPATH, COOKIE_DOMAIN, $secure, true );
// ✅ Required
$cookie_path = (string) rocket_get_constant( 'COOKIEPATH', '/' );
$cookie_domain = (string) rocket_get_constant( 'COOKIE_DOMAIN', '' );In unit tests, don't define() constants, use @runInSeparateProcess, or stub rocket_get_constant yourself. The base TestCase::setUp() already stubs it (tests/StubTrait.php), and it returns values from $this->constants. Set only the keys the test needs, and never replace the whole array:
// ❌ Wipes out keys set by the base test setup
$this->constants = [ 'COOKIE_DOMAIN' => false ];
// ✅ Required
$this->constants['COOKIE_DOMAIN'] = false;| Rule | Implication |
|---|---|
DiscourageApplyFilters | Use wpm_apply_filters_typed() |
DiscourageWPOptionUsage | Use Options_Data injection |
EnsureCallbackMethodsExistsInSubscribedEvents | Implement every method you declare in get_subscribed_events() |
NoHooksInORM | No add_action, add_filter, apply_filters inside Database/Tables/ or Database/Queries/ classes |
inc/Engine/MyFeature/
├── ServiceProvider.php # all bindings + declares $provides
├── Context/
│ └── Context.php # feature availability guard
├── Admin/
│ └── Subscriber.php # admin-only hooks
├── Frontend/
│ ├── Controller.php # business logic
│ └── Subscriber.php # frontend hooks
└── Database/ # only when custom tables are needed
├── Tables/MyFeature.php # BerlinDB schema, version YYYYMMDD
├── Queries/MyFeature.php # query builder
├── Rows/MyFeature.php # row model
└── Schemas/MyFeature.php # column definitionsprotected $version = 20251006; // YYYYMMDD
protected $upgrades = [
20251006 => 'add_new_column',
];
protected function add_new_column(): void {
// ALTER TABLE with $wpdb->prepare
}Avoid:
register() — wiring onlyNoHooksInORM)Follow the policy defined in AGENTS.md §5.1. Outside the issue workflow, do not run git commit or git push.
Every PR body must follow .claude/skills/issue-workflow/refs/pr-template.md with its section headings copied exactly, including "What was tested" and "Mandatory Checklist". This applies outside the issue workflow too. The PR Template Checker CI (wp-media/pr-checklist-action) fails otherwise. Full rules are in .github/instructions/pull-request.instructions.md.
© 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/wp-rocket-architecture of wp-media/wp-rocket.
Open the folder on GitHubat commit aa6a655
Wp Rocket Architecture 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 |
|---|---|---|---|---|---|---|
| Wp Rocket Architecture this skillwp-media/wp-rocket | 767 | — | ~1.8k | Automated safety check: Pass | GPL-2.0 | |
| Flowfile Debugging PlaybookEdwardvaneechoud/Flowfile | 385 | — | ~6.3k | Automated safety check: Pass | MIT | |
| WooCommerce Dev Cyclewoocommerce/woocommerce | 11k | 3 repos | ~431 | Automated safety check: Pass | Custom licence | |
| Adk Setupgoogle/adk-python | 22k | — | ~993 | Automated safety check: Notes | Apache-2.0 | |
| WooCommerce Backend Conventionswoocommerce/woocommerce | 11k | 1 repos | ~614 | Automated safety check: Pass | Custom licence | |
| Pre PR AblationPopupMaker/Popup-Maker | 110 | — | ~2.5k | Automated safety check: Pass | None |
Edwardvaneechoud/Flowfile
Symptom-to-cause triage playbook for Flowfile (core/worker/kernel/frontend/AI) — covers "no such table" DB cascades (two distinct causes), import-time Alembic migration corruption, silent…
woocommerce/woocommerce
Workflow for WooCommerce development: run PHP and JavaScript tests, lint and fix code style on the current branch, and follow guides for i18n and markdown.
google/adk-python
Sets up a local ADK Python development environment in a git clone of the open-source adk-python repository: a uv virtual environment, all dependency extras, pre-commit hooks, and a first unit-test…
woocommerce/woocommerce
Guides agents writing or changing WooCommerce backend PHP so new classes, hooks and unit tests follow the project's conventions.
PopupMaker/Popup-Maker
Use before finalizing or opening/updating a PR for non-trivial code changes, especially third-party integrations, compatibility layers, hooks and filters, lifecycle code, providers, abstractions…
druxt/druxt.js
Runs the druxt.js verification gate (lint, build, unit tests and the checks for whatever else changed) and reports the real results.
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
Adversarially review a grooming spec before implementation starts.
wp-media/wp-rocket
Check a change against WordPress.org plugin rules and PHPCS standards.
wp-media/wp-rocket
Update developer-facing documentation to reflect code changes on the current branch.
wp-media/wp-rocket
Run the Definition of Done checklist for the current wp-rocket branch and report PASS/WARN/FAIL with evidence.
Works with
Categories
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 Rocket Architecture is an agent skill from wp-media/wp-rocket. Use this skill when changing service structure, Subscribers, ServiceProviders, Container wiring, bootstrapping, Context classes, or any code that may affect the core caching engine in WP Rocket.
Wp Rocket Architecture fits situations like: changing service structure; serviceProviders; container wiring; context classes.
Run `npx skills add wp-media/wp-rocket --skill wp-rocket-architecture -a claude-code`. Or copy the skill folder (.claude/skills/wp-rocket-architecture in wp-media/wp-rocket) into .claude/skills/wp-rocket-architecture in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wp-media/wp-rocket --skill wp-rocket-architecture -a codex`. Or copy the skill folder (.claude/skills/wp-rocket-architecture in wp-media/wp-rocket) into .agents/skills/wp-rocket-architecture 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 wp-rocket-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wp-rocket-architecture, .gemini/skills/wp-rocket-architecture, .github/skills/wp-rocket-architecture and .opencode/skills/wp-rocket-architecture in your project.
Going by SKILL.md and its folder, Wp Rocket Architecture needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use 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.
Wp Rocket Architecture 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 1.8k tokens (SKILL.md is roughly 7k 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 Wp Rocket Architecture: Flowfile Debugging Playbook (Edwardvaneechoud/Flowfile, 385 stars), WooCommerce Dev Cycle (woocommerce/woocommerce, 11k stars), Adk Setup (google/adk-python, 22k stars) and WooCommerce Backend Conventions (woocommerce/woocommerce, 11k 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 9, 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.