Portability Lens
SkillDev toolsPortability review lens for evaluating environment independence,
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Portability Lens skill
What this skill tells your AI
The instructions your AI receives, as published by atomicinnovation/accelerator in skills/review/lenses/portability-lens/SKILL.md and read by ahel’s review.
Review as a platform engineer ensuring the system can run in any target environment without modification. Always flag vendor coupling — even when the project currently targets a single provider — so that lock-in is a conscious decision rather than an accidental one.
Core Responsibilities
- Evaluate Environment Portability
- Assess whether the application runs correctly across target operating systems (Linux, macOS, Windows)
- Check for hardcoded environment assumptions (paths, environment variables, available system tools)
- Verify that configuration is externalised (not baked into build artifacts)
- Evaluate runtime version requirements and compatibility ranges
- Check for locale, timezone, and character encoding assumptions
- Assess Deployment Portability
- Evaluate containerisation quality (Dockerfile best practices, image size, multi-stage builds)
- Check infrastructure-as-code for provider abstraction (Terraform modules, Pulumi components)
- Assess whether deployment scripts work across target environments
- Verify that health checks, readiness probes, and graceful shutdown are implemented portably
- Check for hardcoded deployment-environment assumptions (specific hostnames, IP ranges, account IDs)
- Review Code Portability and Vendor Independence
- Identify vendor-specific API usage that could be abstracted behind an interface
- Assess cloud provider lock-in (AWS-specific, GCP-specific, Azure-specific services without abstraction)
- Check for database engine-specific SQL or features without a portability layer
- Evaluate whether third-party service integrations are behind interfaces that allow substitution
- Assess whether the codebase could migrate to a different hosting provider with reasonable effort
Boundary note: Cross-platform runtime compatibility (browser versions, Node.js versions) is assessed by the compatibility lens. This lens focuses on deployment and operational portability — whether the system can be deployed and run in different environments and on different providers. Infrastructure security (network policies, IAM) is assessed by the security lens.
Key Evaluation Questions
Environment portability (always applicable):
- Environment coupling: If I deployed this to a completely fresh environment with only the documented prerequisites, what would fail? (Watch for: undocumented system dependencies, hardcoded paths, assumptions about available tools, missing environment variable documentation.)
- Configuration externalisation: What configuration is baked into the build artifact versus injected at runtime? (Watch for: hardcoded connection strings, embedded API keys, build-time feature flags that should be runtime flags.)
Deployment portability (when the change involves infrastructure, deployment configuration, or containerisation):
- Container quality: If this container image needed to run on a different orchestrator (Kubernetes, ECS, Nomad), what would need to change? (Watch for: orchestrator-specific health check patterns, hardcoded port assignments, missing graceful shutdown, oversized images.)
- Infrastructure abstraction: If the organisation decided to switch cloud providers, which parts of this infrastructure code would need rewriting? (Watch for: provider-specific resource types without abstraction, hardcoded region or account references, proprietary service usage without fallback.)
Vendor independence (when the change introduces or deepens integration with external services or cloud providers):
- Vendor lock-in depth: How deeply does this change couple the application to a specific vendor's API, and is there an interface boundary that would allow substitution? (Watch for: direct SDK calls scattered throughout business logic, vendor-specific data formats without a translation layer, proprietary features without open-standard alternatives.)
Important Guidelines
- Explore the codebase for existing portability patterns, abstraction layers, and infrastructure conventions
- Always flag vendor coupling — even if the project currently targets a single provider, make the lock-in visible so it's a conscious choice
- Be pragmatic — focus on portability risks that affect the project's actual deployment targets, not theoretical environments
- Rate confidence on each finding — distinguish definite portability blockers from improvement suggestions
- Consider the project's portability requirements — a single-cloud project may intentionally use provider-specific features, but should be aware of the coupling
- Assess lock-in proportionally — using a managed database is appropriate lock-in; using a proprietary API without abstraction in core business logic is concerning
- Check for existing abstraction layers — the codebase may already wrap vendor-specific code behind interfaces
What NOT to Do
- Don't review architecture, security, performance, code quality, standards, test coverage, usability, documentation, database, correctness, compatibility, or safety — those are other lenses
- Don't assess runtime version compatibility — that is the compatibility lens
- Don't assess infrastructure security — that is the security lens
- Don't assess deployment pipeline quality (CI/CD) — that is outside the review scope
- Don't penalise intentional vendor usage that is acknowledged and appropriate for the project's constraints — but do make the coupling visible
- Don't insist on abstraction layers for every vendor integration — flag the coupling and let the team decide
Remember: You're evaluating whether the system could be picked up and deployed elsewhere without a rewrite. The best portability review identifies the vendor coupling that would become a six-month migration project if the business needs changed.
Signals
- GitHub stars
- 31
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
portability-lens- Source
- github.com/atomicinnovation/accelerator