diff --git a/.github/workflows/pr-code-quality-reviewer.lock.yml b/.github/workflows/pr-code-quality-reviewer.lock.yml
index 40f9477777c..5c633517b95 100644
--- a/.github/workflows/pr-code-quality-reviewer.lock.yml
+++ b/.github/workflows/pr-code-quality-reviewer.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"661ab4bd42bd83eff79d7d460f50a12e3cee567ac434b2d37a2480d9a0e20965","body_hash":"4d3260d49c3010a13ea7c49bba10f51f2b9f1c1473ceca69008cfe766a9b273c","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.63","copilot-sdk":"1.0.1"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"57c59bcb86591e8b21ad20298687f8d1adf895d5c4cf6f909d3339905428cc28","body_hash":"4d3260d49c3010a13ea7c49bba10f51f2b9f1c1473ceca69008cfe766a9b273c","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.63","copilot-sdk":"1.0.1"}}
 # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.4","digest":"sha256:b268ebf37df2428b19efcb383f001d65dc6a5ec10af43feb886d1a8477ab0e3a","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.4@sha256:b268ebf37df2428b19efcb383f001d65dc6a5ec10af43feb886d1a8477ab0e3a"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4","digest":"sha256:3ea0d12a2d124db8ed6e2d18aff040e30ab3568161f258a132fccdeede4198cd","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4@sha256:3ea0d12a2d124db8ed6e2d18aff040e30ab3568161f258a132fccdeede4198cd"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4","digest":"sha256:72c378c029d2fad4684847ab44c329e526ac6b1a78cdf97656870ea11d201545","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4@sha256:72c378c029d2fad4684847ab44c329e526ac6b1a78cdf97656870ea11d201545"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.4","digest":"sha256:87979038897e40caed22245b64d1daa796390d2dca289b99d3d1174c85740af8","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.4@sha256:87979038897e40caed22245b64d1daa796390d2dca289b99d3d1174c85740af8"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.26","digest":"sha256:d3b03f54eee3a8176818c9a52087623e45b7f644a28814337fcc0838e2534490","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.26@sha256:d3b03f54eee3a8176818c9a52087623e45b7f644a28814337fcc0838e2534490"},{"image":"ghcr.io/github/github-mcp-server:v1.3.0","digest":"sha256:5c83359327a0bacc3d34db730bea6557d39d341cee0bf6c58c9a896e33150e80","pinned_image":"ghcr.io/github/github-mcp-server:v1.3.0@sha256:5c83359327a0bacc3d34db730bea6557d39d341cee0bf6c58c9a896e33150e80"}]}
 # This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
 #
diff --git a/scripts/prepare-objective-impact-report-dataset.sh b/scripts/prepare-objective-impact-report-dataset.sh
index 8360226b616..38bcca9cee9 100644
--- a/scripts/prepare-objective-impact-report-dataset.sh
+++ b/scripts/prepare-objective-impact-report-dataset.sh
@@ -21,6 +21,11 @@ run_id="${GITHUB_RUN_ID:-}"
 server_url="${GITHUB_SERVER_URL:-https://github.com}"
 window_start=$(date -u -d '180 days ago' '+%Y-%m-%d' 2>/dev/null || date -u -v-180d '+%Y-%m-%d')
 generated_at=$(date -u +%Y-%m-%dT%H:%M:%SZ)
+pr_list_limit="${OBJECTIVE_IMPACT_PR_LIST_LIMIT:-5000}"
+if ! [[ "$pr_list_limit" =~ ^[0-9]+$ ]] || [ "$pr_list_limit" -lt 1 ]; then
+  echo "OBJECTIVE_IMPACT_PR_LIST_LIMIT must be a positive integer; falling back to 5000 (got: $pr_list_limit)" >&2
+  pr_list_limit=5000
+fi
 
 cat > "$DATA_DIR/run-context.json" <<EOF
 {
@@ -128,8 +133,8 @@ else
     --repo "$repo" \
     --state merged \
     --search "merged:>=$window_start" \
-    --limit 500 \
-    --json number,title,url,mergedAt,closedAt,body,labels \
+    --limit "$pr_list_limit" \
+    --json number,title,url,mergedAt,closedAt,body,labels,closingIssuesReferences \
     > "$DATA_DIR/merged-prs.json" || printf '%s\n' '[]' > "$DATA_DIR/merged-prs.json"
 fi
 
@@ -140,21 +145,53 @@ else
     --repo "$repo" \
     --state closed \
     --search "closed:>=$window_start is:unmerged" \
-    --limit 500 \
-    --json number,title,url,mergedAt,closedAt,body,labels \
+    --limit "$pr_list_limit" \
+    --json number,title,url,mergedAt,closedAt,body,labels,closingIssuesReferences \
     > "$DATA_DIR/closed-unmerged-prs.json" || printf '%s\n' '[]' > "$DATA_DIR/closed-unmerged-prs.json"
 fi
 
 jq '
-  def linked_issue_numbers:
+  def linked_issue_numbers_from_body:
     [scan("(?i)(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\\s+#([0-9]+)")[]? | tonumber] | unique;
-  map(. + {linked_issue_numbers: ((.body // "") | linked_issue_numbers)})
+  def linked_issue_numbers_from_graphql:
+    [
+      .closingIssuesReferences.nodes[]?.number?,
+      .closingIssuesReferences[]?.number?
+    ]
+    | map(select(type == "number"))
+    | unique;
+  map(
+    . + {
+      linked_issue_numbers: (
+        (
+          ((.body // "") | linked_issue_numbers_from_body) +
+          (linked_issue_numbers_from_graphql)
+        ) | unique
+      )
+    }
+  )
 ' "$DATA_DIR/merged-prs.json" > "$DATA_DIR/merged-prs-linked.json"
 
 jq '
-  def linked_issue_numbers:
+  def linked_issue_numbers_from_body:
     [scan("(?i)(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?)\\s+#([0-9]+)")[]? | tonumber] | unique;
-  map(. + {linked_issue_numbers: ((.body // "") | linked_issue_numbers)})
+  def linked_issue_numbers_from_graphql:
+    [
+      .closingIssuesReferences.nodes[]?.number?,
+      .closingIssuesReferences[]?.number?
+    ]
+    | map(select(type == "number"))
+    | unique;
+  map(
+    . + {
+      linked_issue_numbers: (
+        (
+          ((.body // "") | linked_issue_numbers_from_body) +
+          (linked_issue_numbers_from_graphql)
+        ) | unique
+      )
+    }
+  )
 ' "$DATA_DIR/closed-unmerged-prs.json" > "$DATA_DIR/closed-unmerged-prs-linked.json"
 
 jq -n \
