The record screen baseline

Table of Contents

1. Summary

Before the screen pipeline changes any screen, the harness measured every record screen the registries name against the structural rules of the standards. On 2026-10-25, at commit b6698c1818 of the harness over the web of brave_hopper with Acme provisioned, 32 screens ran 21 checks each: 477 passed, 67 failed and 128 were skipped with a stated reason. Every failure is the screen's and not the check's, and they fall into four rules. No record page draws the load time (ES-REFRESH-16, 27 pages: the four record pages and the row page of each of the 23 classification kinds whose list opens one); those pages draw no Refresh button either, so ES-REFRESH-06 is broken on the same 27, read through the same check. No dialog says when its record was loaded (RS-WRITE-16, 23 dialogs). Twelve dialogs are titled by the key and not the display field (RS-WRITE-20). The five read-only classification lists open nothing when a row is clicked (RS-LIST-10). Each of the four is a capture in the next bucket, so the topic that owns the screen picks it up with the measurement behind it.

This page is a measurement, not a work list. The table is the output of projects/ores.web/scripts/harness_baseline.py --org over the JSON report a run writes, and a later run replaces it. Read the Screen review checklist for what each identifier means.

2. Detail

2.1. How the baseline was taken

The environment was rebuilt from the checkout, the database recreated and in sync, the services started and the Acme tenant provisioned, as the recipe How do I ready up an environment? says. Then npm run harness -- --workers 4 in projects/ores.web ran the harness described in How do I run the browser harness against the environment?. The run took 19.9 minutes. A second run on the same day gave the same four rules with the same counts, so the failures are stable and not timing.

The checks are the structural rules the Audit of the UX standards named as machine checkable: on the list, the breadcrumb, the lead, the header actions, the load time, the search box, the hidden audit columns, the pager and the row that opens a record; on the record page, the breadcrumb and title, the lead line, the tab order, the labels, the access mark, the load time and the last-changed line; on the Edit dialog, the title, the load time, no tabs, the labels, the footer order and the closing guard.

2.2. What each mark means

Mark Meaning
✓ The screen meets the rule
✗ The screen breaks the rule; the failure's screenshot, snapshot and trace were read
– The check did not run on this screen, for a reason the test states: the pager on a classification list, which RS-EXCEPT-01 reads whole; the record checks of a list whose row opens no page, which RS-LIST-10 already reports; the dialog checks of a record that offers no Edit, under RS-WRITE-33
blank The check does not apply to this part of the screen

A rule checked on two parts of a screen, the load time on the list and on the record page, has one column per part.

2.3. The table

Screen ES-REFRESH-16 list ES-REFRESH-16 record RS-FEEDBACK-02 RS-LIST-01 RS-LIST-02 RS-LIST-03 RS-LIST-04 RS-LIST-10 RS-LIST-13 RS-LIST-17 RS-PAGE-01 RS-PAGE-02 RS-PAGE-05 RS-PAGE-09 RS-PAGE-10 RS-WRITE-09 RS-WRITE-12 RS-WRITE-14 RS-WRITE-16 RS-WRITE-20 RS-WRITE-24
classification asset-class-code ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✗ ✗ –
classification book-purpose-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
classification book-status ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✗ ✓ ✓
classification business-day-convention-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✗ ✓ – ✓ ✓ ✓ ✓ ✓ – – – – – –
classification calendar-name ✓ ✗ – ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ – – – – – –
classification calendar-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ – ✓
classification contact-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
classification currency-market-tier ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ – – ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification currency-pair-classification ✓ – – ✓ ✓ ✓ ✓ ✗ ✓ – – – – – – – – – – – –
classification curve-role ✓ – – ✓ ✓ ✓ ✓ ✗ ✓ – – – – – – – – – – – –
classification day-count-fraction-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification day-counter ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ – – – – – – –
classification derivation-kind ✓ – – ✓ ✓ ✓ ✓ ✗ ✓ – – – – – – – – – – – –
classification diary-entry-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification floating-index-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ – – – – – –
classification ledger-feed-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
classification leg-type ✓ – – ✓ ✓ ✓ ✓ ✗ ✓ – – – – – – – – – – – –
classification monetary-nature ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification party-status ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✗ ✓ ✓
classification party-type ✓ ✗ – ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✗ ✓ ✓
classification purpose-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
classification regulatory-book-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification rounding-type ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – – – ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification series-subclass-code ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification tenor-anchor ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
classification tenor-kind ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification tenor-resolution-algorithm ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
classification tenor-unit ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
record calendars ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ – – – – – –
record currencies ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ – ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✗ ✓
record currency-groups ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓
record currency-pairs ✓ ✗ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✗ ✓ ✓

2.4. The failures, judged

Rule Screens What the screens do Where it goes
ES-REFRESH-16 27: the record pages of currencies, desk groups, currency pairs and calendars, and the row page of each of the 23 classification kinds whose list opens one The list screens draw Refresh and the load time through RecordList, and the list column passes everywhere. The record pages and the classification row pages use PageHeader directly and draw no Refresh at all, so ES-REFRESH-06 is broken on the same 27 pages; the harness has no separate column for it Capture: Give the record page and the classification pages the shared Refresh button with its load time
RS-WRITE-16 23: every dialog that opened RecordDialog and the classification row dialog open the shared Dialog without its loadedAt, so no dialog says when its record was loaded Capture: Pass the loaded time to the record dialog and the classification row dialogs
RS-WRITE-20 12: the currency dialog and 11 classification row dialogs The dialog is titled by the key, Edit AED, where the page is titled by the display field, UAE Dirham. Of the 23 dialogs that opened, 12 fail and 10 pass; the 10 that pass, the desk group and currency pair dialogs among them, are kinds whose key is also their display name. The 23rd, calendar type, skipped this one check because its row did not open on that attempt, while its other dialog checks ran Capture: Title the Edit dialog with the display field and not the key
RS-LIST-10 5: business day convention type, currency pair classification, curve role, derivation kind, leg type The read-only lists open nothing when a row is clicked. Either a read-only record page with its history is wanted, as RS-WRITE-33 describes, or the standard names the exception Capture: Decide what a row of a read-only classification list opens

Two checks were corrected during the baseline and are not findings. The breadcrumb check first demanded the display field as the last crumb; the standard's sketch ends the crumb at the key, so the check accepts the key or the title. The record checks of a list whose row opens nothing first failed one by one; they now skip with the reason, because RS-LIST-10 reports the list once.

2.5. What the harness does not reach yet

  • The conventions screen, whose kinds have no record page to check.
  • The five kinds in the registry with no screen: countries, business centres, business unit types, party id schemes and counterparties.
  • The parties and organisation screens, which live outside the reference data area and are not in the route table yet.
  • Continuous integration: the harness needs a started environment with Acme provisioned, and no workflow starts one. This is the gap the sign off recipe task states, and a later story closes it.

3. See also

Emacs 29.3 (Org mode 9.6.15)