You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
verify-module.sh journeys rung reads only journeys/<Module>.journey.json; a module that keeps one journey per file under journeys/<Module>/ gets FAULT "no journeys/<Module>.journey.json" #542
File:project-bin/verify-module.sh lines 647-672 (JOURNEY="$JOURNEY_DIR/$MODULE.journey.json", the fault "journeys" "no …" branch, and the two _exec … node "$JOURNEY_RUNNER" "$JOURNEY" calls) · Toolkit:393d253 · mxcli: v0.27.0 · Mendix: 11.14.0
Summary
journey-runner.js and validate-journeys.js read one journey per file, and the runner already takes several files
(node journey-runner.js journeys/*.journey.json, its own header line 6). A module with more than one journey
naturally ends up as:
verify-module.sh looks only for journeys/<Module>.journey.json. With the folder form and no top-level file the
rung is:
journeys FAULT 2 - (no journeys/<Module>.journey.json)
and its note says the golden path is "UNTESTED end-to-end", while eight journeys for that module sit one level down.
The only way through today is to copy one of them to the top-level name, which then has to be kept in sync by hand,
and the rung still proves just that one journey.
Expected
The folder form is recognised. A journey that exists is never reported as missing.
Suggested fix (ranked)
If journeys/<Module>.journey.json is absent and journeys/<Module>/*.journey.json exists, walk those files.
Precedence: the single file when both exist (keeps today's behaviour), else the folder.
Positive control: run --positive-control per file that has a named control, or at least on one per persona.
Say in the row which files were controlled.
Report the denominator: journeys: 6 of 8 PASS (journeys/<Module>/, 2 personas) rather than one verdict that
reads like the whole module.
Same lookup in artifact-check / obligation-check if they also hard-code the single file.
How to retest
A module with only journeys/<Module>/A.journey.json and B.journey.json (different personas): before, FAULT "no
journeys/.journey.json"; after, two runs, one per persona, both reported.
Triage: DISCUSS track. It adds a new on-disk journey layout to a gate rung (FAULT to PASS), changes the Stage-5 artifact glob, and makes the runner run once per persona (more runner calls, longer runs). Verified. Problem: The journeys rung in project-bin/verify-module.sh only looks for journeys/<Module>.journey.json. That's :674, the FAULT at :684, and the runner calls at :693 and :698. The issue cites :647-672; the lines have moved since 393d253. Five skills document only the single-file contract (journey-proof.md:318, module-brief.md:171 and others). The artifact row bin/lib/artifact-manifest.tsv:99 (${JOURNEY_DIR}/*.journey.json) is not recursive. Passing every file in one runner call fails all but one persona with INVALID (journey-runner.js:983-987). verify-module.sh has no lookup that maps a persona to its password. Value: Med. Modules with more than one journey get a false FAULT, or have to keep a hand-synced copy at the top level. Options:
Folder fallback, single persona. Use the folder only when there is no top-level file and every journey in it has the same persona; otherwise FAULT and name the mix. Update the manifest glob and the skills. Risk: low. Cost: S-M.
Option 1, plus one runner call per persona (and per-persona positive controls), reporting "N of M PASS, K personas". This needs a new TEST_PASS_<persona> convention. Risk: med. Cost: M. Runtime grows with the number of personas.
Document "one journey file per module" and point to the existing hint mechanism OTHER_SHAPE (:609-613).
Recommendation: Option 1 now. Option 2 once there is a credential convention for each persona. Decision needed from you: Do you accept journeys/<Module>/*.journey.json as a second official layout, and should one verify run cover more than one persona? Reply "go option N" to build it.
Fixed in #578 (squash a088b4e) for the reported FAULT: verify-module walks journeys/<Module>/*.journey.json in one run when the single file is absent (the single file still wins). Running once per persona folder is on the roadmap: #579.
Activity
MendixMau commentedon Oct 23, 2026
Triage: DISCUSS track. It adds a new on-disk journey layout to a gate rung (FAULT to PASS), changes the Stage-5 artifact glob, and makes the runner run once per persona (more runner calls, longer runs). Verified.
Problem: The journeys rung in
project-bin/verify-module.shonly looks forjourneys/<Module>.journey.json. That's:674, the FAULT at:684, and the runner calls at:693and:698. The issue cites:647-672; the lines have moved since 393d253. Five skills document only the single-file contract (journey-proof.md:318,module-brief.md:171and others). The artifact rowbin/lib/artifact-manifest.tsv:99(${JOURNEY_DIR}/*.journey.json) is not recursive. Passing every file in one runner call fails all but one persona with INVALID (journey-runner.js:983-987).verify-module.shhas no lookup that maps a persona to its password.Value: Med. Modules with more than one journey get a false FAULT, or have to keep a hand-synced copy at the top level.
Options:
TEST_PASS_<persona>convention. Risk: med. Cost: M. Runtime grows with the number of personas.OTHER_SHAPE(:609-613).Recommendation: Option 1 now. Option 2 once there is a credential convention for each persona.
Decision needed from you: Do you accept
journeys/<Module>/*.journey.jsonas a second official layout, and should one verify run cover more than one persona? Reply "go option N" to build it.Generated by Claude Code
fix(verify-module, tests): portability markers on the guarded pgrep; …
Bug sweep 2026-10-26: gates, runners, doctor, lint receipt, git hooks…
MendixMau commentedon Oct 26, 2026
Fixed in #578 (squash a088b4e) for the reported FAULT: verify-module walks
journeys/<Module>/*.journey.jsonin one run when the single file is absent (the single file still wins). Running once per persona folder is on the roadmap: #579.Generated by Claude Code