Skip to content

Navigation menu icons: correct the stale "not scriptable" claim, and make row 8 judge the menu - #125

Merged
MendixMau merged 10 commits into
masterfrom
claude/compassionate-darwin-i3gfue
Sep 24, 2026
Merged

MendixMau merged 10 commits into
masterfrom
claude/compassionate-darwin-i3gfue

Conversation

@MendixMau

@MendixMau MendixMau commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

Two fixes from a field build where a full module review and two UI sweeps all passed while the app shipped five bare text labels and no navigation icons.

What changed

skills/learned-sidebar-collapse-icons.md — the file claimed menu-item icons were not scriptable and had to be set in Studio Pro. That is false on mxcli ≥ v0.22.0, and the claim had been carried forward from an older binary. Corrected with the verified grammar and worked examples:

  • MENU ITEM 'Label' PAGE Module.Page ICON Module.IconCollection.Name
  • ICON takes a model reference, not a string; hyphenated Atlas names need double quotes (ICON Atlas_Core.Atlas."check-circle")
  • browse with SHOW ICON COLLECTION / DESCRIBE ICON COLLECTION
  • collapsing to an icon rail is CSS, not MDL — class names read from the project's own themesource/atlas_core/, never inside the generated mxcli:theme:begin block

The correction is written as a probe instruction rather than a new assertion, per the capability-probe rule: a general prior is not evidence about this binary.

skills/module-review.md — rubric row 8 judged the navigation bar (top vs side) but never the navigation menu (labels, icons, order, grouping). The menu is chrome on every screen and belongs to no page, so a page-by-page LOOK pass structurally never reaches it. Row 8 now says to judge it once, explicitly, on the first screen opened, and points at the corrected icon skill.

Why it matters

This is a structural hole, not a discipline failure. The rest of the guidance was already present and correct — ui-preflight-pages.md has a shell check, and row 8 already named the top-bar/side-bar mismatch. Nothing anywhere said to look at the menu's own items, so nothing did.

Changelog

Both entries are in CHANGELOG.md under ## Unreleased, credited to the PRD benchmark, Arm A (Maurits Visser).

Merge

master has been merged into this branch twice to resolve CHANGELOG.md conflicts as the release cycle and new entries landed upstream — most recently ccd2ed1 (against master at 598e38a). Both resolutions keep both sides verbatim: this branch's two entries sit at the top of ## Unreleased, followed by every line master added. Nothing from either side was dropped.

State at this head: mergeable, no conflicts; CI checks green; bin/render-routing.sh --check passes on the merged tree (routing surfaces in sync, all skills routed or exempted, baseline within budget).

claude and others added 10 commits September 19, 2026 09:26
…a full Stage-5 build (second occurrence)

Process finding from a 3-module requirements-driven build: gate-check never
re-run after scaffold, UI skills reachable only through undispatched role-agent
stubs, instruments never installed, and the 2026-09-09 inbox note predicting
this was still unpromoted. Five enforcement proposals, smallest first.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XgoKZ42wYcMCBPG8Gj2PCh
…ver executed

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XgoKZ42wYcMCBPG8Gj2PCh
… a LOOK pass

conversion-runbook.md §1b rule 8: every stage and every module build ends on
bin/gate-check.sh, run and pasted, with zero PENDING or each PENDING named and
waived. The obligation check already reports a pass nobody performed — but only
on a run, and nothing before this required one.

ui-preflight-pages.md: page-fidelity.js matches identifiers in page MDL against
wireframe text and cannot see placement. On the same commit, two screens scored
100% fidelity against 58% and 40% on an element checklist; a third ran the other
way. Use the score for the rework curve between LOOK passes, never in place of one.

init-project.sh: the generated CLAUDE.local.md now carries a before/after page-MDL
item, so the pre-flight text reaches the agent that writes pages.

Field evidence: lowcode-vs-highcode-benchmark results/mendix-run1 (closed blind),
results/mendix-run1b (seven screens at 0/18/40/40/58/58/69% baseline), and
results/highcode-run1b as the non-Mendix control (43% and 56% baseline on two
screens) — a pipeline gap, not a platform one.

Withdraws proposal D of the 2026-09-19 inbox note as field-refuted.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XgoKZ42wYcMCBPG8Gj2PCh
…d in e466e4c

Fidelity scored 100% on the two screens an element checklist put at 58% and 40%
on the same commit, so a fidelity threshold cannot discharge the look obligation.
Cites results/mendix-run1b and results/highcode-run1b.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XgoKZ42wYcMCBPG8Gj2PCh
…ia ICON

The skill asserted that navigation.create has no menu-item icon token and that
per-item icons must be assigned by hand in Studio Pro. mxcli v0.22.0's
`syntax navigation.create` documents the ICON clause, the quoting rule for
hyphenated Atlas names, and SHOW/DESCRIBE ICON COLLECTION.

Field cost: the PRD benchmark's Arm A shipped five text-only nav items through a
full build and two UI sweeps because the skill said icons were not scriptable, so
nobody re-probed the binary.

Corrected in place, with the probe command and a worked example, and flagged as
the capability-probe rule failing where it hurts most. Also separated the MDL half
(ICON places the glyph) from the CSS half (icon-only-when-collapsed), and told
readers to take Atlas sidebar class names from their own themesource, not another
project's theme.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XgoKZ42wYcMCBPG8Gj2PCh
…v bar

Rubric row 8 already caught an un-skinned default nav bar and a sidebar
design shipped as a top-bar app. It said nothing about the navigation
profile's own item list. That list is chrome on every screen and belongs
to no page, so a page-by-page LOOK pass structurally never reaches it.

Field evidence: Arm A of the PRD low-code-vs-high-code benchmark passed a
full module review and two UI sweeps carrying five bare text menu labels
with no icons; the user's verdict on the shipped nav was "lots of text
ugly stuff". The icon capability existed the whole time.

Row 8 now names labels, icons, order and grouping as a finding class,
instructs judging the menu once explicitly on the first screen opened,
and points at learned-sidebar-collapse-icons.md so the corrected icon
capability is reachable from the review rubric, not only from a build
skill.

CHANGELOG line in the same commit.
@MendixMau
MendixMau merged commit 09f2e34 into master Sep 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants