This skill should be used when the user asks to "create a Makefile", "write a Makefile", "add a make target", or mentions Makefile conventions.
63
74%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./plugins/toolkit/skills/makefile-development/SKILL.mdCreate Makefiles following consistent conventions.
default: help
.PHONY: help
help: # Show help for each of the Makefile recipes.
@grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done
.PHONY: init
init: # Initialise the development environment.
./scripts/init.sh| Element | Convention |
|---|---|
| Filename | Makefile (capitalised, no extension) |
| Default target | default: help as the first line |
.PHONY | Declare directly above each target |
| Help comments | Single # on the target line: target: # Description. |
| Target names | Lowercase, hyphen-separated (test-e2e, type-check) |
| Complex logic | Delegate to scripts (./scripts/build.sh) rather than inline |
The self-documenting help target parses # comments and prints sorted, colour-coded output:
.PHONY: help
help: # Show help for each of the Makefile recipes.
@grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; doneEvery target must have a # Description. comment or it won't appear in help output.
| Target | Purpose |
|---|---|
help | Show available targets (always present) |
init or setup | Install dependencies, configure environment |
build | Compile or bundle artifacts |
dev | Start local development server |
test | Run test suite |
lint | Run linters and formatters |
After creating or modifying Makefiles, remind the user:
Use tabs. Makefile recipes require literal tab characters for indentation, not spaces.
4316684
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.