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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| readiness_kit-0.1.1.tar.gz | 121.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.