CtrlK
BlogDocsLog inGet started
Tessl Logo

makefile-development

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

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/toolkit/skills/makefile-development/SKILL.md
SKILL.md
Quality
Evals
Security

Makefile Development

Create Makefiles following consistent conventions.

Template

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

Conventions

ElementConvention
FilenameMakefile (capitalised, no extension)
Default targetdefault: help as the first line
.PHONYDeclare directly above each target
Help commentsSingle # on the target line: target: # Description.
Target namesLowercase, hyphen-separated (test-e2e, type-check)
Complex logicDelegate to scripts (./scripts/build.sh) rather than inline

Help Target

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"; done

Every target must have a # Description. comment or it won't appear in help output.

Common Targets

TargetPurpose
helpShow available targets (always present)
init or setupInstall dependencies, configure environment
buildCompile or bundle artifacts
devStart local development server
testRun test suite
lintRun linters and formatters

Important

After creating or modifying Makefiles, remind the user:

Use tabs. Makefile recipes require literal tab characters for indentation, not spaces.

Repository
dwmkerr/claude-toolkit
Last updated
First committed

Is this your skill?

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.