Claude Code Plugins

Community-maintained marketplace

Feedback

Makefile skill for the ikigai project

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name makefile
description Makefile skill for the ikigai project

Makefile

Description

Build system for ikigai Linux coding agent with comprehensive testing, dynamic analysis, code quality, and multi-distribution packaging support.

Build

  • make all - Build the ikigai client binary with default debug configuration.
  • make release - Clean and rebuild the client in release mode with optimizations.
  • make clean - Remove all build artifacts, coverage data, reports, and distribution packages.
  • make build-tests - Build all test binaries without running them.

Installation

  • make install - Install the ikigai binary and config files to PREFIX (default /usr/local).
  • make uninstall - Remove installed binary and configuration files from the system.
  • make install-deps - Install build dependencies using the system package manager.

Testing

  • make check - Build and run all tests in parallel (unit and integration).
  • make check TEST=name - Build and run a single test matching the specified name.
  • make check-unit - Build and run only unit tests in parallel.
  • make check-integration - Build and run only integration and database tests.

Mock Verification

  • make verify-mocks - Verify OpenAI mock fixtures against real API responses.
  • make verify-mocks-anthropic - Verify Anthropic mock fixtures against real API responses.
  • make verify-mocks-google - Verify Google mock fixtures against real API responses.
  • make verify-mocks-all - Verify all provider mock fixtures against real APIs.
  • make verify-credentials - Validate API keys in ~/.config/ikigai/credentials.json.

VCR Recording

  • make vcr-record-openai - Re-record OpenAI VCR fixtures with real API calls.
  • make vcr-record-anthropic - Re-record Anthropic VCR fixtures with real API calls.
  • make vcr-record-google - Re-record Google VCR fixtures with real API calls.
  • make vcr-record-all - Re-record all provider VCR fixtures.

Dynamic Analysis

  • make check-sanitize - Run all tests with AddressSanitizer and UndefinedBehaviorSanitizer.
  • make check-valgrind - Run all tests under Valgrind Memcheck for memory leak detection.
  • make check-helgrind - Run all tests under Valgrind Helgrind for thread error detection.
  • make check-tsan - Run all tests with ThreadSanitizer for race condition detection.
  • make check-dynamic - Run all dynamic analysis checks sequentially (or parallel with PARALLEL=1).

Quality Assurance

  • make check-coverage - Generate code coverage report and enforce coverage thresholds.
  • make coverage-map - Generate source file to test mapping for targeted coverage runs.
  • make lint - Run all lint checks (complexity and filesize).
  • make check-complexity - Check cyclomatic complexity and nesting depth against thresholds.
  • make check-filesize - Verify all source and documentation files are below size limits.
  • make ci - Run complete CI pipeline (lint, coverage, all tests, all dynamic analysis).

Code Formatting

  • make fmt - Format all source code using uncrustify with project style guide.
  • make tags - Generate ctags index for source code navigation.
  • make cloc - Count lines of code in source, tests, and Makefile.

Distribution

  • make dist - Create source distribution tarball for packaging.
  • make distro-images - Build Docker images for all supported distributions.
  • make distro-images-clean - Remove all Docker images for supported distributions.
  • make distro-clean - Clean build artifacts using Docker container.
  • make distro-check - Run full CI checks on all supported distributions via Docker.
  • make distro-package - Build distribution packages (deb, rpm) for all supported distributions.

Utility

  • make help - Display detailed help for all available targets and build modes.
  • make clean-test-runs - Remove test run sentinel files used for parallel execution.

Build Modes

Mode Flags Purpose
BUILD=debug -O0 -g3 -DDEBUG Default build with full debug symbols and no optimization
BUILD=release -O2 -g -DNDEBUG -D_FORTIFY_SOURCE=2 Optimized production build with security hardening
BUILD=sanitize -O0 -g3 -fsanitize=address,undefined Debug build with address and undefined behavior sanitizers
BUILD=tsan -O0 -g3 -fsanitize=thread Debug build with thread sanitizer for race detection
BUILD=valgrind -O0 -g3 -fno-omit-frame-pointer Debug build optimized for Valgrind analysis

Common Workflows

# Development workflow
make clean && make all               # Clean build in debug mode
make check                           # Run all tests
make fmt                             # Format code before commit

# Single test execution
make check TEST=config_test          # Run only config_test

# Quality assurance
make lint                            # Check complexity and file sizes
make check-coverage                  # Generate coverage report
make check-dynamic                   # Run all sanitizers and Valgrind

# Release workflow
make release                         # Build optimized release binary
make ci                              # Run full CI pipeline

# Distribution workflow
make dist                            # Create source tarball
make distro-images                   # Build Docker images
make distro-package                  # Build deb/rpm packages

# Custom builds
make all BUILD=release               # Build in release mode
make check BUILD=sanitize            # Run tests with sanitizers
make check-coverage COVERAGE_THRESHOLD=95  # Require 95% coverage

# Distribution testing
make distro-check DISTROS="debian"   # Test only on Debian
make distro-package DISTROS="fedora ubuntu"  # Build packages for specific distros

# Parallel execution
make -j8 check                       # Run tests with 8 parallel jobs
make check-dynamic PARALLEL=1        # Run sanitizers in parallel

# VCR fixture recording
VCR_RECORD=1 make check-unit         # Re-record fixtures during test run
make vcr-record-openai               # Re-record all OpenAI fixtures

Important Notes

  • Never run parallel make with different targets - different BUILD modes use incompatible flags.
  • Always stay in project root - use relative paths instead of changing directories.
  • Default BUILD mode is debug; specify BUILD=release for optimized builds.
  • Coverage requires 100% line, function, and branch coverage by default.
  • Maximum file size is 16384 bytes for all non-vendor source and documentation files.
  • Cyclomatic complexity threshold is 15, nesting depth threshold is 5.
  • Vendor files (yyjson, fzy) compile with relaxed warnings.
  • Test binaries support parallel execution using .run sentinel files.
  • Signal tests are skipped when running with sanitizers (SKIP_SIGNAL_TESTS=1).