diff --git a/makefiles/targets/tox.mk b/makefiles/targets/check.mk
similarity index 74%
copy from makefiles/targets/tox.mk
copy to makefiles/targets/check.mk
index 5942774..aa1b0d0 100644
--- a/makefiles/targets/tox.mk
+++ b/makefiles/targets/check.mk
@@ -14,27 +14,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
 ## -----------------------------------------------------------------------
-## Intent: Sanity check incoming JJB config changes.
-##   Todo: Depend on makefiles/lint/jjb.mk :: lint-jjb
 ## -----------------------------------------------------------------------
-# lint : lint-jjb
-lint-tox: lint-jjb
-	tox -e py310 --workers=auto
+.PHONY: check
+check : lint lint-yaml lint-jjb
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-help-verbose += help-tox
-help-tox ::
+help-verbose += help-check
+help-check ::
 	@echo
-	@echo '[MAKE: tox]'
-	@echo '  lint-tox            Python unit testing, sanity check incoming JJB changes.'
+	@echo '[MAKE: check]'
+	@echo '  check               pre-commit checking, with extra targets (default:NO, jenkins:FAIL)'
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/targets/tox.mk b/makefiles/targets/clean.mk
similarity index 74%
rename from makefiles/targets/tox.mk
rename to makefiles/targets/clean.mk
index 5942774..f787e5c 100644
--- a/makefiles/targets/tox.mk
+++ b/makefiles/targets/clean.mk
@@ -14,27 +14,26 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
 ## -----------------------------------------------------------------------
-## Intent: Sanity check incoming JJB config changes.
-##   Todo: Depend on makefiles/lint/jjb.mk :: lint-jjb
+## Intent: Remove makefile generated content
 ## -----------------------------------------------------------------------
-# lint : lint-jjb
-lint-tox: lint-jjb
-	tox -e py310 --workers=auto
+.PHONY: clean
+clean ::
+	$(RM) -r $(JOBCONFIG_DIR)
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-help-verbose += help-tox
-help-tox ::
+help-verbose += help-clean
+help-clean ::
 	@echo
-	@echo '[MAKE: tox]'
-	@echo '  lint-tox            Python unit testing, sanity check incoming JJB changes.'
+	@echo '[MAKE: clean]'
+	@echo '  clean               Remove makefile generated content'
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/targets/include.mk b/makefiles/targets/include.mk
index 2d49fda..b4adfad 100644
--- a/makefiles/targets/include.mk
+++ b/makefiles/targets/include.mk
@@ -20,8 +20,7 @@
 
 $(if $(DEBUG),$(warning ENTER))
 
-include $(ONF_MAKE)/targets/test-errors.mk
-# include $(ONF_MAKE)/targets/tox.mk
+include $(ONF_MAKEDIR)/targets/test-errors.mk
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/targets/tox.mk b/makefiles/targets/sterile.mk
similarity index 63%
copy from makefiles/targets/tox.mk
copy to makefiles/targets/sterile.mk
index 5942774..c661f53 100644
--- a/makefiles/targets/tox.mk
+++ b/makefiles/targets/sterile.mk
@@ -14,27 +14,31 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
 ## -----------------------------------------------------------------------
-## Intent: Sanity check incoming JJB config changes.
-##   Todo: Depend on makefiles/lint/jjb.mk :: lint-jjb
+## Intent: Revert sandbox into a pristine checkout stage
 ## -----------------------------------------------------------------------
-# lint : lint-jjb
-lint-tox: lint-jjb
-	tox -e py310 --workers=auto
+##   Note: Sterile target behavior differs from clean around handling of
+##         persistent content.  For ex removal of a python virtualenv adds
+##         extra overhead to development iteration:
+##           make clean   - preserve a virtual env
+##           make sterile - force reinstallation
+## -----------------------------------------------------------------------
+.PHONY: sterile
+sterile :: clean
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-help-verbose += help-tox
-help-tox ::
+help-verbose += help-sterile
+help-sterile ::
 	@echo
-	@echo '[MAKE: tox]'
-	@echo '  lint-tox            Python unit testing, sanity check incoming JJB changes.'
+	@echo '[MAKE: sterile]'
+	@echo '  sterile             make clean, also remove persistent content (~venv)'
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/targets/tox.mk b/makefiles/targets/test/ci-management.mk
similarity index 73%
copy from makefiles/targets/tox.mk
copy to makefiles/targets/test/ci-management.mk
index 5942774..2f68086 100644
--- a/makefiles/targets/tox.mk
+++ b/makefiles/targets/test/ci-management.mk
@@ -14,27 +14,27 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
 # SPDX-License-Identifier: Apache-2.0
 # -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))
 
 ## -----------------------------------------------------------------------
-## Intent: Sanity check incoming JJB config changes.
-##   Todo: Depend on makefiles/lint/jjb.mk :: lint-jjb
 ## -----------------------------------------------------------------------
-# lint : lint-jjb
-lint-tox: lint-jjb
-	tox -e py310 --workers=auto
+.PHONY: test
+test: $(venv-activate-script) $(JOBCONFIG_DIR)
+	$(activate) \
+	&& pipdeptree \
+	&& jenkins-jobs -l DEBUG test --recursive --config-xml -o "$(JOBCONFIG_DIR)" jjb/ ;
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-help-verbose += help-tox
-help-tox ::
+help-verbose += help-test
+help-test ::
 	@echo
-	@echo '[MAKE: tox]'
-	@echo '  lint-tox            Python unit testing, sanity check incoming JJB changes.'
+	@echo '[MAKE: test]'
+	@echo '  test                Perform testing that a jenkins job pull request will invoke'
 
 $(if $(DEBUG),$(warning LEAVE))
 
diff --git a/makefiles/targets/test/include.mk b/makefiles/targets/test/include.mk
new file mode 100644
index 0000000..a706bfd
--- /dev/null
+++ b/makefiles/targets/test/include.mk
@@ -0,0 +1,31 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefile.version = 1.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+# Special snowflake: repository-dependent test target
+-include $(ONF_MAKEDIR)/targets/test/$(--repo-name--).mk
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
