Validates Python application compatibility with AWS Graviton (ARM64) architecture and applies the minimum changes required to run on ARM64.
This skill guides an AI coding assistant through a complete Python Graviton migration:
- Static Analysis: Verifies that every pinned dependency (including transitives) publishes an aarch64 wheel for the project's Python version, and scans for vendored binaries, native extensions with x86-only build flags, hash locks that only cover x86 wheels, architecture-specific code, and amd64-pinned Dockerfiles
- Compatibility Resolution: Updates only ARM64-blocking dependencies (to the lowest version with an aarch64 wheel), regenerates locks through the project's own package manager, adds aarch64 code paths, fixes build configuration, and documents Graviton runtime recommendations without applying them
- Validation: Installs, imports, tests and starts the application on ARM64, classifies failures, and produces a structured migration report
The skill is scoped strictly to ARM64 compatibility. It will not upgrade the Python version (unless a team allows it as the only path to an aarch64 wheel), switch package managers, modernize dependencies, or fix security issues; only what's required for Graviton.
It works with pip, pip-tools, PEP 621/setuptools, uv, Poetry and conda projects, and maps Pipenv, PDM, Hatch, vendored site-packages and Lambda layers onto the same checks.
Copy this folder into your Python project:
mkdir -p /path/to/your/project/.skills && \
cp -r tools/skills/languages/python-x86-to-graviton /path/to/your/project/.skills/Then ask your AI assistant:
Run the python-x86-to-graviton skill on this project
By default the skill uses neutral, vendor-agnostic defaults. To orient it around your
team's toolchain (an internal PyPI mirror, uv-managed interpreters, a preferred test
command, an internal image registry, your cluster's ARM64 node labels), copy the template
to a skill-config.md at your project root and fill in what applies:
cp .skills/python-x86-to-graviton/document_references/skill-config.template.md \
skill-config.mdThe config lives in your repo (not the skill folder), so skill updates never overwrite it. It steers how the transformation runs but never widens its scope; see document_references/skill-configuration.md.
summaries.md is the canonical index of every file in this skill, with its purpose and when it is read. Start at SKILL.md; it routes to everything else at the step that needs it.
The skill produces a graviton-validation/ folder in the project root with structured reports:
00-summary.md: Executive summary and exit criteria checklist01-project-assessment.md: Project structure, package manager(s) and Python environment02-native-library-report.md: Native extensions, vendored binaries and their resolutions03-dependency-compatibility-report.md: Per-dependency aarch64 wheel verdicts04-code-scan-findings.md: Architecture-specific code, build flags and Dockerfile findings05-runtime-configuration.md: Graviton runtime recommendations (documented, not applied)06-build-test-results.md: Install, build and test results
- Python on Graviton guide: The upstream Graviton Python documentation this skill draws from