Shellcheck Fix
Goal
Keep setup.sh, skills/deepworkplan/shared/context.sh, and scripts/*.sh
shellcheck-clean and runnable on macOS's default bash 3.2.
When to use
After editing any shell script, or when CI's shellcheck step fails.
Steps
- Run
shellcheck setup.sh skills/deepworkplan/shared/context.sh scripts/*.sh. - Fix each finding. When resolving, keep the script bash 3.2-safe:
- replace
mapfile/readarraywithwhile IFS= read -r line; do …; done < <(cmd) - replace
declare -Awith a restructured approach - replace
${var^^}/${var,,}withtr '[:lower:]' '[:upper:]'
- replace
- Confirm each script starts with
#!/usr/bin/env bashthenset -euo pipefail. - Re-run shellcheck until clean.
- If
setup.shchanged, smoke-test it:HOME="$(mktemp -d)" ./setup.sh --host claude.
Validation
shellcheck setup.sh skills/deepworkplan/shared/context.sh scripts/*.sh exits 0,
and the installer smoke test still creates the expected symlinks.
Notes
Do not change setup.sh public flags (--host, --help) or symlink names
without flagging a MAJOR bump. CI runs the smoke job on Ubuntu and macOS.