Found during the 2026-07-17 architecture audit (docs/AUDIT-ARCHITECTURE-2026-07-17.md).
D4 correctly reduced the runtime module list to one manifest (modules/runtime_modules.list) — but four consumers each hand-roll the identical comment/blank-line filter (grep -vE '^[[:space:]]*(#|$)' or equivalent):
install-minecraft-splitscreen.sh:121 — read_runtime_manifest()
modules/launcher_setup.sh:168 — inline mapfile ... grep -vE in install_runtime_modules
deploy.sh:59 — runtime_module_list()
minecraftSplitscreen.sh:74-81 — the launcher's source loop
A format change to the manifest (say, per-module annotations) now needs four synchronized edits. Constraint to respect: the launcher and deploy.sh are deliberately standalone, so a naive "everyone sources utilities.sh" doesn't fit — but installer + launcher_setup CAN share one helper today, and deploy.sh can source it from the checkout. At minimum, the four sites need cross-reference comments pinning the parse rule to one spec line in the manifest header.
Second duplication, same file pair: the __MCSS_VERSION__/__MCSS_COMMIT__/__MCSS_BUILD_DATE__ stamping sed exists verbatim in launcher_setup.sh:123-127 (setup_splitscreen_launcher_script) and deploy.sh:182-186 (which also adds the +dirty marker and stamp-normalized --check diff). Extract one stamping helper (a small modules/ lib or scripts/ helper both source from the checkout) so install-deploy and dev-deploy can't drift — today a stamp-format change would silently break deploy.sh's --check normalization.
Found during the 2026-07-17 architecture audit (docs/AUDIT-ARCHITECTURE-2026-07-17.md).
D4 correctly reduced the runtime module list to one manifest (
modules/runtime_modules.list) — but four consumers each hand-roll the identical comment/blank-line filter (grep -vE '^[[:space:]]*(#|$)'or equivalent):install-minecraft-splitscreen.sh:121—read_runtime_manifest()modules/launcher_setup.sh:168— inlinemapfile ... grep -vEininstall_runtime_modulesdeploy.sh:59—runtime_module_list()minecraftSplitscreen.sh:74-81— the launcher's source loopA format change to the manifest (say, per-module annotations) now needs four synchronized edits. Constraint to respect: the launcher and deploy.sh are deliberately standalone, so a naive "everyone sources utilities.sh" doesn't fit — but installer + launcher_setup CAN share one helper today, and deploy.sh can source it from the checkout. At minimum, the four sites need cross-reference comments pinning the parse rule to one spec line in the manifest header.
Second duplication, same file pair: the
__MCSS_VERSION__/__MCSS_COMMIT__/__MCSS_BUILD_DATE__stampingsedexists verbatim inlauncher_setup.sh:123-127(setup_splitscreen_launcher_script) anddeploy.sh:182-186(which also adds the+dirtymarker and stamp-normalized--checkdiff). Extract one stamping helper (a smallmodules/lib or scripts/ helper both source from the checkout) so install-deploy and dev-deploy can't drift — today a stamp-format change would silently break deploy.sh's--checknormalization.