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 511b172afc41b5..3d32afccb8efdd 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/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 d26b1ec9774c9e..5365404e82aefe 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,23 +6,15 @@
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.CompletionStage;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.apache.commons.io.FilenameUtils;
import io.quarkus.devtools.codestarts.CodestartException;
import io.quarkus.devtools.codestarts.CodestartResource;
import io.quarkus.devtools.codestarts.CodestartResource.Source;
-import io.quarkus.qute.CompletedStage;
-import io.quarkus.qute.Engine;
-import io.quarkus.qute.EvalContext;
-import io.quarkus.qute.Expression;
-import io.quarkus.qute.ResultMapper;
-import io.quarkus.qute.Results;
-import io.quarkus.qute.TemplateException;
-import io.quarkus.qute.TemplateLocator;
-import io.quarkus.qute.TemplateNode;
-import io.quarkus.qute.ValueResolver;
-import io.quarkus.qute.Variant;
+import io.quarkus.qute.*;
final class QuteCodestartFileReader implements CodestartFileReader {
@@ -30,6 +22,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+)).*");
@Override
public boolean matches(String fileName) {
@@ -187,9 +180,37 @@ public CompletionStage