Baota Panel Expert
theneoai/awesome-skills
宝塔面板专家。Use when: 管理Linux服务器、配置宝塔面板、部署网站、配置SSL、迁移数据、优化性能. An agent skill from theneoai/awesome-skills.
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…
$ npx skills add blotcms/blot --skill node-response-time-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install blotcms/blot node-response-time-review --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/blotcms/blot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/node-response-time-review .claude/skills/node-response-time-review && 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 "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .claude/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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/blotcms/blot/tree/master/.claude/skills/node-response-time-reviewType 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 blotcms/blot --skill node-response-time-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install blotcms/blot node-response-time-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/node-response-time-review .agents/skills/node-response-time-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .agents/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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 blotcms/blot --skill node-response-time-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install blotcms/blot node-response-time-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/node-response-time-review .cursor/skills/node-response-time-review && 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 "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .cursor/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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/blotcms/blot.git --path .claude/skills/node-response-time-review--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 blotcms/blot --skill node-response-time-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install blotcms/blot node-response-time-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/node-response-time-review .gemini/skills/node-response-time-review && 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 "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .gemini/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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 blotcms/blot node-response-time-reviewInstalls 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 blotcms/blot --skill node-response-time-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/node-response-time-review .github/skills/node-response-time-review && 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 "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .github/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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 blotcms/blot --skill node-response-time-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install blotcms/blot node-response-time-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/node-response-time-review .opencode/skills/node-response-time-review && 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 "node-response-time-review" agent skill from https://github.com/blotcms/blot/tree/master/.claude/skills/node-response-time-review into .opencode/skills/node-response-time-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "node-response-time-review", 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.
node-response-time-reviewAnalyze 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…
Node Response Time Review is an agent skill from blotcms/blot. 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 when asked to look for slow sites, investigate response times, or re-run the node response time analysis.
Its SKILL.md is about 1.9k 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 DevOps & Cloud, covering Cloud networking and Async programming. It works with NGINX and Node.js. The repository describes itself as: Turns a folder into a website. The licence is AGPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9a0c75d. 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:
sshghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use ssh and gh, 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.
Node Response Time Review loads about 1.9k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 821 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 blotcms/blot at commit 9a0c75d, republished under its AGPL-3.0 licence (© blotcms). 821 words, ~1,871 tokens.
.claude/skills/node-response-time-review/SKILL.md (or your agent's skills folder).Reproduces the workflow from issue #1825: aggregate per-domain render times across the app containers, flag anything crossing the concern threshold, and distinguish genuinely slow sites from sites merely queued behind one.
Concern threshold: 150ms. Any single render over 150ms is worth a look; a site is worth flagging when a meaningful share of its requests exceed it, or its average render time is elevated (avg >150ms means most requests are slow, not just an occasional GC pause / cold cache).
This skill only identifies problem sites — it does not investigate root causes (why a given site is slow) unless separately asked to.
The upstream alias in ~/.bashrc on the prod host (ssh blot) live-tails
access.log for st=$upstream_response_time:
alias upstream='tail -f /var/instance-ssd/logs/access.log | stdbuf -oL grep "st=[^-]" | stdbuf -oL awk "{print \$10, \$3, \$4, \$7}"'That's a live view of nginx's upstream wait time — useful for watching traffic in real time, but it conflates two different things: the app actually being slow to render a site, vs. the app's single-threaded event loop being busy with a different concurrent request when this one arrived (queuing delay). At the ~15s nginx proxy timeout, both look identical from nginx's side alone. So this skill goes one step further and cross-checks against the app's own logged render time per request.
SSH host is blot. Always confirm with the user before running anything
against production; stick to read-only commands.
nginx access log (for cross-checking / a broader traffic sample, and to see 504s / true timeouts that never got a completion line in the app log):
ssh blot "wc -l /var/instance-ssd/logs/access.log"Log format (see config/openresty/conf/http.conf log_format access_log_format): space-separated, $7 = full URL, $10 = st= value
(comma-separated if the request was retried across upstreams — sum the
parts). st=- means no upstream was contacted (pure cache hit) — skip
those lines. Exclude blot.im's own long-lived endpoints, which are
long-polling by design, not bugs:
^https://blot\.im/sites/[^/]+/status (publish-status long poll)
^https://webhooks\.blot\.im/ (webhook delivery)
/draft/stream/ (live preview SSE)App container logs (the authoritative source for "did the app itself take
a long time to render this"). Check container uptime first — a recent
deploy/restart limits how far back --since can usefully go:
ssh blot "docker ps --format '{{.Names}}\t{{.Status}}'"
for c in blue green yellow; do
ssh blot "docker logs --since 6h blot-container-$c 2>&1"
done > /tmp/app_logs_combined.txtCompleted-request lines look like:
[12/Sep/2026:09:29:23 +0000] [yellow] <request-id> 200 0.013 https://www.example.com/path
— fields: $3=[color], $4=request id, $5=status, $6=render time
(seconds), $7=url. A request that hangs past nginx's timeout never gets
this line — instead you'll see <request-id> Connection closed by client <url> once nginx gives up. That's itself a strong signal: search for it
directly (grep "Connection closed by client") to catch sites whose worst
requests are too slow to even produce a normal timing line.
awk '
{
if ($3 ~ /^\[(blue|green|yellow)\]$/ && $5 ~ /^[0-9]+$/ && $6 ~ /^[0-9]+\.[0-9]+$/ && $7 ~ /^https?:\/\//) {
t = $6 + 0; url = $7;
n = split(url, u, "/"); domain = u[3];
if (domain == "") next;
count[domain]++; sum[domain] += t;
if (t > max[domain]) max[domain] = t;
if (t > 0.15) over150[domain]++;
if (t > 1) over1s[domain]++;
}
}
END {
for (d in count)
printf "%s\tcount=%d\tavg=%.4f\tmax=%.3f\tover150ms=%d\tover1s=%d\tpct150=%.1f\n",
d, count[d], sum[d]/count[d], max[d], over150[d]+0, over1s[d]+0, (over150[d]+0)*100/count[d]
}' /tmp/app_logs_combined.txt > /tmp/app_domain_stats.txtRank by average render time and by pct150 (share of requests over the
150ms bar), filtering out low-traffic domains (count < 20 or so — too
noisy to draw conclusions from a handful of requests):
awk -F'\t' '{
for(i=1;i<=NF;i++){split($i,kv,"="); v[kv[1]]=kv[2]}
if (v["count"]+0 >= 20) print v["avg"], v["count"], v["pct150"]+0, v["max"], $1
}' /tmp/app_domain_stats.txt | sort -rn | head -40For every domain that crosses the threshold, characterize how it's slow — this determines severity and whether it's a false positive:
150ms, max 17s) → genuinely, severely slow. Real bug, high priority.
st= numbers but the SAME domain's app-log render
times are almost all fast (e.g. www.markwadley.com: nginx avg 3s / 25%3s, but app-log avg 0.24s / 12% >150ms with no correlation) → false positive. The slowness measured at nginx is queuing delay from a different concurrent request blocking the event loop, not this site's own cost. Don't flag it as the site's problem.
Connection closed by client for the domain (e.g. anchor.blot.im) →
the app never finished rendering within the proxy timeout at all. This is
a severe finding even with a tiny sample size — a single hang beyond 15s
matters more than a moderate average.Always sanity-check a top candidate against TODO in the repo root — some
slow sites are already known/tracked (e.g. "Fix performance issues with
nashp", "Fix issue with warwickmostyn").
Don't file a new issue every run — this is a recurring check. Update the
existing tracking issue (currently
#1825) with the
current window's numbers via gh issue edit (replace body) or gh issue comment (append), rather than creating a duplicate. Structure the update
as: threshold/method recap, confirmed slow sites (with the avg/pct150/max
numbers and the app-vs-nginx evidence), false positives ruled out, and
anything low-confidence that needs another pass. Keep root-cause
speculation out unless asked — this skill is about identification only.
Clean up scratch files on both ends when done:
ssh blot "rm -f /tmp/app_logs_combined.txt" and remove any local
/tmp/app_domain_stats.txt equivalents.
© blotcms, AGPL-3.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/node-response-time-review of blotcms/blot.
Open the folder on GitHubat commit 9a0c75d
Node Response Time Review 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 |
|---|---|---|---|---|---|---|
| Node Response Time Review this skillblotcms/blot | 2k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Baota Panel Experttheneoai/awesome-skills | 183 | — | ~3k | Automated safety check: Pass | MIT | |
| Nginx To Higress Migrationhigress-group/higress | 9.5k | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| NGINX Ingress Controller Feature Checklistsnginx/kubernetes-ingress | 5.1k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| NGINX Ingress Policy CRD Guidenginx/kubernetes-ingress | 5.1k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Wp Static Clonejdevalk/skills | 104 | — | ~2.6k | Automated safety check: Pass | MIT |
theneoai/awesome-skills
宝塔面板专家。Use when: 管理Linux服务器、配置宝塔面板、部署网站、配置SSL、迁移数据、优化性能. An agent skill from theneoai/awesome-skills.
higress-group/higress
Migrate from ingress-nginx to Higress in Kubernetes environments.
nginx/kubernetes-ingress
Gives step-by-step checklists for adding Ingress annotations, VirtualServer fields and Helm values to the NGINX Kubernetes Ingress Controller, with common gotchas.
nginx/kubernetes-ingress
Step-by-step checklist for adding a new Policy CRD type to the NGINX Ingress Controller, from the Go types and validation to config generation and templates.
jdevalk/skills
Clones a live WordPress (or other CMS-driven) site into a static HTML site deployable on any static host (Cloudflare Pages, Netlify, Vercel, S3+CloudFront, plain Apache/nginx).
eclipse-ankaios/ankaios
Check Ankaios examples by building and running each example in the devcontainer and validating they work correctly.
blotcms/blot
Review what Blot's request-time folder-link rewrite (app/blog/render/replaceFolderLinks) still does in production, from the [folder-links] and [folder-asset-origin] log lines, to decide what has to…
blotcms/blot
Investigate a "Dropbox sync issue" alert email from Blot's hourly Dropbox sync validation ("detected previously unsynced changes from Dropbox for the following sites").
blotcms/blot
Work out why the blot-container-{blue,green,yellow} Docker containers from the most recent production deployment have restarted — distinguishing a normal deploy-triggered restart from a crash (V8…
blotcms/blot
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…
blotcms/blot
Triage a "sync/fix repaired <handle" admin email ("Fix() found and repaired issues for blog… (handle, client: …)"), sent whenever sync/fix (Fix()) changes anything for a blog.
blotcms/blot
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.
Categories
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…. Node Response Time Review is an agent skill from blotcms/blot.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).
Node Response Time Review fits situations like: asked to look for slow sites; investigate response times; re-run the node response time analysis.
Run `npx skills add blotcms/blot --skill node-response-time-review -a claude-code`. Or copy the skill folder (.claude/skills/node-response-time-review in blotcms/blot) into .claude/skills/node-response-time-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add blotcms/blot --skill node-response-time-review -a codex`. Or copy the skill folder (.claude/skills/node-response-time-review in blotcms/blot) into .agents/skills/node-response-time-review 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 blotcms/blot --skill node-response-time-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/node-response-time-review, .gemini/skills/node-response-time-review, .github/skills/node-response-time-review and .opencode/skills/node-response-time-review in your project.
Going by SKILL.md and its folder, Node Response Time Review needs the command-line tools its instructions call (ssh and gh). Our summary lists: Node.js; Docker.
SKILL.md contains no URLs. Its commands use ssh and gh, 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.
Node Response Time Review is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k 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 Node Response Time Review: Baota Panel Expert (theneoai/awesome-skills, 183 stars), Nginx To Higress Migration (higress-group/higress, 9.5k stars), NGINX Ingress Controller Feature Checklists (nginx/kubernetes-ingress, 5.1k stars) and NGINX Ingress Policy CRD Guide (nginx/kubernetes-ingress, 5.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
blotcms (a GitHub organization) maintains it in blotcms/blot, which has 1,983 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: blotcms/blot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.