Agent skill

Data Volume

by blotcms in blotcms/blot

Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only…

AGPL-3.0Auto-check: notesAI & LLM Engineering

Install Data Volume

skills CLI
$ npx skills add blotcms/blot --skill data-volume -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install blotcms/blot data-volume --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/blotcms/blot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/data-volume .claude/skills/data-volume && rm -rf skills-src

Use ~/.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/

Facts

Skill name
data-volume
GitHub stars
2k
Token cost
~1.4k tokens
SKILL.md length
730 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only…

  • Works in 8 steps: Ask the operator before every production… → Let the operator run resize.sh in their… → Drill before changing anything on the… → …
  • Asked to resize
  • SKILL.md covers Rules, What to expect at production… and Incident log
  • Calls ssh, docker and npm

What it does

Data Volume is an agent skill from blotcms/blot. Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only freeze and a mount swap the running containers follow without a restart), release and detach the old volume afterwards with resize.sh finish, or rehearse the whole flow on a throwaway instance with drill.sh. Holds the guardrails (ask before every production command, drill first, tear down only by explicit ID), what to…

Its SKILL.md is about 1.4k 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 AI & LLM Engineering. The repository describes itself as: Turns a folder into a website. The licence is AGPL-3.0.

When your agent uses it

  • Asked to resize
  • Shrink the data volume
  • Free disk on the app host by moving to a smaller
  • Delete the old data volume

Example prompts

  • “/data-volume”

