User:Dtype/Claude musings on visualeditor
This page was written by Claude, Anthropic's coding assistant, at Dtype's request, and published from his account. It is a discussion starter, not a proposal — nothing has been enabled, and nothing will be without the community asking for it. Corrections welcome; the technical claims below were measured against this wiki on 6 August 2026 rather than read out of documentation.
A forum thread from 2010 asked why the edit box shows raw markup. It was answered in 2011 with "that's just how a Wiki editing format is, you can't change it", and reopened in August 2026 with the observation that Wikipedia got VisualEditor in 2013. The 2011 answer is no longer true, so here is a proper look at it.
Updated 6 August 2026: the round-trip test proposed further down has now been run against 107 real pages from this wiki. Results are in What the test found, and every page tested is listed at the bottom.
The one thing actually up for discussion
If VisualEditor were ever switched on here, it would be off by default. Everyone who edits today would keep exactly the edit box they have now, and so would every anonymous editor. Turning it on for people who did not ask for it is not on the table and is not being argued for.
So the question is not "should VisualEditor be the default" — the answer to that is no. The question is only should it be available at all, for editors who go into their preferences and tick a box.
That is a much smaller question than the one Wikipedia fought about in 2013, and it is worth keeping the two separate. Almost everything ever written in anger about VisualEditor was about being switched to it without being asked.
Current state
The wiki runs MediaWiki 1.43.9. VisualEditor has shipped inside MediaWiki core since version 1.35, so it is already sitting on the server, unused — it is present in the installation, it is not switched on in the configuration, and it never has been.
The thing that used to make this hard on a small wiki is genuinely gone: VisualEditor used to need Parsoid running as its own separate Node.js server, which was real infrastructure to run and keep alive. Parsoid has been part of MediaWiki core since 1.35 and VisualEditor has talked to it directly since 1.38. Enabling it here is a one-line configuration change — no download, no new server, no downtime.
So the cost of trying it is low and the cost of undoing it is one line. That is not the interesting part, and it should not be mistaken for the interesting part.
What the test found
The concern that actually mattered was "dirty diffs" — the worry that when VisualEditor saves, it rewrites parts of the page nobody touched, so a one-sentence fix shows up in the history as though someone reformatted the whole article. This is a real and well-documented failure mode of visual editing over wikitext, and this wiki's content — hand-tuned tables, ASCII art, dungeon maps, heavy templates, custom tags — is close to the worst case for it.
That has now been measured rather than guessed at, and it came back clean.
- 107 pages were tested: every page on the wiki's existing per-extension test list, plus 40 randomly chosen articles, plus the 15 largest articles on the wiki, plus every page using
<timeline>or<imagemap>. - 99 of them could be tested, and all 99 came through with no damage at all. Not one line of collateral change on any page.
- 8 could not be tested, because there was no ordinary prose paragraph to simulate an edit in — they are entirely template output, or have no paragraphs at all. Those are unmeasured, not clean. They are marked as such in the table at the bottom.
- The largest article on the wiki, EvilHack at 263,032 bytes of wikitext, came through clean.
The test worked by taking each page, simulating a person editing one sentence in it, saving it back through the same machinery VisualEditor uses, and then counting every line that changed other than the sentence that was deliberately edited. That count was zero, on every page that could be tested. Nothing was actually saved to the wiki and nothing was enabled — the whole thing was read-only.
The custom tags specifically
The particular fear was this wiki's own extensions, which have no VisualEditor-specific support and rely on a generic fallback. Every one of them has now been covered, and all are clean:
| Tag | Pages using it on this wiki | Tested | Result |
|---|---|---|---|
<replacecharsblock> |
262 | 7 | clean |
<simpletabs> |
66 | 6 | clean |
<math> |
— | 11 | clean |
<forum> |
5 | 3 | clean |
<timeline> |
5 | all 5 | clean |
<imagemap> |
3 | all 3 | clean |
<charinsert> |
1 | the 1 | clean |
<section> |
— | 1 | clean |
<categorytree> |
0 | — | nothing to test |
That includes the Sokoban and Big Room pages, whose dungeon-map art is about as unforgiving as wikitext on this wiki gets, and User:Lysdexia/Template:NetHack StreamTimeline at 23,625 bytes.
A correction to an earlier version of this page. It said <timeline> and <categorytree> were untested because "essentially nothing on the wiki uses them". That was wrong about <timeline>, and it was wrong in a way this wiki has already had to correct once: the July upgrade notes claimed "0 pages used it" and dropped EasyTimeline on that basis, which was raised at Forum:Interim fix for NetHack timeline template and put right. I repeated the same shape of claim from the same bad habit — trusting a count instead of checking it.
The counts above come from reading every one of the wiki's 38,577 pages through MediaWiki itself. The earlier zeros came from pattern-matching over storage that does not contain what it appears to: an XML dump escapes wikitext, so <timeline is stored as <timeline and never matches, and a direct database query cannot see the 112,762 compressed and 61,693 externally-stored revisions either. Both methods return zero and look fine. <categorytree> really is 0; <timeline> never was.
All five <timeline> pages have now been tested, rather than counted and dismissed. They are in the table at the bottom.
What the test does not tell you
- It tested the conversion, not the editing interface. Whether VisualEditor is pleasant to use on a page full of NetHack templates is a separate question, and one that only actually trying it answers.
- It cannot say anything about the 8 unmeasured pages.
- It is a 107-page sample of a 38,577-page wiki. It is a well-chosen sample, deliberately loaded with the pages most likely to break, and for the rarer tags it is every page that uses them — but for ordinary articles it is a sample.
Plusses
- It removes a real barrier for new and occasional editors. This is the entire case for it. Someone who wants to fix a typo, correct a monster's stats, or add a sentence should not have to learn table syntax and template invocation first. That is what the original forum question was actually about.
- It is normal software now, not an experiment. It has been in production on Wikipedia for over a decade and bundled with MediaWiki for five years.
- It is genuinely good at some things wikitext is bad at — tables, references, and links being the obvious three.
- It costs nothing to the people who do not use it. With it off by default, an editor who never opts in sees no change whatsoever to their edit tab, their toolbar, or their preferences, apart from one new checkbox appearing in the editing preferences.
- It is reversible in a way almost nothing else is. Every VisualEditor save is an ordinary revision, with ordinary history, diffs, undo and rollback. There is no database migration and no permanent change to anything.
- The dirty-diff objection did not survive testing, which was the one concrete technical reason to say no.
Minuses
- Experienced editors mostly will not want it. The durable criticism of VisualEditor, quite separate from the 2013 politics, is that source editing is faster, more precise and more capable, and that VisualEditor is slow on long articles. That is likely to be true for most of the people currently doing the editing here. This is probably the strongest remaining argument, and it is an argument for keeping it optional rather than against having it.
- Dirty diffs are still possible, just not common. The test simulated an ordinary edit to ordinary prose. Someone editing inside an unusual construct, or on one of the pages that could not be tested, can still produce a messy diff. The evidence says this is the exception rather than the rule; it does not say it never happens.
- One edit can affect many pages. A bad VisualEditor save on a heavily-used template propagates everywhere that template is used, until someone reverts it. Still one revert — but worth knowing.
- Templates are awkward without TemplateData, and TemplateData has its own cost. Without it VisualEditor shows templates as boxes with no description of what their parameters mean. The obvious answer is to switch TemplateData on — but as ais523 put it in the IRC discussion: "I would be mildly against enabling TemplateData: it's probably unreasonable to expect people to annotate every template to make it work well with VisualEditor, and if someone did do that it would be pretty spammy." That is a fair objection and it is not answered by any of the testing above. TemplateData is per-template hand-written annotation, and this wiki has a lot of templates.
- It is not free for the server, in proportion to how much it is used. VisualEditor causes a second, larger cached copy of a page to be generated and stored, and each conversion holds a worker process and a database connection for longer than a normal page view.
A potential plan
- Ask. This page. If the answer is "we do not want it", the rest does not happen, and that is a completely legitimate answer.
Measure the round-trip.Done, 6 August 2026 — see above. 99 of 99 testable pages clean.- Decide. The technical objection has been tested and did not hold up. What is left is a judgement call about whether the wiki wants a visual editor available at all, which is not a question evidence can settle.
- If it goes ahead: off by default, opt-in only, announced. A checkbox in preferences, a note on the village pump or equivalent, and a plain statement that source editing is unchanged and is not going anywhere.
- Decide TemplateData separately, and probably later. It is what makes the template experience good, and it is also per-template manual work that somebody has to do and maintain. ais523 is mildly against it on those grounds. Nothing forces the two decisions together, and it can be added for a handful of heavily-used templates without touching the rest.
- Watch, and be willing to turn it back off. Recent Changes will show which edits came from VisualEditor. If it produces messy diffs in practice, reverting the decision is one line, and it should be treated as a genuine option rather than a defeat.
Summary
The software works, it is already installed, enabling it is trivial, and the one concrete technical objection — that it would mangle this wiki's more complicated pages — was tested against 107 real pages and did not hold up.
None of that is an argument for doing it. It only means the decision is no longer a technical one.
What is left is a judgement call for the people who actually edit here: is an opt-in visual editor worth having available for people who find wikitext a barrier? Most current editors will not use it. That is not an argument against offering it, but it does mean the people voting on this are mostly not the people it is for.
Default off, either way.
Complete test results
Every page tested on 6 August 2026. "Clean" means a simulated one-sentence edit was made and saved back through VisualEditor's conversion machinery, and no line changed other than the edited one. "Not measured" means there was no ordinary paragraph to place a test edit in — those pages are unknown, not clean.
| Page | Namespace | Wikitext bytes | Result | Note |
|---|---|---|---|---|
| Alignment record | (article) | 39,762 | clean | |
| Arrow | (article) | 9,681 | clean | |
| Bard (player monster) | (article) | 2,195 | clean | |
| Bell of Opening | (article) | 4,906 | clean | |
| Big Room | (article) | 36,585 | clean | |
| Black fungus | (article) | 2,741 | clean | |
| Bugle/zh-CN | (article) | 5,890 | clean | |
| Bugs in NetHack 3.4.3 | (article) | 169,403 | clean | |
| Bugs in NetHack 4 | (article) | 77,556 | clean | |
| Category:Monsters | Category | 330 | clean | |
| Colors | (article) | 98,456 | clean | |
| Death | (article) | 275 | clean | |
| DNetHack artifacts | (article) | 133,092 | clean | |
| DNetHack from Nethack | (article) | 9,136 | clean | |
| Doom knight | (article) | 5,953 | clean | |
| Droven dagger | (article) | 5,349 | clean | |
| DynaHack | (article) | 86,408 | clean | |
| Elbereth | (article) | 22,340 | clean | |
| Ent (EvilHack) | (article) | 2,765 | clean | |
| EvilHack | (article) | 263,032 | clean | |
| Excalibur | (article) | 14,526 | clean | |
| Expert trait | (article) | 150,404 | clean | |
| Floating eye | (article) | 17,812 | clean | |
| Forum:Interim fix for NetHack timeline template | Forum | 19,607 | clean | |
| Forum:Watercooler | Forum | 1,736 | clean | |
| Fountain | (article) | 24,649 | clean | |
| Glowing eye | (article) | 1,752 | clean | |
| Gnomish Mines | (article) | 12,875 | clean | |
| Grid bug | (article) | 4,893 | clean | |
| Guardian | (article) | 200 | clean | |
| Hack'EM | (article) | 105,185 | clean | |
| Healing spells | (article) | 578 | clean | |
| Healthstone | (article) | 2,385 | clean | |
| Help:Namespaces | Help | 12,165 | clean | |
| Hill giant | (article) | 6,293 | clean | |
| I | (article) | 2,341 | clean | |
| Ilsensine | (article) | 9,025 | clean | |
| Junethack/FAQ/Archive | (article) | 2,241 | clean | |
| Key | (article) | 377 | clean | |
| Lunatic | (article) | 3,432 | clean | |
| Magicbane | (article) | 16,026 | clean | |
| Makedefs | (article) | 1,262 | clean | |
| Meat stick/zh-CN | (article) | 1,444 | clean | |
| MediaWiki:Edittools | MediaWiki | 2,639 | clean | |
| Medusa | (article) | 20,696 | clean | |
| Mjollnir | (article) | 15,364 | clean | |
| Module:Coderef/doc | Module | 1,715 | clean | |
| Monster (Hack'EM)/Full list | (article) | 245,083 | clean | |
| Monster behavior | (article) | 20,166 | clean | |
| Mordor orc | (article) | 6,643 | clean | |
| NetHack brass as a patch | (article) | 135,757 | clean | |
| NetHack/nh-timeline.py | (article) | 8,117 | clean | |
| NetHackWiki:Sandbox | Project | 61,748 | clean | |
| NetHackWiki:Software updates/2026 MediaWiki 1.43 | Project | 20,047 | clean | |
| NetHackWiki:Software updates/2026 MediaWiki 1.43/EasyTimeline example | Project | 12,548 | clean | |
| Neutral Quest (dNetHack) | (article) | 91,473 | clean | |
| Newt | (article) | 4,943 | clean | |
| Orc zombie | (article) | 3,672 | clean | |
| Owlbear | (article) | 6,765 | clean | |
| Pacifist/screen | (article) | 2,581 | clean | |
| Partial intrinsic | (article) | 3,074 | clean | |
| Potion of object detection | (article) | 10,557 | clean | |
| Priest of Ib | (article) | 3,036 | clean | |
| Quadruped | (article) | 4,976 | clean | |
| Rebel leader | (article) | 4,860 | clean | |
| Rnz | (article) | 16,306 | clean | |
| Scroll of mass murder | (article) | 1,879 | clean | |
| Skeleton | (article) | 8,455 | clean | |
| Sokoban | (article) | 33,945 | clean | |
| Sokoban (SLASH'EM) | (article) | 16,491 | clean | |
| Sokoban (UnNetHack) | (article) | 19,695 | clean | |
| Sonic | (article) | 368 | clean | |
| Source:NetHack 3.4.3/src/artifact.c | Source | 101,621 | clean | |
| Source:NetHack 3.6.0/dat/Arch.des | Source | 30,738 | clean | |
| Source:NetHack 3.6.0/dat/bigroom.des | Source | 48,017 | clean | |
| Source:NetHack 3.6.0/dat/castle.des | Source | 16,042 | clean | |
| Source:NetHack 3.6.1/src/mon.c | Source | 274,530 | clean | |
| Spellbook | (article) | 68,842 | clean | |
| Spellbook of fireball | (article) | 18,751 | clean | |
| Spellbook of knock | (article) | 5,824 | clean | |
| Spirits (dNetHack) | (article) | 97,536 | clean | |
| Staff of matter (SporkHack) | (article) | 1,244 | clean | |
| Talk:Slash'EM Extended | Talk | 78,368 | clean | |
| Template:ClickA | Template | 311 | clean | |
| Template:Monster | Template | 6,315 | clean | |
| Template:Random ttymap | Template | 444 | clean | |
| Template:Timeline of NetHack | Template | 2,061 | clean | |
| Tileset | (article) | 5,365 | clean | |
| User:Dtype/Claude ramblings on timeline fonts | User | 17,245 | clean | |
| User:Jonadab/DungeonOverhaul | User | 209,922 | clean | |
| User:Lysdexia/Template:NetHack StreamTimeline | User | 23,625 | clean | |
| User:Paxed/SimpleTabs | User | 2,476 | clean | |
| User:Paxed/Template:dicemin | User | 1,689 | clean | |
| Vecna's Domain | (article) | 12,496 | clean | |
| XNetHack | (article) | 134,490 | clean | |
| Yeenoghu | (article) | 8,849 | clean | |
| Yochlol | (article) | 9,073 | clean | |
| You sense a pointy hat on top of your head | (article) | 407 | clean | |
| Yuki-onna (starting race) | (article) | 4,301 | clean | |
| Amul-343.txt | (article) | 7,025 | not measured | all paragraphs are template output |
| Help:Contents | Help | 37 | not measured | no paragraphs on the page |
| Main Page | (article) | 3,357 | not measured | all paragraphs are template output |
| Monster resistances | (article) | 152,498 | not measured | all paragraphs are template output |
| Monster resistances (UnNetHack) | (article) | 167,056 | not measured | no paragraphs on the page |
| NetHackWiki:Technical issues | Project | 42,243 | not measured | generated content — no editable prose |
| Sir Garland | (article) | 565 | not measured | all paragraphs are template output |
| User:Paxed/test6 | User | 244 | not measured | no paragraphs on the page |
Written by Claude (Anthropic) on 6 August 2026, at Dtype's request, and published from his account — I do not have one of my own. Technical claims were measured against this wiki's live installation on that date. Replies to User talk:Dtype.