Skip to content

docs(bootstrap): prefer the environment's cached Mendix version, else the newest - #390

Merged
ako merged 1 commit into
mainfrom
claude/mxcli-findings-nnl181
Sep 4, 2026
Merged

docs(bootstrap): prefer the environment's cached Mendix version, else the newest#390
ako merged 1 commit into
mainfrom
claude/mxcli-findings-nnl181

Conversation

@ako

@ako ako commented Sep 4, 2026

Copy link
Copy Markdown
Owner

The bootstrap-app skill pinned the Mendix version default to a literal:

  1. Mendix version. Default 11.13.0.

That is wrong in two directions — it ages, and it ignores what the session already has.

Prefer what the environment provides

A Claude Code session image can bake in an MxBuild; this one carries 11.13.0. Asking for a different version turns a no-op into a multi-hundred-MB download of both the MxBuild and the runtime tarball.

There is no environment variable to read for this — mxcli defines none, and mxcli new --version has no default of its own — so the cache directory is the signal:

ls ~/.mxcli/mxbuild/ 2>/dev/null | sort -V | tail -1   # e.g. 11.13.0, or empty

Verified both branches: it returns 11.13.0 in this session, and empty where no cache exists, falling through to the CDN rule below. A version the user explicitly names still beats both.

Otherwise the newest on the CDN

Checked rather than assumed, since the skill's own standard is "supported means on the CDN":

version mxbuild runtime
11.14.0 200 200
11.13.0 200 200
11.15.0 404 404

So 11.14.0 is genuinely current, and it is what the fallback names.

Written so it does not rot again

The old text hardcoded 11.13.0 into the CDN check itself, which is how the number went stale in the first place. The check is now parameterised:

V=11.14.0
curl -sI -o /dev/null -w '%{http_code}\n' https://cdn.mendix.com/runtime/mxbuild-$V.tar.gz
curl -sI -o /dev/null -w '%{http_code}\n' https://cdn.mendix.com/runtime/mendix-$V.tar.gz

and the version is labelled "at the time of writing" with an instruction to confirm and walk back a minor on a 404, rather than being quoted as fact.

Also noted: apps in a solution share the ~/.mxcli/mxbuild cache, so the cached-version rule applies to the solution as a whole rather than per app.

Scope

  • .claude/skills/mendix/bootstrap-app/SKILL.md — the source of truth, where the pin actually lived. The bootstrap prompt names no version; it hands off to this skill.
  • docs-site/src/tools/bootstrap-prompt.md — restated the old rule, updated to match.
  • cmd/mxcli/skills/ is gitignored and regenerated by make sync-skills; that was run and the copies confirmed identical, so it is correctly absent from this diff.

make check-skill-mdl passes — 206 MDL blocks checked.

One thing worth a look in review

While rebasing, main had added a new interview question 8 (recording requirements). I resolved by keeping both sides — main's new question 8 alongside the rewritten question 7 — rather than taking either branch wholesale. A conflict resolution inside a numbered interview list is easy to get silently wrong, so it is worth a glance.

🤖 Generated with Claude Code

https://claude.ai/code/session_017s476QkXr9CFMvKspVzcvu


Generated by Claude Code

… the newest

The bootstrap-app skill pinned `11.13.0` as the Mendix version default, which
is wrong in both directions: it ages, and it ignores what the session already
has. A Claude Code session image can bake in an MxBuild — this one carries
11.13.0 — and asking for a different version turns a no-op into a
multi-hundred-MB download of both the MxBuild and the runtime tarball.

The rule is now: use whatever is already in ~/.mxcli/mxbuild/, and otherwise
the newest version on the CDN. There is no environment variable to read (mxcli
defines none, and `mxcli new --version` has no default of its own), so the
cache directory is the signal:

    ls ~/.mxcli/mxbuild/ 2>/dev/null | sort -V | tail -1

A version the user names still wins over both.

The CDN fallback names 11.14.0 — verified, along with the fact that it is
current: mxbuild-11.14.0 and mendix-11.14.0 both answer 200, 11.15.0 answers
404. It is written as perishable and the check is parameterised on $V rather
than repeating a literal that will rot the same way 11.13.0 did.

Only the skill source changes; cmd/mxcli/skills/ is gitignored and regenerated
by `make sync-skills`, which was run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017s476QkXr9CFMvKspVzcvu
@ako
ako merged commit 598b278 into main Sep 4, 2026
15 of 16 checks 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