Write content into Blot's production test blogs (gittest, dbtest, drivetest, icloudtest - one per sync client) the way a real user would, wait for Blot to sync and build it, then verify it end to end - the published page, CDN and /_assets responses, the…
blotcms/blot
- Latest recorded source activity
- SkillsMP catalog refreshed
- skills collected
- 15
- GitHub stars
- 1,984
- GitHub forks
- 98
Install with an AI assistant
Copy this prompt into the AI assistant you're using.
Follow https://skillsmp.com/skill-install/prompt.md to install Agent Skills from https://github.com/blotcms/blot.Loading the repository README…
Skills in this repository
Showing 15 of 15 collected skills.
Look after Blot's production Redis host (its own EC2 instance, built and operated with config/redis/): triage a "Redis host:" alert email from app/scheduler/check-redis-host.js (failed background save, Redis refused writes - OOM/MISCONF/NOREPLICAS, other…
Work out why the blot-blue and blot-green unit containers from the most recent production deployment have restarted — distinguishing a normal deploy-triggered restart from a crash (V8 heap OOM, Linux cgroup OOM kill, a lost sync folder lock - `[LOCK…
Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), or move its contents to another host, with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only freeze and a mount swap…
Daily cheap check that no runtime or OS Blot depends on (Node.js, Alpine, OpenResty/nginx, Pandoc, Amazon Linux 2 on the app/proxy host, Amazon Linux 2023 and redis6 on the Redis host, the macserver's Node) is behind on a security release or past end-of-life.…
Analyze the production openresty access log for IP ranges (IPv4 /24, IPv6 /48) that cost a lot of egress and are broadly abusive (scraping with rotating user agents, repeat scanning, hammering the CDN hostname), set aside CDN edges and legitimate crawlers,…
Investigate an "iCloud resync found changes" admin email (the ICLOUD_RESYNC_ISSUE email a macserver-requested resync sends when it found changes, Fix() repairs or errors, with the macserver's reason), an "iCloud sync issue" hourly digest, or any other iCloud…
Analyze production Node.js app container response times to find slow-rendering sites, cross-checking against nginx queuing delay to rule out false positives (a site only looks slow because the event loop was blocked by a different, pathological site). Use…
Find blog-folder files that Blot still serves from the origin instead of the CDN, from the [folder-asset] log line (older logs have [folder-asset-origin] instead), trace each one to the link in an entry, template, local or menu that caused it, and fix the…
Investigate a "Dropbox sync issue" alert email from Blot's hourly Dropbox sync validation (each flagged blog lists unsynced changes, Fix() repairs, errors and/or a stuck folder lock; the changes line is what this skill investigates. For Fix() repairs use…
Scan the production openresty access log (/var/instance-ssd/logs/access.log) for requests with slow upstream response times (st=, the time the node containers took to answer), triage and rank them while setting aside routes that are slow by design (SSE, long…
Investigate a customer report that post or page content shows raw {{...}} template tags (or "pages aren't rendering properly") since Blot stopped Mustache-rendering entry content (#1871). Uses a read-only production script to list which posts/pages contain…
Triage Fix() repairs reported in a "<Client> sync issue" digest email (Dropbox sync issue, etc.; the "Fix() repaired:" lines under a blog) or in a "Resync found changes" or "iCloud resync found changes" email. Fix() changes things for a blog whenever one of…
Review recent production nginx/openresty access logs, identify scanner/exploit traffic not already blocked, and update proxy/config/blot-blogs.conf accordingly. Use when asked to analyze prod nginx/access logs, find new paths to block, or audit openresty for…
Run this git worktree's code in its own local server at https://slot-local.blot (slots a-e) so the operator can see and click through it while the main stack keeps running. Use when the operator asks to preview, show, or let them try the current changes, or…