diff --git a/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
new file mode 100644
index 00000000000..ac96e579147
--- /dev/null
+++ b/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
@@ -0,0 +1,4 @@
+---
+category: minorAnalysis
+---
+* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the C# extractor's search for `.config`, `.props`, XML and project files.
diff --git a/csharp/tools/pre-finalize.cmd b/csharp/tools/pre-finalize.cmd
index 0ee982b6585..b20e2bf77d8 100644
--- a/csharp/tools/pre-finalize.cmd
+++ b/csharp/tools/pre-finalize.cmd
@@ -5,6 +5,7 @@ type NUL && "%CODEQL_DIST%\codeql" database index-files ^
--include-extension=.csproj ^
--include-extension=.props ^
--include-extension=.xml ^
+ --also-match-lgtm-index-filters ^
--size-limit 10m ^
--language xml ^
--working-dir=. ^
diff --git a/csharp/tools/pre-finalize.sh b/csharp/tools/pre-finalize.sh
index b0abd28f9ee..409fb252da3 100755
--- a/csharp/tools/pre-finalize.sh
+++ b/csharp/tools/pre-finalize.sh
@@ -7,6 +7,7 @@ set -eu
--include-extension=.csproj \
--include-extension=.props \
--include-extension=.xml \
+ --also-match-lgtm-index-filters \
--size-limit 10m \
--language xml \
--working-dir=. \
diff --git a/go/codeql-tools/pre-finalize.cmd b/go/codeql-tools/pre-finalize.cmd
index 4abac249933..66f6e80a69f 100644
--- a/go/codeql-tools/pre-finalize.cmd
+++ b/go/codeql-tools/pre-finalize.cmd
@@ -9,6 +9,7 @@ if NOT "%CODEQL_EXTRACTOR_GO_EXTRACT_HTML%"=="no" (
--include-extension=.xhtm ^
--include-extension=.xhtml ^
--include-extension=.vue ^
+ --also-match-lgtm-index-filters ^
--size-limit 10m ^
--language html ^
-- ^
diff --git a/go/codeql-tools/pre-finalize.sh b/go/codeql-tools/pre-finalize.sh
index 3a8b31c70a0..9cf0b7ae0b1 100755
--- a/go/codeql-tools/pre-finalize.sh
+++ b/go/codeql-tools/pre-finalize.sh
@@ -10,6 +10,7 @@ if [ "${CODEQL_EXTRACTOR_GO_EXTRACT_HTML:-yes}" != "no" ]; then
--include-extension=.xhtm \
--include-extension=.xhtml \
--include-extension=.vue \
+ --also-match-lgtm-index-filters \
--size-limit 10m \
--language html \
-- \
diff --git a/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
new file mode 100644
index 00000000000..bf9c4553573
--- /dev/null
+++ b/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
@@ -0,0 +1,4 @@
+---
+category: minorAnalysis
+---
+* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Go extractor's search for `.vue` and HTML files.
diff --git a/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml b/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml
new file mode 100644
index 00000000000..9baea12fdfe
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml
@@ -0,0 +1,4 @@
+paths:
+ - include
+paths-ignore:
+ - include/exclude
diff --git a/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java
new file mode 100644
index 00000000000..09e2bc29dcc
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java
@@ -0,0 +1 @@
+public class ShouldAppear2 { }
diff --git a/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml
new file mode 100644
index 00000000000..5c2795036a0
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml
@@ -0,0 +1 @@
+
diff --git a/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java
new file mode 100644
index 00000000000..164b0c1d1d8
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java
@@ -0,0 +1 @@
+public class ShouldNotAppear3 { }
diff --git a/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml
new file mode 100644
index 00000000000..5c2795036a0
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml
@@ -0,0 +1 @@
+
diff --git a/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java
new file mode 100644
index 00000000000..55a0b62aa88
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java
@@ -0,0 +1 @@
+public class ShouldNotAppear1 { }
diff --git a/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml
new file mode 100644
index 00000000000..5c2795036a0
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml
@@ -0,0 +1 @@
+
diff --git a/java/ql/integration-tests/java/buildless-paths/test.expected b/java/ql/integration-tests/java/buildless-paths/test.expected
new file mode 100644
index 00000000000..95b59dab6b1
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/test.expected
@@ -0,0 +1,4 @@
+javaFiles
+| include/ShouldAppear2.java:0:0:0:0 | ShouldAppear2 |
+#select
+| include/ShouldAppear2.xml:0:0:0:0 | include/ShouldAppear2.xml |
diff --git a/java/ql/integration-tests/java/buildless-paths/test.py b/java/ql/integration-tests/java/buildless-paths/test.py
new file mode 100644
index 00000000000..bbbf14aaa2c
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/test.py
@@ -0,0 +1,5 @@
+import os
+import os.path
+
+def test(codeql, java):
+ codeql.database.create(build_mode = "none", codescanning_config = "codescanning-config.yml")
diff --git a/java/ql/integration-tests/java/buildless-paths/test.ql b/java/ql/integration-tests/java/buildless-paths/test.ql
new file mode 100644
index 00000000000..3023403edfc
--- /dev/null
+++ b/java/ql/integration-tests/java/buildless-paths/test.ql
@@ -0,0 +1,6 @@
+import java
+
+query predicate javaFiles(File f) { f.isJavaSourceFile() }
+
+from XmlFile f
+select f
diff --git a/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md b/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md
new file mode 100644
index 00000000000..877d0e7e2ed
--- /dev/null
+++ b/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md
@@ -0,0 +1,4 @@
+---
+category: minorAnalysis
+---
+* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files.
diff --git a/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
new file mode 100644
index 00000000000..ed16f8b6565
--- /dev/null
+++ b/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md
@@ -0,0 +1,4 @@
+---
+category: minorAnalysis
+---
+* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files.
diff --git a/python/tools/pre-finalize.cmd b/python/tools/pre-finalize.cmd
index 07454671062..235b79c77b0 100644
--- a/python/tools/pre-finalize.cmd
+++ b/python/tools/pre-finalize.cmd
@@ -3,6 +3,7 @@
type NUL && "%CODEQL_DIST%\codeql" database index-files ^
--include-extension=.yaml ^
--include-extension=.yml ^
+ --also-match-lgtm-index-filters ^
--size-limit=5m ^
--language yaml ^
-- ^
diff --git a/python/tools/pre-finalize.sh b/python/tools/pre-finalize.sh
index 9fe5200a38f..b938be75aa7 100755
--- a/python/tools/pre-finalize.sh
+++ b/python/tools/pre-finalize.sh
@@ -5,6 +5,7 @@ set -eu
"$CODEQL_DIST/codeql" database index-files \
--include-extension=.yaml \
--include-extension=.yml \
+ --also-match-lgtm-index-filters \
--size-limit=5m \
--language yaml \
-- \
diff --git a/ql/tools/pre-finalize.cmd b/ql/tools/pre-finalize.cmd
index 49d18f3d197..19fa7b04523 100644
--- a/ql/tools/pre-finalize.cmd
+++ b/ql/tools/pre-finalize.cmd
@@ -3,6 +3,7 @@
type NUL && "%CODEQL_DIST%\codeql" database index-files ^
--include=**/qlpack.yml ^
--include-extension=.qlref ^
+ --also-match-lgtm-index-filters ^
--size-limit=5m ^
--language yaml ^
-- ^
diff --git a/ql/tools/pre-finalize.sh b/ql/tools/pre-finalize.sh
index 7003ad81c1b..afae94ef83a 100755
--- a/ql/tools/pre-finalize.sh
+++ b/ql/tools/pre-finalize.sh
@@ -5,6 +5,7 @@ set -eu
"$CODEQL_DIST/codeql" database index-files \
"--include=**/qlpack.yml" \
--include-extension=.qlref \
+ --also-match-lgtm-index-filters \
--size-limit=5m \
--language yaml \
-- \