backup
Skill0 starsChanged 4 months agoMITView on GitHub
Back up expensive-to-regenerate pipeline/project artifacts to Dropbox with the right format and location. Use when the user wants to offload, back up, or archive data to Dropbox — a corpus, a cache, scraped raw, or a whole pipeline's build outputs.
13 other projects use a version of this.
Adopted by
Most recently taken up by
- Anglesite/anglesite-skillstheir own version, first seen Oct 27, 2026
- ARCASSystems/FounderOStheir own version, first seen Oct 24, 2026
- jholhewres/devclaw-skillstheir own version, first seen Oct 9, 2026
- Alex8791-cyber/cognithortheir own version, first seen Oct 8, 2026
- ZimoLiao/scholaraiotheir own version, first seen Oct 8, 2026
- hazarsozer/ren-ostheir own version, first seen Sep 4, 2026
Used with
Projects with it also use restore and update.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
nikosdionSkillrestore
Restore a Joomla or WordPress site backup created by Akeeba Backup (Joomla/WordPress) or Akeeba Solo using Akeeba Kickstart and the Akeeba Backup Restoration Script, including multipart archive handling, restoration configuration, and post-restore cleanup.
Also in 4 projects that use this
AnthropicSkillupdate
Sync tasks and refresh memory from your current activity. Use when pulling new assignments from your project tracker into TASKS.md, triaging stale or overdue tasks, filling memory gaps for unknown people or projects, or running a comprehensive scan to catch todos buried in chat and email.
Also in 3 projects that use this
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 13
- ZimoLiao/scholaraio★ 585same name
- Alex8791-cyber/cognithor★ 158same name
- Anglesite/anglesite-skills★ 15same name
- maxwellsdm1867/wheeler★ 12same name
- tombelieber/claude-backup★ 9same name
- mcpware/claude-code-backup★ 8same name
- redareda9/ghostty-resurrect★ 8same name
- ARCASSystems/FounderOS★ 7same name
- jholhewres/devclaw-skills★ 4same name
- nikosdion/devskills★ 4same name
3 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository39 other files it gives its agents.
- anecdotesSkill
- checkSkill
- cite-syncSkill
- dataSkill
- diariosSkill
- distill-styleSkill
- driveSkill
- dropboxSkill
- fetch-annotationsSkill
- findings-auditSkill
- findingsSkill
- gmailSkill
- handoffSkill
- howtoSkill
- hypothesisSkill
- iatSkill
- ideaSkill
- inboxSkill
- institutionsSkill
- literatureSkill
- llmkitSkill
- meetSkill
- memory-auditSkill
- new-pipelineSkill
- new-projectSkill
- nextSkill
- otterSkill
- outlookSkill
- questionsSkill
- referee-panelSkill
- siteSkill
- style-checkSkill
- style-reviewSkill
- style-reviseSkill
- tactiqSkill
- theorySkill
- validate-sectionSkill
- whatsappSkill
- zoomSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 1 is distinctive, and 1 is very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 68
Beware mid-build races: If the pipeline is still writing, files added after your enumeration are missed — re-scan and rclone copy the delta …
- Distinctive: line 94
Commit catalog + skill changes (standing authorization).
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Back up data to Dropbox
Disaster-recovery copies of expensive-to-regenerate artifacts (scraped corpora, LLM
caches, geoblocked raw PDFs, BigQuery exports). Dropbox is a cold backup, not a
working store. For ad-hoc file sharing / browsing, use the dropbox skill instead.
Writable remotes exist only on the host (bi-dropbox:), not the sandbox
(*-ro: only). Stage compressed archives on /projects (has TBs free), not /tmp.
The two decisions: FORMAT and LOCATION
FORMAT — keyed on file count/size, not one-size-fits-all
The dividing line is Dropbox's too_many_write_operations failure (bursts of many
small files). Pick by artifact shape:
| Shape | Form | Why |
| Corpus: hundreds–low-thousands of medium/large files (parquet, MB–GB each) | Per-file, recompressed to ZSTD-9, mirroring the local tree | Directly readable + partial restore; rclone copy gives free incremental sync; ZSTD-in-parquet beats tar-of-snappy (a real case: 44 GB SNAPPY → 18 GB ZSTD vs 34 GB tar.zst) |
| Tiny-file cache: 10k–100k files, few KB each (LLM caches) | Single tar.zst | Per-file trips the write-op limit; FS block-slack inflates size (a "1 GB" cache was 411 MB of data across 63k files → 20 MB zstd) |
| Bulk incompressible: 10k+ PDFs/images | tar with zstd -3 (combine, don't compress) | Compression won't help; combining dodges the write-op limit |
Rule of thumb: per-file is strictly better until files get too many/too tiny
(~a few thousand medium files is the comfortable ceiling), then you must combine.
Already-compressed files (.zip, .pdf) at low count → upload per-file as-is
(don't re-compress). ZSTD-9 is the sweet spot; level 19 is ~27× slower for a few %.
LOCATION — ownership/consumption, NOT "produced by a pipeline"
Fetching ≠ owning. Decide by who reads it:
bi-dropbox:data/<x>/— the shared data lake: raw inputs read across many projects (TSE, cnpj, court corpus) and deliberate cross-cutting namespaces (data/TCEs/for all TCE state pulls,data/mides/for the shared procurement bulk). These stay indata/even if one pipeline scraped them.bi-dropbox:pipelines/<slug>/— artifacts owned and consumed by only that pipeline: itsbuild/outputs and its own scrape/LLM caches nothing else reads. Build outputs →pipelines/<slug>/build/...; caches →pipelines/<slug>/root.
Do NOT blanket-move data/ → pipelines/. Most of what a pipeline "produces"
into data/ is shared raw. Match the existing sibling's layout (e.g. new TCE state
pull → mirror the other data/TCEs/tce_<state>/ dirs).
Workflow
- Assess shape.
du -sh,find <dir> -type f | wc -l, extension breakdown, and for parquet check the codec (pq.ParquetFile(f).metadata...compression). Choose FORMAT + LOCATION from the tables above. - Check for prior backups first. List the destination and siblings — a previous session may already have offloaded it (possibly under a different name/layout). Reconcile before duplicating; surface (don't silently delete) anything you didn't create that overlaps.
- Compress if needed.
- Corpus → recompress to ZSTD parquet with the bundled helper:
python recompress_zstd.py --src <clean> --dst <clean_zstd>(serial, resumable; see its header for the OOM/deadlock gotchas). Verify row counts match a sample. - Cache/PDF →
tar -C <parent> -cf - <dir> | zstd -<L> -T3 -o <name>_<startYr>-<endYr>.tar.zstthenzstd -tto verify. Name archives by time coverage.
- Corpus → recompress to ZSTD parquet with the bundled helper:
- Upload.
rclone copy -P --transfers 4 --checkers 8 <local> <remote>(copynever deletes on remote; reservesyncfor the user, with--dry-runfirst). - Verify.
rclone check <local> <remote>(0 differences) or comparerclone sizefile counts + bytes. Small byte deltas = dir-inode accounting, not content. - Beware mid-build races. If the pipeline is still writing, files added after your
enumeration are missed — re-scan and
rclone copythe delta (it's cheap). - Update the data catalog (
$ROOT/data_catalog/, hand-curated — edit_annotations/datasets/<x>.yamlstorage.backupand the matchingDATA_CATALOG.mdsection; do NOT regenerate). Validate:.venv/bin/python scripts/validate_annotations.py. - Record in memory what was non-obvious (new location, a gotcha, an audit result).
Auditing for stranded local-only data
To find artifacts that were never offloaded: reconcile local scrape/build dirs against
the remote. Compare by archive/coverage, NOT raw file count — a dir of 44k loose
zips correctly backed up as 2 consolidated tars will falsely look like a 44k→2 "gap".
Where remote count > local, that's usually extra older pulls, not a gap. Confirm true
gaps (local > remote in coverage) before uploading.
Restore
- Per-file parquet:
rclone copy <remote-dir> <local>(orrclone catone file). - Archive:
rclone cat <archive> | tar -x{--zstd or z}f - -C <parent>.
Gotchas
too_many_write_operationsfires on bursts of many files — combine into few archives.- Foreground
sleepmay be blocked in-session; use background jobs /Monitorto wait. rclone moveleaves empty dir markers — clean withrclone rmdirs.- Commit catalog + skill changes (standing authorization); confirm before any purge/force.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

