- [ ] **Define how you will select and evaluate dependencies.**
→ *Create `/docs/deps.md` describing your **selection criteria**: maintenance, license, popularity, ecosystem fit, performance, and long-term stability.*
- [ ] **Question:** Which libraries or frameworks suit your project best?
→ *You must **evaluate and justify** each major dependency. Consider alternatives and record your reasoning in `/docs/deps.md` or a linked issue.*
- [ ] **Choose freely — examples below are only references.**
💡 *You are **not limited** to this list; select what fits your goals and stack.*
**Python examples:**
- `pandas` → structured data processing
- `rich` → readable CLI output/logs
- `tqdm` → progress bars
- `pytest`, `pytest-cov` → testing
- `black`, `ruff`, `mypy` → formatting, linting, type checks
**Java examples:**
- `slf4j` + `logback` → logging
- `jackson-databind` → JSON
- `JUnit`, `Mockito` → testing
- [ ] **Question:** Why did you choose these?
→ *Add a one-line rationale next to each dependency in `/docs/deps.md` (e.g., “`rich` — improves CLI readability for demo use”).*
- [ ] **Pin and lock versions.**
→ *Commit lockfiles (`poetry.lock`, `package-lock.json`, `gradle.lockfile`, etc.) for reproducibility. Do not edit them manually.*
- [ ] **Provide installation instructions (cross-OS).**
→ *In `README` → “Install & Run”, include exact commands for Windows/macOS/Linux.*
- [ ] **Question:** How will you manage updates and removals?
→ *Write a short policy in `/docs/deps_policy.md` (approval process, update frequency, testing before merge).*
- [ ] **Verify with a “Fresh Clone” test.**
→ *Open an issue “Dependencies Verified”: one teammate clones the repo, installs dependencies from scratch, runs tests, and posts output.*
- [ ] **Performance and footprint awareness.**
→ *If a dependency is large (e.g., `pandas`, `Spring`), justify why it’s necessary and note alternatives considered.*
- [ ] **Keep it evolving.**
→ *You can replace or remove libraries as your design matures — document each change briefly in `/docs/deps_changelog.md` with “before → after → why.”*