Files
Linux_post_install/memory/decisions/maintainer-decision-lib-registration.md
Your Name 73d15a26b4
gates / consistency-and-conventions (push) Successful in 19s
fix: register bank-lib.sh (and yt-lib.sh) in install/uninstall lib manifests
lib/bank-lib.sh was added for pos bank but never registered in install.sh's
phase-2 lib copy list, so it never reached /usr/local/bin and pos bank failed
after install. Also restored yt-lib.sh to POS_LIBS (pre-existing gap: uninstall
left it behind). Symmetry gate tests/t-uninstall-manifest.sh now passes.
2026-09-12 03:28:15 -04:00

22 lines
1.3 KiB
Markdown

# Decision: lib-registration standard is a 3-surface symmetry (install.sh + POS_LIBS + docs)
## Finding (2026-09-12, MAINTENANCE_COMPLETE)
lib/bank-lib.sh (added 41efc91 feat: pos bank) was never registered in install.sh's
phase-2 lib copy list, bin/pos-system-uninstall's POS_LIBS, or the hand-maintained docs.
lib/yt-lib.sh had been added to install.sh (0b76d4d) but missed POS_LIBS. Result: after
`./install.sh`, `pos bank` failed with `/usr/local/bin/bank-lib.sh: No such file or directory`,
and uninstall would leave stale yt-lib.sh. The symmetry gate tests/t-uninstall-manifest.sh
(set-equality of the two lists) was failing.
## Established standard (restored)
Every lib/ file sourced by a bin/ tool MUST be registered in all THREE places:
1. install.sh phase-2 lib copy loop (`for lf in …; do`) → ships to /usr/local/bin,
2. bin/pos-system-uninstall `POS_LIBS` array (same set, backslash-continuation style),
3. hand-maintained docs: DOC/SCRIPTS.md phase-2 table row + DOC/AGENT_Context_Project.md
phase-2 lib list AND its hand-maintained filetable row (above GEN:START filetable,
with real `wc -l` count).
Validator: tests/t-uninstall-manifest.sh (must stay green; it enforces set equality and
that every listed lib exists). Never edit GEN:START/GEN:END blocks by hand — run make gen.