Conclusion
This page sums up the macro audit of October 2026 once its triage was finished. The numbers are a snapshot taken on 27 October 2026: the Per macro analysis and the Triage keep the live figures, which change as the tickets are fixed.
The audit in numbers
| Macros audited and reviewed | 67, on XWiki 18.8.0: 19 wrappers, 47 generators, 1 special |
|---|---|
| Parameters checked | 305, content included |
| Criteria | 18 macro criteria checked once per macro, 10 configuration criteria checked once per parameter |
| Results | 3348 OK or KO results, N/A left out |
| KOs | 944, 28% of the results: 422 on macro criteria, 522 on configuration criteria |
| Macros with at least one KO | 65 of 67 |
| JIRA tickets mapped to the KOs | 170: 58 existing, 112 new |
| KOs with a ticket | 944 of 944. 890 have a ticket fixing them on their own, the other 54 are fixed by several partial tickets together |
What fails most
Five criteria fail for most of the macros they apply to, which points to the macro system or the WYSIWYG editor rather than to each macro:
- E2 errors, 0 OK for 58 KO: an invalid parameter value is silently replaced or gives an error that names neither the parameter nor the expected value.
- E6 inplace, 0 OK for 20 KO: the content of a macro cannot always be edited in place. The Edit Macro dialog shows it as a wiki syntax text area, and an inline macro loses in-place editing.
- D4 quick-action, 51 KO for 14 OK: a common synonym of the macro name finds nothing in Quick Actions.
- L2 doc-parameters, 51 KO for 14 OK: the parameter tables of the documentation drifted from the descriptors, mostly on the legacy extension pages.
- D2 summary, 49 KO for 16 OK: the description mostly repeats the macro name.
On the configuration side, the most KOs are on C1 clarity, 144 parameters, almost half of them, C4 input-assistance, 104, and C5 groups, 89. C13 constraints fails for 65 of the 105 parameters it applies to.
The KOs gather on the generator macros with many parameters: attachmentSelector 46, notifications 45, tree 41, tableToChartJS 38, liveData 37, documentTree 34, documents 33 and jira 33. These 8 macros hold 307 KOs, a third of the total.
Few tickets cover most KOs
Ranking the tickets by the KOs they add to the ones already covered, a few of them go a long way: the first 6 tickets cover 25% of the KOs, 18 cover half, 48 cover 75% and 99 cover 90%, the points marked on the curve. The curve stops at 94.3%, after 138 tickets: the other KOs are only fixed by several partial tickets together.
Half of the KOs depend on 18 tickets, and the last quarter is spread over more than a hundred small ones, most of them about a single macro. Only 2 of the 170 tickets are closed.
Next step priorities
Ordered by KOs fixed for the work involved.
- Quick wins. XWIKI-25468, moving the six notifications preferences macros to the Internal category, covers 62 KOs with a change of descriptor. XWIKI-25444, search keywords for Quick Actions and the Insert Macro dialog, covers 46 KOs, mostly D4, once the keywords are filled.
- Shared fixes of the macro system. One change each, for many macros at once:
- parameter validation and error messages, XCOMMONS-3847 and XRENDERING-823, which together fix the 58 E2 KOs;
- a range or a format for a parameter value, XWIKI-25197, 51 KOs, and numeric fields that only accept numbers, XWIKI-25182, 38 KOs;
- block macros in tables and lists, XWIKI-23501, 25 KOs;
- a provider of values for a parameter, XWIKI-23045, 24 KOs.
- Documentation. XINFRA-525, the parameters of the macros in the new documentation, 51 KOs, and XINFRA-526, an example of the most common use for each macro, 20 KOs. This is writing, not code, and can go along with the migration of the documentation.
- The Edit Macro dialog of the worst macros. Regrouping, ordering and describing the parameters of the page list and tree macros, XWIKI-25472 and XWIKI-25470, 68 KOs, of the Attachment Selector, XWIKI-25474, 24 KOs, of the chart, liveData and dashboard macros, XWIKI-25484, 20 KOs, and of the notifications macro, XWIKI-23835, 21 KOs.
- The long tail. The remaining tickets, about one macro each, best picked up when that macro is worked on for another reason.
Once the shared fixes are in, a second audit on the version that ships them would measure their effect, against the same frozen criteria.