The Research team is supporting T&S for another iteration of the Community Safety survey. As updates to the QuickSurvey tool have happened since 2024, we will want to again test the survey at 0 coverage on the surveyed projects, and then increase coverage once we confirm everything is working.
We intend to collect responses on these wikis:
- enwiki
- eswiki
- fawiki
- frwiki
- jawiki
- ptwiki
===Success Criteria===
[] Double-check whether we need to specify `userInGroup` in order to remove temp accounts from being sampled (see note in Example code)
[] Monday, 5 January 2026 (est.): 0 coverage - Launch the survey on enwiki, eswiki, fawiki, frwiki, jawiki, and ptwiki at zero coverage to test the survey for 1 day.
[] Tuesday, 6 January 2026 (est.): Increase coverage to specification for each project to collect data (estimated 1 week)
[] Tuesday, 13 January 2026 (est.): Undeploy surveys once data collection is complete.
===Example code===
Taken from the [[ https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/1084183/2/wmf-config/InitialiseSettings.php#b11120 | undeployment of the 2024 survey ]] (definitely double-check me please!)
NOTE: We may need to add the `userInGroup` parameter to only target editors who are in the `user` group in order to remove temp accounts from being sampled, as the `anon` function will only filter out readers after the implementation of temp accounts - based on
1) [[ https://www.mediawiki.org/wiki/Extension:QuickSurveys#Defining_an_audience | QuickSurveys Defining an Audience ]]; 2) [[ https://www.mediawiki.org/wiki/Manual:User_rights#Predefined_groups | User rights Predefined groups ]]; and 3) [[ https://www.mediawiki.org/wiki/User_account_types | User account types differentiating IP, temp, and permanent users ]].
I have added `"userInGroup" => [ 'user' ],` under audience, please make sure to check it's correct!
[
'name' => 'T413022 Safety Survey',
'type' => 'internal',
"confirmMsg" => "ext-quicksurveys-internal-gdi-safety-survey-endmessage",
"privacyPolicy" =>
"ext-quicksurveys-internal-gdi-safety-survey-privacy-policy",
"enabled" => true,
// T413022
"coverage" => 0, // increase to deploy
"platforms" => [ "desktop" => [ "stable" ], "mobile" => [ "stable" ] ],
"audience" => [
"anons" => false,
"userInGroup" => [ 'user' ],
"minEdits" => 5
],
"questions" => [
[
"name" => "ext-quicksurveys-internal-gdi-safety-survey-question",
"layout" => "single-answer",
"question" => "ext-quicksurveys-internal-gdi-safety-survey-question",
"answers" => [
[ "label" => "ext-quicksurveys-example-internal-survey-answer-positive" ],
[ "label" => "ext-quicksurveys-example-internal-survey-answer-negative" ],
[ "label" => "ext-quicksurveys-example-internal-survey-answer-neutral" ],
],
],
[
"name" => "ext-quicksurveys-internal-gdi-safety-survey-Q2",
"dependsOn" => [
[
"question" => "ext-quicksurveys-internal-gdi-safety-survey-question",
"answerIsOneOf" => [ "ext-quicksurveys-example-internal-survey-answer-positive" ],
],
],
"layout" => "multiple-answer",
"question" => "ext-quicksurveys-internal-gdi-safety-survey-Q2",
"answers" => [
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A1" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A2" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A3" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A4" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A5" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A6" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A7" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2A8" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2AOther",
"freeformTextLabel" => "ext-quicksurveys-internal-gdi-safety-survey-Q2AOtherOpen" ],
[ "label" => "ext-quicksurveys-internal-gdi-safety-survey-Q2APNTS" ],
],
],
]
]
**What should happen here?**
A proportion of logged in editors who have made 5 or more edits should see the first question. If they answer "Yes" (`ext-quicksurveys-example-internal-survey-answer-positive`), the second question should appear.
**Message components**
The message components have been checked on each wiki and appear to be functional. [[ https://docs.google.com/spreadsheets/d/16njXR1ljZzudchTkIYk8cRZqgQPXihPfCdOO9I3yy2Y/edit?gid=0#gid=0 | Sheet with all links ]] and table for reference:
| **parameter** | **message** |
| confirmMsg | ext-quicksurveys-internal-gdi-safety-survey-endmessage |
| privacyPolicy | ext-quicksurveys-internal-gdi-safety-survey-privacy-policy |
| question (1) | ext-quicksurveys-internal-gdi-safety-survey-question |
| label | ext-quicksurveys-example-internal-survey-answer-positive |
| label | ext-quicksurveys-example-internal-survey-answer-negative |
| label | ext-quicksurveys-example-internal-survey-answer-neutral |
| question (2) | ext-quicksurveys-internal-gdi-safety-survey-Q2 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A1 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A2 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A3 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A4 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A5 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A6 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A7 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2A8 |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2AOther |
| freeformTextLabel | ext-quicksurveys-internal-gdi-safety-survey-Q2AOtherOpen |
| label | ext-quicksurveys-internal-gdi-safety-survey-Q2APNTS |