User story:
> As a user of a large watchlist, I want to be able to prepare for labelling my watched pages by adding, editing, and removing watchlist labels via Special:WatchlistLabels
This story is concerned with adding the **watchlist label manager** special page. It covers adding, editing, and removing labels in a table on the new special page. The interface is not implemented in Codex.
## Acceptance Criteria
* View list of existing labels for the current user.
* Add labels one at a time to the list.
* Edit and delete existing labels, one at a time.
## Notes
* No API is required.
* We'll use the standard MediaWiki PHP systems for creating the pagination, lists, forms etc. and not an SPA Vue app. This is because it likely be quicker and simpler to build.
* The form's displayFormat will be `codex`, but this has some limitations. This form is just a single text field though, so shouldn't be too complicated.
## Tasks
Tasks (to be created as separate Phab tasks once we've agreed on things):
* Add new feature flag `$wgEnableWatchlistLabels`, defaulting to false. {T408771}
* Create database schema for watchlist labels (adding two new tables, linking `watchlist` to labels, by actor). This is a separate #story, and a prerequisite to this one. {T406843}
* Add new special page `Special:WatchlistLabels` (probably a QueryPage) that lists all labels.
* Add new special page `Special:WatchlistLabel` (probably a FormSpecialPage) for creating and editing individual labels.
* Add a means of deleting individual labels.
## Designs
Original designs are [[https://www.figma.com/design/CdyroPkkcT7GJA9bwno0Rq/WE1.4-Task-priotization?node-id=327-15767&t=slljPYZk2ERhihoJ-1 | available on Figma]], and screenshots from there are copied here for reference:
| Main table | Dialogs
| {F66713095} | {F66713098}
These still need to be updated to match what will actually be built.