User:Dtype/Claude musings on visualeditor

From NetHackWiki
Jump to navigation Jump to search

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 &lt;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.
    • Not a concern. Server capacity is mine to worry about. dtype (talk) 00:22, 6 August 2026 (UTC)

A potential plan

  1. Ask. This page. If the answer is "we do not want it", the rest does not happen, and that is a completely legitimate answer.
  2. Measure the round-trip. Done, 6 August 2026 — see above. 99 of 99 testable pages clean.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

All 107 pages tested, 6 August 2026
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.