buildlisted
Install: claude install-skill AnotherSava/claude-code-common
See `~/.claude/learnings/shell-environment.md` for the expected bash functions and verification checklist.
## Context
- Shell rc target: !`case "$(uname -s)" in Darwin) echo "~/.zshrc" ;; MINGW*|MSYS*|CYGWIN*) echo "~/.bashrc" ;; *) [ -n "$ZSH_VERSION" ] || [ "${SHELL##*/}" = "zsh" ] && echo "~/.zshrc" || echo "~/.bashrc" ;; esac`
- Build function in shell rc: !`cat ~/.bashrc ~/.zshrc ~/.bash_profile ~/.zprofile 2>/dev/null | grep -c "build()" || echo 0`
- run_repo_script helper in shell rc: !`cat ~/.bashrc ~/.zshrc ~/.bash_profile ~/.zprofile 2>/dev/null | grep -c "run_repo_script()" || echo 0`
- Wrapper script exists: !`test -f scripts/build.sh && echo yes || echo no`
- GitHub workflow: !`ls .github/workflows/*.yml 2>/dev/null || echo none`
## 1. Check prerequisites
1. If **Build function in shell rc** is 0, append the `build` wrapper to the file in **Shell rc target** (i.e. `~/.zshrc` on macOS, `~/.bashrc` on Windows Git Bash / Linux-bash). It delegates to the shared `run_repo_script` helper, which walks up from the current directory to the repo's `scripts/build.sh` and runs it from the directory that holds it — so `build` works from any subdirectory. If **run_repo_script helper in shell rc** is 0, append the helper too (the `deploy` skill installs the same one — add it only when missing, so it isn't duplicated):
```bash
run_repo_script() { local rel="$1"; shift; local d="$PWD"; while [ "$d" != "/" ] && [ ! -f "$d/$rel" ]; do d="$(dirname "$d")"; done; if [ -f "$d