Layer 1 core: Wright-Fisher knowledge-transmission model with E1-E2

Scaffold plus the Layer 1 analytical core and the first two experiments.

- knowledge/: truth, metrics, teachers (2.7.1 shared-switch construction),
  step, lineage, experiment, config, seeding (imported as `knowledge`).
- Validation spine green: neutral decay (Pred 1), fixation (Pred 2), exact
  mutation-drift equilibrium (Pred 3), union coverage (Pred 5). 68 tests pass.
- E1 reproduces tail-first collapse. E2 delivers the headline: a grounding
  phase boundary g* << 1, with stationary H tracking the exact H_eq closed
  form (g=0.005 -> 68% of truth diversity; g=0.05 -> 96%).
- Reproducibility: uv venv from a hash-pinned uv.lock is the source of truth;
  every run writes results.parquet + resolved_config.yaml + manifest.json
  (lib versions, git commit, sha256). Figures and manifests tracked; the
  large regenerable parquet is gitignored.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Giorgio Gilestro 2026-07-04 18:10:18 +02:00
commit a6eb9b7512
33 changed files with 4356 additions and 0 deletions

31
pyproject.toml Normal file
View file

@ -0,0 +1,31 @@
[project]
name = "lamarckian-society"
version = "0.1.0"
description = "Layer 1 analytical core: knowledge transmission as a Wright-Fisher process."
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"numpy>=1.26",
"scipy>=1.11",
"pandas>=2.1",
"pyarrow>=15",
"matplotlib>=3.8",
"pydantic>=2.5",
"pyyaml>=6.0",
]
[project.optional-dependencies]
dev = ["pytest>=8.0"]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# src-layout: src/knowledge/ is importable as `knowledge` (the normative package
# name the scientific-validation conformance tests import).
[tool.hatch.build.targets.wheel]
packages = ["src/knowledge"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-q"