Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
300a80e
fix(build-plan-status): --refresh keeps an existing build-plan.json c…
MendixMau Oct 16, 2026
eb7cc80
inbox: five field notes from an existing-app legacy-widget rebuild (f…
MendixMau Oct 16, 2026
591b053
learn(multilingual-app): source language, enabled languages, starting…
MendixMau Oct 16, 2026
d99c83d
new(brd-report): process map at the top, open-questions folded in (#438)
MendixMau Oct 16, 2026
32266fa
fix(process-map): migrate follow-ups from the #438 review (#453)
MendixMau Oct 16, 2026
59cb777
new(progress-report): replace build-plan.html with a progress report …
MendixMau Oct 16, 2026
8704922
fix(progress-report): polish counts, stage 0 pending, calm no-log lin…
MendixMau Oct 16, 2026
2dc10de
fix: v1.0 release review fixes (dashes, stale hook warning, worktree …
MendixMau Oct 16, 2026
e346bd2
fix(build-plan-status): read every skill-listed State the same way as…
MendixMau Oct 16, 2026
f266192
fix(progress-report): fold the full plan tables under the phase cards…
MendixMau Oct 17, 2026
618e1b3
learn(load-test): the 6-session cap and 2-4 h stop of an unlicensed l…
MendixMau Oct 17, 2026
dc840ee
fix(exec): pause the project watcher during the gate and retry once o…
MendixMau Oct 17, 2026
02e4366
fix(exec): keep the gate's full mxbuild output in a per-run log (#452)
MendixMau Oct 17, 2026
73e7d65
fix(exec): restore toolkit lint rules after mxcli's session-start re-…
MendixMau Oct 18, 2026
a305717
fix(doctor): pick the arm64 mxcli on Windows ARM64; document --yes fo…
MendixMau Oct 18, 2026
856127d
fix(process-map): show answers and decisions; count only what is stil…
MendixMau Oct 18, 2026
2d80287
fix(windows): Git Bash MSYS paths and Windows session logs in brd-rep…
MendixMau Oct 18, 2026
fdf1485
docs(release): v1.0 notes, performance first (#428)
MendixMau Oct 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ git clone https://github.com/MendixMau/mxcli-project-toolkit.git ~/Mendix/mxcli-

1. **`doctor.sh`** names any missing prerequisite (bash, Python 3, sqlite3, line endings, mxcli,
mxbuild) and exits non-zero if a stage would break. `doctor.sh --install <project>` fetches
mxcli and mxbuild after showing the plan and asking. Windows and Linux: read
mxcli and mxbuild after showing the plan and asking (an agent or any shell with no terminal
must add `--yes`, or nothing is downloaded). Windows and Linux: read
[Platform support](#platform-support) first.
2. **`init-project.sh`** scaffolds the project folder: `intake.md`, `PROJECT.md`,
`CLAUDE.local.md` (the wiring every session reads), the six agent stubs, `bin/` instruments
Expand Down Expand Up @@ -251,7 +252,8 @@ they would have saved, restarted or reopened it. Everything either side of that
> ```
>
> `bin/doctor.sh --install <project>` closes the gap without Studio Pro: it fetches a
> version-matched mxbuild that `exec.sh` then finds on its own.
> version-matched mxbuild that `exec.sh` then finds on its own. With no terminal to answer the
> prompt (an agent, CI), add `--yes`: `bin/doctor.sh --install --yes <project>`.

**Existing clone from before 2026-08-18?** You predate `.gitattributes`, so if git checked the
scripts out with CRLF they will not run. Fix once:
Expand Down Expand Up @@ -605,7 +607,8 @@ Every mxcli project has a `.ai-context/skills/` directory (bundled by `mxcli ini
|---|---|
| Dispatching a build step to a helper — generate its one-file pack (the brief's Build steps row, mxcli brain brief, live DESCRIBEs, example, folder) and hand over the path instead of a reading list. Measured: 25-38% fewer tool calls and 30-41% less time, same quality; the token saving is not proven | `project-bin/context-pack.sh` |
| An exec.sh guard refused a write (not a permission prompt), or building a module with mxcli — verified, iterative, coverage-checklist gated; on a refusal: commit, wait or stop, never FORCE_EXEC | `skills/iterative-build-loop.md` |
| After marking a module done, or any time "how much is built vs proven" is asked — renders build-plan.html from done- prefixes and verify-module.sh/improvement-register.md, kept as two honestly separate views; --json writes architecture/build-plan.json parsed from build-plan.md's Phase headings (a plan with no Phase headings gets no file) | `project-bin/build-plan-status.sh` |
| Adding a second language, a language picker or a translation script — and the moment a language picker errors, shows a blank label or changes nothing: source language, enabled languages, the user's starting language, a switch a non-admin role can use | `skills/learned-multilingual-app.md` |
| After marking a module done, or any time "how much is built vs proven" is asked — renders progress-report.html from done- prefixes and verify-module.sh/improvement-register.md, kept as two honestly separate views; --json writes architecture/build-plan.json parsed from build-plan.md's Phase headings (a plan with no Phase headings gets no file); --refresh keeps an existing build-plan.json current but never creates one | `project-bin/build-plan-status.sh` |
| Turning a client-derived Mendix app into a clean, shareable demo with zero client fingerprint — branding, data, custom widgets | `skills/anonymize-client-app-for-demo.md` |
| Handing a headless-built model to a person — opening it in Studio Pro, a free sandbox, or a colleague's machine: the model travels, the demo data and runtime config (keys, an agent's bound model) do not, and each needs its own re-establish step | `skills/handoff-to-studio-pro.md` |
| Stage 5 start, before the first module of any entry mode — one entity, flow, page, nav, demo user, journey and screenshot proven in the running app, so build/run/look/test are known to work before a module depends on them | `skills/walking-skeleton.md` |
Expand Down
3 changes: 2 additions & 1 deletion ROUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ picks the row up. That is the whole procedure — there is no second list to rem
| Before any mxcli exec / exec.sh / --mcp write — ask or run? the knob decides | `bin/exec-approval.sh` | mdl,gate | 5,6 | baseline |
| Dispatching a build step to a helper — generate its one-file pack (the brief's Build steps row, mxcli brain brief, live DESCRIBEs, example, folder) and hand over the path instead of a reading list. Measured: 25-38% fewer tool calls and 30-41% less time, same quality; the token saving is not proven | `project-bin/context-pack.sh` | mdl | 5 | ondemand |
| An exec.sh guard refused a write (not a permission prompt), or building a module with mxcli — verified, iterative, coverage-checklist gated; on a refusal: commit, wait or stop, never FORCE_EXEC | `skills/iterative-build-loop.md` | mdl,gate | 5 | ondemand |
| After marking a module done, or any time "how much is built vs proven" is asked — renders build-plan.html from done- prefixes and verify-module.sh/improvement-register.md, kept as two honestly separate views; --json writes architecture/build-plan.json parsed from build-plan.md's Phase headings (a plan with no Phase headings gets no file) | `project-bin/build-plan-status.sh` | architect,gate,review | 4,5,6 | ondemand |
| Adding a second language, a language picker or a translation script — and the moment a language picker errors, shows a blank label or changes nothing: source language, enabled languages, the user's starting language, a switch a non-admin role can use | `skills/learned-multilingual-app.md` | architect,mdl,review | 3,5,6 | ondemand |
| After marking a module done, or any time "how much is built vs proven" is asked — renders progress-report.html from done- prefixes and verify-module.sh/improvement-register.md, kept as two honestly separate views; --json writes architecture/build-plan.json parsed from build-plan.md's Phase headings (a plan with no Phase headings gets no file); --refresh keeps an existing build-plan.json current but never creates one | `project-bin/build-plan-status.sh` | architect,gate,review | 4,5,6 | ondemand |
| Turning a client-derived Mendix app into a clean, shareable demo with zero client fingerprint — branding, data, custom widgets | `skills/anonymize-client-app-for-demo.md` | mdl,review | 6 | ondemand |
| Handing a headless-built model to a person — opening it in Studio Pro, a free sandbox, or a colleague's machine: the model travels, the demo data and runtime config (keys, an agent's bound model) do not, and each needs its own re-establish step | `skills/handoff-to-studio-pro.md` | test,review | 6,7 | ondemand |
| Sharing the project with a colleague on Mendix Team Server while the build loop stays on GitHub — content-transplant snapshots between the two clones (status/push/pull); SUPERSEDED by platform-link.md §3 (adopt without rewriting history, field-proven) — only if that path fails; UNPROVEN against a real Team Server | `project-bin/ts-sync.sh` | mdl,gate | 6,7 | experimental |
Expand Down
1 change: 1 addition & 0 deletions agents/architect-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ This table is your whole list. The baseline table in the project's CLAUDE.local.
| `skills/brd-to-build-plan.md` | Turning BRDs plus architecture into a numbered, dependency-ordered build plan |
| `skills/coverage-ledger.md` | Building the Stage 4 coverage ledger |
| `bin/coverage-check.sh` | Checking a coverage ledger against its BRD |
| `skills/learned-multilingual-app.md` | Adding a second language, a language picker or a translation script |
| `skills/mendix-agents.md` | Building a Mendix AI agent |
| `skills/company-brain.md` | Setting up or wiring a COMPANY BRAIN |
| `skills/close-the-loop.md` | Cutover and retrospective |
Expand Down
2 changes: 1 addition & 1 deletion agents/ba-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ This table is your whole list. The baseline table in the project's CLAUDE.local.
- Run the full interview protocol from `conversion-runbook.md` §1 at every gate: homework first, 2-4 options with evidence, assumptions stated out loud, user answers in the terminal, decision written to the stage HTML *and* `PROJECT.md`, unknowns default + `ASSUMED` + proceed.
- Never invent legacy intent from code alone — that's what Path C (the SME interview) is for. Log it as an open question if no SME is available, don't guess.
- **Logging an open question is half the job. Raising it is the other half** — see the Open-questions batch below. A question written to a BRD and never put in the chat is not "logged", it is buried.
- **Read `interview-protocol.md` before raising anything.** Every question you hand over carries two named options and your recommendation; a bare question moves your analysis onto the user. Generate `docs/open-questions.html` with `bin/questions-report.sh` and give them the path.
- **Read `interview-protocol.md` before raising anything.** Every question you hand over carries two named options and your recommendation; a bare question moves your analysis onto the user. Generate `analysis/brd-report.html` with `bin/brd-report.sh` and give them the path.
- `✋` gates (Stages 0 and 7) do not resolve to `ASSUMED` — they need an explicit `CONFIRMED` answer before the run proceeds.

## Workflow
Expand Down
1 change: 1 addition & 0 deletions agents/mdl-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ This table is your whole list. The baseline table in the project's CLAUDE.local.
| `skills/mdl-cookbook-microflows.md` | Writing MDL microflow scripts |
| `skills/build/mdl/oneshot-mdl-method.md` | Writing a single MDL script that takes a project from nothing to a working vertical slice |
| `skills/learned-page-patterns.md` | Building and auditing Mendix pages, or starting a UI fix round across many pages |
| `skills/learned-multilingual-app.md` | Adding a second language, a language picker or a translation script |
| `skills/oneshot-page-structure-patterns.md` | Generating a whole page tree in one script |
| `skills/mendix-agents.md` | Building a Mendix AI agent |
| `skills/mendix-agent-ui.md` | Embedding a copilot chat panel |
Expand Down
1 change: 1 addition & 0 deletions agents/review-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ This table is your whole list. The baseline table in the project's CLAUDE.local.
| `skills/module-dependency-review.md` | Judging module tangles, bidirectional pairs, cohesion and hubs from analysis/app-facts/dependencies.json; stock graph_module_* views split names on the first dot and are not trusted |
| `skills/microflow-loop-antipatterns.md` | Reading what loop bodies do (LOOP_TQ, deferred commit, nested loop, REST in loop, transaction control per item, scheduled-event reachability) from described MDL; the catalog holds top-level activities only and cannot see inside a loop |
| `skills/process-map.md` | At Stage 2 close (draft, before the questions are raised) and again after the wireframes (Stage 3 re-render), when a reviewer cannot tell where the open questions and ASSUMED decisions fit: one swimlane map per process, each step on its wireframe, every question pinned to a step (project-bin/process-map.js validate, anchor, build) |
| `skills/learned-multilingual-app.md` | Adding a second language, a language picker or a translation script |
| `project-bin/conformance-check.sh` | Running the ledger rung alone |
| `project-bin/graph-sweep.sh` | Running the wiring rung alone |
| `skills/fixture-seeding.md` | Seed data, test data, demo data or fixtures are needed, or pages come up empty |
Expand Down
Loading
Loading