makefile-review
Audits Makefiles for build correctness, portability, and recipe duplication Skill: makefile-review Owner: athola Summary: Audits Makefiles for build correctness, portability, and recipe duplication Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:18:53.332Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:39:06.878Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:55:48.848Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:04:10.129Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:22:11
Rank
62
Safety
84
Downloads
1.5k
Updated
Oct 10, 2026
Version
1.9.19
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.9.19release · observed Aug 26, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-pensive-makefile-review- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-pensive-makefile-review/snapshot"
Documentation
CLAWHUB
146,270 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: makefile-review
description: Audits Makefiles for build correctness, portability, and recipe duplication
version: 1.9.8
triggers:
- makefile
- build
- make
- portability
- automation
- reviewing a Makefile or before committing Makefile changes
metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/pensive", "emoji": "\ud83e\udd9e", "requires": {"config": ["night-market.pensive:shared", "night-market.imbue:proof-of-work"]}}}
source: claude-night-market
source_plugin: pensive
---
> **Night Market Skill** — ported from [claude-night-market/pensive](https://github.com/athola/claude-night-market/tree/master/plugins/pensive). For the full experience with agents, hooks, and commands, install the Claude Code plugin.
## Table of Contents
- [Quick Start](#quick-start)
- [When to Use](#when-to-use)
- [Required TodoWrite Items](#required-todowrite-items)
- [Workflow](#workflow)
- [Step 1: Map Context (`makefile-review:context-mapped`)](#step-1:-map-context-(makefile-review:context-mapped))
- [Step 2: Dependency Graph (`makefile-review:dependency-graph`)](#step-2:-dependency-graph-(makefile-review:dependency-graph))
- [Step 3: Deduplication Audit (`makefile-review:dedup-candidates`)](#step-3:-deduplication-audit-(makefile-review:dedup-candidates))
- [Step 4: Portability Check (`makefile-review:tooling-alignment`)](#step-4:-portability-check-(makefile-review:tooling-alignment))
- [Step 5: Evidence Log (`makefile-review:evidence-logged`)](#step-5:-evidence-log-(makefile-review:evidence-logged))
- [Progressive Loading](#progressive-loading)
- [Output Format](#output-format)
- [Summary](#summary)
- [Testing](#testing)
## Testing
Run `pytest plugins/pensive/tests/skills/test_makefile_review.py` to verify review logic.
# Makefile Review Workflow
Audit Makefiles for best practices, deduplication, and portability.
## Quick Start
```bash
/makefile-review
```
## When To Use
- Makefile changes or additions
- Build system optimization
- Portability improvements
- CI/CD pipeline updates
- Developer experience improvements
## When NOT To Use
- Creating new Makefiles - use abstract:make-dogfood
- Architecture review - use architecture-review
## Required TodoWrite Items
1. `makefile-review:context-mapped`
2. `makefile-review:dependency-graph`
3. `makefile-review:dedup-candidates`
4. `makefile-review:tooling-alignment`
5. `makefile-review:evidence-logged`
## Workflow
### Step 1: Map Context (`makefile-review:context-mapped`)
Confirm baseline:
```bash
pwd && git status -sb && git diff --stat
```
**Verification:** Run `git status` to confirm working tree state.
Find Make-related files:
```bash
rg -n "^include" -g'Makefile*'
rg --files -g '*.mk'
```
Document changed targets, project goals, and tooling requirements.
### Step 2: Dependency Graph (`makefile-review:dependency-graph`)
@include modules/dependency-graph.md
### Step 3: Deduplication Audit (`makefile-review:dedup-candidates`)
@_meta.json
{
"ownerId": "kn7d107jg9jv602h9ytsegydq184a42s",
"slug": "nm-pensive-makefile-review",
"version": "1.9.19",
"publishedAt": 1787750333332
}modules/best-practices.md
---
parent_skill: pensive:makefile-review
module: best-practices
description: Makefile structure patterns, examples, and anti-patterns to avoid
tags: [best-practices, patterns, anti-patterns, examples]
---
# Makefile Best Practices
## Structure Pattern
Recommended organization:
```makefile
# 1. Variables at top
PROJECT := myproject
SRC_DIR := src
BUILD_DIR := build
VERSION := 1.0.0
# 2. Default goal
.DEFAULT_GOAL := help
# 3. PHONY declarations
.PHONY: all build test clean help
# 4. Help target (self-documenting)
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf "%-15s %s\n", $$1, $$2}'
# 5. Main targets with inline docs
build: ## Build the project
$(MAKE) -C $(SRC_DIR)
test: build ## Run tests
pytest tests/
clean: ## Clean build artifacts
rm -rf $(BUILD_DIR)
```
## Pattern Rule Examples
### File Conversion
```makefile
# Markdown to HTML
%.html: %.md
pandoc $< -o $@
# Source to object
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(@D)
$(CC) $(CFLAGS) -c $< -o $@
# Template expansion
%/config.json: templates/config.json.tmpl
@mkdir -p $(@D)
envsubst < $< > $@
```
### Testing Patterns
```makefile
# Test by subdirectory
test-%:
pytest tests/$*
# Test by type
test-unit test-integration test-e2e: test-%:
pytest tests/$* -v
```
## Function Examples
### Reusable Command Sequences
```makefile
define run_tests
@echo "Testing $(1)..."
cd $(1) && pytest -v
@echo "Done: $(1)"
endef
test-all:
$(call run_tests,module1)
$(call run_tests,module2)
```
### Multi-line Recipes
```makefile
define docker_build
docker build \
--build-arg VERSION=$(VERSION) \
--tag $(1):$(VERSION) \
--tag $(1):latest \
.
endef
image:
$(call docker_build,$(PROJECT))
```
## Anti-Patterns to Avoid
### Repeated Commands
```makefile
# Bad - duplicated logic
test-unit:
pytest tests/unit
test-integration:
pytest tests/integration
# Good - pattern rule
test-%:
pytest tests/$*
```
### Missing PHONY
```makefile
# Bad - 'clean' file blocks target
clean:
rm -rf build/
# Good
.PHONY: clean
clean:
rm -rf build/
```
### Hardcoded Paths
```makefile
# Bad - not portable
clean:
rm -rf /home/user/project/build
# Good - variables
BUILD_DIR ?= build
clean:
rm -rf $(BUILD_DIR)
```
### Shell-Specific Commands
```makefile
# Bad - Bash-only
check:
[[ -f config.yaml ]] && echo "Found"
# Good - POSIX compatible
check:
[ -f config.yaml ] && echo "Found"
```
### Unguarded Variable References
```makefile
# Bad - fails if undefined
clean:
rm -rf $(BUILD_DIR)
# Good - with default
BUILD_DIR ?= build
clean:
rm -rf $(BUILD_DIR)
```
### Non-Idempotent Targets
```makefile
# Bad - appends every time
configure:
echo "DEBUG=1" >> config.mk
# Good - idempotent
configure:
@echo "DEBUG=1" > config.mk
```
## Error Handling
### Check Prerequisites
```makefile
.PHONY: check-deps
check-deps:
@command -v python3 >/dev/null || (echo "python3 required"; exit 1)
@command -v pytest >/dev/null ||modules/deduplication-patterns.md
--- parent_skill: pensive:makefile-review module: deduplication-patterns description: Detect and eliminate recipe duplication using pattern rules and functions tags: [deduplication, pattern-rules, functions, automatic-variables] --- # Deduplication Patterns ## Recipe Duplication Detection Search for repeated command patterns: ```bash # Common test commands rg -n "cargo test" -g'Makefile*' rg -n "pytest" -g'Makefile*' rg -n "npm run" -g'Makefile*' rg -n "go test" -g'Makefile*' # Build commands rg -n "docker build" -g'Makefile*' rg -n "gcc.*-o" -g'Makefile*' ``` ## Pattern Rules Replace repeated rules with patterns: ```makefile # Bad - repeated test-unit: pytest tests/unit test-integration: pytest tests/integration test-e2e: pytest tests/e2e # Good - pattern rule test-%: pytest tests/$* ``` Pattern rule for file conversion: ```makefile # Convert all .md to .html %.html: %.md pandoc $< -o $@ # Build objects from sources $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c $< -o $@ ``` ## Static Pattern Rules For specific targets with patterns: ```makefile SOURCES := foo.c bar.c baz.c OBJECTS := $(SOURCES:.c=.o) $(OBJECTS): %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ ``` ## Functions and Define Blocks Reusable command sequences: ```makefile # Define reusable function define run_tests @echo "Testing $(1)..." cd $(1) && pytest endef test-all: $(call run_tests,module1) $(call run_tests,module2) ``` Multi-line define blocks: ```makefile define install_package @echo "Installing $(1)..." pip install --quiet $(1) @echo "Done: $(1)" endef deps: $(call install_package,pytest) $(call install_package,black) ``` ## Automatic Variables Reference Use automatic variables to reduce duplication: | Variable | Meaning | Use Case | |----------|---------|----------| | `$@` | Target name | Output file path | | `$<` | First prerequisite | Main input file | | `$^` | All prerequisites | Link all objects | | `$?` | Newer prerequisites | Incremental builds | | `$*` | Stem match | Pattern rule matching | | `$(@D)` | Directory of target | mkdir parent | | `$(<D)` | Directory of first prerequisite | Source dirs | Example: ```makefile # Before build/foo.o: src/foo.c $(CC) $(CFLAGS) -c src/foo.c -o build/foo.o # After build/%.o: src/%.c $(CC) $(CFLAGS) -c $< -o $@ ``` ## Clean Target Best Practices ```makefile # Good - use variables, don't duplicate paths BUILD_DIR ?= build DIST_DIR ?= dist .PHONY: clean distclean clean: rm -rf $(BUILD_DIR) distclean: clean rm -rf $(DIST_DIR) ```
modules/dependency-graph.md
--- parent_skill: pensive:makefile-review module: dependency-graph description: Make database inspection and dependency analysis tags: [dependencies, phony, circular-deps, includes] --- # Dependency Graph Analysis ## Make Database Inspection Inspect the complete expanded database: ```bash make -pn | less ``` This shows: - All rules (implicit and explicit) - Variable assignments - Default values - Pattern rules ## PHONY Detection Check for `.PHONY` declarations: ```bash rg -n "^\.PHONY:" -g'Makefile*' ``` Common PHONY targets that should be declared: - `all`, `build`, `test`, `clean`, `install` - `help`, `format`, `lint`, `release` - `distclean`, `check`, `docs` ## Circular Dependency Checks Look for circular dependencies: ```bash make -pn 2>&1 | grep -i "circular" ``` Common patterns: ```makefile # Bad - circular A: B B: A # Good - linear A: B B: C ``` ## Include File Patterns Find include directives: ```bash rg -n "^include|^-include" -g'Makefile*' ``` Check for: - Redundant includes - Missing includes - Include order issues - Conditional includes Validate included files exist: ```bash # List includes rg "^include\s+(\S+)" -or '$1' -g'Makefile*' # Check they exist for f in $(rg "^include\s+(\S+)" -or '$1' -g'Makefile*'); do [ -f "$f" ] || echo "Missing: $f" done ```
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/athola/skills/nm-pensive-makefile-review",
"sourceUrl": "https://clawhub.ai/athola/skills/nm-pensive-makefile-review",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:56:38.640Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-pensive-makefile-review/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-pensive-makefile-review/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T09:56:38.640Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceUrl": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:56:38.640Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.9.19",
"href": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceUrl": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:18:53.332Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-pensive-makefile-review/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-pensive-makefile-review/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.9.19",
"description": "Release v1.9.19",
"href": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceUrl": "https://clawhub.ai/athola/nm-pensive-makefile-review",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:18:53.332Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
