Thanks for introducing me to conflicted
The scanner will look at the loaded packages (which automates paying attention to the order of loading and the masked by messages). I suppose it wouldn't be too hard to automate script loading, library listing and scanning, but the conflicted engine right now only does functions in packages, not user-defined, if that's what you're looking for. Among the thousands of packages with tens of thousands of function, it would be a tall order to scan for all possible conflicts.
Here's what doesn't happen when you add a user-defined function with a namespace conflict to a loaded library
> lag <- function(x) {x}
> lag(3.14)
[1] 3.14
> conflict_scout(pkgs = NULL)
10 conflicts:
* `combine` : gridExtra, dplyr
* `filter` : dplyr, stats
* `intersect`: [dplyr]
* `lag` : dplyr, stats
* `lift` : caret, purrr
* `Position` : ggplot2, base
* `setdiff` : [dplyr]
* `setequal` : [dplyr]
* `summary` : [RMySQL]
* `union` : [dplyr]
>
See? It ignored the duplication of lag.
I think the closest I can come to what you looking for among a directory tree of scripts is a descending parser to create a hash of file:library and grep out library(), write to tmp.R, run
conflict_scout(pkgs = NULL) and write back the output report as a comment to the related script.