Requirements

  • Docker

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Ask the operator before every production command: resize.sh (even
  2. Let the operator run resize.sh in their own terminal. It asks yes/no
  3. Drill before changing anything on the freeze, copy or swap path.
  4. Tear down only by explicit ID, re-checking BlotDrill=true on each
  5. **Never delete the old volume or its pre-resize snapshot without the
  6. No freeze within 10 minutes of 01:00 and 05:00 UTC (host cron and the
  7. **After finish released an old volume on the host, deploy the app before
  8. Public repo: volume and snapshot IDs are fine in commits; no account IDs,

What it can do on your machine

Read from SKILL.md and the folder at commit 6250431. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • ssh
    • docker
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use ssh, docker and npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Data Volume loads about 1.4k tokens when it runs. Until then it costs about 206 tokens; SKILL.md has 730 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~206
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:55
    (`ssh blot sudo bash /tmp/blot-data-volume/host.sh stop-copy`) and

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.

SKILL.md

The full file from blotcms/blot at commit 6250431, republished under its AGPL-3.0 licence (© blotcms). 730 words, ~1,435 tokens.

Download SKILL.mdSave it as .claude/skills/data-volume/SKILL.md (or your agent's skills folder).
name
data-volume
description
Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only freeze and a mount swap the running containers follow without a restart), release and detach the old volume afterwards with `resize.sh finish`, or rehearse the whole flow on a throwaway instance with drill.sh. Holds the guardrails (ask before every production command, drill first, tear down only by explicit ID), what to expect at production scale, and an incident log. Use when asked to resize, grow or shrink the data volume, free disk on the app host by moving to a smaller or larger volume, detach or delete the old data volume, run a data-volume drill, or use the app's read-only freeze (scripts/read-only.js).

Data volume

The app host's data directory (/var/www/blot/data: blog folders, generated assets, git repos) is one XFS-formatted EBS volume. It is mounted by mount-data-volume.service by its volume ID (/etc/blot/data-volume, checked against the .blot-data-volume marker at the volume's root), shared, and the app containers bind it with bind-propagation=rslave (config/host/README.md).

config/host/data-volume/README.md explains the scripts and every step. This skill does not repeat it: it holds the rules, what to expect, and the log.

Related: scripts/read-only.js (the app's read-only freeze, also usable on its own), redis-host (the same style of operation for the Redis host).

Rules

  1. Ask the operator before every production command: resize.sh (even --dry-run: it copies host.sh to the host), ssh blot, docker exec, read-only.js on/off. State the exact command. Read-only AWS describe-* and CloudWatch calls (--profile blot --region us-west-2) are fine without asking; say what you ran.
  2. Let the operator run resize.sh in their own terminal. It asks yes/no at each step and the "Freeze now?" moment is theirs to choose; --yes would skip it. Watch from the side (CloudWatch, plain HTTP requests) and read what they paste.
  3. Drill before changing anything on the freeze, copy or swap path. drill.sh launch/setup on a throwaway from production's AMI, then resize.sh --host drill …. Keep a subagent away from production mechanically: an ssh config passed with -F (so the blot alias does not resolve) and --host drill on every call.
  4. Tear down only by explicit ID, re-checking BlotDrill=true on each resource immediately before deleting it, and never anything that is the app host or its volumes. Show the operator the list and get a yes first.
  5. Never delete the old volume or its pre-resize snapshot without the operator. They are the rollback for about a week after a shrink.
  6. No freeze within 10 minutes of 01:00 and 05:00 UTC (host cron and the scheduler delete files then; the script refuses).
  7. After finish released an old volume on the host, deploy the app before the next resize. The release breaks the running containers' link to host mounts until they are recreated (README, "After it").
  8. Public repo: volume and snapshot IDs are fine in commits; no account IDs, key names or ssh details, and sizes only as percentages here.
Show full SKILL.md (358 more words)Show less

What to expect at production scale

  • Pass 1 (everything) runs for hours at roughly 100-120 MB/s, the site fully live; the instance's EBS byte burst balance drains a few percent per five minutes during it and refills afterwards. Watch EBSByteBalance% on the instance and read latency on the old volume; stopping the copy (ssh blot sudo bash /tmp/blot-data-volume/host.sh stop-copy) and re-running later loses nothing.
  • Pass 2 (nothing changed) is a metadata walk of both trees: minutes with a cold cache.
  • The frozen pass runs in parallel shards and takes about a minute; the whole read-only window (grace, lock drain, remount, copy, snapshot call, swap) is about two minutes. Blogs and the dashboard keep serving; writes get 503s, syncs wait and catch up within seconds of the freeze lifting, iCloud's retry within about 20s.
  • Afterwards: npm run deploy-proxy (its data/static bind does not follow a swap) and an app deploy; then resize.sh finish releases the old volume on the host without a reboot and detaches it.

Incident log

Newest last. Times in UTC.

### <date> — <operation>
- What / why: …
- Timings: …
- Problems: …
- Follow-up: …
2026-10-09 — first shrink (gp2 to a smaller gp3 volume)
  • What / why: the data volume was about half used and on gp2; shrunk to a gp3 volume at about 70% used after the copy (logs/ and tmp/ contents not copied), roughly 40% cheaper. PRs #2099 (read-only freeze), #2100 (mount by ID, rslave), #2101 (Sync paused), #2102 (scripts), #2103 (finish releases on the host).
  • Drill first (AL2, kernel 5.10): it found that systemd 219 rejects the copy unit's properties (every live pass would have failed to start) and that docker exec fails on paused containers; both fixed before production.
  • Timings: pass 1 1h49m, pass 2 4m46s, frozen copy 1m11s over ~3,100 shards, read-only window 2m00s, ending 18:12:50 (swap 18:12:48). EBS byte burst balance bottomed out around 45%; old-volume read latency about 1 ms during the copy.
  • Afterwards: proxy and app deploys; the host still held the old volume under the new one, released by hand without a reboot (umount, umount, mount-data-volume.sh; containers unaffected), then finish detached it. That sequence is now host.sh release-old, offered by finish.
  • Follow-up: delete the old volume and its snapshot from 16 Oct (TODO).

© 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

Files

Just SKILL.md in .claude/skills/data-volume of blotcms/blot.

Open the folder on GitHubat commit 6250431

Compare with similar skills

Data Volume 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.

Data Volume compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Data Volume this skillblotcms/blot2k—~1.4kAutomated safety check: NotesAGPL-3.0
Agent BuildershareAI-lab/learn-claude-code78k4 repos~1.2kAutomated safety check: PassMIT
Add Uint Supportpytorch/pytorch104k2 repos~2.3kAutomated safety check: PassCustom licence
LLM Benchmarking with lm-evaluation-harnessOrchestra-Research/AI-Research-SKILLs13k8 repos~3kAutomated safety check: PassMIT
Segment Anything Model GuideOrchestra-Research/AI-Research-SKILLs13k8 repos~3.3kAutomated safety check: PassMIT
1passwordtrpc-group/trpc-agent-go1.9k14 repos~656Automated safety check: PassApache-2.0

Similar skills

  • Agent Builder

    shareAI-lab/learn-claude-code

    Design and build AI agents for any domain. An agent skill from shareAI-lab/learn-claude-code.

    78k GitHub starsUsed in 4 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Add Uint Support

    pytorch/pytorch

    Add unsigned integer (uint) type support to PyTorch operators by updating ATDISPATCH macros.

    104k GitHub starsUsed in 2 repos~2.3k tokens
    AI & LLM EngineeringAuto-check passed
  • LLM Benchmarking with lm-evaluation-harness

    Orchestra-Research/AI-Research-SKILLs

    Runs lm-evaluation-harness to benchmark language models on academic suites such as MMLU, GSM8K and HumanEval, compare models and track training checkpoints.

    13k GitHub starsUsed in 8 repos~3k tokens
    AI & LLM EngineeringAuto-check passed
  • Segment Anything Model Guide

    Orchestra-Research/AI-Research-SKILLs

    Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.

    13k GitHub starsUsed in 8 repos~3.3k tokens
    AI & LLM EngineeringAuto-check passed
  • 1password

    trpc-group/trpc-agent-go

    Set up and use 1Password CLI (op). An agent skill from trpc-group/trpc-agent-go.

    1.9k GitHub starsUsed in 14 repos~656 tokens
    AI & LLM EngineeringAuto-check passed
  • Planning With Files

    jarrodwatts/claude-code-config

    Transforms workflow to use Manus-style persistent markdown files for planning, progress tracking, and knowledge storage.

    1.1k GitHub starsUsed in 5 repos~967 tokens
    AI & LLM EngineeringAuto-check passed

More from blotcms/blot

All 11 skills in this repo
  • 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…

    2k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • 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…

    2k GitHub stars~4.7k tokensUpdated today
    Auto-check passed
  • 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…

    2k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Investigate an "iCloud resync found changes" admin email (the ICLOUDRESYNCISSUE email a macserver-requested resync sends when it found changes, Fix() repairs or errors, with the macserver's reason)…

    2k GitHub stars~4.2k tokensUpdated today
    Auto-check: warnings
  • 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…

    2k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Test Blogs

    blotcms/blot

    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…

    2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Questions about Data Volume

What does Data Volume do?

Grow or shrink the EBS volume that holds the app host's data directory (/var/www/blot/data), with config/host/data-volume/resize.sh (grow in place; shrink by live rsync passes, a brief read-only…. Data Volume is an agent skill from blotcms/blot.sh.

When should I use Data Volume?

Data Volume fits situations like: asked to resize; shrink the data volume; free disk on the app host by moving to a smaller; delete the old data volume.

How do I install Data Volume in Claude Code?

Run `npx skills add blotcms/blot --skill data-volume -a claude-code`. Or copy the skill folder (.claude/skills/data-volume in blotcms/blot) into .claude/skills/data-volume in your project. Claude Code loads it when a task matches its description.

How do I install Data Volume in Codex?

Run `npx skills add blotcms/blot --skill data-volume -a codex`. Or copy the skill folder (.claude/skills/data-volume in blotcms/blot) into .agents/skills/data-volume in your project. Codex loads it when a task matches its description.

Can I use Data Volume in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add blotcms/blot --skill data-volume -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-volume, .gemini/skills/data-volume, .github/skills/data-volume and .opencode/skills/data-volume in your project.

What does Data Volume need to run?

Going by SKILL.md and its folder, Data Volume needs the command-line tools its instructions call (ssh, docker and npm). Our summary lists: Docker.

Does Data Volume access the network?

SKILL.md contains no URLs. Its commands use ssh, docker and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Data Volume safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Data Volume use?

Data Volume 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.

How many tokens does Data Volume use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Data Volume?

Skills that share tags, products or a category with Data Volume: Agent Builder (shareAI-lab/learn-claude-code, 78k stars), Add Uint Support (pytorch/pytorch, 104k stars), LLM Benchmarking with lm-evaluation-harness (Orchestra-Research/AI-Research-SKILLs, 13k stars) and Segment Anything Model Guide (Orchestra-Research/AI-Research-SKILLs, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Data Volume?

blotcms (a GitHub organization) maintains it in blotcms/blot, which has 1,983 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 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.