π€ Generated by the Daily AI Engineer
Evidence
The same manifest naming gate now exists independently in two repos β the holistic-review extraction signal:
platform: scripts/validate-naming.py (also a portfolio scripting-stack violation β bash/Go only, never Python)
platform-template: scripts/validate-naming.sh (bash port, added by platform-template#77 for platform-template#66)
The two will drift (the template port already had to diverge on its cr_dir_paths and exempt lists), and every future GitOps repo (gitops-tenant-template instances, new platforms) re-copies one of them.
Audience & impact
Every GitOps-shaped repo in the portfolio: divergent naming conventions and duplicated gate maintenance; the platform copy also blocks the portfolio Python ban from closing.
Hypothesis
One shared implementation in devantler-tech/actions (composite action; Go per the bash-first-Go-when-it-grows rule β the bash port is already ~250 lines) with per-repo config (CR-folder list, one-per-file exemptions) keeps all consumers on identical conventions and retires the platform's Python script.
Success signal
platform + platform-template both consume the shared action; validate-naming.py deleted from platform; zero per-repo gate copies remain.
Smallest useful change
Port the gate to Go inside devantler-tech/actions as validate-naming (inputs: config file path), with the template's bash version as the behavioural reference (it has a known false-negative fix the Python may lack: doc parsing must handle files with no leading ---).
Acceptance criteria
Rough size: M
Evidence
The same manifest naming gate now exists independently in two repos β the holistic-review extraction signal:
platform:scripts/validate-naming.py(also a portfolio scripting-stack violation β bash/Go only, never Python)platform-template:scripts/validate-naming.sh(bash port, added by platform-template#77 for platform-template#66)The two will drift (the template port already had to diverge on its
cr_dir_pathsand exempt lists), and every future GitOps repo (gitops-tenant-template instances, new platforms) re-copies one of them.Audience & impact
Every GitOps-shaped repo in the portfolio: divergent naming conventions and duplicated gate maintenance; the platform copy also blocks the portfolio Python ban from closing.
Hypothesis
One shared implementation in
devantler-tech/actions(composite action; Go per the bash-first-Go-when-it-grows rule β the bash port is already ~250 lines) with per-repo config (CR-folder list, one-per-file exemptions) keeps all consumers on identical conventions and retires the platform's Python script.Success signal
platform + platform-template both consume the shared action;
validate-naming.pydeleted from platform; zero per-repo gate copies remain.Smallest useful change
Port the gate to Go inside devantler-tech/actions as
validate-naming(inputs: config file path), with the template's bash version as the behavioural reference (it has a known false-negative fix the Python may lack: doc parsing must handle files with no leading---).Acceptance criteria
validate-namingin this repo, config-driven (CR dirs, exemptions).scripts/validate-naming.py.Rough size: M