Skip to main content
ckdn — deterministic check runner and log digester for AI-assisted development loops

Deterministic check runner and log digester for AI-assisted development loops

Let agents move fast.
Keep verification explicit, bounded, and machine-readable.

PyPI CI Documentation MIT license Python ≥ 3.11 core: stdlib only digest schema v2


ckdn (short for checkdown) sits between a coding agent and your project’s verification tools. The agent never reads a 10 000-line pytest log and never decides from prose whether a run “looks green”.

Every check goes through one orchestrator that:

  1. owns the true process exit code,
  2. archives the full log as evidence,
  3. emits a bounded, machine-readable digest — the only thing the agent is supposed to read.
ckdn pipeline: agent → ckdn run coverage → subprocess (owns exit code) → .agent-runs artifacts; agent reads digest.json

Text-based interpretation of tool output fails two ways: context bloat (the agent drowns in a thousand-line log) and false green (a collection error prints no FAILED lines, so a regex calls it clean). ckdn's answer is a strict status model from both the exit code and a format-aware parser: the two must agree before anything is called green. ckdn may downgrade green; it never upgrades red.

Runtime: Python ≥ 3.11, stdlib only for the core CLI (zero third-party dependencies). The optional MCP server is an extra (ckdn[mcp]).

Install

uv tool install ckdn          # global CLI
# or as a project dev dependency:
uv add --dev ckdn

Quick start

cd your-project
ckdn init                      # writes starter ckdn.toml
# edit commands / parsers / aliases to match the project
echo '.agent-runs/' >> .gitignore

ckdn checks                    # list configured checks
ckdn doctor                    # pre-flight: tools on PATH, commands fit parsers
ckdn run ruff                  # one atomic check → compact digest on stdout
ckdn run lint                  # alias → its members in order
ckdn run --all                 # every atomic check → one aggregate
ckdn show                      # pretty-print the latest run's digest

The starter config enables checks a given project may not have (coverage, mypy, pre_commit, …); trim it first, or --all reports them as error.

ckdn run passes the original command’s nonzero exit code through, so it slots into any hook or CI step where the raw command used to be — with a bounded, schema-backed digest as a side effect. The one exception is the point of the tool: a command that exits 0 on a non-green digest exits 1. A code outside 1–255 (a signal death) becomes 1, not the nearest bound.

Documentation

Full documentation lives at orenlab.github.io/ckdn:

License & community

Release files for ckdn 1.3.3

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

Source distribution (sdist)

Source distribution for ckdn 1.3.3
File Size Uploaded
ckdn-1.3.3.tar.gz 316.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ckdn 1.3.3
File Interpreter ABI Platform
ckdn-1.3.3-py3-none-any.whl Python 3 none any Details

Total release size: 416.5 kB

Release files / ckdn-1.3.3.tar.gz

Download URL ckdn-1.3.3.tar.gz
Size 316.6 kB
Tags Source
SHA-256 checksum
How to use checksums
37651dd1c922b5fb87eff730fd07ff82b7bdf9efdd200fa6a2dfeb90d2e74c53
BLAKE2b-256 checksum
How to use checksums
6155798697f813fc629e01907eaf54f48fe82ec9294654164f7f53b36cc36d22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release files / ckdn-1.3.3-py3-none-any.whl

Download URL ckdn-1.3.3-py3-none-any.whl
Size 99.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ce4775a7923dd689b99fd849c7a11b5079eaed5701b794250321b0de4934bc0
BLAKE2b-256 checksum
How to use checksums
9f35b714e0ca4d0714d77fe7559241b49b97c3cd4cd457ab755874bdc9fbd05b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.4

2 release files

This release

1.3.3 This release

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

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