Skip to main content

Readiness Kit

The frame under the Agent Readiness Gate, in public: a command-line tool that runs an evaluation set against an AI agent and scores it on a held-out split, runs a starter attack pack mapped to the OWASP Top 10 for Agentic Applications, orchestrates the open agent scanners, emits a CycloneDX Agent Bill of Materials, computes a cost-per-task baseline from traces, and applies the eight-area readiness rubric to all of it. The engine (the full attack pack, the domain packs, the seed sets, the Evidence Report generator and the CI gate) ships in the licensed Gate.

Release: v0.1.1 · 22 October 2026. Apache-2.0. Python 3.10+.

pip install readiness-kit
rk demo

rk demo runs the whole pipeline on a bundled, deliberately weak support-ticket agent. It works offline, needs no model and no key, and prints a scorecard in about a second. Then rk init and point rk.yaml at your own agent: the ten-minute walkthrough.

What it does

Command What it measures
rk split SET Makes the held-out split, sha256(salt + ":" + id) < fraction, so the headline number is on cases the agent was not tuned on, and anyone with the salt reproduces it
rk eval Runs every case against the agent and grades it with ten deterministic graders; pass rate held-out and dev, by category, with the set's hash in the result
rk attack Runs the attack pack: twelve starter cases over ASI01 to ASI10, one deterministic oracle set each. Reports which cases the agent followed, by class and severity
rk scan Runs the open scanners you have installed (Cisco mcp-scanner, Snyk agent-scan, SPLX Agentic Radar, Promptfoo), keeps their raw output and normalises the findings; a skipped scanner is named with the reason
rk bom Emits the Agent BOM (CycloneDX 1.6) from agent.yaml plus what it discovers on disk (MCP configs, skill files, prompts) and flags everything unversioned or unpinned
rk cost Cost per completed task from OpenTelemetry, OTLP or Langfuse traces, or from the Kit's own run: tokens, calls, retries; against a ceiling; projected to volume
rk score Applies the rubric (eight areas, weights summing to 100) to the artefacts above and the declared assessment; every area says whether it was measured or declared

Every command writes a JSON artefact into runs/ with the hashes and versions a published number must cite; rk score writes the scorecard as JSON and Markdown. The licensed Gate consumes these artefacts unchanged.

How an agent is wired in

One small contract (docs/FORMATS.md): the Kit sends {case_id, input, context, metadata} and reads {output, tool_calls, steps, usage}; only output is required. Five target types: python (a function in-process), http (an endpoint you control), openai-chat (any OpenAI-compatible chat endpoint with your system prompt), command (stdin to stdout), replay (a transcript). What an agent does not report, the Kit marks not observable. Silence is not upgraded to a pass.

Repository

Folder What it holds
src/readiness_kit/harness/ Targets, evaluation sets, the split, graders, the runner, the attack runner
attack-pack/ The starter pack (starter/asi01…asi10.yaml, twelve cases) and the case schema, in the format the full pack uses
rubric/ readiness-rubric.yaml (areas, weights, bands, scoring rules) and the schemas of the scorecard and the Evidence Report
src/readiness_kit/bom/ Manifest, discovery, CycloneDX 1.6 emitter
src/readiness_kit/cost/ Trace parsers (OTel JSONL, OTLP JSON, Langfuse, rk), price table, baseline and projection
src/readiness_kit/adapters/ The four scanner adapters and the adapter contract
examples/ticket-triage-agent/ The demo agent, its 80-case set, traces, manifest, assessment and example price table
benchmarks/bitext-support/ The published benchmark: data preparation, configuration, the one command
docs/ DESIGN · WALKTHROUGH · FORMATS · ADAPTERS · BENCHMARK

A worked example of what the Gate produces from these artefacts, the Evidence Report on a fictional claims-triage agent, is at rainkernel.com/products/agent-readiness-gate/sample-report.

Principles

Frame open, engine licensed. The harness, the starter pack, the rubric, the BOM emitter, the cost baseline and the adapters are public; the full attack pack, the domain packs, the seed sets, the report generator and the CI gate are what a licence buys. Honest version numbers. v0.1 means v0.1, and no release is announced before it is tagged. Nothing moves behind a paywall. What ships in the open tier stays there. Upstream first. Where an open scanner should have a feature, we contribute it there before wrapping it here. The full note: docs/DESIGN.md.

Releases

  • v0.1.1 · 22 October 2026. The README's links are absolute, so they work on PyPI as well as on GitHub (on PyPI the walkthrough link returned 404). No code change.
  • v0.1.0 · 22 October 2026 (planned for the 18th, four days late; the date is recorded, not rewritten). The frame above, with the benchmark on a public support-ticket set (docs/BENCHMARK.md) and the ten-minute walkthrough.
  • Later releases are announced when they are tagged, here and in the Lab's log, and not before. CHANGELOG.md has the detail.

Developing

git clone https://github.com/rainkernel/readiness-kit && cd readiness-kit
pip install -e ".[dev]"
pytest -q && ruff check src tests examples

CONTRIBUTING.md has the rest: issues first, DCO sign-off, what belongs in the Kit and what belongs in the Gate. RELEASING.md is the release checklist.

Security

What the Kit itself does and does not do: no telemetry and no calls home (the only network traffic is to the target you configure and whatever the scanners you install make themselves); scanners run as subprocesses with explicit arguments and no shell; secrets are read from environment variables you name in rk.yaml, and a missing one stops the run before it starts; attack canaries sit on .invalid domains that cannot resolve. Run the attack pack against a staging agent with outbound tools stubbed: the cases are real attacks and your agent may act on them (docs/WALKTHROUGH.md).

Vulnerabilities in this tool: security@rainkernel.com or a private security advisory on this repository. We credit reporters. See SECURITY.md and rainkernel.com/.well-known/security.txt.

Licence

Apache-2.0. See LICENSE and NOTICE. © 2026 Rainkernel Technologies Private Limited.

Metadata

Release files for readiness-kit 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for readiness-kit 0.1.1
File Size Uploaded Provenance
readiness_kit-0.1.1.tar.gz 121.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for readiness-kit 0.1.1
File Interpreter ABI Platform
readiness_kit-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 245.7 kB

Release files / readiness_kit-0.1.1.tar.gz

Download URL readiness_kit-0.1.1.tar.gz
Size 121.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b62e15aeaf970df64d12020f7ebbce5996dcbae952c06c417f9647a300ec3e7f
BLAKE2b-256 checksum
How to use checksums
22adc0d3fa60b1772f52d46230a84d6c0c15d3247b8aa040ba4413cc7ba64e5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / readiness_kit-0.1.1-py3-none-any.whl

Download URL readiness_kit-0.1.1-py3-none-any.whl
Size 124.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc5c1da1dd245b7469443c95ae84a8393a9478aff7181df0ae313aa6d881ff9d
BLAKE2b-256 checksum
How to use checksums
193a724b7c359a3f5131b9bf9ac59c9264eaf05bb440879a7e874924456b0e91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for readiness-kit 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for readiness_kit-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page