AMC features were designed to be configurable so that they could be enabled separately. Currently the set of features of AMC includes 2 features that are enabled when $MFAdvancedMobileContributions is true. This is a problem as it means it makes promoting these between modes e.g. all stable users will be tricky later.
The features are:
* Menu changes - a personal menu in the top right corner when logged in (grayed out silhouette)
* different items in the main hamburger menu
Another problem is that the icon packs for the menu changes are shared with the icon pack for stable - these should be cut into 2 modules, to make it clearer which icons are actually associated with this feature.
= Acceptance criteria
[] The menu changes are guarded by dedicated feature flags: $wgMinervaPersonalMenu and $wgMinervaAdvancedMainMenu
[] Personal menu icons inside skins.minerva.mainMenu.icons should be split out into their own ResourceLoader module and separated from the standard experience.
= Developer notes
* Menu changes - a personal menu in the top right corner when logged in (grayed out silhouette) and different items in the main hamburger menu which is not configurable and turned on whenever $MFAdvancedMobileContributions is true.
* 'page' and 'discussion' tabs at the top of the page configured via $wgMinervaTalkAtTop
* a history link at the top of the page configured via $wgMinervaHistoryInPageActions
* the history link will point to either Special:MobileHistory or the desktop history page depending on the value of $wgMFUseDesktopSpecialHistoryPage
* an overflow menu (three dots) will appear with additional links based on the value of $wgMinervaOverflowInPageActions
The following configuration provides the entire AMC experience:
```
$wgMFAdvancedMobileContributions = true;
$wgMinervaTalkAtTop = [
"base" => false,
"beta" => false,
"amc" => true, // enable in AMC and desktop
];
$wgMFUseDesktopSpecialHistoryPage = [
"base" => false,
"beta" => false,
"amc" => true,
];
$wgMinervaHistoryInPageActions = [
"base" => false,
"beta" => false,
"amc" => true,
];
$wgMinervaOverflowInPageActions = [
"base" => false,
"beta" => false,
"amc" => true,
];
== Problems
1) It's not possible to disable the menu changes via the feature flag without disabling the entirety of AMC
2) Currently toggling any of these features on ships the CSS and JS for all the features using modules that mix responsibilities - these are skins.minerva.amc.styles (contains all styles for AMC), wikimedia.ui (contains majority of icons) and skins.minerva.mainMenu.icons (mixes icons for stable which are loaded via JavaScript and AMC which require JS - ideally this should be its own icon pack)
```
= QA steps (exploratory)
This change should not have made any visible changes to the AMC mode. Some exploratory testing of the beta cluster e.g. https://en.m.wikipedia.beta.wmflabs.org/wiki/Spain would be useful to confirm that is the case. ie. all the AMC features should be displaying as they did before. Specifically, check for any icons that might be missing and any UI regressions inside the personal menu (user icon in the top right of screen) and main menu (when you click the hamburger icon in top left of header)
[] Check
https://he.m.wikipedia.beta.wmflabs.org to confirm RTL is also working as before