diff --git a/runtime/syntax/testdir/README.txt b/runtime/syntax/testdir/README.txt
index 3b1b9ae..3baa43b 100644
--- a/runtime/syntax/testdir/README.txt
+++ b/runtime/syntax/testdir/README.txt
@@ -124,8 +124,8 @@
 test.
 
 
-Viewing generated screendumps
------------------------------
+Viewing generated screendumps (local)
+-------------------------------------
 
 You may also wish to look at the whole batch of failed screendumps after
 running "make test".  Source the "viewdumps.vim" script for this task:
@@ -151,5 +151,60 @@
 The listing of argument commands can be found under :help buffer-list.
 
 
+Viewing generated screendumps (from a CI-uploaded artifact)
+-----------------------------------------------------------
+
+After you have downloaded an artifact archive containing failed screendumps
+and extracted its files in a temporary directory, you need to set up a "dumps"
+directory by creating a symlink:
+
+	cd /path/to/fork
+	ln -s $(pwd)/runtime/syntax/testdir/dumps \
+				/tmp/runtime/syntax/testdir/dumps
+
+You can now examine the extracted screendumps:
+
+	./src/vim --clean -S runtime/syntax/testdir/viewdumps.vim \
+				/tmp/runtime/syntax/testdir/failed/*.dump
+
+
+Viewing generated screendumps (submitted for a pull request)
+------------------------------------------------------------
+
+First, you need to check out the topic branch with the proposed changes and
+write down a difference list between the HEAD commit (index) and its parent
+commit with respect to the changed "dumps" filenames:
+
+	cd /path/to/fork
+	git switch prs/1234
+	git diff-index --relative=runtime/syntax/testdir/dumps/ \
+				--name-only prs/1234~1 > /tmp/filelist
+
+Then, you need to check out the master branch, change the current working
+directory to reconcile relative filepaths written in the filenames list, copy
+in the "failed" directory the old "dumps" files, whose names are on the same
+list, and follow it by checking out the topic branch:
+
+	git switch master
+	cd runtime/syntax/testdir/dumps
+	cp -t ../failed $(cat /tmp/filelist)
+	git switch prs/1234
+
+Make note of any missing new screendumps.  Please remember about the
+introduced INVERTED relation between "dumps" and "failed", i.e. the files to
+be committed are in "dumps" already and their old versions are in "failed".
+Therefore, you need to copy the missing new screendumps from "dumps" to
+"failed":
+
+	cp -t ../failed foo_10.dump foo_11.dump foo_12.dump
+
+After you have changed the current working directory to its parent directory,
+you can now examine the screendumps from the "failed" directory (note that new
+screendumps will be shown with no difference between their versions):
+
+	cd ..
+	../../../src/vim --clean -S viewdumps.vim
+
+
 TODO: run test for one specific filetype
 TODO: test syncing by jumping around
diff --git a/runtime/syntax/testdir/viewdumps.vim b/runtime/syntax/testdir/viewdumps.vim
index 0fbfade..e1624ff 100644
--- a/runtime/syntax/testdir/viewdumps.vim
+++ b/runtime/syntax/testdir/viewdumps.vim
@@ -1,44 +1,9 @@
 vim9script
 
-# Support sourcing this script from this directory or any other directory in
-# the direct path that leads to the project's root directory.
-const failed_path: string = finddir('failed', getcwd() .. '/**', -1)
-  ->filter(((cwdpath: string) => (_: number, dirpath: string) =>
-	cwdpath =~ '\<syntax\>' || dirpath =~ '\<syntax\>')(getcwd()))
-  ->get(-1, '') .. '/'
-var error: string = null_string
-
-if failed_path == '/'
-  error = 'No such directory: "failed"'
-else
-  const failed_fnames: string = failed_path .. readdir(failed_path,
-	  (fname: string) => fname =~ '^.\+\.dump$')
-    ->join(' ' .. failed_path)
-
-  if failed_fnames =~ 'failed/$'
-    error = 'No such file: "*.dump"'
-  else
-    exec ':0argedit ' .. failed_fnames
-    buffers
-  endif
-endif
-
-def Render()
-  const failed_fname: string = bufname()
-  try
-    setlocal suffixesadd=.dump
-    const dumps_fname: string = findfile(
-			fnamemodify(failed_fname, ':p:t'),
-			fnamemodify(failed_fname, ':p:h:h') .. '/dumps')
-    if filereadable(dumps_fname)
-      term_dumpdiff(failed_fname, dumps_fname)
-    else
-      term_dumpload(failed_fname)
-    endif
-  finally
-    exec 'bwipeout ' .. failed_fname
-  endtry
-enddef
+exec 'source ' .. (((cwdpath: string) => cwdpath
+  ->strpart(0, cwdpath->strridx('/vim')))(getcwd()))
+  .. '/vim/src/testdir/commondumps.vim'
+g:Init('\<syntax\>', -1)
 
 # THE FOLLOWING SETTINGS PERTAIN TO "input/" FILES THAT ARE LIKELY TO BE
 # LOADED SIDE BY SIDE WHENEVER BATCHES OF NEW SCREENDUMPS ARE GENERATED.
@@ -56,22 +21,4 @@
 # Anticipate non-Latin-1 characters in "input/" files.
 set encoding=utf-8 termencoding=utf-8
 
-autocmd_add([{
-  replace:	true,
-  group:	'viewdumps',
-  event:	'BufRead',
-  pattern:	'*.dump',
-  cmd:		'Render()',
-}])
-
-# Unconditionally help, in case a list of filenames is passed to the command,
-# the first terminal window with its BufRead event.
-silent doautocmd viewdumps BufRead
-
-if error != null_string
-  # Instead of sleeping, fill half a window with blanks and prompt hit-enter.
-  echom error .. repeat("\x20", (winwidth(0) * (winheight(0) / 2) - strlen(error)))
-  error = null_string
-endif
-
 # vim:fdm=syntax:sw=2:ts=8:noet:nolist:nosta:
