What problem does it solve? Writing Makefiles by hand leads to silent failures, portability bugs, and inconsistent targets. This Skill encodes GNU Make best practices so every Makefile you create or edit starts with safe shell defaults, a self-documenting help target, and correct phony/pattern-rule usage. ## Core Features & Use Cases - Non-negotiable prologue: Enforces SHELL := bash, .SHELLFLAGS := -eu -o pipefail -c, .DELETE_ON_ERROR, and --warn-undefined-variables so broken recipes fail loudly instead of silently. - Self-documenting targets: Ships the canonical awk-based help target plus the ## description comment convention so bare make prints usage. - Per-language templates: Provides ready-to-adapt Makefile templates for Go, Node/TypeScript, Python, .NET, C/C++, and Docker, plus deep Go guidance (audit targets, go run tool@version, cross-compilation, ldflags version injection). - Use Case: You are setting up a Go service and want one command for build, test, lint, and docker. Ask for a Makefile and get a prologue-hardened file with build, test -race, audit, docker/build, and a working help target. ## Quick Start Create a Makefile for my Go project with build, test, lint, and docker targets using the create-makefiles skill.