Guide · Agent skill
How to use the RELSA Severity Assessment agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The RELSA Severity Assessment skill is an agent skill that helps an AI agent turn several welfare measurements for each laboratory animal into one relative severity score per day. It is aimed at researchers writing severity or refinement sections of welfare reports, animal welfare officers and 3Rs analysts, and developers who want a documented Python version of the RELSA method. After this guide you will know how to install the skill, how to ask for the calculations in plain language, what data to prepare and which decisions you must make and document yourself.
Quick start
- 1Download and unzip the skill. Download the ZIP from this page and unzip it into ~/.claude/skills/ or into a project's .claude/skills/ folder. In the Claude apps, you can instead upload it under Settings, Capabilities, Skills.
- 2Create the Python environment. Run the uv commands in the installation section from the skill directory. This needs Python 3.12 or newer and installs the required packages.
- 3Prepare your CSV. Use one row per animal per time point, with an id and a time column. Leave missing values empty rather than filling them in.
- 4Decide directionality and reference. Declare rising variables as turned, choose a documented reference set and decide how to handle any zero-baseline score.
- 5Ask the agent in plain language. Request scores, zones or a forecast and name your file and variables. Save the reference so later cohorts use the same scale.
What is an agent skill and what does this one do?
An agent skill is a folder of instructions, reference notes and scripts that an AI agent can load when a task matches the skill's description. This skill covers the RELSA (RELative Severity Assessment) score and exploratory ARIMA-based forecasting of that score for laboratory animal studies.
Once installed, the agent can combine several welfare measurements, such as body weight, temperature, clinical scores and biomarkers, for each animal into a single relative severity score, using a reference group as the comparison scale. It can also estimate candidate severity zones from the data using kernel density estimation, and run an exploratory forecast of the score at a chosen future observation time. The skill is a calculation aid for scientific reporting. It is not a decision-maker about animal welfare or humane endpoints.
- Computes RELSA scores from a local CSV of welfare readouts
- Estimates candidate attention and danger zones on a severity scale
- Produces exploratory ARIMA forecasts of the score at a specified time
- Supports reference sets saved and reused across cohorts
How do you install the skill?
Download the skill ZIP from this page and unzip it into one of two places. For a personal setup, use ~/.claude/skills/. For a single project, use the .claude/skills/ folder inside that project. Alternatively, in the Claude apps, open Settings, go to Capabilities, then Skills, and upload the ZIP there.
The skill's scripts need a Python environment with specific packages. The skill requires Python 3.12 or newer, with numpy, pandas, scipy, statsmodels and matplotlib. The example below creates an environment with uv using Python 3.13 and installs pinned package versions. Run it from the skill directory.
- Python 3.12 or newer is required
- scipy is needed for kde_thresholds.py
- statsmodels is needed for forecasting
- matplotlib is only needed for figures
uv venv --python 3.13 .venv-relsa
uv pip install --python .venv-relsa/bin/python numpy==2.5.3 pandas==3.0.6 scipy==1.18.1 statsmodels==0.15.0 matplotlib==3.11.2
source .venv-relsa/bin/activateHow do you prepare your data?
The skill expects a CSV with one row per animal per time point. An id column and a time column (such as day, time or hour) are required. Treatment and condition columns are optional labels used for grouping and for choosing the reference set. The bundled example shows the layout with columns for id, treatment, condition, day, temp, weight, score and il6.
Leave missing measurements empty. The skill drops them from the score rather than filling them in, because a missing value treated as no deviation would bias severity downward. Average hourly telemetry to one value per interval before using it. Keep animal IDs as text so leading zeros survive. Duplicate IDs or times, non-numeric measurements and infinite values are rejected.
- One row per animal per time point
- Time must be finite, in one consistent unit and origin
- The RELSA convention codes the baseline time point as -1
- assets/example_cohort.csv is a small synthetic cohort you can use to test everything
What decisions must you make before you trust a score?
Four choices determine the result more than anything else, and you should write each one into your methods. First, directionality: falling is the default for variables such as body weight and activity, but variables that rise under worsening, such as clinical scores, inflammatory biomarkers, fever and tachycardia, must be declared as turned. If you forget this, the variable silently contributes nothing.
Second, the reference set: scores only make sense relative to a scientifically characterized reference group, so document its burden. Third, a clinical score with a zero healthy baseline cannot be ratio-normalized, so the skill offers a score-scale option instead. Fourth, use variables measured throughout the study. A variable that appears or disappears mid-trajectory moves the composite score by itself, and the skill warns when the composition changes.
- Declare rising variables as turned
- Choose and save a reference set, then reuse it with later cohorts
- Use the score scale option for ordinal scores with a zero baseline
- Score only the variables present throughout the study
How do you ask the agent to run the analysis?
You do not need to remember script names. Describe the task in plain language, and the agent should match your request to this skill when it fits the description. Name your CSV, say which variables rise under worsening, and say what you want back: scores, zones or a forecast.
The skill's own instructions contain the exact command-line steps for each script, including the relsa_score.py workflow. Let the agent follow them, and check the options it uses against what you intend. Save the reference with the saving option and reuse it with the loading option so later cohorts stay on the same scale.
- Scores: compute RELSA scores for each animal per day from my CSV, treating the clinical score and il6 as turned variables
- Zones: estimate candidate attention and danger thresholds from these scores using kernel density
- Forecast: run an exploratory ARIMA forecast of each animal's score at day 10 and list which are highest
- Reference: save this reference set so the next cohort uses the same scale
What are the safety notes and limits?
The skill runs scripts, and it is allowed to read, write, edit files and run shell commands. Local analysis needs no network access or credentials. Installation and upstream review do need network access. Read the scripts before running them on sensitive data, and keep your data files local.
The outputs are not decisions. Forecasts estimate a score at a fixed time only. They do not estimate time to death or a probability of death, and they cannot override observed welfare signs or the approved humane endpoint criteria. Candidate zones describe the sampled score distribution and are not official EU Directive 2010/63/EU severity categories. A zero score does not establish normal welfare.
- Runs scripts: yes
- Uses network: no for local analysis
- Keep the study's approved observation schedule and endpoint criteria separate from these outputs
- Report the method, reference set and directionality choices alongside any result
What people use it for
- Combining body weight, temperature, clinical score and a biomarker into one daily severity score per mouse for a severity section of a welfare report
- Comparing severity between treatment groups or animal models on a shared scale defined by a reference group
- Estimating candidate attention and danger thresholds on a severity scale from longitudinal data using kernel density estimation
- Running an exploratory forecast of each animal's score at a specified future observation time for a 3Rs or refinement analysis
Frequently asked questions
How do I install the RELSA severity assessment skill?
Download the skill ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. In the Claude apps, you can upload the ZIP under Settings, Capabilities, Skills. Then create the Python environment with the uv commands in the installation section.
What does the relsa-severity-assessment skill require?
It requires Python 3.12 or newer with numpy, pandas, scipy, statsmodels and matplotlib. It needs a local CSV of animal welfare measurements. Local analysis needs no network access or credentials.
Is the RELSA severity assessment skill free and what is its licence?
The skill is listed under the MIT licence. The source for this page does not state any price, so check the directory listing for any cost information.
What is the difference between this skill and forecasting with statsmodels directly?
This skill is built around the RELSA score and applies its own directionality, baseline and reference rules to welfare data. For general forecasting of a time series that is not a severity score, the skill's documentation points to timesfm-forecasting or statsmodels instead.
Can this skill tell me when an animal will reach a humane endpoint?
No. Forecasts estimate the severity score at a fixed future time only. They do not predict time to endpoint or probability of death, and they cannot replace observed welfare signs or approved humane endpoint criteria.
Why does my clinical score variable have no effect on the result?
A variable that rises under worsening must be declared as turned. If it is not, deviations in the wrong direction are floored at zero, so the variable silently contributes nothing. Check your turned options and the data format before rerunning.
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
Use this skill if you are a researcher, welfare officer or 3Rs analyst who needs a transparent, documented way to compute relative severity scores and explore candidate zones from local welfare data. Pick something else if you need a decision on whether an animal has reached a humane endpoint, an official EU Directive 2010/63/EU severity grade, or time-to-death predictions, since this skill explicitly does not provide those.
Download the skill