Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Lonsdale201/wp-agent-skills --skill wp-cli-extendinggit clone --depth 1 https://github.com/Lonsdale201/wp-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lonsdale201/wp-agent-skills/wp-cli-extending)<a href="https://agentmods.dev/skills/lonsdale201/wp-agent-skills/wp-cli-extending"><img src="https://agentmods.dev/badge/skills/lonsdale201/wp-agent-skills/wp-cli-extending/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lonsdale201/wp-agent-skills/wp-cli-extending"><img src="https://agentmods.dev/badge/skills/lonsdale201/wp-agent-skills/wp-cli-extending.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00201 | $0.03426 |
| Opus 5 | $0.00101 | $0.01713 |
| Sonnet 5 | $0.00040 | $0.00685 |
| Haiku 4.5 | $0.00020 | $0.00343 |
Grade A, and why
wp-cli-extending scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 243 lines — stays where its author put it; the contents beside it link to each section on GitHub.
WP-CLI: Extending with Custom Commands
WP-CLI is the maintenance / automation interface to a WordPress install. Almost no plugin ships CLI commands — even though wp myplugin import, wp myplugin clear-cache, wp myplugin run-sync are exactly what ops people want. The API is WP_CLI::add_command() and a class with PHPDoc-annotated methods.
When to use this skill
Trigger when ANY of the following is true:
- A plugin needs a CLI surface — bulk import / export, data migration, queue dispatch, debug introspection, scheduled-job force-run, cache clear, license activate.
- Code references
WP_CLI::add_command,WP_CLI::log,WP_CLI::success,WP_CLI::warning,WP_CLI::error,WP_CLI::confirm,WP_CLI::runcommand,WP_CLI::add_hook,WP_CLI\Utils\format_items,WP_CLI\Utils\make_progress_bar,WP_CLI\Utils\get_flag_value. - The user has a long-running admin task (
update_optionloop over 50k rows, AJAX-timing-out import) and wants to run it from terminal. - Code is checking
if ( defined( 'WP_CLI' ) && WP_CLI )and the body is empty / wrong.
The bootstrap — guard, then register
// In the plugin's main file or a dedicated CLI bootstrap.
if ( defined( 'WP_CLI' ) && WP_CLI ) {
WP_CLI::add_command( 'myplugin', MyPlugin\CLI\Commands::class );
}
The class is instantiated lazily when WP-CLI dispatches a myplugin ... invocation. PHPDoc on each method is what drives synopsis / help. Public methods become subcommands. Method names are used as-is, so import_licenses registers wp myplugin import_licenses unless you add @subcommand import-licenses. Use @subcommand for normal hyphenated command names.
Full worked example (import + list with progress bar, dry-run, format args) lives in reference.md. The skeleton:
namespace MyPlugin\CLI;
final class Commands {
/**
* One-line description.
*
* ## OPTIONS
*
* <file>
* : Positional, required.
*
* [--dry-run]
* : Optional flag.
*
* @subcommand import-licenses
* @when after_wp_load
*/
public function import_licenses( array $args, array $assoc_args ): void {
[ $file ] = $args;
$dry = (bool) \WP_CLI\Utils\get_flag_value( $assoc_args, 'dry-run', false );
// ... work, with \WP_CLI::log() / success() / error() ...
}
}
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 243 lines · 201 tokens per session scan A 735fa24a9883
wp-cli-extending is a skill published in the GitHub repository Lonsdale201/wp-agent-skills (22 stars, last pushed 2d ago), licensed MIT. It adds 201 tokens to every session and 3,426 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-11.
Other skills, from other repositories
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
stay-within-limits
Use when long-running or parallel agent work must respect 5-hour and weekly usage limits by checking usage between waves, pausing near the cap, and resuming only when the window is clear.
find-journalists
Build, refine, dedupe, and enrich small fit-checked journalist lists for newsjack campaigns. Uses the newsjack CLI (preferred) or the medialyst MCP for news search and journalist enrichment, and falls back to a best-effort local mode with no verified contacts; the agent owns how returned data is organized.
agent-estate
Perpetual autonomous work loop for Claude Code — no end condition, no memory regression, no context overfill. Maintains a persistent ledger across all sessions.
story-origin-check
Recover the first public timestamp and canonical major coverage for a newsjacking signal, then decide whether newer coverage is the same story, a different story, or a materially new development.
prompt-proximity-architecture
Turn an approved measurement charter, ICPs, and buyer jobs into a budget-aware prompt coverage blueprint across proximity bands, aided status, information acts, journey states, roles, locales, evidence grades, partitions, and measurement lanes. Use before prompt wording to define required, optional, and prohibited…