Makefile Linter

v1.0.0

Lint Makefiles for common issues — tabs, .PHONY, unused vars, portability, and best practices.

0· 83·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for charlie-morrison/makefile-linter.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Makefile Linter" (charlie-morrison/makefile-linter) from ClawHub.
Skill page: https://clawhub.ai/charlie-morrison/makefile-linter
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install makefile-linter

ClawHub CLI

Package manager switcher

npx clawhub@latest install makefile-linter
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
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).
Assessment
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.

Like a lobster shell, security has layers — review code before you run it.

latestvk978hhjzer9f4bjajr1qnger7h84r2tp
83downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

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:\n\techo 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

FlagDescription
--format text|json|markdownOutput format (default: text)
--strictExit code 1 on any reported issue
--ignore RULEIgnore a specific rule (repeatable)
--min-severity error|warning|infoMinimum severity to report (default: info)

Lint Rules

RuleSeverityDescription
spaces-not-tabserrorRecipe lines must use tabs, not spaces
duplicate-targetserrorSame target defined more than once
missing-phonywarningCommon phony target not in .PHONY
unused-variableswarningVariable defined but never referenced
undefined-variableswarningVariable referenced but never defined
hardcoded-pathswarningAbsolute paths in recipes
trailing-whitespacewarningLines ending with spaces or tabs
shell-portabilitywarningBash-specific syntax without SHELL := /bin/bash
recursive-makeinfo$(MAKE) -C or make -C detected
missing-default-targetinfoNo all target defined
long-linesinfoLines over 120 characters
missing-cleaninfoNo 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

Comments

Loading comments...