What problem does it solve? Choosing and installing Python libraries for data science and ML projects is error-prone: agents silently substitute libraries when imports fail, pick competing libraries without asking the user, or install redundant dependencies. This Skill enforces an opinionated, tiered stack so every library choice is deliberate, recorded, and consistent across sessions. ## Core Features & Use Cases - Tiered library stack: Organizes libraries into mandatory (scikit-learn, skrub, skore, ruff, pytest), user-choice (pandas vs polars, pytorch vs keras, and more), optional, and transitive tiers, with per-library reference pages covering scope and tradeoffs. - Competing-library gates: Requires an explicit user pick via a structured question before any import or install when multiple libraries cover the same job, and persists the decision in the project journal for cross-session continuity. - Install-not-substitute rule: When an import fails, the Skill mandates installing the missing dependency through the detected environment manager instead of rewriting code to a non-stack equivalent. - Use Case: When scaffolding a new ML project, the Skill ensures scikit-learn, skrub, skore, ruff, and pytest are installed, asks the user to choose between pandas and polars for tabular data, and records the decision so future sessions never re-ask. ## Quick Start Ask the agent to set up the Python library stack for a new data science project and confirm which tabular dataframe library to use.