[AI Common] Feature Flag Tracker
### Purpose
This issue is aimed at tracking all currently in-flight feature flags related to AI APIs, features and prototypes being developed at any given moment.
See gitlab~29780827 [agenda](https://docs.google.com/document/d/19jVbWVYUPW3m7d2SzsXa2zXIAW7pSb2tdQ-AXWzT_DE/edit#bookmark=id.s8jev3smpfxp) of 2023-04-06 for more details.
### Flags
<table>
<tr>
<th>Number</th>
<th>Deleted?</th>
<th>Feature flag</th>
<th>introduced in MR</th>
<th>Rollout issue</th>
<th>Scope (general/per user/per group/per project)</th>
</tr>
<tr>
<td>1</td>
<td>Deleted</td>
<td>
`openai_experimentation`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116364+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/403855+
</td>
<td>
general on/off toggle, replaced with the ops flag `ai_global_switch`
</td>
</tr>
<tr>
<td>2</td>
<td>
Keeping (not enabled globally)
</td>
<td>
`ai_experimentation_api`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117369+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/406754+
</td>
<td>per user; the flag is a de-facto authorization mechanism for internal API; not enabled globally</td>
</tr>
<tr>
<td>3</td>
<td>Deleted</td>
<td>
~~`explain_code_snippet`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116707+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/404631+
</td>
<td>per user</td>
</tr>
<tr>
<td>4</td>
<td>
Keeping (not enabled)
</td>
<td>
`explain_code_chat`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116707+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/404631+
</td>
<td>
per user; it can be removed but needs a confirmation https://gitlab.com/gitlab-org/gitlab/-/issues/404631#note_1577041001; Not enabled at all
</td>
</tr>
<tr>
<td>5</td>
<td>
[Deleted](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139354)
</td>
<td>
`explain_vulnerability`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117472+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/407282+
</td>
<td>per project</td>
</tr>
<tr>
<td>6</td>
<td>Deleted</td>
<td>
~~`explain_vulnerability_vertex`~~
</td>
<td>
https://gitlab.com/gitlab-org/security/gitlab/-/merge_requests/3210+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409182+
</td>
<td>
per project. tied to `explain_vulnerability`
</td>
</tr>
<tr>
<td>6.1</td>
<td>
Keeping (not enabled globally)
</td>
<td>
`explain_vulnerability_anthropic`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128118+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/420608+
</td>
<td>
per project. tied to `explain_vulnerability`. Not globally enabled yet
</td>
</tr>
<tr>
<td>7</td>
<td>Deleted</td>
<td>
~~`summarize_comments`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117296+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/406758+
</td>
<td>per project and the project's parent group now (will be fixed in a follow-up)</td>
</tr>
<tr>
<td>8</td>
<td>Deleted</td>
<td>
~~`summarize_diff_quick_action`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116879+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/407256+
</td>
<td>per user</td>
</tr>
<tr>
<td>9</td>
<td>Deleted</td>
<td>
~~`tanuki_bot_parallel`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117793+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/407555+
</td>
<td>
\* global \* FF removed as part of https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127112+
</td>
</tr>
<tr>
<td>10</td>
<td>Deleted</td>
<td>
~~`tanuki_bot`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117695+ and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117967+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/407337+
</td>
<td>per user</td>
</tr>
<tr>
<td>11</td>
<td>
Keeping (not enabled globally)
</td>
<td>
`tanuki_bot_breadcrumbs_entry_point`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123530+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/416423+
</td>
<td>
per user; the flag has not been used at all https://gitlab.com/gitlab-org/gitlab/-/issues/416423#note_1577233937. Not globally enabled yet
</td>
</tr>
<tr>
<td>12</td>
<td>
[Keeping](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139344#note_1688874023)
</td>
<td>
`summarize_my_code_review`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118807+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/408869+
</td>
<td>
* this is enabled globally, but the FF file is still not removed.
* Inquired about it on rollout issue: https://gitlab.com/gitlab-org/gitlab/-/issues/408869#note_1522476863
</td>
</tr>
<tr>
<td>13</td>
<td>
[Won't delete](https://gitlab.com/groups/gitlab-org/-/epics/10366#note_1680568212)
</td>
<td>
`generate_test_file_flag`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118365 and https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119202
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409352+
</td>
<td>
* Won't be removed: https://gitlab.com/gitlab-org/gitlab/-/issues/409352#note_1604558428
</td>
</tr>
<tr>
<td>14</td>
<td>Deleted</td>
<td>
~~`generate_description_ai`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118712+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409369+
</td>
<td>
</td>
</tr>
<tr>
<td>15</td>
<td>Deleted</td>
<td>
~~`circuit_breaker`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117993+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409619+
</td>
<td>
~~global~~
</td>
</tr>
<tr>
<td>16</td>
<td>Deleted</td>
<td>
~~`tofa_experimentation_main_flag`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119049+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409623+
</td>
<td>global</td>
</tr>
<tr>
<td>17</td>
<td>Deleted</td>
<td>
~~`anthropic_experimentation`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119651+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/409939+
</td>
<td>global</td>
</tr>
<tr>
<td>18</td>
<td>Deleted</td>
<td>
~~`ai_related_settings`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118222+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/408791+
</td>
<td>per group</td>
</tr>
<tr>
<td>19</td>
<td>Deleted</td>
<td>
~~`ai_redis_cache`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120713+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/411842+
</td>
<td>per user</td>
</tr>
<tr>
<td>20</td>
<td>Deleted</td>
<td>
~~`chat_epic_identifier`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128487+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/422374+
</td>
<td>per user</td>
</tr>
<tr>
<td>21</td>
<td>Deleted</td>
<td>
~~`ai_tool_info`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128501+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/422850+
</td>
<td>per user</td>
</tr>
<tr>
<td>22</td>
<td>Deleted</td>
<td>
~~`explain_current_blob`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128342+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/420959+
</td>
<td>per user</td>
</tr>
<tr>
<td>23</td>
<td>Deleted</td>
<td>
~~`push_ai_to_load_identified_issue_json`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128342+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/420959+
</td>
<td>global</td>
</tr>
<tr>
<td>24</td>
<td>
[Deleted](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/139338)
</td>
<td>
`ci_editor_assistant_tool`
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130162+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/423524+
</td>
<td>
per project
</td>
</tr>
<tr>
<td>25</td>
<td>Deleted</td>
<td>
~~`gitlab_duo`~~
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122235+
</td>
<td>
https://gitlab.com/gitlab-org/gitlab/-/issues/413688+
</td>
<td>per project</td>
</tr>
</table>
Please add your relevant feature flag to the table above.
# Rules
`openai_experimentation` feature flag is the main, general one. Think about it as an on/off switch. All the features should rely on that one and, optionally, if developers decided they want to control the rollout, on the secondary one.
There is an open issue for renaming `openai_experimentation` to something more general: https://gitlab.com/gitlab-org/gitlab/-/issues/423979+
This way we can switch on/off all features simultaneously and control each one.
epic