Story: Classify FK-like/lookup entities and decide badge vs image vs plain-text rendering policy

Table of Contents

This page documents a story in Sprint 24. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Every FK-like/lookup/code entity in the system currently gets an ad hoc rendering treatment decided per-entity as it's built: badge_definition renders as a colour swatch, currencies render as flags, and everything else renders as plain text — with no documented policy for which treatment a given entity should get. This surfaced concretely while fixing badge severities: is a severity itself a badge? What about code_domain? There's no criterion to answer that.

This story inventories every FK-like/code/lookup entity, classifies each one against a small set of rendering treatments (colour badge, image/flag, plain text), documents the policy that drives the classification, and updates codegen so future entities pick up the right treatment automatically instead of by convention-following.

Status

Field Value
State ABANDONED
Parent sprint Sprint 24
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-07-30

Acceptance

  • An inventory exists of every FK-like/code/lookup entity in the system (reference-data codes, DQ badge-adjacent entities, currencies, and any others of the same shape).
  • Each entity is classified into one of: colour badge, image/flag, or plain text/neither — with the reasoning documented, not just the verdict.
  • A written policy/decision doc captures the classification criteria so future entities can be assigned a treatment without re-litigating the question each time.
  • Codegen is updated so an entity's rendering treatment is a declarative choice in its model, driving the generated Qt list/detail views automatically.
  • Existing entities affected by a policy change are regenerated to match (e.g. any entity currently mis-classified, such as badge severities if the decision is that severities should be badges).

Tasks

Task State Start End Description
         

Decisions

Merged into the badge-adoption-audit story

Abandoned in favour of merging this scope into Classify and roll out badge/image/plain-text rendering across domain entities (retitled to reflect the merged scope), at explicit user request: rolling out badge_key adoption and classifying badge-vs-image-vs- plain-text are the same underlying question, and running them as separate stories risked badging entities that should really be images/flags. See that story's own * Decisions for the merge rationale.

Out of scope

  • Redesigning the colour palette or flag/image asset pipeline themselves — this story is about classification and codegen wiring, not visual design of the treatments.

Emacs 29.3 (Org mode 9.6.15)