ProtectedbuildThe canonical scoring param set, mirroring the parent Score Record Set
action: ModelID (pre-seeded for this model), Scope, WriteBack, plus the
five output params. Kept DRY via a small spec list.
ProtecteddeleteLoad + delete all MJ: Action Params rows for the given action.
Disable the generated scoring Action for model (e.g. when the model is
Archived) by flipping its Status to Disabled. A no-op when no generated
action exists. Never throws.
ProtectedensureFind-or-create the MJ: Action Categories row that groups all per-model
scoring actions. Idempotent (find by Name first). Returns its ID, or null if
the category couldn't be created (logged).
ProtectedfindLoad an Action by exact Name (idempotency lookup), or null.
ProtectedfindLoad the canonical parent Score Record Set Action — the top-level row (ParentID null) whose DriverClass is the scoring driver. Returns null (caller logs + bails) when it's missing.
Find-or-create the per-model scoring Action for model and reconcile its
params. Idempotent on the deterministic Action Name. Logs and returns on any
failure (the parent action is missing, a save fails) rather than throwing —
callers must never let scoring-action generation break the promotion path.
ProtectedmodelThe model's human label — its pipeline name, or the model id when unset.
ProtectedmodelProtectedrecreateDelete the action's existing params and recreate the canonical scoring
param set (matching the parent's contract). The ModelID input is pre-set to
this model's id via DefaultValue so omitting it scores with this model.
ProtectedscoringHuman-readable description naming the model label + version.
ProtectedscoringDeterministic Action Name: Score with <label> v<version>. The model has no
Name column; its human label is the producing pipeline's name (the
denormalized Pipeline view field), falling back to the model id.
ProtectedupsertFind-or-create the per-model scoring Action by its deterministic Name and apply its fields. The child reuses the parent's DriverClass (composition) and links via ParentID. Returns the saved row, or null on save failure (logged).
Generates (and disables) the per-model "Score with v" child Action.
Stateless + idempotent — safe to call on every promotion.