Story: Roll out badge/image/plain-text rendering across classified domain entities

Table of Contents

This page documents a story in Product backlog — inbox, carried unfinished from Sprint 24 at close. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Split from Improve badge colour scheme support (Sprint 23) at close. That story's own analysis found only 10 of 108 domain_entity models use badge_key today, despite the badge system (catalogue, client cache, codegen wiring) being fully built and working. This is open-ended discovery-and-rollout work across the whole entity catalogue — not a small tail alongside a shipped feature, so it gets its own story rather than being lumped in with the concrete UI fixes split into Badge colour scheme: visual polish and self-badging fixes.

Merged with the separately-filed Classify FK-like/lookup entities and decide badge vs image vs plain-text rendering policy (ABANDONED, superseded by this story): the two were really the same question asked from different angles – "which entities are missing badge_key" presupposes every FK-like entity should be a colour badge, but currencies render as flags and most reference-data codes render as plain text today, with no documented criterion for which treatment fits which entity. Rolling out badge adoption without first deciding the badge-vs-image-vs-plain-text question risks badging entities that should really be flags/images, or vice versa.

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. This surfaced concretely while fixing badge severities: is a severity itself a badge? What about code_domain? There's no criterion to answer that today.

Status

Field Value
State DONE
Carried from Sprint 24 (unfinished at close)
Now All tasks DONE. Batch 1 (11 refdata entities) shipped as PR #1784; batch 2's cross-component rollout decomposed, with the trading slice (party_role_type, trade_type full entity shape + regeneration) shipped after. Batch 3's plain-text documentation leg is captured, not lost.
Waiting on Nothing.
Next Nothing.
Last touched 2026-08-10

Acceptance

  • Every audit candidate needing a rendering change is either annotated (badge_key, image/flag wiring, or explicitly left as plain text) and regenerated, or has a one-line documented reason it was skipped.
  • No regression to any currently-working badge/image rendering (existing entities' generated files stay zero-diff except where this story deliberately changes them).

Tasks

Task State Start End Description
Implement classified entities in batches DONE 2026-07-30 2026-08-10 Consume the audit/classification's batched list: annotate each entity with badge_key/image wiring as classified, author any missing badge_definition/badge_mapping or image data, and regenerate, one batch at a time.

Decisions

Merged the badge-adoption-audit and badge/image/plain-text-classification stories

Filed separately (2026-07-21 and 2026-07-25), but on reflection the same underlying question: rolling out badge_key without first deciding which entities should be badges (vs images vs plain text) risks badging entities that should be flags/images. Merged into this story; the classification story is marked ABANDONED/superseded rather than deleted, to preserve its own goal/acceptance writeup. The two existing tasks (audit, then implement) already had the right shape for this merged scope – broadened their descriptions rather than re-scaffolding.

Batch 3 folded into a capture at close

When batch 2's trading slice closed the implementation task, the only remaining acceptance item was the plain-text documentation leg (one-line documented reason per plain-text entity, plus the rendering-policy note). Filed as capture Batch 3 of the badge/image/plain-text rendering rollout rather than keeping the task STARTED: it is documentation-only and small enough to pick up as its own piece of work.

Out of scope

  • The concrete palette-swatch/fallback-badge and self-badging fixes — see Badge colour scheme: visual polish and self-badging fixes.
  • 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)