Skip to content

Guide · Agent skill

How to use the Units and uncertainty checker agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The uncertainty-and-units skill is a set of instructions and local scripts that teaches an AI agent to handle physical units and measurement error carefully. It is for scientists, engineers and developers who need unit conversions, GUM-style uncertainty budgets, plus-minus reporting, or a check that a result is physically plausible. After this guide you will know how to install the skill, how to ask for its help in plain language, and what it will and will not do.

Units and uncertainty checkerK-Dense-AI/scientific-agent-skills · MIT

Quick start

  1. 1Download the ZIP. Download the uncertainty-and-units ZIP from this page.
  2. 2Unzip into a skills folder. Unzip it into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, upload it under Settings, then Capabilities, then Skills.
  3. 3Set up Python. Create a Python 3.12 or newer environment with pint, uncertainties, NumPy and SciPy. uv is suggested for this.
  4. 4Check the scripts run. Run one of the scripts with --help to confirm it works offline.
  5. 5Make a natural request. Ask a question such as 'is this number physically reasonable' and paste your values, units and any calibration data.
  6. 6Review the output. Check the stated units, the coverage factor and the method behind the plus-minus before you use the result.

What the skill makes the agent do

Once the skill is loaded, the agent follows a fixed workflow for any calculation that carries units or needs an uncertainty. It attaches units at input and strips them only at output, writes the measurement model before computing, and gives each input an estimate, a standard uncertainty, a distribution and degrees of freedom. It reports results with a clearly stated plus-minus, saying whether the value is standard or expanded, which coverage factor it uses, and by what method.

The skill also reviews existing code for silent defects. The source lists cases such as a unit lost by calling .magnitude without naming the unit, temperature arithmetic on degrees Celsius, logarithmic units such as dBm added as if they were linear, correlations lost by rebuilding a variable from its nominal value and standard deviation, and curve-fit covariance that was rescaled without intent.

  • Unit conversion with explicit context, including conversions such as wavelength to photon energy
  • GUM uncertainty budgets, Type A and Type B evaluation, coverage factors and expanded uncertainty
  • Monte Carlo propagation, with a check against the linear GUM result
  • Significant-figure rounding and plus-minus reporting
  • Auditing Python code for stripped units or broken uncertainty propagation
  • Order-of-magnitude plausibility checks using dimensionless groups such as Reynolds number and characteristic scales such as diffusion time

Install the skill from the ZIP or the Claude apps

Download the ZIP for the uncertainty-and-units skill from this page. You can then install it in one of three places, depending on how you use the agent.

For a personal setup, unzip the download into your skills folder at ~/.claude/skills/. For a single project, unzip it into the .claude/skills/ folder inside that project. In the Claude apps, you can instead upload the ZIP under Settings, then Capabilities, then Skills.

  • Personal: unzip into ~/.claude/skills/
  • Project only: unzip into .claude/skills/ inside the project folder
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP

Set up the Python environment for the scripts

The skill's numeric scripts need Python 3.12 or newer, plus the pint, uncertainties, NumPy and SciPy packages. The source suggests uv to create the environment. The static unit auditor uses only the standard library, so it can run without the numeric packages.

The source notes that pint-pandas and pint-xarray are separate installs if you want unit-aware tables or arrays. You do not need them for the core workflow.

  • Python 3.12 or newer for the numeric tools
  • pint, uncertainties, NumPy and SciPy for the numeric command-line tools
  • uv is suggested in the install instructions
  • The audit script needs only the standard library

Check that the bundled tools run

The helper scripts sit in the skill's scripts folder. Each one accepts --help, which is the quickest way to confirm the script runs and to see its options. The agent can call these scripts for you, but you can also run them yourself from the folder that contains the skill.

  • scripts/convert_units.py
  • scripts/audit_units.py
  • scripts/check_plausibility.py
  • scripts/propagate_uncertainty.py
  • scripts/format_result.py
python skills/uncertainty-and-units/scripts/propagate_uncertainty.py --help

Trigger the skill with natural requests

You do not need special syntax. The skill activates on requests about units, uncertainty or plausibility. The source names three phrases that reliably trigger it: is this number physically reasonable, sanity check these units, and what regime is this flow in. A result that looks off by orders of magnitude also triggers it.

