Package management, project setup, and development tooling standards. Use this when users need guidance on using pnpm for package management, setting up new projects with automated scripts, configuring environment variables with dotenv, or initializing development tooling for React and React Native projects.
Install
npx skillscat add leovido/leo-skills/tooling Install via the SkillsCat registry.
SKILL.md
Tooling Skills & Best Practices
Package management, project setup, and development tooling standards.
Table of Contents
Package Management
pnpm
- MUST use pnpm (version >= 10.0.0) as the package manager for all projects - this is a strict requirement
- Never use npm or yarn
- pnpm provides faster installs and better disk space efficiency
- Use
pnpm installinstead ofnpm install - Use
pnpm add <package>to add dependencies - Use
pnpm run <script>to run scripts - Leverage pnpm's workspace feature for monorepos
Node.js Version Requirement:
- MUST use Node.js 22.x LTS
Benefits:
- Faster installation times
- Efficient disk space usage (hard links)
- Strict dependency resolution
- Better monorepo support
Project Setup
Automated Setup
Use the provided setup.sh script to automatically configure your project:
chmod +x setup.sh
./setup.shThe script will handle:
- Prerequisites checking (Node.js, pnpm)
- Installing dependencies and tools
- Setting up git hooks with Lefthook
- Creating configuration files from templates
- Setting up project structure (domain-driven design)
- Initializing TypeScript, Biome, and Jest
See SETUP_SCRIPT.md for detailed documentation.
Initial Setup Checklist
When starting a new project (or if not using the automated script):
- ✅ Initialize project with appropriate framework (Next.js, Expo SDK 54.x, etc.)
- ✅ Set up TypeScript (latest stable, 5.x) with strict configuration
- ✅ Configure Biome (latest stable) for linting and formatting
- ✅ Set up Jest (latest stable) for testing
- ✅ Organize project structure using Domain-Driven Design principles (guideline)
- ✅ Initialize pnpm (>= 10.0.0) and configure package.json
- ✅ Configure git hooks with pre-commit and pre-push hooks (strict requirements)
- ✅ Create
.gitignorewith standard exclusions - ✅ Set up GitHub Actions workflow for PR checks (strict requirements)
- ✅ Configure SonarQube project (if applicable)
- ✅ Create PR template in
.github/pull_request_template.md - ✅ Set up Docker and Docker Compose
- ✅ Configure environment variables with dotenv (
.env.example) (strict requirements)
Environment Variables
Strict Requirements:
- MUST use dotenv for environment variable management - this is a strict requirement
- MUST always include
.env.examplewith required variables (no secrets) - this is a strict requirement - MUST NEVER commit
.envfiles to version control - this is a strict requirement - MUST validate required environment variables at application startup - this is a strict requirement
- Document all environment variables in README
- Use validation libraries (e.g.,
zod,joi) to ensure required variables are present - Load environment variables using
dotenvat application startup - Use different
.envfiles for different environments (.env.development,.env.production, etc.)
Additional Resources
Notes
- This document should be reviewed and updated regularly as best practices evolve
- Team-specific additions and modifications are encouraged
- When in doubt, refer to official documentation and community standards