Skip to content

Specify the muP mechanism crossover predictor before implementing it #12

Open

Description

@esaran1

Why

mechanism_crossover_budget is an honest stub: it raises NotImplementedError and must never return a fabricated intersection. The naive power-law intersection is already implemented and is known to go blind under saturation. That limitation is a result, not a bug.

What to do

Before writing code:

  1. Write the statistical/physical specification: inputs from muP/parameterization, the equation for a crossover budget, and when it should return None.
  2. List required logged fields beyond the current schema.
  3. State how it will be tested on saturation_crossover vs clean_crossover.
  4. Only then implement, keeping the naive predictor unchanged.

Acceptance

  • Spec is reviewed before a number-returning implementation
  • Stub still raises until that spec exists
  • Naive predictor still returns None on the saturating pair
  • Tests prevent a placeholder float from being reported as a mechanism prediction

Files

  • asla/analysis/crossover.py
  • tests/test_predictors.py

Do not fabricate

  • Return a numeric guess, interpolation, or copied naive root from the stub

Activity

  1. added
    enhancementNew feature or request
    scienceScientific design, estimands, and claim language
    blockedWaiting on data, trainer, or a science decision
    on Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedWaiting on data, trainer, or a science decisionenhancementNew feature or requestscienceScientific design, estimands, and claim language

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions