How to get renamed articles since given time

I made an article creating a json with all articles changed and deleted since some given time.

{{velocity}}
## Zeitspanne in Stunden setzen
#set ($hours = $request.hours)
#if (!$hours || $hours == "")
  #set ($hours = 24)
#end
#set ($cal = $datetool.getCalendar())
$cal.add(11, -$hours)
#set ($since = $cal.time)
## leere Listen initialisieren
#set ($updated = [])
#set ($renamed = [])
#set ($deleted = [])
## Neue und geänderte Dokumente
#set ($query = "select distinct doc from XWikiDocument as doc where doc.date > :since or doc.creationDate > :since order by doc.date desc")
#set ($docs = $services.query.hql($query).bindValue('since', $since).execute() )
#if ($docs)
  #foreach ($doc in $docs)
    #if ($doc)
      #set ($entry = {})
      #set ($discard = $entry.put("date", $doc.getDate()))
      #set ($discard = $entry.put("reference", $doc.fullName))
      #set ($discard = $entry.put("url", $xwiki.getURL($doc)))
      #set ($discard = $updated.add($entry))
    #end
  #end
#end
## Umbenannte Dokumente
##
## tbd
##
## Gelöschte Dokumente
#set ($query = "select distinct ddoc from XWikiDeletedDocument as ddoc where ddoc.fullName not in (select doc.fullName from XWikiDocument as doc) and ddoc.date > :since order by ddoc.date desc")
#set ($deletedDocs = $services.query.hql($query).bindValue("since", $since).execute())
#if ($deletedDocs)
  #foreach ($doc in $deletedDocs)
    #if ($doc)
      #set ($entry = {})
      #set ($discard = $entry.put("date", $doc.getDate()))
      #set ($discard = $entry.put("reference", $doc.fullName))
      #set ($discard = $deleted.add($entry))
    #end
  #end
#end
## Alles zusammensetzen
#set ($result = {"modified": $updated,"renamed": $renamed,"deleted": $deleted})
##
##
#macro(prettyJson $json)
  ## Pretty-Print Logik
  ## Nach { oder [ Zeilenumbruch
  #set ($step1 = $stringtool.replace($json, "{", "{
    "))
  #set ($step1 = $stringtool.replace($step1, "[", "[
    "))
  ## Vor } oder ] Zeilenumbruch
  #set ($step2 = $stringtool.replace($step1, "}", "
    }"))
  #set ($step2 = $stringtool.replace($step2, "]", "
    ]"))
  ## Nach Kommas Zeilenumbruch
  #set ($pretty = $stringtool.replace($step2, ",", ",
    "))
  ## Ersetze alle \/ vom json serializer mit /
  ## man darf / mit \/ escapen muss es aber nicht
  ## damit man es besser lesen kann ersetzten wir es
  #set ($pretty = $stringtool.replace($pretty, "\/", "/"))
  $pretty
#end
##
## JSON erzeugen
#set ($json = $jsontool.serialize($result))
## Beautified JSON ausgeben
## das RAG soll diese Seite aufrufen mit "?xpage=plain"
{{html}}
<div style="white-space:pre;font-family:monospace;font-size-adjust: 0.5;">#prettyJson($json)</div>
{{/html}}
## Alternative komplette Seite immer exclusiv als JSON zurückgeben
## Dann ist es aber schwieriger, Änderungen zu machen, weil es keinen Bearbeiten-Knopf gibt
## Dann aber auch 'velocity output="false"' setzen
## Und das Makro sowie die JSON-Erzeugung auskommentieren
##jsonResponse($result)
{{/velocity}}

As an external llm chat want’s to scrape/recognize all changes and will give links to sources I do must provide all renamed articles too. It’s already included in the changed articles but the llm must know which articles links (from earlier scrapes) don’t exist anymore because they where renamed/moved.

I tried some hours (with the help of an llm too) but it’s not working. I do see in the history of all changed articles if there is a “Update document after refactoring.” comment. When I diff this version with the version before I can see the changed parent and/or title. (I can make a reference from this.)

How to achieve this? I think I need old reference, old url and date of renaming. If i can provide new reference too it will be fine.

Regards, Simpel