Give the agent the real numbers, the instrument or calibration information you have, and the question you need answered. The more of the measurement model you describe, the better the uncertainty budget will be.

  • Is this number physically reasonable? Here is the Reynolds number I got for the pipe flow.
  • Sanity check these units in this function: it multiplies a length in mm by a force in N.
  • What regime is this flow in? Velocity 2 m/s, pipe diameter 25 mm, water at room temperature.
  • My simulated result is off by about three orders of magnitude. Check whether the scaling is right.
  • Build an uncertainty budget for this length measurement from the calibration certificate and repeat readings I pasted.

Work through a worked example

Suppose you want to report a length measured as 12.7 mm. The skill's guidance is to name the unit at the point of extraction, so the value is stated in metres, not as a bare number. A request such as 'convert 12.7 mm to metres and state the unit' asks the agent to do exactly that.

For temperature, a reading of 20 ± 0.5 degC converted to Fahrenheit becomes 68 degF with an uncertainty in delta_degF, because a temperature uncertainty is a difference. The skill flags the mistake of adding two Celsius values directly, which pint refuses with an offset-unit error.

(12.7 * ureg.mm).m_as("m") # 0.0127 metres, stated

Know what the skill will not do

This skill covers metrology and the two libraries that implement it. It does not cover statistical inference, model selection, or study design. For those, the source points to the statistical-analysis, statistical-power and experimental-design skills.

Its outputs depend on your measurement model and the input distributions you give it. The skill does not validate either. For safety-critical or certified metrology decisions, the source says expert review is needed before you rely on the result.

  • Not for statistical inference, model selection or study design
  • Not a substitute for expert review in safety-critical or certified metrology

Safety notes on scripts and network use

The skill runs scripts locally. The source states that all bundled tooling runs offline, with no network access. The helpers reject URLs and symlinks, bound their inputs, write output atomically with private permissions, and refuse to overwrite an existing file unless you pass --force.

Because the skill runs scripts, read the scripts folder before installing from any source you do not trust, and review what the agent is asking to run.

  • No network access during any bundled tool run
  • URLs and symlinks are rejected as inputs
  • Output files are never overwritten without --force
  • The skill's allowed tools are Read, Write, Edit and Bash

Tips for better results

Name every unit you use and give the agent the context it needs to convert quantities that require a physical context, such as photon energy from wavelength. Describe every correction in the model, even ones you think are zero, because a correction left out of the model leaves its uncertainty out of the budget.

When a Monte Carlo result and the linear result disagree, the skill asks you to check the linearization. The source's example is y = x² with x = 1.0 ± 0.5, where the linear interval includes negative values for a squared quantity.

  • Give the source of each uncertainty: calibration certificate, specification or repeatability data
  • Ask for the sensitivity coefficients so you can see which input dominates the budget
  • When fitting curves with sigma values that are real uncertainties, ask for absolute_sigma to be used
  • Ask for the result to be rounded with the uncertainty first, then the value

What people use it for

  • Converting a measured length or temperature and stating the unit explicitly in a lab report
  • Building a GUM uncertainty budget from a calibration certificate and repeat readings
  • Checking whether a computed Reynolds or Peclet number is in a plausible range for the flow described
  • Auditing a scientific Python script for stripped units or lost correlations before publishing its results
  • Propagating uncertainty through a curve fit while keeping parameter correlations

Frequently asked questions

Is the uncertainty and units agent skill free to use?

The skill is released under the MIT licence, as stated on this page. Check the licence file in the download for the full terms before reusing it in your own work.

What do I need installed to use this skill?

You need Python 3.12 or newer and the pint, uncertainties, NumPy and SciPy packages for the numeric tools. The static unit auditor needs only the Python standard library. uv is suggested for setting up the environment.

Where do I put the skill so the agent finds it?

Unzip the ZIP into ~/.claude/skills/ for personal use, or into .claude/skills/ inside a project. In the Claude apps, upload the ZIP under Settings, then Capabilities, then Skills.

Does the skill send my data over the network?

No. The source states that all bundled tooling runs locally with no network access. The helpers also reject URLs and symlinks and refuse to overwrite files without --force.

How is this different from a statistics skill?

This skill covers metrology: units, measurement uncertainty and plausibility checks. It does not cover statistical inference, model selection or study design. For those tasks, the source points to the statistical-analysis, statistical-power and experimental-design skills.

Can I use it for safety-critical or certified measurements?

The source says not without expert review. The outputs depend on your measurement model and input distributions, which the skill does not validate.

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

This skill suits scientists and engineers who need uncertainty budgets, careful unit handling, and plausibility checks, and developers who want to catch unit or error-propagation bugs in scientific Python code. It is a poor fit for statistical inference, study design, or safety-critical certified metrology without expert review, where you should use the related skills or a qualified metrologist instead.

Download the skill