Skip to main content

bitexoft-verify

The platform's only definition of "correct". It runs in two places and decides the same thing in both:

Where When What it is worth
Your machine while you work, answers in seconds informative
GitHub Actions on every push, pinned, clean environment official

The difference shows up as provenance.surface in the report. The platform marks a delivery as verified only on a green CI report.

Install

Python 3.10 or newer — the version Ubuntu 22.04 LTS ships, so a stock Linux works without upgrading anything.

pip install bitexoft-verify            # core; one small dependency below 3.11
pip install 'bitexoft-verify[api]'     # adds what later deliveries need to verify APIs

If pip answers requires a different Python, check your version with python3 -V. The project itself targets a newer Python than the tool does: each delivery's contract states what it needs.

Use

bitexoft-verify check A1          # verify A1
bitexoft-verify check A3          # verify A3 and, on the way, A1 and A2
bitexoft-verify check A3 --only   # just A3
bitexoft-verify deliveries        # what this version can verify

Exit codes: 0 all green, 1 something fails, 2 could not even start.

bitexoft.toml

Organise your project however you like. You declare it here and verification reads it from here; what is not negotiable is the shape of the boundaries, not their names.

[project]
id = "chaos-sports-lab"
package = "chaoslab"

[layers]
domain = "chaoslab.domain"

[cli]
module = "chaoslab"        # run as `python -m chaoslab`
# main = "main.py"         # or a script, if that is your entry point

The three gates

  • Acceptance — that it works: the contract's symbols, impossible objects refused, value semantics, the geometry, the entry point and its exit codes.
  • Design — that it is built well: the domain's boundary read from the syntax tree, your tests passing, at least one test that builds an impossible object.
  • Evidence — that you understand it. The CLI does not judge this gate: it always reports skip with a message. You close it on the platform by writing the why and comparing it against the rubric.

A check never fails for something you cannot fix: if an optional dependency or a git tag is missing, it skips with a message saying what to do.

Cumulative verification

Verifying A3 also runs A1 and A2, with inherited checks tagged [A1]. That is what makes the method agile: every delivery leaves the whole project standing, and a regression in old work shows up while verifying the new.

The sample files

Deliveries are verified against files the CLI ships with, not against one you wrote. For A1 that is 30 instants crossing all three block states, plus a copy with one coordinate off the pitch to check that bad data fails cleanly instead of printing a traceback at the user. They are synthetic: no third-party data is distributed here.

Development

pip install -e '.[dev,api]'
pytest                               # builds a fake learner repository and verifies it
ruff check .
python tools/make_fixtures.py        # regenerate the sample files

Before changing what a check says when it fails, or the layout of the output, read docs/foundations/03-feedback-self-explanation-calibration.md (the verifier's messages are the feedback a learner reads) and ADR 0002. The check ids and the report schema are a contract with the platform: do not rename them.

Releasing

The version is written once, in __version__ (src/bitexoft_verify/__init__.py). The pin in .github/workflows/verify.yml (cli-version) must match its major.minor; a test checks it.

First release, by hand on pypi.org:

  1. Account → Publishing → Add a pending publisher: project bitexoft-verify, owner bitexoft, repository sports-lab-v1, workflow release-verify.yml, environment pypi.
  2. In the repository settings, create the environment pypi.

Each release:

git tag verify-v0.2.0 && git push origin verify-v0.2.0

The workflow runs pytest on 3.10 and 3.12, refuses a tag that differs from __version__, builds with python -m build and publishes with trusted publishing (no tokens). Check it in a clean environment: pipx run --spec bitexoft-verify bitexoft-verify deliveries.

Metadata

Release files for bitexoft-verify 0.2.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 bitexoft-verify 0.2.1
File Size Uploaded Provenance Actions
bitexoft_verify-0.2.1.tar.gz 65.5 kB With provenance Details for bitexoft_verify-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bitexoft-verify 0.2.1
File Interpreter ABI Platform Actions
bitexoft_verify-0.2.1-py3-none-any.whl Python 3 none any Details for bitexoft_verify-0.2.1-py3-none-any.whl

Total release size: 107.6 kB

Release files / bitexoft_verify-0.2.1.tar.gz

Download URL bitexoft_verify-0.2.1.tar.gz
Size 65.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ec2e46a9e0250cbc5fb22be0b42f7dc7e677077b5ecb230caab833c3337f1108
BLAKE2b-256 checksum
How to use checksums
aca3813e6c65a43a11de76ad1d1b062d7909cbbb45267e7ac9e3ef278e55c3d7
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 26, 2026.

Transparency log

Release files / bitexoft_verify-0.2.1-py3-none-any.whl

Download URL bitexoft_verify-0.2.1-py3-none-any.whl
Size 42.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c472c827ddc8541339ea08388bb3c7d73b12562e05820540a2fe382e7f86cafb
BLAKE2b-256 checksum
How to use checksums
7885537a1ece67b14cc67a23f12f266076c746b07a634f7e7bec064ec9d3e25b
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 26, 2026.

Transparency log

Security for bitexoft-verify 0.2.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 bitexoft_verify-0.2.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 26, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.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