ShellCheck Passed Every File. The Pipeline Was Still Broken.
Description and use
Linters analyze single files, missing cross‑file script call failures. script‑chain‑walk builds a dependency graph, flags broken chains and cycles, enabling early detection of pipeline failures.
Problem
Linters only analyze single files, so they miss cross‑file script call failures such as missing or renamed scripts, leading to pipeline failures.
Outcome
script‑chain‑walk identifies missing script calls and call cycles that linters miss, enabling early detection of pipeline failures.
Workflow
- Install script‑chain‑walk via pip
- Run
script-chain-walk walk ./scriptsto generate a dependency graph - Review output for broken chains or cycles
- Use
--checkin CI to exit with error if any issues are found
Evidence
ShellCheck is great at what it does. So is Pylint. So is every linter you've ever run in CI. They all share one blind spot: they look at one file at a time.
The linter passes. The pipeline runs. And it fails — because cleanup.sh was renamed two sprints ago and nobody updated the caller.
I built that map.
script-chain-walk — a zero-dependency Python CLI (stdlib only, Python ≥ 3.9) that traces cross-file script call chains.
It exits 1 if anything is broken or cyclic — made for CI pipelines and agent guardrails.
- Record date: 2026-10-21T08:41:30.969Z