`scripts/install.sh` and `scripts/uninstall.sh` duplicate several blocks verbatim:
- Path variables (`REPO_ROOT`, `SKILLS_SRC`, `SKILLS_DEST`, `AGENTS_SRC`, `AGENTS_DEST`)
- Flag state (`DRY_RUN`, `SKILL_TARGETS`, `AGENT_TARGETS`) and the argument-parsing `for` loop
- The `run()` dry-run wrapper
Extract these into a shared `scripts/libs.sh` and source it from each script. This reduces copy-paste drift and makes it easier to add new flags (e.g. future `--memory=` support) in one place.
`scripts/install.sh` and `scripts/uninstall.sh` duplicate several blocks verbatim:
Extract these into a shared `scripts/libs.sh` and source it from each script. This reduces copy-paste drift and makes it easier to add new flags (e.g. future `--memory=` support) in one place.