Skip to content

B-X2YZ-extensive-polyglot-tool-runner-detection-library-consolidate

Build a far more extensive multi-ecosystem tool/runner finder library that goes well beyond the package-manager resolver shipped in T-VE7H-task-work-probe-keys-package-manager-off-project (plugin/lib/services/quality/detect-managers.ts).

  • Container / orchestration: docker (Dockerfile), docker compose (docker-compose.yml / compose.yaml).
  • Task runners: just (justfile), make (Makefile), moon, nx, turbo.
  • Version / toolchain managers: mise (.mise.toml/mise.toml), asdf (.tool-versions), nvm (.nvmrc), pyenv (.python-version), prototools.
  • Language ecosystems (resolve ALL present, polyglot-aware): node bun/pnpm/yarn/npm, Rust cargo, Python uv/poetry/pip/pixi, Go modules, Ruby bundler, Java/Kotlin gradle/maven, .NET, PHP composer — and extensible to more by adding a data row.

Today detection logic is split across detect-managers.ts (package managers, from T-VE7H) and detect-runners.ts (quality-check runners). Fold both into one cohesive, data-driven, pure library that the three consumers share:

  • the preflight permissions probe (plugin/skills/task-work/preflight_permissions.ts),
  • quality-check detection (sdlc quality detect),
  • worktree-init detection (sdlc project detect-worktree-init).

One MARKER_TABLE-style source of truth, marker→capability rows, pure (project root in, structured result out), per P-0001-prefer-deterministic-over-llm / S-0004-sdlc-cli-llm-head-deterministic-tail. Consider returning a richer typed result (ecosystem, manager, runner verbs, detected toolchain/version-manager) rather than a flat string set, so each consumer projects the slice it needs.


← Back to Backlog