Guide · Agent skill
How to use the DataRefresh agent skill: install and run it
Updated · written with AI from the project's own documentation and checked against our catalogue data
DataRefresh is an agent skill, a packaged set of instructions and a script that an AI agent such as Claude can load and use. It is for people who run public websites built from government or other public datasets and want the agent to check which sites are out of date, re-download their source data, rebuild them and confirm the result. This guide covers what it does, how to install it, how to ask for things in plain language, and what it needs before it will do anything useful.
Quick start
- 1Download and unzip. Download the DataRefresh ZIP from this page and unzip it. Place the DataRefresh folder in ~/.claude/skills/ or in your project's .claude/skills/ folder.
- 2Or upload in the Claude apps. In the Claude apps, open Settings, go to Capabilities, then Skills, and upload the skill.
- 3Install Bun. DataRefresh runs Tools/Refresh.ts with the Bun runtime, so Bun must be installed.
- 4Create Registry.json. Create LIFEOS/USER/CUSTOMIZATIONS/SKILLS/DataRefresh/Registry.json and list each site with its name, repo path, fetch commands and cadenceDays, following Setup.md.
- 5Run a status check. Ask 'are our data sites stale?' or run the status command to see every target's freshness against its cadence.
- 6Refresh one target. Ask to refresh a named target. The skill repulls, rebuilds and reports before and after record dates without deploying.
- 7Publish only when intended. Ask for the update to be published only when you want it live. The agent deploys through your sanctioned command and checks the live page.
What an agent skill is and what DataRefresh makes the agent do
An agent skill is a folder with a SKILL.md file and supporting files that an AI agent reads when a request matches the skill's description. DataRefresh is a registry-driven freshness engine for data-backed public sites. Each site you register (a target) has its own fetch scripts, an optional dataset update command, a build command, a deploy command you already trust, and a live URL used for verification.
The skill has two jobs. Status reports, in one table, each target's last data pull, its age against its refresh cadence, and whether it is STALE or FRESH. Refresh repulls the source data, updates the dataset, rebuilds the site and, only if you ask for publishing, deploys and checks the live page.
- Status is read-only: it never refreshes or deploys.
- Refresh does not deploy unless the request covers publishing (the tool flag is --deploy).
- Narrative text that new data contradicts is fixed by hand by the agent; the code does not rewrite prose.
Install the DataRefresh skill from the ZIP
Download the DataRefresh ZIP from this page and unzip it. For a personal install, place the DataRefresh folder in ~/.claude/skills/ so the path is ~/.claude/skills/DataRefresh. For a single project, place it in that project's .claude/skills/ folder instead.
Alternatively, if you use the Claude apps, upload the skill under Settings → Capabilities → Skills.
- Personal install: ~/.claude/skills/DataRefresh
- Project install: .claude/skills/DataRefresh inside your project
- Claude apps: Settings → Capabilities → Skills, then upload
Create your registry before first use
DataRefresh needs a private registry that describes your sites. Create the file LIFEOS/USER/CUSTOMIZATIONS/SKILLS/DataRefresh/Registry.json under your ~/.claude directory. You can point to a different file by setting the DATAREFRESH_REGISTRY environment variable. Each target needs a name, a local repo path, fetch commands and a cadence in days. The source's smallest working example is shown below.
Without a registry, or with one that has no targets, the tool exits with an error and points to Setup.md. Setup.md also covers the optional dataset updater, build step, deploy command and live URL, plus any accounts or secrets your own scripts need. Those details are not fully shown in the provided files, so read Setup.md before registering a production site.
- Requires Bun to run Tools/Refresh.ts
- Requires a local clone of each site repo
- Requires the shared LifeOS TOOLS modules (Invariant.ts and Paths.ts) at the expected relative location
- Invalid entries fail loudly and name the entry; fix the registry rather than wrapping the load in error handling
{
"targets": [
{
"name": "example-site",
"repo": "~/Projects/example-site",
"fetch": [["bun", "scripts/fetch-data.ts"]],
"cadenceDays": 30
}
]
}Ask for a status check or a refresh in plain language
You do not need to remember command syntax. The skill triggers on requests such as 'are our data sites stale?', 'data freshness', 'which sites need updating' or 'refresh example-site'. A status request returns the table and offers to refresh anything stale. A refresh request runs the refresh without deploying, unless you ask for publishing with wording like 'update the data sites' with deployment implied by your request.
To check the live sites too, ask for live freshness. The underlying status command is bun ~/.claude/skills/DataRefresh/Tools/Refresh.ts status [target] [--live]. Its exit codes are 0 when all targets are fresh, 2 when at least one is STALE or UNKNOWN, and 1 for a registry error or an unknown target name.
- 'are our data sites stale?' runs a status table across all targets
- 'refresh example-site' repulls and rebuilds one target without deploying
- 'update the data sites' covers every target and deploys through each target's sanctioned command
- 'check the live sites too' adds live-site freshness to the status table
bun ~/.claude/skills/DataRefresh/Tools/Refresh.ts status [target] [--live]Understand what a refresh run reports
A refresh reports the before and after record dates for each target, so you can see whether the source actually advanced. When deploy was requested, it shows the live freshness field advancing after the new build is published. The run log records one line per target for each refresh run; status runs write no log lines.
The skill also watches for a known failure: a government or public feed can keep returning successful responses while its data has stopped moving. If a target's record dates do not advance across several refreshes even though its cadence says they should, the skill advises checking the source series itself before trusting the pull.
- Run log: ~/.claude/LIFEOS/MEMORY/OBSERVABILITY/datarefresh.jsonl
- Before and after record dates are shown for each refreshed target
- Stale-looking data from a frozen source is not fixed by refreshing again
Review safety notes before running it
DataRefresh runs scripts and uses the network. Refresh repulls live upstream sources and, when asked, publishes to production. Only deploy when you have reviewed the data. The skill's own verification checks only a few values on the live page, so it does not prove the whole dataset is correct.
Keep your fetch and deploy credentials in the places Setup.md describes, not in the public skill files. The registry is private data and is never part of the skill itself.
- Refresh is the only action that repulls sources or changes repos.
- Deployment happens only when the request covers publishing (--deploy).
- Verify the live page yourself for important figures.
- Keep the registry and any secrets out of public repositories.
Tips for getting reliable results
Start with a single target by name, and use a throwaway target to test the process before pointing the skill at a production site. Setup.md describes that proof step. Run a status check first so you know what is stale before you ask for a refresh.
Use the skill for data refresh only. For system upgrades, uptime or security monitoring, US economic indicators or deploys that are not data-related, the skill's own description points to other tools.
- Test with a throwaway target first (see Setup.md)
- Check status before refreshing
- Refresh one target by name before running the whole fleet
- Do not use it for non-data deploys or system upgrades
What people use it for
- Checking which of several government-data-driven public sites have data older than their update schedule
- Running a daily or weekly stale-data check and getting a table of STALE and FRESH targets
- Repulling a single dataset and rebuilding one site to review before any publishing
- Running your existing fetch, build and deploy commands in a fixed order through one request
Frequently asked questions
How do I install the DataRefresh agent skill?
Download the DataRefresh ZIP from this page and unzip it into ~/.claude/skills/ for a personal install, or into a project's .claude/skills/ folder. In the Claude apps you can instead upload it under Settings → Capabilities → Skills.
What do I need to run DataRefresh?
You need the Bun runtime, a local clone of each site repo, a private Registry.json describing your targets, and the shared LifeOS TOOLS modules (Invariant.ts and Paths.ts). Any accounts or keys needed by your own fetch or deploy commands are described in Setup.md.
Is DataRefresh free to use?
The source material is licensed under MIT. It does not state pricing for this item, so check the directory page for any licence or cost details.
Does DataRefresh work without setup?
No. Without a registry of your own sites, the tool exits with an error and points to Setup.md, so it does nothing useful out of the box.
Will DataRefresh publish changes to my live site automatically?
No. It deploys to production only when the request covers publishing, and the status check never deploys. After a deploy, the agent checks the live page for the new values, though that check covers only a few values.
What should I use instead for system upgrades or uptime monitoring?
The skill's own description says system upgrades belong to Upgrade, uptime and security monitoring to Bunker or Workflows, US economic indicators to USStats, and non-data deploys to your own deploy tooling.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
DataRefresh suits teams that maintain several data-backed public sites from public datasets and already have their own fetch, build and deploy commands. It is a poor fit if you have no registry of your sites, or if you want unreviewed data published automatically to live pages.
Download the skill