Wikipedia:Workflow improvements

Wikitext forms are awful! If I have to fill out another form that has {{subst:void}} or HTML comments everywhere, I'm going to get extremely irritated.

Let's replace wikitext forms with real forms. WP:RFPP is an example of this. You used to have to fill out this form, but now you can fill out this form.

There are multiple ways to proceed. We could go individually, process by process, making custom scripts for each. We could also try to come up with a way to let people specify a form in JSON, so that creating and editing forms would be easier. (Yes, this has been done before: for example, mw:Extension:FormWizard. But that's sort of stalled.)

We could go even further with the JSON idea: once you've specified a form, there should magically be a script that lets you review requests; there should be an archiving bot; and there should be a tool that lets you search through requests. Right now, for each process, these four things (requesting, responding, archiving, searching) all need to be done from scratch. That's a big waste of time.

So let's talk about this! The talk page is open for business.

Potential venues

 * WP:Edit requests
 * WP:RFPP - JS request form
 * WP:PERM - wikitext request form, search tool (broken)
 * WP:XfD - request form in Twinkle (works, no need to mess with it)
 * WP:RM/TR
 * WP:DYK - workflow too complicated, probably
 * WP:BRFA - user-script request form
 * WP:DRN - JS request form
 * WP:ANI - automatically leave notices on user talk pages!
 * WP:AFC/R
 * WP:Teahouse
 * WP:ITNC
 * WP:GAN
 * WP:EF/FP

Timeline
(Leaving out many previous attempts to do this, I'm sure...)
 * Community Wishlist Survey 2021/Miscellaneous/Input Forms
 * Village pump (idea lab)/Archive 37 - initial discussion, August 2021

Shared functionality

 * 1) Live preview. Perhaps have the user write a function to create the wikitext for the submission given the current state of the form inputs, then provide  ?
 * 2) Automatically add signature where possible - and indicate this clearly in preview.  ?
 * 3) Input validations. Provide  ?
 * 4) beforeunload handler: you shouldn't be able to accidentally navigate away from the form and lose any entered text.   (the handler goes through each form input and checks if any have non-default values)?
 * 5) Gracefully handling failures: If the browser crashes, you should be able to retrieve the "lost" content from the browser localStorage. If the submission failed for an unexpected reason, again the form contents entered should be recoverable.   (every N seconds, or every keystroke (TBD), form inputs saved to localStorage)?
 * 6) Transcluding requests:   (looks for exactly  ),   (for DYK or ITNC)
 * 7) Status log for displaying a list of status messages to the user as a request gets submitted