Use this skill when writing or modifying Makefile targets or scripts. Enforces conventions for target simplicity, folder structure, and where to place new files.
TLDR: Make targets must be simple. Logic goes in
scripts/make/, not in Makefiles. Project-specific make files go in.project/make/.
scripts/make/ scriptscripts/make/ — mirroring the make structure.project/make/, never in the project root make/Make files and their scripts mirror each other:
make/
core/
ai.mk → scripts/make/core/ai/setup
git.mk → scripts/make/core/git/add, commit, ...
release.mk → scripts/make/core/release.sh
main.mk (includes all core/*.mk)
shell.makefile (stack entry point — includes core/main.mk)
scripts/
make/
core/
ai/setup
git/add, commit, pull, update, status
release.sh
| What | Where |
|---|---|
| Shared make target | .commons/make/core/<name>.mk |
| Script for shared target | .commons/scripts/make/core/<name>/ |
| Stack-specific make target | .commons/make/stacks/<stack>/<name>.mk |
| Script for stack target | .commons/scripts/make/stacks/<stack>/<name>/ |
| Project-specific make target | .project/make/<name>.mk |
| Project-specific script | .project/scripts/make/<name>/ |
Include new .mk files in make/core/main.mk (shared) or the stack entry point.
# Simple one-liner — OK