diff --git a/Tupling_default/README.md b/Tupling_default/README.md
index b4fd64415cdd8526fbf2c5dde93b5463d6b76e62..4c7d93ab929e6bb1395a2f34d2fbc6a77ecccbd7 100644
--- a/Tupling_default/README.md
+++ b/Tupling_default/README.md
@@ -16,17 +16,17 @@ the _DecayTree_ is not empty and contains exactly all the expected branches.
 The test chain consists of the following steps:
 
 1) Start the test chain running HLT1 Allen on a MC .digi file from the TestFileDB.
-      * **Function**:    [`Moore.production:allen_hlt1_production`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py#L19)
+      * **Function**:    [`Moore.production:allen_hlt1_production`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py)
       * **Option file**: [`Tupling_default/option_moore_hlt1_allen.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_hlt1_allen.yaml)
 2) Run the HLT2 on the HLT1 step output, testing the MC workflow.
-      * **Function**:    [`Moore.production:hlt2`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py#L27)
+      * **Function**:    [`Moore.production:hlt2`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py)
       * **Option file**: [`Tupling_default/option_moore_hlt2_all_lines.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_hlt2_all_lines.yaml)
 3) Run offline processing on the HLT2 step output with:
       - a Passthrough line
-            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_passthrough`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py#L93)
+            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_passthrough`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py)
             * **Option file**: [`Tupling_default/option_moore_passthrough.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_passthrough.yaml)
       - a Sprucing line 
-            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_all_lines_realtime`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py#L62)
+            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_all_lines_realtime`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py)
             * **Option file**: [`Tupling_default/option_moore_spruce_all_lines.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_spruce.yaml)
 4) Run DaVinci and create a tuple from:
       - the HLT2 step output
diff --git a/Tupling_veloSP/README.md b/Tupling_veloSP/README.md
index 121ebe6a40b038413d95cb8dd70d4e2a7ddb54f4..ebf1fefec0f5c75dd26feb1600118ebba7d1cedb 100644
--- a/Tupling_veloSP/README.md
+++ b/Tupling_veloSP/README.md
@@ -10,18 +10,18 @@ the Tupling_default test chain.
 The test chain on simulation import the global [`Utilities/jobMC_options.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Utilities/jobMC_options.yaml) configuration and consists of the following steps:
 
 1) Start the test chain running HLT1 Allen on a MC .digi file from the TestFileDB.
-      * **Function**:    [`Moore.production:allen_hlt1_production`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py#L19)
+      * **Function**:    [`Moore.production:allen_hlt1_production`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py)
       * **Option file**: [`Tupling_veloSP/option_moore_hlt1_allen.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_veloSP/option_moore_hlt1_allen.yaml)
       * **Extra option**: hlt1_pp_veloSP
 2) Run the HLT2 on the HLT1 step output, testing the MC workflow.
-      * **Function**:    [`Moore.production:hlt2`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py#L27)
+      * **Function**:    [`Moore.production:hlt2`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Moore/python/Moore/production.py)
       * **Option file**: [`Tupling_default/option_moore_hlt2_all_lines.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_hlt2_all_lines.yaml)
 3) Run offline processing on the HLT2 step output with:
       - a Passthrough line 
-            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_passthrough`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py#L93)
+            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_passthrough`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py)
             * **Option file**: [`Tupling_default/option_moore_passthrough.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_passthrough.yaml)
       - a Sprucing line
-            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_all_lines_realtime`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py#L62)
+            * **Function**:  [`Hlt2Conf.Sprucing_tests:spruce_all_lines_realtime`](https://gitlab.cern.ch/lhcb/Moore/-/blob/master/Hlt/Hlt2Conf/python/Hlt2Conf/Sprucing_tests.py)
             * **Option file**: [`Tupling_default/option_moore_spruce_all_lines.yaml`](https://gitlab.cern.ch/lhcb/LHCbIntegrationTests/-/blob/master/Tupling_default/option_moore_spruce.yaml)
 4) Run DaVinci and create a tuple from:
       - the HLT2 step output