diff --git a/lts/lts-mangle-change-log.py b/lts/lts-mangle-change-log.py
new file mode 100644
index 0000000..e0e245d
--- /dev/null
+++ b/lts/lts-mangle-change-log.py
@@ -0,0 +1,36 @@
+#
+# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# This script is used to account for differences between change log format
+# produced by NodeJS module "standard-version" and format actually used
+# by the TF-A LTS project.
+#
+import sys
+import re
+
+
+TAIL_RE = r"\(https://review.trustedfirmware.org/plugins/gitiles/TF-A/trusted-firmware-a/\+/refs/tags/.+lts.+\) \(\d+-\d+-\d+\)$"
+PREFIX_RE = r"^## \[lts-[0-9.]+\]" + TAIL_RE
+NOPREFIX_RE = r"^###? \[[0-9.]+\]" + TAIL_RE
+
+
+def main():
+    with open(sys.argv[2]) as f:
+        for l in f:
+            if sys.argv[1] == "remove-prefix":
+                if re.match(PREFIX_RE, l):
+                    l = re.sub(r"\[lts-([0-9.]+)\]", r"[\1]", l)
+            elif sys.argv[1] == "add-prefix":
+                if re.match(NOPREFIX_RE, l):
+                    l = re.sub(r"\[([0-9.]+)\]", r"[lts-\1]", l)
+                    # stadard-version generates "###", while change-log.md uses "##"
+                    l = l.replace("### ", "## ")
+            else:
+                assert sys.argv[1], "'add-prefix' or 'remove-prefix' expected"
+            sys.stdout.write(l)
+
+
+if __name__ == "__main__":
+    main()
