wp-s3 skillA
wp-s3 is agent-read markdown (skill) from yojahny55/claude-wp-builder: Move a WordPress site's media to S3 with the S3 Uploads plugin — installs the plugin with its vendor tree, writes s3-config.php and the endpoint mu-plugin, migrates the existing library with a transfer that verifies itself, and reverses the whole thing. Use when the user wants uploads on S3, object storage, MinIO or any S3-compatible server, mentions S3 Uploads, offloading media, a media CDN on CloudFront, or asks to sync wp-content/uploads with a bucket. Run through /wp-s3 and /wp-s3-media..
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# wp-s3: WordPress media on S3 ## What this skill does 1. **Installs** S3 Uploads (Human Made) with its `vendor/` tree, verified against a pinned commit, and leaves it deactivated 2. **Writes** `s3-config.php` at the site root and hooks it into `wp-config.php` 3. **Installs** an mu-plugin that points the plugin at an S3-compatible endpoint, and does nothing on AWS 4. **Migrates** `wp-content/uploads` to the bucket, and **verifies** that every byte arrived 5. **Brings the media back** and unhooks the configuration when the site leaves S3 It does not activate the plugin and does not enable rewriting. Both are one WP-CLI command away and belong to whoever owns the maintenance window. ## Why this plugin S3 Uploads registers `s3://` as a PHP stream wrapper, so WordPress writes to the bucket through the ordinary filesystem calls. That has three consequences worth knowing before choosing it: - It **does not use the REST API**, so it works on sites that block `/wp-json/`. - Media URLs are **not stored in the database**: they are built from `S3_UPLOADS_BUCKET_URL` at render time. Changing the media domain is changing one constant, not a search-and-replace over `wp_posts`. …
Read the whole file at its exact version.
How to install
mdr add yojahny55/claude-wp-builder/wp-s3@git:20260920.ac89647mdr add yojahny55/claude-wp-builder/wp-s3@sha256:bc66d24c47df1505Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_zvykcfherdc4hq7w)
1 badge views in 30 days
Versions
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260920.ac89647 latest | 2026-09-20 | ac89647 | 13,115 B | A | view · diff |
| git:20260920.a76ac31 | 2026-09-20 | a76ac31 | 12,796 B | A | view · diff |
| git:20260920.9428783 | 2026-09-20 | 9428783 | 11,992 B | A | view · diff |
| git:20260920.b41cb95 | 2026-09-20 | b41cb95 | 11,453 B | A | view · diff |
| git:20260920.5dd1ee3 | 2026-09-20 | 5dd1ee3 | 10,424 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (13115 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
yojahny55/claude-wp-builder · 6 stars · license MIT · pushed 2026-09-23 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_zvykcfherdc4hq7w GET https://markdownregistry.com/api/v1/resolve?ref=yojahny55/claude-wp-builder/wp-s3 GET https://markdownregistry.com/api/v1/blob/bc66d24c47df1505279d027c54813712dac2d135edda1062a9e1ad55561f00ac
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.