project-setup

Configures project foundations including Makefiles, Nix flakes, linting, and testing for Python and Node repositories.

3|Updated Jan 10, 2026
One-click install
npx skills add https://github.com/MaxWolf-01/agents --skill project-setup-maxwolf-01
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-setup
Source: https://github.com/MaxWolf-01/agents/tree/main/mx/skills/project-setup
Command: npx skills add https://github.com/MaxWolf-01/agents --skill project-setup-maxwolf-01

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes assets (resource) components.

What problem does it solve? Setting up a new project or retrofitting an existing repo with consistent tooling is repetitive and error-prone: reproducible installs, lint configs, test runners, and release automation all need wiring before real work starts. This Skill encodes opinionated, battle-tested defaults so every project gets the same solid foundation. ## Core Features & Use Cases - Reproducible installs: Enforces one documented command from clean checkout to working environment, with Nix devShell flakes for dependencies the language package manager cannot deliver (ffmpeg, Postgres, node itself). - Stack-specific conventions: Python projects get uv, ruff, ty, tyro, and pytest with Hypothesis property testing; Node/TypeScript projects get pnpm, strict tsconfig, node --test, and biome. - Makefile as the uniform interface: Standard targets (install, check, test, harden, fuzz, release-patch/minor/major, publish) so agents and humans answer "how do I check this project" by reading one file. - Use Case: Ask to set up a new Python CLI project and receive a uv-managed repo with a Makefile, ruff/ty config, property-test scaffolding, mutmut hardening config, GitHub repo creation, and a release pipeline. ## Quick Start Set up a new Python project with uv, a Makefile, linting, property-based tests, and a private GitHub repo.

Frequently Asked Questions about project-setup

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a new Python project with uv?

Use uv init and uv add for dependencies, with dev tools in a dependency group and uv_build as the build backend for packages. Add a Makefile with install, check, test, and release targets wired to uv commands, plus ruff for linting and ty for typechecking.

How do I add property-based testing to a Python project?

Add hypothesis and hypofuzz to the dev dependency group and put property tests in tests/properties/. Register harden and fuzz profiles in conftest.py so mutation runs use a small example budget while fuzzing runs an extended one.

When should a project use a Nix flake devShell?

Use a flake when a dependency cannot be delivered by the language package manager, such as ffmpeg, Postgres, CUDA, or node itself. Projects fully covered by the language toolchain, like Python with uv, get no flake.

Should I use pnpm or npm for a TypeScript project?

Use pnpm because its node_modules exposes only declared dependencies, so phantom imports fail immediately instead of in CI. Node projects always get a flake since npm delivers neither node nor pnpm.

Why does coverage report nothing after async SQLAlchemy calls?

Coverage's default tracer records nothing after an await into SQLAlchemy's async engine. Set concurrency = ["thread", "greenlet"] under [tool.coverage.run] so async execution is traced correctly.

What are the limitations of running TypeScript directly with node?

Node strips types rather than compiling them, so tsconfig must set erasableSyntaxOnly to reject enums, parameter properties, and namespaces. Use strict mode with module nodenext, and let tsc handle only typechecking and declaration emission.