Maybe I don't understand the full flow.

Dbuild does `set-version: "0.13.0-on-"${globals.scala-version}"-for-IDE-SNAPSHOT"` for sbt.
Where is `globals.scala-version` set? It looks like it reads it from the SCALAVERSION env variable.

However, I guess it should be `${SCALAVERSION}-${SCALAHASH}`, as below you look for sbt as `do_i_have "com.typesafe.sbt" "incremental-compiler" "$SBTVERSION-on-${SCALAVERSION}-${SCALAHASH}-SNAPSHOT-for-IDE-SNAPSHOT"`.

Note that SBTVERSION comes from the IDE pom, but it actually determined by the dbuild config.

I think duplication is the lesser evil compared to indirection, which makes it very hard to understand what's going on.