← Back to Skills Marketplace
charlie-morrison

Makefile Linter

by charlie-morrison · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
87
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install makefile-linter
Description
Lint Makefiles for common issues — tabs, .PHONY, unused vars, portability, and best practices.
README (SKILL.md)

makefile-linter

A pure-Python 3 (stdlib only) Makefile linter. Detects common issues including tab/space errors, missing .PHONY declarations, unused/undefined variables, hardcoded paths, shell portability problems, and more.

Commands

lint FILE

Lint a Makefile and report issues.

python3 scripts/makefile-linter.py lint Makefile
python3 scripts/makefile-linter.py lint /path/to/Makefile
echo -e "all:\
	echo hello" | python3 scripts/makefile-linter.py lint /dev/stdin

targets FILE

List all targets with line numbers, phony status, prerequisites, and inline comment descriptions.

python3 scripts/makefile-linter.py targets Makefile
python3 scripts/makefile-linter.py targets Makefile --format json

vars FILE

List all variable definitions with line numbers and values.

python3 scripts/makefile-linter.py vars Makefile
python3 scripts/makefile-linter.py vars Makefile --format markdown

audit FILE

Full audit combining lint results, targets list, and variables summary.

python3 scripts/makefile-linter.py audit Makefile
python3 scripts/makefile-linter.py audit Makefile --format json

Options

Flag Description
--format text|json|markdown Output format (default: text)
--strict Exit code 1 on any reported issue
--ignore RULE Ignore a specific rule (repeatable)
--min-severity error|warning|info Minimum severity to report (default: info)

Lint Rules

Rule Severity Description
spaces-not-tabs error Recipe lines must use tabs, not spaces
duplicate-targets error Same target defined more than once
missing-phony warning Common phony target not in .PHONY
unused-variables warning Variable defined but never referenced
undefined-variables warning Variable referenced but never defined
hardcoded-paths warning Absolute paths in recipes
trailing-whitespace warning Lines ending with spaces or tabs
shell-portability warning Bash-specific syntax without SHELL := /bin/bash
recursive-make info $(MAKE) -C or make -C detected
missing-default-target info No all target defined
long-lines info Lines over 120 characters
missing-clean info No clean target defined

Examples

# Report only errors and warnings
python3 scripts/makefile-linter.py lint Makefile --min-severity warning

# JSON output for CI integration
python3 scripts/makefile-linter.py lint Makefile --format json

# Fail CI on any issue
python3 scripts/makefile-linter.py lint Makefile --strict

# Ignore specific rules
python3 scripts/makefile-linter.py lint Makefile --ignore recursive-make --ignore missing-clean

# Full audit in Markdown (for PR comments)
python3 scripts/makefile-linter.py audit Makefile --format markdown

# Pipe from stdin
cat Makefile | python3 scripts/makefile-linter.py lint /dev/stdin
Usage Guidance
This skill appears coherent and limited to linting Makefiles, but you should still take basic precautions before installing: review the full scripts/makefile-linter.py file yourself (look for subprocess, socket, open(..., 'w') or other file-write/network calls not visible in the truncated excerpt), run it in a sandbox or CI worker with limited privileges, and avoid pointing it at sensitive system files. Also note metadata has no homepage and the publisher is unknown — if provenance matters, prefer packages with a traceable upstream or repo.
Capability Analysis
Type: OpenClaw Skill Name: makefile-linter Version: 1.0.0 The skill bundle is a legitimate Makefile linter implemented in pure Python using only standard libraries. The script `scripts/makefile-linter.py` performs static analysis on Makefiles to detect common issues such as indentation errors, missing .PHONY declarations, and unused variables without executing any shell commands or accessing external networks. No evidence of malicious intent, data exfiltration, or prompt injection was found.
Capability Assessment
Purpose & Capability
The name/description (Makefile linter) match the included Python script and SKILL.md examples. No unrelated binaries, cloud creds, or config paths are requested.
Instruction Scope
SKILL.md only instructs invoking the included Python script against Makefiles (paths or /dev/stdin) and describes flags/outputs. There are no instructions to read unrelated system state, exfiltrate data, or call external endpoints.
Install Mechanism
No install spec; code is provided inline (pure stdlib Python). Nothing is downloaded or extracted at install time.
Credentials
The skill requires no environment variables, credentials, or config paths. The code parses files provided by the user and does not declare or appear to need secrets.
Persistence & Privilege
The skill is not always-enabled and does not request elevated persistence or modify other skills. Autonomous invocation is allowed by default (normal).
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install makefile-linter
  3. After installation, invoke the skill by name or use /makefile-linter
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release
Metadata
Slug makefile-linter
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Makefile Linter?

Lint Makefiles for common issues — tabs, .PHONY, unused vars, portability, and best practices. It is an AI Agent Skill for Claude Code / OpenClaw, with 87 downloads so far.

How do I install Makefile Linter?

Run "/install makefile-linter" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Makefile Linter free?

Yes, Makefile Linter is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Makefile Linter support?

Makefile Linter is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Makefile Linter?

It is built and maintained by charlie-morrison (@charlie-morrison); the current version is v1.0.0.

💬 Comments