Wilderness Window¶
How the Mendix application actually behaves, written from the model rather than from memory. Three depths, because three different questions get asked:
-
For the business
What the system does, in the language the business uses. Start with how a quote becomes a booking.
-
Deep dives
Node-by-node traces with the real expressions, for changing the thing safely. Start with the cancellation path.
-
Regression suites
What to assert, and which cases matter. Start with pricing.
The journeys¶
| Journey | Business | Engineering | QA |
|---|---|---|---|
| Quote to booking | how it works | deep dive | regression |
| Cancellation and fees | how it works | deep dive | regression |
| Pricing | how it works | rules · calculation · manual adjustments | regression |
| Dead beds | how it works | deep dive | regression |
| Children and rooming | how it works | deep dive | regression |
Then conventions and risks, which is the page to read before trusting anything else here.
How much is written down¶
| journey | flows named | flows that write the subject | ways to start them | covered |
|---|---|---|---|---|
| Cancellation, amendment and fees | 54 | 18 of 30 | 43 of 56 | 71% |
| Children, room occupancy and the age policies | 95 | 35 of 35 | 48 of 48 | 100% |
| Dead beds — unsellable inventory created by a booking | 58 | 12 of 12 | 27 of 27 | 100% |
| Pricing rules, calculation and manual adjustments | 68 | 15 of 29 | 33 of 50 | 61% |
| Quote to booking conversion | 93 | 35 of 86 | 78 of 108 | 58% |
measured against journeys/.toml on every refresh. "Described" means a document somewhere in docs/ names that flow or trigger; it does not judge how well*.
What is still missing¶
| journey | flows to describe | triggers to describe | unreachable from the entry points | total |
|---|---|---|---|---|
| Cancellation, amendment and fees | 12 | 13 | 3 | 28 |
| Children, room occupancy and the age policies | 0 | 0 | 0 | 0 |
| Dead beds — unsellable inventory created by a booking | 0 | 0 | 0 | 0 |
| Pricing rules, calculation and manual adjustments | 14 | 17 | 8 | 39 |
| Quote to booking conversion | 51 | 30 | 14 | 95 |
a to-do list, not an error list. Anything excluded on purpose is recorded with a reason in each document's "What this document does not cover" section.
What those numbers mean
Both tables are measured on every refresh against journeys/*.toml, which declares
where each journey starts and what was deliberately left out. Described means some
document under docs/ names that flow or trigger — it does not judge how well. A gap is
a to-do, not an error: anything excluded on purpose is recorded with a reason in each
document's "What this document does not cover" section.
Querying the application directly¶
Tables in these documents are generated from the model. The same queries are available live — pick an entity, an attribute, a flow, and ask:
Open the model explorer Ask Claude instead
Or point a Claude session at it and ask in plain language — one claude mcp add and it can
query the model from any repository. See asking Claude directly.
Useful starting points there: who can set a booking to a given status, what runs implicitly on a commit, how a flow gets started (it walks up to the real trigger), and what a change to this flow could affect.
Two things nothing here can tell you
Expressions are recorded exactly as the model holds them, never interpreted: a write of
if … then CC else CX is one fact that mentions two values, not a decision table. And
nothing here knows runtime configuration — whether a scheduled job is enabled in a
given environment lives outside the model.