Skip to content
Back to skills

Makefile

ASecurity

Makefile structure and install workflow

  • 57 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 17, 2026
toolsrustshelldockerterraform

Works with

  • cursor
  • terminal
  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 17, 2026

npx -y skills add diegosouzapw/awesome-omni-skill --skill makefile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Makefile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Makefile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/diegosouzapw-makefile-awesome-omni-skill/badge)](https://www.skillsdirectory.com/skills/diegosouzapw-makefile-awesome-omni-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: makefile
description: Makefile structure and install workflow
metadata:
  globs: "Makefile"
---

# Makefile Conventions

**Installation constraint:** Always use the Makefile for installing tools and applications. Never run `brew install`, `npm install -g`, or other package manager commands directly — the Makefile is the single source of truth for what is installed and how it is configured.

Structure targets to be self-documenting: the target name should clearly indicate its purpose, avoiding the need for comments.

## Sections (respect this organization)

- `terminal`: Shell and terminal tools (fish, tmux, nvim, wezterm...)
- `work`: Development tools (cursor, docker, gh, terraform...)
- `personal`: Personal apps (obsidian, rust, spotify...)
- `utils`: Utility applications (cleanshot, keycast...)

## Target Patterns

- Tool targets depend on `brew` and the binary path
- Config targets create symlinks from `~/.dotfiles/` to `~/.config/` or `~/`
- Use `${BREW_BIN}` and `${APP_BIN}` variables for paths
- GUI apps (`.app`) are macOS-only; CLI tools should work on both macOS and Linux

## Example

```makefile
newtool: brew ${BREW_BIN}/newtool
${BREW_BIN}/newtool:
	brew install newtool
```

Note: Homebrew works on both macOS and Linux. For Linux-only alternatives, consider adding conditional targets.

## Installation Workflow

When adding a new tool: (1) add it to the Makefile in the right section, (2) run `make <tool-name>`. Do not install via `brew install` or `npm install -g` outside the Makefile.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.