I think you are spot on there, and I am not sure such things exist (yet), but I may be wrong. Some random thoughts:
1. Using the skills frontmatter to implement a more complex YAML structure, so e.g.
requires:
python:
- pandas>=2.1
skills:
- [email protected]
2. Using a skills lock file ;-) skills.lock
uvx probably is the way to go here (fully self-contained environment for each skill), and use stdout as the I/O bridge between skills.