Agent Skills: /configure:memory-profiling

Check and configure memory profiling with pytest-memray for Python projects

UncategorizedID: laurigates/claude-plugins/configure-memory-profiling

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/configure-plugin/skills/configure-memory-profiling

Skill Files

Browse the full folder contents for configure-memory-profiling.

Download Skill

Loading file tree…

configure-plugin/skills/configure-memory-profiling/SKILL.md

Skill Metadata

Name
configure-memory-profiling
Description
Check and configure memory profiling with pytest-memray for Python projects

/configure:memory-profiling

Check and configure memory profiling infrastructure for Python projects using pytest-memray.

When to Use This Skill

| Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Setting up memory profiling for a Python project from scratch | Project is not Python — memray/pytest-memray are Python-only | | Adding pytest-memray integration for CI memory regression detection | Profiling CPU performance — use cProfile or py-spy instead | | Configuring memory leak detection in test suites | Running load/stress tests — use /configure:load-tests | | Setting memory thresholds and allocation benchmarks for CI | Quick one-off memory check — run uv run pytest --memray directly | | Enabling native C extension stack tracking for deep profiling | Profiling production systems live — use memray standalone or Grafana |

Context

  • Project root: !pwd
  • Python project: !find . -maxdepth 1 \( -name 'pyproject.toml' -o -name 'setup.py' \)
  • pytest-memray installed: !grep -r 'pytest-memray' pyproject.toml requirements*.txt
  • memray installed: !grep -r 'memray' pyproject.toml requirements*.txt
  • Conftest fixtures: !grep -l 'memray' tests/conftest.py
  • Memory test files: !find tests -maxdepth 2 -name '*memory*' -o -name '*memray*'
  • Benchmark tests: !find tests -maxdepth 2 -type d -name 'benchmarks'
  • CI workflows: !find .github/workflows -maxdepth 1 -name '*memory*'
  • Memory reports dir: !find . -maxdepth 1 -type d -name 'memory-reports'

Parameters

Parse from $ARGUMENTS:

  • --check-only: Report memory profiling compliance status without modifications
  • --fix: Apply all fixes automatically without prompting
  • --threshold <mb>: Set default memory threshold in MB (default: 100)
  • --native: Enable native stack tracking for C extensions

Supported tools:

| Tool | Best For | |------|----------| | pytest-memray (recommended) | Test-integrated profiling, CI/CD memory limits, leak detection | | memray standalone | Deep analysis, flame graphs, production profiling | | tracemalloc | Quick debugging, no dependencies, lightweight |

Execution

Execute this memory profiling configuration check:

Step 1: Verify this is a Python project

Read the context values. If no pyproject.toml or setup.py is found, report "Not a Python project" and stop.

Step 2: Check latest tool versions

Use WebSearch or WebFetch to verify current versions:

  1. pytest-memray: Check PyPI
  2. memray: Check PyPI

Step 3: Analyze current memory profiling setup

Check for complete setup:

  • pytest-memray installed as dev dependency
  • memray backend installed
  • pytest configuration in pyproject.toml (markers, addopts)
  • Memory limit tests using @pytest.mark.limit_memory
  • Leak detection enabled (--memray-leak-detection)
  • Native tracking configured (if --native flag)
  • CI/CD integration configured
  • Reports directory exists

Step 4: Generate compliance report

Print a compliance report covering:

  • Installation status (pytest-memray, memray, pytest versions)
  • Configuration (pytest integration, markers, leak detection, native tracking)
  • Test coverage (memory limit tests, allocation benchmarks)
  • CI/CD integration (workflow, threshold, artifact upload, trend tracking)

End with overall issue count and recommendations.

If --check-only is set, stop here.

Step 5: Install and configure pytest-memray (if --fix or user confirms)

  1. Install pytest-memray: uv add --group dev pytest-memray
  2. Install native support if --native: uv add --group dev pytest-memray[native]
  3. Update pyproject.toml with pytest configuration (markers, filterwarnings)
  4. Create memory-reports/ directory
  5. Use configuration templates from REFERENCE.md

Step 6: Create memory profiling test files

  1. Add memory fixtures to tests/conftest.py (reports dir setup, threshold fixture, data generator)
  2. Create tests/test_memory_example.py with example memory limit tests
  3. Create tests/benchmarks/test_memory_benchmarks.py for trend tracking
  4. Use test templates from REFERENCE.md

Step 7: Add package scripts

Add memory profiling commands to Makefile or pyproject.toml:

  • test-memory: uv run pytest --memray
  • test-memory-report: Run with bin output + generate flame graph
  • test-memory-leaks: uv run pytest --memray --memray-leak-detection
  • test-memory-native: uv run pytest --memray --native

Step 8: Configure CI/CD integration

Create .github/workflows/memory-profiling.yml with:

  • Memory profiling on PRs (detect regressions)
  • Scheduled weekly benchmarks for trend tracking
  • Flame graph generation
  • PR comment with results
  • Use workflow template from REFERENCE.md

Step 9: Update standards tracking

Update .project-standards.yaml:

components:
  memory_profiling: "2025.1"
  memory_profiling_tool: "pytest-memray"
  memory_profiling_threshold_mb: 100
  memory_profiling_leak_detection: true
  memory_profiling_ci: true
  memory_profiling_native: false

Step 10: Print final compliance report

Print a summary of packages installed, configuration applied, test files created, commands available, CI/CD configured, and next steps for the user.

For detailed test templates, CI workflows, and standalone memray commands, see REFERENCE.md.

Agentic Optimizations

| Context | Command | |---------|---------| | Quick compliance check | /configure:memory-profiling --check-only | | Auto-fix all issues | /configure:memory-profiling --fix | | Run memory tests | uv run pytest --memray | | Detect memory leaks | uv run pytest --memray --memray-leak-detection | | Run with native tracking | uv run pytest --memray --native | | Generate flamegraph | uv run memray flamegraph output.bin -o flamegraph.html |

Flags

| Flag | Description | |------|-------------| | --check-only | Report status without offering fixes | | --fix | Apply all fixes automatically without prompting | | --threshold <mb> | Set default memory threshold in MB (default: 100) | | --native | Enable native stack tracking for C extensions |

Examples

# Check compliance and offer fixes
/configure:memory-profiling

# Check only, no modifications
/configure:memory-profiling --check-only

# Auto-fix with custom threshold
/configure:memory-profiling --fix --threshold 200

# Enable native tracking for C extensions
/configure:memory-profiling --fix --native

Error Handling

  • Not a Python project: Skip with message, suggest manual setup
  • pytest not installed: Offer to install pytest first
  • memray not supported: Note platform limitations (Linux/macOS only)
  • Native tracking unavailable: Warn about missing debug symbols
  • CI workflow exists: Offer to update or skip

See Also

  • /configure:tests - Configure testing frameworks
  • /configure:coverage - Code coverage configuration
  • /configure:load-tests - Load and performance testing
  • /configure:all - Run all compliance checks
  • pytest-memray docs: https://pytest-memray.readthedocs.io
  • memray docs: https://bloomberg.github.io/memray