diff --git a/.gitmodules b/.gitmodules
index b524402..91b2143 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
 [submodule "makefiles/onf-lib"]
 	path = makefiles/onf-lib
 	url = https://github.com/opencord/onf-make.git
+[submodule "lf/onf-make"]
+	path = lf/onf-make
+	url = https://github.com/opencord/onf-make.git
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 6e55a3c..a4c8ef0 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -4,8 +4,8 @@
 # [NOTE] - Propogate .pre-commit-config.yaml edits to all repositories!
 # -----------------------------------------------------------------------
 # [NOTE] - Common config file source lives in repo:onf-make
-#    - https://gerrit.opencord.org/plugins/gitiles/onf-make/
-#        +/refs/heads/master/.pre-commit-config.yaml
+#    - https://gerrit.opencord.org/plugins/gitiles/
+#            onf-make/+/refs/heads/master/.pre-commit-config.yaml
 # -----------------------------------------------------------------------
 # [TODO]
 #    - pre-commit yaml config exists individually within repositories.
@@ -35,7 +35,7 @@
 # See https://pre-commit.com for more information
 # See https://pre-commit.com/hooks.html for more hooks
 # -----------------------------------------------------------------------
-# .pre-commit-config-yaml 2024-04-19 v0.4
+# .pre-commit-config-yaml v0.5
 # -----------------------------------------------------------------------
 
 # ci:
@@ -49,7 +49,6 @@
 
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-#    rev: c4a0b883114b00d8d76b479c820ce7950211c99b  # frozen: v4.5.0
     rev: v4.5.0
     hooks:
       - id: trailing-whitespace
@@ -59,10 +58,10 @@
       - id: check-merge-conflict
       - id: check-xml
       - id: check-yaml
-#      - id: debug-statements
+      # - id: debug-statements
       - id: end-of-file-fixer
       - id: fix-encoding-pragma
-#     - id: double-quote-string-fixer
+      # - id: double-quote-string-fixer
       - id: requirements-txt-fixer
       - id: mixed-line-ending
         args: ['--fix=lf']
@@ -82,9 +81,9 @@
     hooks:
       - id: yamllint
 
-## -----------------------------------------------------------------------
-## [SOURCE] Documentation
-## -----------------------------------------------------------------------
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Documentation
+  ## -----------------------------------------------------------------------
   - repo: https://github.com/rstcheck/rstcheck
     rev: v6.2.1
     hooks:
@@ -94,61 +93,69 @@
     rev: v0.13.0
     hooks:
       - id: markdownlint
-#      - id: markdownlint_docker
+      # - id: markdownlint_docker
 
-## -----------------------------------------------------------------------
-## [SOURCE] Docker
-## -----------------------------------------------------------------------
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Docker
+  ## -----------------------------------------------------------------------
   - repo: https://github.com/hadolint/hadolint
     rev: v2.12.0
     hooks:
-      - id: hadolint
-#      - id: hadolint-docker
+      # - id: hadolint       # local tool install
+      - id: hadolint-docker
 
-## -----------------------------------------------------------------------
-## [SOURCE] Golang
-## -----------------------------------------------------------------------
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Golang
+  ## -----------------------------------------------------------------------
   - repo: https://github.com/golangci/golangci-lint
     rev: v1.41.1
     hooks:
       - id: golangci-lint
 
-## -----------------------------------------------------------------------
-## [SOURCE] REUSE License Checking
-## -----------------------------------------------------------------------
-#  - repo: https://github.com/fsfe/reuse-tool
-#    rev: v3.0.2
-#    hooks:
-#      - id: reuse
-#     - id: add-license-headers
-#
-# - repo: https://github.com/ansys/pre-commit-hooks
-#   rev: v0.2.9
-#   hooks:
-#     - id: add-license-headers
-#   args:
-# - --custom_copyright=custom copyright phrase
-# - --custom_template=template_name
-# - --custom_license=license_name
-# - --ignore_license_check
-# - --start_year=2023
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] REUSE License Checking
+  ## -----------------------------------------------------------------------
+  # - repo: https://github.com/fsfe/reuse-tool
+    # rev: v3.0.2
+    # hooks:
+      # - id: reuse
+      # - id: add-license-headers
 
-## -----------------------------------------------------------------------
-## [SOURCE] Python
-## -----------------------------------------------------------------------
+# - repo: https://github.com/ansys/pre-commit-hooks
+  # rev: v0.2.9
+  # hooks:
+    # - id: add-license-headers
+  # args:
+    # - --custom_copyright=custom copyright phrase
+    # - --custom_template=template_name
+    # - --custom_license=license_name
+    # - --ignore_license_check
+    # - --start_year=2023
+
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Python
+  ## -----------------------------------------------------------------------
   - repo: https://github.com/psf/black
     rev: 22.10.0
     hooks:
       - id: black
 
-  - repo: https://github.com/PyCQA/doc8
-    rev: v1.1.1
-    hooks:
-      - id: doc8
+# - repo: https://github.com/PyCQA/doc8
+  # rev: v1.1.1
+  # hooks:
+  # - id: doc8
 
-## -----------------------------------------------------------------------
-## [SOURCE] Testing
-## -----------------------------------------------------------------------
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Spelling
+  ## -----------------------------------------------------------------------
+  - repo: https://github.com/codespell-project/codespell
+    rev: v2.2.4
+    hooks:
+      - id: codespell
+
+  ## -----------------------------------------------------------------------
+  ## [SOURCE] Testing
+  ## -----------------------------------------------------------------------
   - repo: https://github.com/MarketSquare/robotframework-tidy
     rev: 4.11.0
     hooks:
@@ -162,7 +169,6 @@
         ^makefiles/.*       |
         ^lf/.*              |
         ^.venv/.*           |
-        ^test/.*            |
         ^\[END-OF-EXCLUDE\]
     )$
 
diff --git a/Makefile b/Makefile
index ed57658..1aa69f5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2024 Open Networking Foundation Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,19 +14,28 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 # -----------------------------------------------------------------------
-# Makefile for Sphinx documentation
+# SPDX-FileCopyrightText: 2022-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent: Makefile for Sphinx documentation
+# -----------------------------------------------------------------------
 
-.DEFAULT_GOAL := help
+ifndef .DEFAULT_GOAL
+  .DEFAULT_GOAL := help # ?= help evaluated late
+endif
+MAKECMDGOALS    ?= help
 
-##-------------------##
-##---]  GLOBALS  [---##
-##-------------------##
-TOP ?=$(strip $(dir $(abspath $(lastword $(MAKEFILE_LIST))) ) )
+$(if $(findstring disabled-joey,$(USER)),\
+   $(eval USE_LF_MK := 1)) # special snowflake
 
 ##--------------------##
 ##---]  INCLUDES  [---##
 ##--------------------##
-include $(TOP)/makefiles/include.mk      # top level include
+ifdef USE_LF_MK
+  include lf/include.mk
+else
+  include lf/transition.mk
+endif # ifdef USE_LF_MK
 
 # You can set these variables from the command line.
 SPHINXOPTS   ?=
@@ -253,7 +262,7 @@
 	  'Extended makefile target help'
 
 	@echo
-	@echo '[INIT]'	
+	@echo '[INIT]'
 	@printf '  %-30.30s %s\n' 'init' \
 	    'Alias for git-submodules'
 	@printf '  %-30.30s %s\n' 'git-submodules' \
@@ -275,7 +284,7 @@
 	git submodule update --init --recursive
 
 ## -----------------------------------------------------------------------
-## Intent: Display make hel footer
+## Intent: Display make help footer
 ## -----------------------------------------------------------------------
 include $(ONF_MAKEDIR)/help/trailer.mk
 
diff --git a/VERSION b/VERSION
index 72c808e..ee4646b 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.12.42
+2.12.43
diff --git a/lf/README.md b/lf/README.md
new file mode 100644
index 0000000..9ffb383
--- /dev/null
+++ b/lf/README.md
@@ -0,0 +1,39 @@
+Library makefiles
+=================
+
+$(sandbox-root)/include.mk
+    Source this makefile to import all makefile logic.
+
+$(sandbox-root)/lf/onf-make/
+$(sandbox-root)/lf/onf-make/include.mk
+    repo:onf-make contains common library makefile logic.
+    tag based checkout (frozen) as a git submodule.
+
+$(sandbox-root)/lf/local/
+$(sandbox-root)/lf/local/include.mk
+    per-repository targets and logic to customize makefile behavior.
+
+<!--
+
+# -----------------------------------------------------------------------
+# Copyright 2024 Open Networking Foundation 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: 2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
+
+-->
diff --git a/lf/config.mk b/lf/config.mk
new file mode 100644
index 0000000..6443565
--- /dev/null
+++ b/lf/config.mk
@@ -0,0 +1,141 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2023-2024 Open Networking Foundation 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: 2023-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
+
+--repo-name-- := voltha-docs
+--repo-name-- ?= $(error --repo-name--= is required)
+
+##--------------------------------##
+##---]  Disable lint targets  [---##
+##--------------------------------##
+# NO-LINT-DOC8      := true
+# USE_DOC8_INI      := true
+# NO-LINT-GOLANG    := true
+NO-LINT-GROOVY      := true#               # Note[1]
+# NO-LINT-JJB       := true#               # Note[2]
+# NO-LINT-JSON      := true#               # Note[1]
+NO-LINT-MAKEFILE    := true#               # Note[1]
+NO-LINT-REUSE       := true                # License check
+# NO-LINT-ROBOT     := true
+NO-LINT-SHELL       := true#               # Note[1]
+# NO-LINT-TOX       := true#               # Note[1]
+NO-LINT-YAML        := true#               # Note[1]
+
+NO-LINT-FLAKE8      := true#               # Note[1]
+# NO-LINT-PYTHON    := true#               # Note[1]
+NO-LINT-PYLINT      := true#               # Note[1]
+
+# Note[1] - A boatload of source to cleanup prior to enable.
+# Note[2] - No sources available
+
+##---------------------------------##
+##---] Conditional make logic  [---##
+##---------------------------------##
+# USE-ONF-DOCKER-MK      := true
+# USE-ONF-GERRIT-MK      := true
+# USE-ONF-GIT-MK         := true
+# USE-ONF-JJB-MK         := true
+# USE-VOLTHA-RELEASE-MK  := true
+
+##----------------------##
+##---]  Debug Mode  [---##
+##----------------------##
+# export DEBUG           := 1      # makefile debug
+# export DISTUTILS_DEBUG := 1      # verbose: pip
+# export DOCKER_DEBUG    := 1      # verbose: docker
+# export VERBOSE         := 1      # makefile debug
+
+##-----------------------------------##
+##---]  JJB/Jenkins Job Builder  [---##
+##-----------------------------------##
+JJB_VERSION   ?= 2.8.0
+JOBCONFIG_DIR ?= job-configs
+
+##---------------------------------##
+##---]  Filesystem exclusions  [---##
+##---------------------------------##
+onf-excl-dirs := $(null)        # make clean: dirs=
+onf-excl-dirs += lf/onf-make    # repo:onf-make git submodule
+onf-excl-dirs += .venv#         # $(venv-name)
+onf-excl-dirs += vendor#        # golang / voltha*-go
+onf-excl-dirs += patches#       # voltha docs - python upgrade
+onf-excl-dirs += .tmp           #
+onf-excl-dirs += .tox           # also a python dependency
+# onf-excl-dirs += vendor#        # golang / voltha*-go -- local exclude
+
+# [NOTE] Add exclusions: lint/doc8/doc8.incl
+
+ifeq ($(--repo-name--),voltha-docs)
+  lint-doc8-excl += '_build' # TODO: deprecate
+endif
+
+onf-excl-dirs ?= $(error onf-excl-dirs= is required)
+
+##-----------------------------##
+##---]  Feature Detection  [---##
+##-----------------------------##
+# [TODO] include makefiles/features/include.mk
+# [TODO] All logic below can migrate there.
+
+$(if $(filter %ci-management,$(--repo-name--)),\
+  $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
+)
+
+$(if $(filter %voltha-docs,$(--repo-name--)),\
+  $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
+)
+
+# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
+# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
+
+##-------------------------##
+##---]  Derived Flags  [---##
+##-------------------------##
+ifdef --REPO-IS-CI-MANAGEMENT--
+  USE-ONF-JJB := true
+
+  onf-excl-dirs += global-jjb
+  onf-excl-dirs += lf-ansible
+  onf-excl-dirs += packer
+endif
+
+ifdef --REPO-IS-VOLTHA-DOCS--
+  onf-excl-dirs += _build
+  onf-excl-dirs += repos
+endif
+
+ifdef NO-LINT-PYTHON
+  NO-LINT-FLAKE8 := true
+  NO-LINT-PYLINT := true
+endif
+
+ifndef USE-ONF-JJB
+  NO-LINT-JJB := true
+endif
+
+onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
+
+# --------------------------------------------------------------------
+# Repository specific values
+# --------------------------------------------------------------------
+# sterile-dirs += archives
+
+# [EOF]
diff --git a/lf/include.mk b/lf/include.mk
new file mode 100644
index 0000000..5d52907
--- /dev/null
+++ b/lf/include.mk
@@ -0,0 +1,109 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2023-2024 Open Networking Foundation 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: 2023-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+## -----------------------------------------------------------------------
+## Infer path to cloned sandbox root
+## [TODO] Deprecate TOP=
+## -----------------------------------------------------------------------
+lf-sbx-root   := $(abspath $(lastword $(MAKEFILE_LIST)))
+lf-sbx-root   := $(subst /lf/include.mk,$(null),$(lf-sbx-root))
+
+## -----------------------------------------------------------------------
+## Define vars based on relative import (normalize symlinks)
+## Usage: include makefiles/onf/include.mk
+## -----------------------------------------------------------------------
+onf-mk-abs    := $(abspath $(lastword $(MAKEFILE_LIST)))
+onf-mk-top    := $(subst /include.mk,$(null),$(onf-mk-abs))
+onf-mk-lib    := $(onf-mk-top)/onf-make/makefiles
+onf-mk-loc    := $(onf-mk-top)/local
+
+TOP           ?= $(patsubst %/makefiles/include.mk,%,$(onf-mk-abs))
+
+## -----------------------------------------------------------------------
+## This variable is a bridge to help transition away from legacy makefiles.
+## -----------------------------------------------------------------------
+legacy-mk     := $(lf-sbx-root)/makefiles
+
+## ------------------------------------------------------
+## Two distinct vars needed to access library or project
+## ------------------------------------------------------
+ONF_MAKEDIR ?= $(onf-mk-lib)
+MAKEDIR     ?= $(onf-mk-loc)
+
+# -----------------------------------------------------------------------
+# Load per-repository conditionals
+# Load late else alter MAKEFILE_LIST
+# NOTE: config.mk can be removed if dynamic feature detection by
+#       file extension is added.
+# -----------------------------------------------------------------------
+include $(wildcard $(lf-sbx-root)/config.mk $(lf-sbx-root)/lf/config.mk)
+
+## -----------------------------------------------------------------------
+## Load makefiles in order:
+##   1) Library constants and logic loaded first
+##   2) Parameterize and augment targets from local (repo specific)
+## -----------------------------------------------------------------------
+include $(onf-mk-lib)/include.mk
+include $(onf-mk-loc)/include.mk
+
+## Define late so caller (?- env --ignore-environment -?)
+GIT ?= /usr/bin/env git
+
+## -----------------------------------------------------------------------
+## Intent: This target will update dependent git-submodule to the latest
+##         version available from the remote repository.  Subsequently
+##         a checkin will be needed to make the submodule update permanent.
+## -----------------------------------------------------------------------
+.PHONY: update-git-submodules
+update-git-submodules:
+	$(GIT) submodule foreach git pull
+
+## -----------------------------------------------------------------------
+## Intent: On-demand cloning of git submodule(s).
+## -----------------------------------------------------------------------
+## Trigger: include $(onf-mk-lib)/include.mk
+##   - When the make command attempts to include a makefile from the
+##     repo:onf-make submodule, this target/dependency will initialize
+##     and checkout all submodules the current repository depends on.
+## -----------------------------------------------------------------------
+.PHONY: git-submodules
+git-submodules : $(onf-mk-lib)/include.mk
+
+$(onf-mk-lib)/include.mk:
+
+	$(call banner-enter,(Checkout git submodules))
+
+	$(GIT) submodule update --init --recursive
+
+	$(call banner-leave,(Checkout git submodules))
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help-git :
+	@printf '  %-33.33s %s\n' 'git-submodules' \
+	  'Init and recursive checkout of git submodule(s)'
+	@printf '  %-33.33s %s\n' 'update-git-submodules' \
+	  'Update git submodule(s) to the latest version'
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/lf/local/include.mk b/lf/local/include.mk
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lf/local/include.mk
diff --git a/lf/onf-make b/lf/onf-make
new file mode 160000
index 0000000..78fca2d
--- /dev/null
+++ b/lf/onf-make
@@ -0,0 +1 @@
+Subproject commit 78fca2dfde43820c5b0449e6ec00be7547acf4d6
diff --git a/lf/transition.mk b/lf/transition.mk
new file mode 100644
index 0000000..6a909af
--- /dev/null
+++ b/lf/transition.mk
@@ -0,0 +1,70 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2024 Open Networking Foundation 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: 2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------## 
+lf-sbx-root   := $(abspath $(lastword $(MAKEFILE_LIST)))
+lf-sbx-root   := $(subst /lf/transition.mk,$(null),$(lf-sbx-root))
+
+legacy-mk   ?= $(lf-sbx-root)/makefiles
+onf-mk-dir  ?= $(lf-sbx-root)/lf/onf-make/makefiles
+
+sandbox-root := $(lf-sbx-root)
+
+## -----------------------------------------------------------------------
+## Intent: on-demand submodule checkout when make targets are invoked
+## -----------------------------------------------------------------------
+GIT ?= /usr/bin/env git
+
+git-submodule-deps += $(onf-mk-dir)/consts.mk
+git-submodule-deps += $(onf-mk-dir)/etc/features.mk         # $(call banner-enter)
+git-submodule-deps += $(onf-mk-dir)/virtualenv/include.mk   # make venv
+git-submodule-deps += $(onf-mk-dir)/commands/pre-commit/include.mk
+
+# git-submodule-deps    : $(git-submodule-deps)
+
+$(git-submodule-deps) :
+
+	$(call banner-enter,(Checkout git submodules))
+	$(GIT) submodule update --init --recursive
+	$(call banner-leave,(Checkout git submodules))
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+TOP ?= $(lf-sbx-root)
+
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(onf-mk-dir)/consts.mk
+include $(onf-mk-dir)/etc/features.mk         # $(call banner-enter)
+include $(onf-mk-dir)/virtualenv/include.mk   # make venv
+include $(onf-mk-dir)/commands/pre-commit/include.mk
+
+include $(TOP)/makefiles/include.mk      # top level include
+
+# dependency of virtualenv::sterile
+clean ::
+
+# [EOF]
diff --git a/makefiles-orig/include.mk b/makefiles-orig/include.mk
index 7b983c1..c400f4b 100644
--- a/makefiles-orig/include.mk
+++ b/makefiles-orig/include.mk
@@ -41,7 +41,7 @@
 include $(ONF_MAKEDIR)/etc/include.mk        # banner macros
 include $(ONF_MAKEDIR)/commands/include.mk   # Tools and local installers
 
-include $(ONF_MAKEDIR)/virtualenv.mk#        # lint-{jjb,python} depends on venv
+# include $(ONF_MAKEDIR)/virtualenv.mk#        # lint-{jjb,python} depends on venv
 include $(ONF_MAKEDIR)/patches/include.mk#   # Patch when python 3.10+ in use
 include $(ONF_MAKEDIR)/lint/include.mk
 
diff --git a/makefiles-orig/lint/include.mk b/makefiles-orig/lint/include.mk
index 6586040..7977da1 100644
--- a/makefiles-orig/lint/include.mk
+++ b/makefiles-orig/lint/include.mk
@@ -27,7 +27,12 @@
 	@echo
 	@echo "[LINT]"
 
-include $(ONF_MAKEDIR)/lint/doc8/include.mk
+# -----------------------------------------------------------------------
+# disable temporarily, this repo was a staging area for makefile edits.
+# onf-mk-tmp= is in conflict between repo:onf-make and repo:voltha-docs.
+# -----------------------------------------------------------------------
+# include $(onf-mk-dir)/lint/doc8/include.mk
+# include $(ONF_MAKEDIR)/lint/doc8/include.mk
 include $(ONF_MAKEDIR)/lint/groovy/include.mk
 include $(ONF_MAKEDIR)/lint/jjb.mk
 include $(ONF_MAKEDIR)/lint/json.mk
diff --git a/makefiles/config.mk b/makefiles/config.mk
index 72b2e9a..ccb22e9 100644
--- a/makefiles/config.mk
+++ b/makefiles/config.mk
@@ -1,6 +1,12 @@
 # -*- makefile -*-
+
+## -----------------------------------------------------------------------
+## DEPRECATED
+## This file has been replaced by lf/config.mk
+## -----------------------------------------------------------------------
+
 # -----------------------------------------------------------------------
-# Copyright 2023 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2023-2024 Open Networking Foundation Contributors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -26,6 +32,7 @@
 ##---]  Disable lint targets  [---##
 ##--------------------------------##
 # NO-LINT-DOC8      := true
+# USE_DOC8_INI      := true
 # NO-LINT-GOLANG    := true
 NO-LINT-GROOVY      := true#               # Note[1]
 # NO-LINT-JJB       := true#               # Note[2]
@@ -71,14 +78,18 @@
 ##---]  Filesystem exclusions  [---##
 ##---------------------------------##
 onf-excl-dirs := $(null)        # make clean: dirs=
+onf-excl-dirs += lf/onf-make    # repo:onf-make git submodule
 onf-excl-dirs += .venv#         # $(venv-name)
 onf-excl-dirs += vendor#        # golang / voltha*-go
 onf-excl-dirs += patches#       # voltha docs - python upgrade
+onf-excl-dirs += .tmp           #
 onf-excl-dirs += .tox           # also a python dependency
+# onf-excl-dirs += vendor#        # golang / voltha*-go -- local exclude
+
+# [NOTE] Add exclusions: lint/doc8/doc8.incl
 
 ifeq ($(--repo-name--),voltha-docs)
-  lint-doc8-excl   += '_build'  # generated
-#  lint-groovy-excl += 'bbsim'   # external repo
+  lint-doc8-excl += '_build'  # generated
 endif
 
 onf-excl-dirs ?= $(error onf-excl-dirs= is required)
@@ -92,6 +103,7 @@
 $(if $(filter %ci-management,$(--repo-name--)),\
   $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
 )
+
 $(if $(filter %voltha-docs,$(--repo-name--)),\
   $(eval --REPO-IS-VOLTHA-DOCS-- := true)\
 )
@@ -126,6 +138,7 @@
 
 onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
 
+# --------------------------------------------------------------------
 # [TODO]#
 #  --------------------------------------------------------------------
 #   o two distinct makefiles directories are needed, one for onf-make
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 44872b4..4360b73 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -60,7 +60,7 @@
 ##   1) Library constants and logic loaded first
 ##   2) Parameterize and augment targets from local (repo specific)
 ## -----------------------------------------------------------------------
-include $(onf-mk-top)/makefiles/config.mk
+include $(lf-sbx-root)/lf/config.mk # include $(onf-mk-top)/makefiles/config.mk
 include $(onf-mk-lib)/include.mk
 include $(onf-mk-loc)/include.mk
 
