TEPP is the Temporal Event Psychometrics Platform: a multilingual, temporal, relational measurement system whose statistical and psychometric arithmetic is implemented in Rust.
This branch preserves the protected-main Rust workspace and quality-gate
foundation. The workspace crates expose tested contracts only: immutable
evidence identities and exact spans, six-clock temporal values with Allen
algebra and cutoff eligibility, event mentions/instances with
evidence-layer intelligence gates, a forward-only relation graph,
cross-classified membership, bitemporal persistence, leakage-safe corpus
splits, simulation manifests, claim-promotion validation, API DTOs, the
purpose-bound privacy envelope, and longitudinal within/between
decomposition. It adds the independently usable analysis_engine vertical
slice: bounded cutoff-safe readiness work that emits a digest-bound terminal
artifact or a redacted no-eligible-evidence result. That slice is active-PR
evidence, not a psychometric estimator or a release claim.
The current workspace contains 50 independently documented Rust crates. Each
crate exposes a bounded, tested contract for evidence, temporal semantics,
event and relation reasoning, membership, persistence, simulation, validation,
API exchange, compute planning, or evidence-grounded interpretation. Numerical
and psychometric authority remains on the CPU f64 reference path; streamed
accelerator plans must preserve the full observation set and fail closed to the
reference path when resources or validation are insufficient.
The repository currently implements 54 independently documented crates rather
than a full commercial release. The implemented crates include topic
measurement, the analysis engine, and psychometric input/recovery gates; they
do not claim a complete commercial estimator,
operator workspace, or supported release.
topic_measurement: the first production topic-measurement crate. It estimates topic proportions from observed counts, maps those proportions into additive log-ratio coordinates, and keeps posterior uncertainty attached so later psychometric models do not treat raw topic proportions as ordinary Euclidean indicators.analysis_engine: the first production analysis-run crate. It assembles one cutoff-safe run from a validated design, documented evidence graph, and estimator contract; persists the run with the six TEPP clocks; and emits a typed terminal result. The crate does not claim buyer-visible product completeness.psychometric_core: validated statistical-recovery APIs on already-mapped coordinates. It does not implement a full ESEM/DSEM estimator.
crates/analysis_engine
crates/assertion_clock
crates/available_clock
crates/checkpoint_authority
crates/citation_edge
crates/compute_backend
crates/copied_text
crates/copy_identity
crates/corpus_background
crates/corpus_split
crates/cutoff_clock
crates/derived_sensitivity
crates/document_clocks
crates/encrypted_mapping
crates/episode_membership
crates/event_clock
crates/event_core
crates/evidence_core
crates/inferred_status
crates/intake_authorization
crates/interpretation_gateway
crates/location_membership
crates/longitudinal_core
crates/membership_core
crates/membership_target
crates/modality_source
crates/model_selection
crates/network_analysis
crates/operational_log
crates/outcome_order
crates/payload_bound
crates/persistence_postgres
crates/prediction_contradiction
crates/prompt_source
crates/provider_receipt
crates/psychometric_core
crates/psychometric_fit
crates/relation_absence
crates/relation_graph
crates/retrospective_edge
crates/revision_order
crates/role_contradiction
crates/semantic_core
crates/service_tls
crates/stopword_deletion
crates/style_source
crates/subevent_containment
crates/summarizes_edge
crates/support_edge
crates/system_clock
crates/temporal_core
crates/tepp_api
crates/tepp_simulation
crates/topic_lineage
crates/topic_measurement
crates/validation_core
python3 scripts/check_workspace_contract.py
python3 scripts/check_docstrings.py
python3 -m coverage run --branch -m unittest discover -s tests/quality -p 'test_*.py'
python3 -m coverage report --fail-under=100 --show-missing
cargo fmt --all -- --check
cargo check --workspace --all-targets --all-features
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo nextest run --workspace --all-features
cargo test --doc --workspace --all-features
cargo doc --workspace --all-features --no-deps
cargo deny checkStable Rust line coverage is measured with cargo-llvm-cov. Branch coverage is
measured in a separately pinned nightly lane because Rust branch coverage remains
an unstable compiler capability. A zero denominator is reported explicitly for
any crate whose lane still ships no executable behavior; it must never conceal
uncovered production behavior.
cargo run -p analysis_engine --bin tepp-topic-lineage -- examples/topic_lineage_cli_input_v1.jsonThe binary reads one bounded tepp.topic_lineage_cli_input.v1 file, excludes
documents, memberships, and relations that were not available at the request
knowledge cutoff, refuses causes/intervenes_on relations, runs the CPU
f64 reference topic-lineage estimator with the supplied topic count and
seeds, and prints one tepp.topic_lineage_cli_output.v1 JSON line. The output
is fitted topic association, not causation. Its association strength is a
MAP-fitted proportion, not a posterior mean or uncertainty probability. It is
not a durable analysis run, calibrated recovery evidence, or GPU parity evidence.
Input must resolve to a regular file (regular-file symlinks are allowed).
Directories, FIFOs, devices, and sockets return redacted io diagnostics with
exit 5; Unix opens are nonblocking and recheck the opened file type to reject
FIFO replacement races without waiting for a writer. These checks are not a
general filesystem I/O deadline. See
docs/API_CONTRACT.md for the field and exit-status contract.
.github/workflows/ci.yml dispatches the reviewed central workflow
ContextualWisdomLab/.github/.github/workflows/tepp-rust-foundation-ci.yml
at 3136c940235a3762b804bd99eb20fbe129e70c06. The documentation caller
.github/workflows/docs-quality.yml uses the same pin for
tepp-documentation-quality.yml. These suppliers provision private Python
environments across all five jobs and hash-verify official Rustup 1.29.1 in the
three Rust jobs. Each Rust job owns fresh Cargo/Rustup namespaces; quality tools
are installed with explicit private roots and locked version pins, never restored
from cached executable archives or skipped on cache hits. The LLVM plugin version
probe includes its required llvm-cov argv. Executable jobs remain supplier-owned;
frozen files under
tests/fixtures/central-ci/ are evidence only, not installed workflows.
Local source-custody tests do not establish native runner bootstrap, hosted
execution, or GitHub App approval.
scripts/effective_ci_source.py resolves the caller and supplier offline for the
workspace, coverage diagnostics, and shared-runner contract checks. It verifies
the exact reviewed caller SHA-256, the original Git commit object and each tree
on the supplier path, the workflow blob identity, and its independent SHA-256.
Missing evidence, changed pins, disabled dispatch, extra caller jobs, or modified
supplier bytes fail closed. It needs neither Git metadata nor network access.
The original coverage, reproducible toolchain, PostgreSQL service/test, and
runner-isolation contracts remain enforced; tooling coverage includes the
resolver at the unchanged 100% statement/branch threshold.
To update the supplier, review the new immutable central commit and executable body, export its original commit/tree/blob objects, and update the reviewed pin and digest constants together with positive and negative contract controls. Never hand-author supplier fixtures, substitute a moving branch, or resolve from live CI during static tests. These local source checks do not prove hosted jobs ran successfully. The inherited hourly schedule contract is separate and is not waived by this resolver.
AGENTS.mdARCHITECTURE.mddocs/product/prd-v0.4-approved.mddocs/superpowers/plans/2026-08-05-temporal-event-foundation.mddocs/research/standards-and-literature.md
No release, production-readiness, GPU, database, or statistical-recovery claim is made by this foundation slice.
The active stacked analysis-engine slice adds a bounded executable readiness path
from an accepted run to a digest-bound terminal artifact. It is not yet
implemented-main and does not replace scientific estimator contracts.
Validated statistical-recovery APIs exist only inside psychometric_core: OLS
loading recovery on already-mapped coordinates, posterior-draw point estimates,
the Rubin total-variance identity T = U_bar + (1 + 1/m) B, CWC/event-time/
contextual recovery maps, and two-group OLS latent-mean comparison gated behind
typed strong/strict invariance evidence (LatentMeanComparisonEvidence; metric,
weak, or configural status cannot reduce to a passing flag). No release,
production-readiness, GPU, or database claim is made by this foundation slice,
and no crate yet implements a full ESEM/DSEM estimator (the two-group OLS
invariance gate is not MGCFA).