newlife
A preregistration harness for simulation. Freeze what would count as an answer before you run anything; let the machine — not your judgement after the fact — decide whether the criteria were met.
Install
Requires Python 3.12 or newer and git.
python -m pip install newlife
# Optional simulation backends:
python -m pip install "newlife[process-bigraph]"
python -m pip install "newlife[spatio-flux]"
Start in your own repository:
mkdir my-research && cd my-research
git init
git config user.name "Your Name"
git config user.email "you@example.com"
newlife init 2026-09-05-my-question # scaffold a question folder; commits it,
# deliberately leaving prereg.md uncommitted
$EDITOR questions/2026-09-05-my-question/prereg.md
newlife freeze questions/2026-09-05-my-question
$EDITOR questions/2026-09-05-my-question/verdict.py
newlife run questions/2026-09-05-my-question
newlife check questions/2026-09-05-my-question
git add questions/2026-09-05-my-question/results
git commit -m "record verdict"
newlife audit questions/2026-09-05-my-question
audit proves, from commit ancestry rather than forgeable dates: the registration has a
freeze commit, the stamped hash matches it, the content was never edited afterwards, and
every committed output post-dates the freeze. Questions are siblings, not a chain:
a question's verdict never runs another question's runner.
What the contract layer does
BiologicalProfile enforces four contracts — StateClaim, MechanismSpec, Effect,
Resolver. A mechanism declares which paths it owns and which effects it may emit;
writing anywhere else raises newlife.core.errors.CommitAuthorityError from the
contract layer, not from your solver. That distinction is load-bearing: "an exception
was raised" is not the same as "the contract stopped it", and a negative control that
conflates them proves nothing.
Third-party simulation processes are admitted unmodified. Verified against
process-bigraph's own processes, spatio-flux (Monod kinetics, dynamic FBA behind a
GLPK solver), and a hand-wrapped tellurium ODE model — trajectories byte-identical to
running the same code without newlife.
Gates that ship with it
newlife check runs three checks against your files: criteria that are true by
construction (a comprehension iterating a named constant while discarding the loop
variable is a repetition, not a sweep); parse failures that silently fall back to a
convenient default; and whether the units your registration declares are exactly the
units your runner computes. Each of the three was written after that exact defect shipped
undetected — the third one caught a real misalignment the first time it ran.
Also included: newlife skills install puts two AI skills (shaping a question into a
decidable one; writing a registration that will not veto itself) where your assistant
reads them.
proofroot is installed transitively and supplies RNG stream derivation, canonical
serialization, and the evidence-tier vocabulary.
Source, design rationale, and the record of every milestone judged so far: https://github.com/hzshen88/newlife
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file newlife-0.1.0.tar.gz.
File metadata
- Download URL: newlife-0.1.0.tar.gz
- Upload date:
- Size: 228.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5cb5fe6be475bd19e26875dfde18c65d78ee8c7811887a1acd7d1fcb6d7a454
|
|
| MD5 |
bb18f1d0b9f750d95155437b31249174
|
|
| BLAKE2b-256 |
487776cad665036b3f4f2dc807aa5a6449739ef6f6396f956eac5e2af3ef2fe7
|
Provenance
The following attestation bundles were made for newlife-0.1.0.tar.gz:
Publisher:
release.yml on hzshen88/newlife
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
newlife-0.1.0.tar.gz -
Subject digest:
f5cb5fe6be475bd19e26875dfde18c65d78ee8c7811887a1acd7d1fcb6d7a454 - Sigstore transparency entry: 2713870744
- Sigstore integration time:
-
Permalink:
hzshen88/newlife@acec077ee743779c61561369a3cfcbd86c4b3d71 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hzshen88
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@acec077ee743779c61561369a3cfcbd86c4b3d71 -
Trigger Event:
push
-
Statement type:
File details
Details for the file newlife-0.1.0-py3-none-any.whl.
File metadata
- Download URL: newlife-0.1.0-py3-none-any.whl
- Upload date:
- Size: 243.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61aa2ace99015adc7a3e6d96d59fb3afa4e900b3de2eb611c6c201c486528095
|
|
| MD5 |
a8c3f3b391a1e7eeac39842eb77c9d7d
|
|
| BLAKE2b-256 |
3ba4e0a421325a3ffd0ce0eb7416018ddeb8aa2a4bd4ade0faab87a667d47cac
|
Provenance
The following attestation bundles were made for newlife-0.1.0-py3-none-any.whl:
Publisher:
release.yml on hzshen88/newlife
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
newlife-0.1.0-py3-none-any.whl -
Subject digest:
61aa2ace99015adc7a3e6d96d59fb3afa4e900b3de2eb611c6c201c486528095 - Sigstore transparency entry: 2713871411
- Sigstore integration time:
-
Permalink:
hzshen88/newlife@acec077ee743779c61561369a3cfcbd86c4b3d71 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hzshen88
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@acec077ee743779c61561369a3cfcbd86c4b3d71 -
Trigger Event:
push
-
Statement type: