diff --git a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/base/pom.tpl.qute.xml b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/base/pom.tpl.qute.xml
index 511b172afc41b..3d32afccb8efd 100644
--- a/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/base/pom.tpl.qute.xml
+++ b/independent-projects/tools/base-codestarts/src/main/resources/codestarts/quarkus/buildtool/maven/base/pom.tpl.qute.xml
@@ -140,7 +140,7 @@
build
generate-code
generate-code-tests
- {#if generate-native}
+ {#if generate-native and quarkus.platform.version.compareVersionTo("3.12") >= 0}
native-image-agent
{/if}
diff --git a/independent-projects/tools/codestarts/pom.xml b/independent-projects/tools/codestarts/pom.xml
index e93c8abfb7583..c6a726533f1b7 100644
--- a/independent-projects/tools/codestarts/pom.xml
+++ b/independent-projects/tools/codestarts/pom.xml
@@ -18,6 +18,10 @@
io.quarkus.qute
qute-core
+
+ org.apache.maven
+ maven-artifact
+
io.quarkus
quarkus-bootstrap-app-model
diff --git a/independent-projects/tools/codestarts/src/main/java/io/quarkus/devtools/codestarts/core/reader/QuteCodestartFileReader.java b/independent-projects/tools/codestarts/src/main/java/io/quarkus/devtools/codestarts/core/reader/QuteCodestartFileReader.java
index d26b1ec9774c9..b2d6f606cb610 100644
--- a/independent-projects/tools/codestarts/src/main/java/io/quarkus/devtools/codestarts/core/reader/QuteCodestartFileReader.java
+++ b/independent-projects/tools/codestarts/src/main/java/io/quarkus/devtools/codestarts/core/reader/QuteCodestartFileReader.java
@@ -6,8 +6,10 @@
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletionStage;
+import java.util.regex.Pattern;
import org.apache.commons.io.FilenameUtils;
+import org.apache.maven.artifact.versioning.ComparableVersion;
import io.quarkus.devtools.codestarts.CodestartException;
import io.quarkus.devtools.codestarts.CodestartResource;
@@ -30,6 +32,7 @@ final class QuteCodestartFileReader implements CodestartFileReader {
private static final String ENTRY_QUTE_FLAG = ".entry.qute";
public static final String INCLUDE_QUTE_FLAG = ".include.qute";
public static final String SKIP_TAG = "";
+ private static final Pattern VERSION_PATTERN = Pattern.compile("^(\\d+)(\\.(\\d+))?(\\.(\\d+))?");
@Override
public boolean matches(String fileName) {
@@ -187,9 +190,24 @@ public CompletionStage