prepush-ci
Run the full CI check in the pre-push hook of an AI agent's cloud session (or any machine that opts in), and let pull request CI skip commits that provably went through it. The default branch always runs CI in full.
The full check can run on any machine that opts in, for example on the VM of a Claude Code cloud session, which has no separate VM charge; pull request CI then does not repeat it on billed runners.
Status: under construction. The tool is being built by a small fleet of AI coding loops from the intent in issue #1. Nothing here is released yet.
How it works (in one paragraph)
When PREPUSH_CI=full is set, a commit-msg hook writes the trailer Prepush-CI: full into each commit. The pre-push hook refuses to push a tip commit that carries the trailer unless the full check passes on it. A small gate in pull request CI reads the trailer of the head commit and skips the remaining jobs. The default branch ignores the trailer and runs CI in full. See issue #1 for the full design.
How this repository is built
This repository is also an example of agentic engineering:
AGENTS.mdis the rulebook for every contributor, human or agent (CLAUDE.mdimports it).LOOP.mddescribes the loops that build the tool: their roles, the label state machine they share, what each may touch, and where a human decides.openspec/holds the specifications. Every feature starts as an OpenSpec change.scripts/ciis the one entry point for the full check; CI and the pre-push hook run the same script.docs/agentic-engineering.mdmaps the practices from loop-engineering this repository adopts, and where it deviates.
Development
uv sync && npm ci # Python tooling, OpenSpec CLI
uv run pre-commit install # commit-msg, pre-commit and pre-push hooks
sh scripts/ci # the full check, exactly as CI runs it
License
Metadata
Release files for prepush-ci 0.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prepush_ci-0.0.0.tar.gz | 25.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prepush_ci-0.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.4 kB
Release files / prepush_ci-0.0.0.tar.gz
| Download URL | prepush_ci-0.0.0.tar.gz |
|---|---|
| Size | 25.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
383e57b3cb13a14896754241fd0117fe35c39eee2506bd194492d75332c9f1f8
|
|
BLAKE2b-256 checksum How to use checksums |
fb7719fac43545d791046f36e8fd66307027b6204ff9821dfe7d089fe486749c
|
| 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 Oct 12, 2026.
Transparency logRelease files / prepush_ci-0.0.0-py3-none-any.whl
| Download URL | prepush_ci-0.0.0-py3-none-any.whl |
|---|---|
| Size | 34.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc581a78c38dde67f56579e13d9a5ab90b93f15c413fdcb0b6afa9fdbae04b48
|
|
BLAKE2b-256 checksum How to use checksums |
035080cfbcdfd5f55b9ba230503397b9f4a75b5bff140636ccdf5a5eb70182a0
|
| 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 Oct 12, 2026.
Transparency log