Temporal Integrity Probe — behavioural consistency testing for LLM agents under temporal context manipulation (GenesisAeon P50)
Project description
genesis-tip — Temporal Integrity Probe (P50)
Measures whether LLM agents remain internally consistent when temporal context is manipulated.
Standalone extraction of genesis-mssc's
(P49) mssc.tip module — TIP is the only external instrument that can
falsify Ρ_sem from scope-resilience (P41).
What TIP does
TIP perturbs the temporal structure of an agent's context in three ways (all deterministic given a seed):
- shuffle: chronological order randomised, timestamps left intact
- gap: a contiguous block of history silently removed, no gap announced
- contradict: specific facts replaced with contradictory variants
It then measures whether the agent's outputs remain structurally coherent despite the perturbation — self-reference inconsistencies, contradiction rate, recovery rate, and orientation latency. No claims about internal states — observable text behaviour only. See epistemic_status.md and docs/epistemic_boundaries.md for the full methodology and governance policy.
Installation
Not yet on PyPI — install from source:
git clone https://github.com/GenesisAeon/genesis-tip.git
cd genesis-tip
pip install -e ".[dev]"
Quick Start
from genesis_tip import TemporalIntegrityProbe
tip = TemporalIntegrityProbe(perturbation_mode="shuffle")
result = tip.run_cycle()
print(f"Consistency score: {result['consistency_score']:.3f}")
print(f"Gate status: {result['gate_status']}")
consistency_score is a derived composite for Diamond Interface
compatibility, not itself a pre-registered metric — the pre-registered
test is the Spearman Ρ_sem correlation in falsification.py, run
separately once real scope-resilience Ρ_sem values exist alongside real
TIP scores (see run_rho_sem_correlation_test).
To evaluate a real agent, pass a real agent_fn — by default,
TemporalIntegrityProbe uses a deterministic dummy stand-in so
run_cycle() is exercisable offline/in CI without network access:
def my_agent(messages: list[dict[str, str]]) -> str:
# wrap a real LLM call here
...
tip = TemporalIntegrityProbe(agent_fn=my_agent)
Pre-registered hypothesis
See epistemic_status.md for the full statement. Summary:
| Constant | Value | Meaning |
|---|---|---|
| RHO_SEM_FALSIFICATION_THRESHOLD | 0.3 | Minimum Spearman ρ |
| RHO_SEM_MIN_SAMPLE_SIZE | 30 | Minimum path-perturbation pairs |
Falsified if: Spearman ρ < 0.3 at n ≥ 30 pairs.
Supported if: Spearman ρ ≥ 0.3 at n ≥ 30 pairs.
Both outcomes are valid scientific results. This package does not adjust
thresholds to make a hypothesis pass.
Pre-registration anchor: commit 1cf1730 (multi-scale-somatic-coherence, 2026-07-15).
Architecture
genesis_tip/
├── harness/session_runner.py # dense/sparse/fragmented session builder
├── manipulations/ # temporal_shuffle, gap_injection, contradiction_injection
├── metrics/consistency_scorer.py # self-reference/contradiction/recovery/orientation-latency scoring
├── report/tip_report_template.py # Markdown comparison report
├── crep_gate.py # P50's own gate (blocked/pending_review/passed)
├── falsification.py # the pre-registered Spearman ρ_sem test
├── system.py # TemporalIntegrityProbe — Diamond Interface
└── docs/epistemic_boundaries.md # governance: what TIP does/doesn't claim
Role in the GenesisAeon Ecosystem
- P50 in the GenesisAeon ecosystem registry — LLM-evaluation domain.
- Sibling to genesis-mssc (P49), which shares TIP's underlying formalism (coherence under perturbation) but measures an entirely different system (biological EEG/ECG, not LLM text output) — results are not comparable between the two.
- Implements the standard 5-method Diamond Interface plus the optional
6th method
get_resilience_state()— currently returning{"rho": None, "implemented": False}untilCREPGateStatusreachespending_review(seecrep_gate.py). - Diamond Interface milestone: once TIP produces Γ_somatic, it becomes a full Diamond Interface candidate.
License
MIT — see LICENSE.
Citation
See CITATION.cff / .zenodo.json.
Project details
Release history Release notifications | RSS feed
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 genesis_tip-0.2.0.tar.gz.
File metadata
- Download URL: genesis_tip-0.2.0.tar.gz
- Upload date:
- Size: 138.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
923d8671beb0a196ce09a2d76f826d72aff827f280bd08bed97f3be190b9f658
|
|
| MD5 |
695d426b2c2bd76d447e9a80f2d90f30
|
|
| BLAKE2b-256 |
218a424f8db135549a38df2ef570e9a0c88278848afc541778ca65e630a16643
|
File details
Details for the file genesis_tip-0.2.0-py3-none-any.whl.
File metadata
- Download URL: genesis_tip-0.2.0-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
970079a89d3e9a4e625f2cc0da4b24dc5aa079c4e1aba4c4a4091e28b3085819
|
|
| MD5 |
b13aea4c7be107e75c3210cb5d94f995
|
|
| BLAKE2b-256 |
41c08e778421777d52f17bef8f3d0eb4bfb7fd61082c8d4e43a30aaa503e4d18
|