Unit 11.04: Deciding what this model must never be used for
"Not yet" is the most useful category in a permitted-use list.
Never, not yet, and approved
Five uses with a verdict and a condition.
The code sorts them.
DECISIONS = [
("identifying individuals", "never", "no consent was collected for it"),
("performance monitoring", "never", "not the agreed purpose"),
("a second site", "not yet", "re-validate on that site's images"),
("counting objects", "not yet", "never evaluated for counting"),
("triage before human check", "yes", "measured, with a stated recall"),
]
print(f"{'use':30} {'verdict':10} condition")
for use, verdict, condition in DECISIONS:
print(f"{use:30} {verdict:10} {condition}")
never = sum(1 for _, v, _ in DECISIONS if v == "never")
conditional = sum(1 for _, v, _ in DECISIONS if v == "not yet")
print(f"\n{never} prohibited, {conditional} conditional, "
f"{len(DECISIONS) - never - conditional} approved")
# "Not yet" is the useful middle category. It names what would have to be true,
# so a future request has an answer other than a flat no or an unconsidered yes.
"Not yet" names what would have to be true. A second site needs re-validation on that site's images; counting needs an evaluation for counting. Both are answerable requests with a stated path.
Without the middle category, every future request gets either a flat no - which invites someone to route around it - or an unconsidered yes.
The mistake this prevents
The mistake is a binary permitted/prohibited list. Most real requests are neither: they are reasonable uses that have simply never been evaluated, and the list needs somewhere to put them.
Takeaway
Use three categories, not two. "Not yet" with a stated condition turns a future request into a task rather than an argument.
