Skip to content

Guide · Agent skill

How to use the Hardening (Property Tests) agent skill

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

The Hardening skill is an agent skill for LifeOS that strengthens tests you already have. It takes the general rule behind your example tests, such as 'parsing then printing returns the original', writes it as a fast-check property, and runs it against many generated inputs. This guide covers what the skill does, how to install it, how to trigger it, and what it needs before you rely on it.

Hardening (Property Tests)danielmiessler/LifeOS · MIT

Quick start

  1. 1Download the ZIP. Download the Hardening skill ZIP from this page.
  2. 2Unzip into a skills folder. Unzip it into ~/.claude/skills/ for personal use or .claude/skills/ inside a project.
  3. 3Or upload in the Claude apps. In the Claude apps, go to Settings → Capabilities → Skills and upload the skill.
  4. 4Confirm Bun and fast-check. Make sure the Bun runtime and the fast-check library are available in your codebase.
  5. 5Ask with a trigger phrase. Request hardening in plain language, for example 'Property-test the slug parser'.
  6. 6Run the tests. Run the generated tests with bun test on the relevant path.
  7. 7Review the shrunk failures. For any failure, check the minimal counterexample and decide whether to fix the code or correct the property.

What is an agent skill, and what does Hardening make the agent do?

An agent skill is a folder of instructions and files that an AI agent loads when a request matches the skill's trigger words. Hardening is one such skill, designed for LifeOS. It does not add features to your code.

Hardening works on tests you already have. It turns the universal claim behind a set of example tests into a fast-check property, runs that property across generated inputs, and keeps the example tests it sharpens. When a run fails, the skill shrinks the failure down to the smallest input that still breaks, so you can see the bug clearly.

  • Turns example tests into fast-check properties that state a rule for all inputs.
  • Runs each property against many generated inputs.
  • Shrinks any failing input to a minimal counterexample with its seed.
  • Records a bun-property row in the ISA's Test Strategy when hardening lands.

Install the Hardening skill (ZIP or Claude Settings)

Download the Hardening ZIP from this page. To install it for your user account, unzip it into ~/.claude/skills/. To install it for a single project, unzip it into that project's .claude/skills/ folder.

If you use the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.

  • Personal install: unzip into ~/.claude/skills/
  • Project install: unzip into .claude/skills/ inside your project
  • Claude apps: Settings → Capabilities → Skills, then upload

Check the requirements before you start

The skill needs the Bun runtime to execute tests and the fast-check property-based testing library. It also expects the LifeOS repository layout, because its integration points (the ISA and the testing doctrine) live there.

The Bunker CLI is not part of the public release. Run tests directly with bun test instead of expecting a bunker command.

  • Bun runtime, used to run bun test
  • fast-check library
  • LifeOS repository layout for the ISA and doctrine integration points
  • No Bunker CLI in the public release; use bun test directly
bun test ./<path>

Trigger the skill with natural requests

You do not need a special command. Describe what you want in plain language and include words the skill listens for, such as harden, property test, fast-check, or 'what bugs am I missing?'.

The skill is meant for pure functions such as parsers, serializers, and data transforms. Point the agent at a specific function and its existing tests for the best results.

  • "Property-test the slug parser."
  • "What bugs are my example tests missing?"
  • "Strengthen the tests for the CSV serializer with property tests."
  • "Shrink this counterexample and show me the minimal failing input."

What a typical hardening run produces

For a request like property-testing the slug parser, the skill writes round-trip and idempotence properties in a .property.test.ts file, uses 1000 runs by default, and adds a bun-property row to the ISA. If a property fails, the failure is shrunk and its seed is pinned so the bug can be reproduced.

Every failure should end in one of two outcomes: a fixed bug or a corrected property. Functions that cannot carry a universal claim are left to ordinary example tests.

  • A .property.test.ts file with the properties
  • Default of 1000 runs per property (10000 for invariant claims)
  • A pinned seed and minimal counterexample for any failure
  • A bun-property row in the ISA Test Strategy

Know what the skill does not do

Hardening is not for writing tests for brand-new features; use bun test directly for those. It does not grade agent output quality, which points to the separate Assay skill, and it does not do UI checks, which point to Interceptor.

The skill explicitly excludes finding security vulnerabilities. Do not rely on it for a security review.

  • New feature tests: use bun test directly
  • Agent output quality: use the Assay skill
  • UI verification: use the Interceptor skill
  • Security vulnerabilities: not covered

What people use it for

  • Finding edge cases in a slug or URL parser that example tests miss.
  • Checking that a serializer and deserializer round-trip the original data.
  • Testing that a data transform is idempotent across many generated inputs.
  • Asking the agent which pure functions in a TypeScript or Bun codebase have only example coverage.

Frequently asked questions

Is the Hardening skill free?

The source confirms the skill is released under the MIT licence. It does not state any pricing, so check the licence terms in the repository for details.

What do I need to run the Hardening skill?

You need the Bun runtime to execute tests with bun test and the fast-check property-based testing library. The skill also expects the LifeOS repository layout for its ISA and doctrine integration points.

How do I install the Hardening agent skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. In the Claude apps, you can upload it under Settings → Capabilities → Skills.

Does Hardening write tests for new features?

No. The skill says new feature tests should be written with bun test directly. Hardening only strengthens existing tests for pure functions.

Does the skill run network calls or scripts?

The skill runs scripts, and it does not use the network. Review the scripts before running it on sensitive code.

Can Hardening find security vulnerabilities?

No. The skill explicitly excludes finding security vulnerabilities, so do not rely on it for a security review.

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

Hardening is a good fit for TypeScript or Bun developers, and for teams using the LifeOS testing doctrine, who want property-based coverage of pure functions and edge cases their example tests miss. Pick something else if you need tests for brand-new features, grading of agent output, UI checks, or security review, since the skill excludes those on purpose.

Download the skill