T&P development import

Griffin imported the T&P development baseline on 10 September 2026.

  • Griffin base: 52cf35ceabbca6123c8f95f3b7cb0cd411eb0ca1 (3.0.0).
  • Source owner: the tandpds GitHub organisation. The exact original repository URL is retained in the archived source record described below.
  • Source commit: 8057adb716c924652917478b0d3f7a94fec7dbcb (3.1.0).
  • Source remote main at assessment: 499b8fbd713053f2cde6b53e3c1bde38ebe0d9a3. The final source commit, containing the weekly holiday fix, was local only.
  • The repositories have complete, unrelated Git histories. The import copies tracked development files rather than merging unrelated histories.

Original records and current naming

The original import record is retained outside the active repository at ../ammm-history/20260915-rename-3.3.2/current-files/docs/contributing/upstream-integration.md, relative to the repository root. The archive’s current-files.sha256.json records its checksum. The archive also retains the original historical inputs, commands and local verification outputs. Git history preserves the tracked record under its original names.

This page summarises the September integration using neutral names for retired identifiers. It does not substitute a new source repository URL or relabel historical test runs as checks of the ammm namespace. Version 3.3.2 requires its own verification. See the upgrade guide.

Import scope

The import includes package code, tests, documentation, examples, demo data, requirements, the lockfile and development tooling. It excludes generated run outputs, presentation artefacts, old session handoffs and source-local settings. Griffin’s existing licence, assets and historical run outputs are preserved. The modified T&P licence is not imported.

The authorised Griffin integration retires the failed dashboard experiment. Statistical scenario evaluation and its versioned evidence contracts remain library capabilities for a separately developed application wrapper. Dashboard entrypoints, compatibility shims and UI dependencies are removed in a separate change. FE/CRE support limits and the named RE release gate remain unchanged.

Import verification

On the imported Griffin source, 37 selected runner and holiday tests passed (34 deselected). This verifies the copied baseline’s focused behaviour; it is not a full-suite or statistical validation result. Follow-up changes record broader verification here.

Integration repairs

  • Removed 27 dashboard modules and their UI-only tests. Retained the statistical scenario API, local workspace service and versioned evidence payloads.
  • Fixed the no-overlap holiday calendar crash without changing the weekly alignment rule or other model semantics.
  • Fixed the same-version installed-wheel verification error, removed UI dependencies and updated Griffin package URLs.
  • Made the default evidence tests independent of untracked source planning files. The integration retained ten exact historical files as test fixtures, with checksums and a fixture README. Its RE storage tests explicitly emulated the frozen runtime; production environment checks were unchanged.
  • For the 3.3.2 rename, the original fixtures were preserved in the external history archive. The current tests/fixtures/estimator_evidence files are revised regression fixtures. The integration’s original checksums and test results do not validate those revised files.

Verification scope

This section and the results below record checks of the September integration before the 3.3.2 rename. They are historical evidence, not current check results.

The first whole-suite attempt stopped after missing private CRE evidence inputs caused failures. The affected CRE/RE tests pass after fixture repair: 180 passed. Holiday, scenario service, workspace and recipe checks passed: 132 passed. Removing orphaned UI test helpers retained the same collected statistical tests.

All 19 runtime dependency declarations matched that verification interpreter. Ruff lint/format, configured MyPy checks and offline lockfile consistency checks passed. The repository had no .pre-commit-config.yaml; the attempted pre-commit invocation could not run, so its underlying project checks were executed directly.

The wheel and source distribution built. A fresh temporary environment imported the candidate wheel and verified its resources and scenario CLI. It shared installed third-party dependencies with the verification interpreter; this is an installed-package check, not a fresh dependency-resolution test.

Three bounded real-sampling pipeline runs completed: time series, FE and CRE. Each used two chains with 20 tuning steps and 20 retained draws per chain, four prior draws, eight curve samples and eight curve points. Holdout refitting and external LLM calls were disabled. FE and CRE recipes then reloaded the saved fits and retained historical/manual scenario bundles.

These tiny sampling runs test execution and persistence only. They do not establish convergence, recovery, coverage, identification or release-level statistical validity. No confirmatory simulation programme was executed.

Local smoke inputs, results and summaries were recorded under sandbox/integration-smoke/. Those historical files are now preserved under the archive’s local-history/ directory and remain outside distributions.

Final verification result

  • Default suite: 2,878 passed, one failed, one skipped, 170 warnings, 1,138.42 seconds. The sole failure was a stale CRE error-message assertion: the implementation correctly rejected new_spend_contributions() and directed callers to the now-supported manual scenario API.
  • Corrected that assertion without changing production code, then reran the complete CRE pipeline test module: 9 passed. The whole suite was not repeated after this test-only correction; there was no single all-passing full-suite run after the correction.
  • Strict marker/config collection: 2,880 tests collected.
  • Final Ruff lint/format and configured MyPy checks passed; MyPy checked seven configured source files. git diff --check passed.
  • Offline lockfile consistency passed; all ten original fixture checksums matched.
  • 264 local documentation links resolved.
  • Final wheel and sdist build/install smoke passed after fixture additions.
  • Griffin’s licence, existing root assets and historical results were unchanged from the original Griffin base. T&P remained on its original branch and commit with only its pre-existing licence modification.
  • Griffin remote access was restored using the griffin-developers account. A fresh fetch confirmed remote main still matched the original Griffin base above. The checkout used the GitHub CLI credential helper and account through repository-local Git settings for that verification.

The full run used the default test selection with coverage reporting disabled, the Python PyTensor linker, a dedicated temporary compile directory and CPU JAX. The exact command is retained in the archived original import record.

The final focused rerun used the same environment with tests/pipeline/test_correlated_random_effects_pipeline.py --strict-markers --strict-config. Original logs are retained under local-history/sandbox/integration-smoke/verification/ in the external archive.