diff --git a/config/feature_flags/experiment/prompt_migration_fix_code.yml b/config/feature_flags/experiment/prompt_migration_fix_code.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e67ed95368873160357077c8dff54011dd216033
--- /dev/null
+++ b/config/feature_flags/experiment/prompt_migration_fix_code.yml
@@ -0,0 +1,9 @@
+---
+name: prompt_migration_fix_code
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/475047
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167399
+rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/496750
+milestone: '17.5'
+group: group::custom models
+type: experiment
+default_enabled: false
diff --git a/ee/lib/gitlab/llm/chain/tools/fix_code/executor.rb b/ee/lib/gitlab/llm/chain/tools/fix_code/executor.rb
index a83bea52aacbb89d4472890aa116b651668057d4..cf343e671f7f2edf59158ef19ad5aea8eea163fe 100644
--- a/ee/lib/gitlab/llm/chain/tools/fix_code/executor.rb
+++ b/ee/lib/gitlab/llm/chain/tools/fix_code/executor.rb
@@ -7,6 +7,7 @@ module Tools
         module FixCode
           class Executor < SlashCommandTool
             extend ::Gitlab::Utils::Override
+            prepend Concerns::UseAiGatewayAgentPrompt
 
             NAME = 'FixCode'
             HUMAN_NAME = 'Fix Code'
diff --git a/ee/spec/lib/gitlab/llm/chain/tools/fix_code/executor_spec.rb b/ee/spec/lib/gitlab/llm/chain/tools/fix_code/executor_spec.rb
index 3a50aa9a524f6b4ff534b43536e2a8626ce20d1b..ddc540e66b4855b97e759ae7fa07c5a9025e1064 100644
--- a/ee/spec/lib/gitlab/llm/chain/tools/fix_code/executor_spec.rb
+++ b/ee/spec/lib/gitlab/llm/chain/tools/fix_code/executor_spec.rb
@@ -133,6 +133,11 @@
           expect(answer.error_code).to eq("M4000")
         end
       end
+
+      it_behaves_like 'uses ai gateway agent prompt' do
+        let(:prompt_class) { Gitlab::Llm::Chain::Tools::FixCode::Prompts::Anthropic }
+        let(:unit_primitive) { 'fix_code' }
+      end
     end
 
     context 'when context is not authorized' do