Skip to content

I3791 — A code block on /ui and the Cockpit carries the one highlighter's classes, and the audit refuses one that does not

Extend the ui audit with a rule over the site, /ui and the Cockpit that fails a pre or code block which carries neither the one highlighter's classes (I2747) nor the declared plain marker, naming the page, the width and the element, so a surface that renders code without the shared highlighter is refused wherever it appears.

BLOCKED wave 1 · p1 · implementation profile · parallel safe

Part of one-kit-on-every-surface — Code, charts, controls, embeds and shell blocks are one kit on every surface, declared in the design book and held there by a gate.

Blocked. This issue cannot start until I2747 is done. The status is derived from that, not declared.

Objective

Extend the ui audit with a rule over the site, /ui and the Cockpit that fails a pre or code block which carries neither the one highlighter's classes (I2747) nor the declared plain marker, naming the page, the width and the element, so a surface that renders code without the shared highlighter is refused wherever it appears.

Why

I2747 makes one engine available; nothing measures that a page uses it. On 2026-10-20 cockpit::view::pre rendered schemas, files and monitor output as plain pre on /cockpit and in the snapshot, and /ui's prose rendered inline code only.

Current state

scripts/lib/ui-audit.mjs has no code rule; scripts/site-check checks that the highlight sheets exist and that every pre scrolls or wraps.

Desired state

ui-audit rule code.unhighlighted covers every surface; a block that is deliberately plain carries the declared plain marker; the marker for a highlighted block is shared with I3002's copy control.

Scope

  • scripts/lib/ui-audit.mjs
  • scripts/lib/ui.test.mjs
  • apps/majordomus-cli/src/cockpit/view.rs
  • apps/majordomus-cli/src/ui/prose.rs
  • test/cases/3791_every_code_block_is_highlighted.sh

Dependencies

Acceptance criteria

  • ui-audit fails a page with a pre that carries neither the highlighter's classes nor the plain marker, naming page, width and element
  • The site, /ui and the Cockpit pass the rule on master

Validation

  • bin/majordomus plan validate
  • node scripts/lib/ui.test.mjs
  • MJ_TEST_JOBS=4 bash test/run.sh 3791_every_code_block_is_highlighted

Evidence required

  • code_unhighlighted_rule_case

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3791.yaml. Read it back with majordomus plan show I3791.

Searches the titles and descriptions of every page this site publishes.