principle-bind-to-named-inventory · git:20260910.26ee82b · 2026-09-10 · sha256 17915fb67b55f240

principle-bind-to-named-inventory git:20260910.26ee82bA

Immutable. This exact content never changes and is served at /api/v1/blob/17915fb67b55f240.

---
name: principle-bind-to-named-inventory
description: >
  Apply after an audit, scoring review, or a request for a "real classifier"
  / "less arbitrary weights" when existing scorers, rankers, or weight
  formulas were already named. Pick among those named gaps before proposing
  a new model or library.
disable-model-invocation: true
---

# Bind to Named Inventory

After an audit (or any pass that names N existing scorers/rankers/formulas
and their failures), the next plan must pick among **those named gaps**.

Do not add a new model, library, or parallel scorer until each named system
is mapped: what it scores, whether its weights are literal or labeled, and
which failure the user is pointing at.

**Must always:**

- Bind phrases like "real classifier" or "these weights are arbitrary" onto
  a named scorer from the inventory ("the `.5/.3/.2` mix is finding-priority
  ranking; flag `a` appearing in two frauds is `fraud_learning` case
  frequency") before proposing sklearn, logistic regression, or a new file.
- Prefer replace-or-feed an existing scorer over adding a fourth.
- If the user is not comfortable with ML, teach the existing named scorers
  first. Offer a no-library path before a new dependency.

**Must never:**

- Box the user into a new prediction target that was not in the audit.
- Treat "I need a real classifier" as license to invent a model while an
  exact-string transfer gap already named in the same session sits unused.

**Battle-tested:** A scoring audit named three heuristics and that held-out
flag types often get weight 0 because the type strings do not match across
companies. The follow-up "we need a real classifier; the `.5/.3/.2` weights
are arbitrary" was boxed into logistic finding-usefulness vs a 9-company
fraud detector. The user had to invent "event X has a,b,c; event Q has
a,d,e; then a should weigh more" — which was already `fraud_learning`
prevalence, blocked by exact-string match. The reinvention is the cost: the
named scorer was there the whole time and the audit had already said why it
was blocked.