newlife
Turn a curiosity into a question that can be settled, freeze what would count as an answer before running anything, and leave a verdict that can be audited from git alone.
You talk to your AI; it runs the commands. Setup is two lines:
python -m pip install newlife
newlife start my-research
Then open my-research in Claude Code, Codex, or any AI tool that reads SKILL.md files,
and say:
Explore this with me: your curiosity
NEXT.md in that folder says what happens from here. If you get lost, ask your AI "how does
this work" or "which step are we at" — the installed newlife skill answers in your terms.
Requires Python 3.12 or newer and git (the freeze is a git commit; that is what makes the
timestamp real). start tells you if git has no identity to sign with, rather than
guessing one.
What happens, in your words
- Explore. Your AI asks one or two honing questions, then walks one edge at a time and
keeps a map silently. You answer and decide. (This stage is the
exloopskill from theexlooppackage; newlife depends on it, so the same install brings it.) - Hand off. When a boundary can be stated as "what measurement would make the answer different", the AI says so once. If you agree, a question folder appears with the exploration record inside it.
- Is it worth asking? The AI asks only what the map cannot supply: who would bet the
other way, is the answer settled by design or by running, who changes what they do.
Six anchors go into
goal.md. One you cannot fill yet means keep exploring or narrow — not a failure. - World and pilot. Your simulator goes into
verdict.py; a pilot run shows you every quantity a criterion will name. Everything seen is now seen. - Criteria. Every judgement unit is marked seen / blind / mechanical, and at least one is blind — a confirmatory round in which every number was already seen carries no information.
- Freeze. The one irreversible step; the AI asks you first. Two gates refuse on their own if the goal is unfilled or a criterion was never piloted. Your environment and any downloaded data are pinned by hash at this moment.
- Verdict. H1, H0 or INVALID, computed by your runner from the frozen conjunction, never written by hand, with five gates reported and an audit from git history alone.
Two moments are yours alone: the freeze, and committing the results.
What the record can prove afterwards
newlife audit shows, from commit ancestry rather than dates anyone could type: the
registration has a freeze commit; the stamped hash matches it; the criteria were never
edited afterwards; every committed output post-dates the freeze; and env.lock and every
pinned data file still hash to what was frozen. The runner's own units add the other half:
the run reproduces itself byte for byte, the packages installed at run time are exactly the
ones recorded, and every criterion proves at run time that it can go red.
A registration whose criteria turn out to be defective is left as INVALID, exactly as it
stands, and a new one is opened. Never re-frozen. That record is how a conclusion was
reached, not a failure to tidy away.
If you would rather type
newlife init <slug> newlife pilot <folder> newlife freeze <folder> [--data FILE...]
newlife run <folder> newlife status <folder> newlife check <folder>
newlife audit <folder>
newlife skills install newlife skills path newlife blocks
Never git add -A before the freeze: prereg.md must be committed by the freeze itself,
and newlife init leaves exactly that file uncommitted for that reason.
Underneath
Optional simulation backends: pip install "newlife[spatio-flux]" (Monod kinetics, dynamic
FBA with GLPK, diffusion, particles) or "newlife[process-bigraph]" for the runtime alone;
newlife blocks lists what is installed. Third-party processes run unmodified inside a
declared contract — a mechanism says which state paths it owns and which effects it may
emit, and writing anywhere else is refused by the contract layer, not by your solver.
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.1.tar.gz.
File metadata
- Download URL: newlife-0.1.1.tar.gz
- Upload date:
- Size: 263.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8d6c75b3a168fa38c14c37c4522c1188e05ac8f6bc2130ba81963b127ff96b7
|
|
| MD5 |
811af7750eb57aa51cbcf08f66f21c35
|
|
| BLAKE2b-256 |
0ee6c73571bcc023b9537545d5d88c61c2b03e7d7b01897e0bec04b11c22bac0
|
Provenance
The following attestation bundles were made for newlife-0.1.1.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.1.tar.gz -
Subject digest:
a8d6c75b3a168fa38c14c37c4522c1188e05ac8f6bc2130ba81963b127ff96b7 - Sigstore transparency entry: 2733460168
- Sigstore integration time:
-
Permalink:
hzshen88/newlife@7625f8b6d92c49cfd671beb0f29763510dba4b26 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/hzshen88
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7625f8b6d92c49cfd671beb0f29763510dba4b26 -
Trigger Event:
push
-
Statement type:
File details
Details for the file newlife-0.1.1-py3-none-any.whl.
File metadata
- Download URL: newlife-0.1.1-py3-none-any.whl
- Upload date:
- Size: 273.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 |
0f9b4d11d6e2217c55a56b81699b78b836a14cca8451bcd9450627b073468f08
|
|
| MD5 |
413dfee806e80e8820360429b3476a12
|
|
| BLAKE2b-256 |
625264d833876a61241b0472d5d76874c5a6df2ca1890fe87e6fa2fdb8d21209
|
Provenance
The following attestation bundles were made for newlife-0.1.1-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.1-py3-none-any.whl -
Subject digest:
0f9b4d11d6e2217c55a56b81699b78b836a14cca8451bcd9450627b073468f08 - Sigstore transparency entry: 2733460229
- Sigstore integration time:
-
Permalink:
hzshen88/newlife@7625f8b6d92c49cfd671beb0f29763510dba4b26 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/hzshen88
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7625f8b6d92c49cfd671beb0f29763510dba4b26 -
Trigger Event:
push
-
Statement type: