diff --git a/makefiles/lint/helm/branch-detect.mk b/makefiles/lint/helm/branch-detect.mk
new file mode 100644
index 0000000..0f7d6c4
--- /dev/null
+++ b/makefiles/lint/helm/branch-detect.mk
@@ -0,0 +1,64 @@
+# -*- 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.
+# -----------------------------------------------------------------------
+# Intent: Define for includers
+#    o get-git-branch
+#    - lint-helm-branch   -- clean this up, generic set by USE_LEGACY=undef
+# -----------------------------------------------------------------------
+
+## -------------------------------------------------------------------
+## NOTE: This uglyness can go away with proper command line switch use
+## -------------------------------------------------------------------
+##   o USE_LEGACY= (default)
+##       - bridge logic: support existing behavior.
+##       - helmlint.sh contains hardcoded branch='origin/opencord'
+##   o TODO:
+##       - infer values from repository checkout on disk.
+##       - parameterize helmlint.sh
+##       - use simple flags to toggle behavior:
+##           MASTER_BRANCH=1  || --branch master (default)
+##           LOCAL_BRANCH=1   || --branch local)
+##           MY_BRANCH=1      || --branch local
+##       - Better yet: when branch name is known simply pass it:
+##           % make lint-helm BRANCH=alt-branch-name
+## -----------------------------------------------------------------------
+# USE_LEGACY = 1
+ifdef USE_LEGACY
+  $(if $(DEBUG),$(info ifdef USE_LEGACY))
+
+  lint-helm-branch ?= $(shell cat .gitreview | grep branch | cut -d '=' -f2)
+
+else
+  $(if $(DEBUG),$(info not USE_LEGACY))
+
+  ifdef LOCAL_BRANCH
+     get-git-branch ?= $(shell $(GIT) branch --show-current)# empty if detached
+     get-git-branch ?= $(shell awk -F '/branch/ {print $$2}' .gitreview)
+     get-git-branch ?= $(error Detected detached head)
+
+  else # master
+     # refs/remotes/origin/HEAD => origin/master
+     get-git-branch ?= $(shell $(GIT) symbolic-ref --short refs/remotes/origin/HEAD)
+  endif
+
+  lint-helm-branch ?= $(COMPARISON_BRANCH)
+  lint-helm-branch ?= $(get-git-branch)
+
+  $(if $(DEBUG),$(info get-git-branch = $(get-git-branch)))
+  $(if $(DEBUG),$(info lint-branch=$(lint-branch)))
+endif
+
+# [EOF]
diff --git a/makefiles/lint/helm/chart.mk b/makefiles/lint/helm/chart.mk
new file mode 100644
index 0000000..ea05706
--- /dev/null
+++ b/makefiles/lint/helm/chart.mk
@@ -0,0 +1,44 @@
+# -*- 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.
+# -----------------------------------------------------------------------
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+# include $(MAKEDIR)/lint/helm/tools.mk
+# include $(MAKEDIR)/lint/helm/branch-detect.mk
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+.PHONY: lint-chart
+
+ifndef NO-LINT-CHART
+  lint : lint-chart
+endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-chart: $(chartcheck-sh)
+	COMPARISON_BRANCH="$(get-git-branch)" $(chartcheck-sh)
+#	COMPARISON_BRANCH="$(lint-helm-branch)" $(chartcheck-sh)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+clean::
+	$(RM) -r $(TOP)/helm-repo-tools
+
+# [EOF]
diff --git a/makefiles/lint/helm/helm.mk b/makefiles/lint/helm/helm.mk
new file mode 100644
index 0000000..ecb2f7c
--- /dev/null
+++ b/makefiles/lint/helm/helm.mk
@@ -0,0 +1,38 @@
+# -*- 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.
+# -----------------------------------------------------------------------
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+# include $(MAKEDIR)/lint/helm/tools.mk
+# include $(MAKEDIR)/lint/helm/branch-detect.mk
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+.PHONY: lint-helm
+
+ifndef NO-LINT-HELM
+  lint : lint-helm
+endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+lint-helm: $(helmlint-sh)
+	$(helmlint-sh)
+
+# [EOF]
diff --git a/makefiles/lint/helm/include.mk b/makefiles/lint/helm/include.mk
index a76987e..936454f 100644
--- a/makefiles/lint/helm/include.mk
+++ b/makefiles/lint/helm/include.mk
@@ -20,84 +20,17 @@
 
 GIT ?= /usr/bin/git
 
-chart-version-check-sh := helm-repo-tools/chart_version_check.sh
-
-## -------------------------------------------------------------------
-## NOTE: This uglyness can go away with proper command line switch use
-## -------------------------------------------------------------------
-##   o USE_LEGACY= (default)
-##       - bridge logic: support existing behavior.
-##       - helmlint.sh contains hardcoded branch='origin/opencord'
-##   o TODO:
-##       - infer values from repository checkout on disk.
-##       - parameterize helmlint.sh
-##       - use simple flags to toggle behavior:
-##           MASTER_BRANCH=1  || --branch master (default)
-##           LOCAL_BRANCH=1   || --branch local)
-##           MY_BRANCH=1      || --branch local
-##       - Better yet: when branch name is known simply pass it:
-##           % make lint-helm BRANCH=alt-branch-name
-## -----------------------------------------------------------------------
-USE_LEGACY = 1
-ifdef USE_LEGACY
-  $(if $(DEBUG),$(info ifdef USE_LEGACY))
-
-  lint-helm-branch ?= $(shell cat .gitreview | grep branch | cut -d '=' -f2)
-
-else
-  $(if $(DEBUG),$(info not USE_LEGACY))
-
-  ifdef LOCAL_BRANCH
-     get-git-branch ?= $(shell $(GIT) branch --show-current)# empty if detached
-     get-git-branch ?= $(shell awk -F '/branch/ {print $$2}' .gitreview)
-     get-git-branch ?= $(error Detected detached head)
-
-  else # master
-     # refs/remotes/origin/HEAD => origin/master
-     get-git-branch ?= $(shell $(GIT) symbolic-ref --short refs/remotes/origin/HEAD)
-  endif
-
-  lint-helm-branch ?= $(COMPARISON_BRANCH)
-  lint-helm-branch ?= $(get-git-branch)
-
-  $(if $(DEBUG),$(info get-git-branch = $(get-git-branch)))
-  $(if $(DEBUG),$(info lint-branch=$(lint-branch)))
-endif
+##--------------------##
+##---]  INCLUDES  [---##
+##--------------------##
+include $(MAKEDIR)/lint/helm/tools.mk
+include $(MAKEDIR)/lint/helm/branch-detect.mk
+include $(MAKEDIR)/lint/helm/chart.mk
+include $(MAKEDIR)/lint/helm/helm.mk
 
 ##-------------------##
 ##---]  TARGETS  [---##
 ##-------------------##
-.PHONY : lint-helm
-lint   : lint-helm
-
-## -----------------------------------------------------------------------
-## Intent: Lint helm charts
-##   o This logic mirrors gerrit/jenkins commit hook behavior.
-##   o Adding to stem incidents of late pull request jenkins failures.
-##   o see: make help VERBOSE=1
-## -----------------------------------------------------------------------
-.PHONY: lint-helm
-lint-helm: $(chart-version-check-sh)# helm-repo-tools
-lint-helm:
-	COMPARISON_BRANCH="$(get-git-branch)" $(chart-version-check-sh)
-#	COMPARISON_BRANCH="$(lint-helm-branch)" $(chart-version-check-sh)
-
-## -----------------------------------------------------------------------
-## Intent: repo:helm-repo-tools
-##   o Use script as a dependency for on-demand cloning.
-##   o Use of repo name (r-h-t) as a dependency is problematic.
-## -----------------------------------------------------------------------
-$(chart-version-check-sh):
-	$(GIT) clone "https://gerrit.opencord.org/helm-repo-tools"
-
-## -----------------------------------------------------------------------
-## Intent: 
-## -----------------------------------------------------------------------
-# branch=`cat .gitreview | grep branch | cut -d '=' -f2`
-pre-commit :: lint-helm
-#	$(chart-version-check-sh) clean
-#	@COMPARISON_BRANCH=origin/$(branch) $(chart-version-check-sh)
-#	$(chart-version-check-sh)
 
 ## -----------------------------------------------------------------------
 ## [TODO] Extract hardcoded values from lint.sh:
@@ -112,30 +45,21 @@
 	helm repo add cord https://charts.opencord.org
 
 ## -----------------------------------------------------------------------
-## Intent: Remove generated targets
-## -----------------------------------------------------------------------
-clean ::
-	$(chart-version-check-sh) clean
-
-## -----------------------------------------------------------------------
-## Intent: Remove all non-source targets
-## -----------------------------------------------------------------------
-sterile ::
-	$(RM) helm-repo-tools
-
-## -----------------------------------------------------------------------
 ## Intent: Display target help with context
 ##   % make help
 ##   % make help VERBOSE=1
 ## -----------------------------------------------------------------------
 help ::
-	@echo "  lint-helm            Syntax check helm charts"
+	@echo
+	@echo '[LINT: helm]'
+	@echo "  lint-chart                    chart_version_check.sh"
+
+	@echo "  lint-helm                     Syntax check helm configs"
 ifdef VERBOSE
-	@echo "  lint-helm COMPARISON_BRANCH=1    Local/dev lint (branch != master)"
+	@echo '    COMPARISON_BRANCH="origin/master" make lint-chart'
 endif
-ifdef VERBOSE
-	@echo "  lint-helm-deps       Configure dependent helm charts"
-endif
+
+	@echo "  lint-helm-deps                Configure dependent helm charts"
 
 ## -----------------------------------------------------------------------
 ## Intent: Future enhancement list
diff --git a/makefiles/lint/helm.mk b/makefiles/lint/helm/tools.mk
similarity index 64%
rename from makefiles/lint/helm.mk
rename to makefiles/lint/helm/tools.mk
index 923e746..66929bc 100644
--- a/makefiles/lint/helm.mk
+++ b/makefiles/lint/helm/tools.mk
@@ -1,6 +1,6 @@
 # -*- makefile -*-
 # -----------------------------------------------------------------------
-# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# 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.
@@ -18,48 +18,30 @@
 ##-------------------##
 ##---]  GLOBALS  [---##
 ##-------------------##
-env-clean     = /usr/bin/env --ignore-environment
-xargs-n1      := xargs -0 -t -n1 --no-run-if-empty
-
 helmlint-sh   := $(TOP)/helm-repo-tools/helmlint.sh
 chartcheck-sh := $(TOP)/helm-repo-tools/chart_version_check.sh
 
 ##-------------------##
 ##---]  TARGETS  [---##
 ##-------------------##
-.PHONY: lint-helm
-.PHONY: lint-chart
-
-ifdef UNSTABLE
-  # Repair failures before enabling as a default.
-  lint : lint-helm
-  lint : lint-chart
-endif
 
 ## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-lint-helm: $(helmlint-sh)
-	$(helmlint-sh)
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-lint-chart: $(chartcheck-sh)
-	$(chartcheck-sh)
-
-## -----------------------------------------------------------------------
+## Intent: repo:helm-repo-tools
+##   o Use script as a dependency for on-demand cloning.
+##   o Use of repo name (r-h-t) as a dependency is problematic.
 ## -----------------------------------------------------------------------
 $(helmlint-sh) $(chartcheck-sh):
 	git clone "https://gerrit.opencord.org/helm-repo-tools"
 
 ## -----------------------------------------------------------------------
+## Intent: Remove generated targets
 ## -----------------------------------------------------------------------
-help::
-	@echo "  lint-chart                    chart_version_check.sh"
-	@echo "  lint-helm                     Syntax check helm configs"
+clean ::
+	$(chartcheck-sh) clean
 
 ## -----------------------------------------------------------------------
 ## -----------------------------------------------------------------------
-clean::
+sterile::
 	$(RM) -r $(TOP)/helm-repo-tools
 
 # [EOF]
diff --git a/makefiles/lint/include.mk b/makefiles/lint/include.mk
index d3975de..d53a456 100644
--- a/makefiles/lint/include.mk
+++ b/makefiles/lint/include.mk
@@ -24,8 +24,9 @@
 #   - on demand for now, errors and cleanup needed
 #   - Usage: make lint-helm USE_LEGACY=<blank>
 # ------------------------------------------------
-$(if $(findstring lint-helm,$(MAKECMDGOALS)),\
-  $(eval include $(MAKEDIR)/lint/helm/include.mk))
+# $(if $(findstring lint-helm,$(MAKECMDGOALS)),\
+#  $(eval include $(MAKEDIR)/lint/helm/include.mk))
+include $(MAKEDIR)/lint/helm/include.mk
 
 # ------------------------------------------------------------
 ## yaml checking
