Skip to content
Agentmart
Submit a tool

makefile-development-workflow

Standardizes Makefile-based build and test workflows with reproducible targets.

Skill by Andrew G. Brown (https://github.com/brownag)

IndexedMIT★ 7
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/andrewbrown-usda-makefile-development-workflow

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Standardizes Makefile-based build and test workflows with reproducible targets. Use when creating or refining helpful build, test, and clean targets.

Use cases: testing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/makefile-development-workflow

What's inside

Skill name
makefile-development-workflow
Description
Standardizes Makefile-based build and test workflows with reproducible targets. Use when creating or refining helpful build, test, and clean targets.
License
MIT
Metadata
author: Andrew G. Brown (https://github.com/brownag) · version: 1 · source_path: skills/makefile-development-workflow/SKILL.md · source_repo: aigb-skills
Instructions
148 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • anatomy.md · references/

SKILL.md (first lines)

# Makefile Development Workflow

A minimal, well-structured Makefile for any project:

```makefile
.PHONY: help build test clean

.DEFAULT_GOAL := help

help: ## Show this help message
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / { printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)

build: ## Build the project
	@echo "Building..."
	# Add your build command here

test: ## Run tests
	@echo "Running tests..."
	# Add your test command here

clean: ## Clean build artifacts
	@echo "Cleaning..."
	rm -rf build/ dist/ __pycache__/
```

Run `make help` to see all available commands.

---

## Best Practices

### 1. Always Use `.PHONY`

```makefile
.PHONY: help build test clean install
```
Prevents conflicts with files of the same name and ensures targets always run.

### 2. Use `.DEFAULT_GOAL`

```makefile
.DEFAULT_GOAL := help
```
Makes `make` show help by default instead of the first target.

### 3. Document Targets with `##` Comments

```makefile
build: ## Build the project (required)
	@echo "Building..."

test: ## Run tests (required)
	@echo "Testing..."
```
The `##` comment after the target is picked up by auto-generated help.

### 4. Use `?=` for Overridable Variables

```makefile
PYTHON   ?= python3   # Can be overridden: make PYTHON=python3.11 test
VENV     ?= .venv     # Can be overridden: make VENV=myenv test
```

### 5. Use `SHELL := /bin/bash`

```makefile
SHELL := /bin/bash
```
Ensures bash features (like `command -v`) work consistently.

### 6. Use `@` to Suppress Command Echo

```makefile
build:
	@echo "Building..."  # @ suppresses "echo Building..."
	@cd server && go build -o bin/server ./cmd/server
```

### 7. Use `$$` for Shell Variables in Make

```makefile
check-env:
	@if [ -z "$$API_KEY" ]; then echo "WARNING: API_KEY not set"; fi
```
`$$` becomes `$` in the shell.

### 8. Use `|| true` to Prevent Failures

```makefile
clean:
	@pkill -f "uvicorn" || true   # Don't fail if process isn't running
	@rm -rf build/ || true        # Don't fail if directory doesn't exist
```

### 9. Use Multi-Line Commands with `\`

```makefile
test:
	@if [ "$(VERBOSE)" = "1" ]; then \
		pytest tests/ -v -s; \
	else \
		pytest tests/; \
	fi
```

### 10. Use `&&` for Chained Commands

```makefile
install:
	pip install -e ".[dev]" && echo "[OK] Installed"
```

---

## Quick Command Cheat Sheet

| Command | Purpose |
|---------|---------|
| `make help` | Show all available commands |
| `make build` | Build the project |

From AndrewBrown-USDA/aigb-skills-usda, MIT.

More from AndrewBrown-USDA/aigb-skills-usda

Signals

Stars
7
Forks
4
Open issues
1
Last commit (this folder)
Oct 2, 2026 (26 days ago)
Last release
Oct 23, 2026 (5 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Andrew G. Brown (https://github.com/brownag)

Cite this page

makefile-development-workflow skill. Agent Mart. https://agentmart.dev/skills/andrewbrown-usda-makefile-development-workflow (last updated 2026-10-24)