Skip to content
Back to skills

Portability Lens

ASecurity

Portability review lens for evaluating environment independence,

  • 34 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
ai-agentssqlnodedockerkubernetesawsgcpazureterraformapidatabase

Works with

  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add atomicinnovation/accelerator --skill portability-lens --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Portability Lens?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Portability Lens
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atomicinnovation-portability-lens/badge)](https://www.skillsdirectory.com/skills/atomicinnovation-portability-lens)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: portability-lens
description: Portability review lens for evaluating environment independence,
  deployment flexibility, and vendor lock-in avoidance. Used by review
  orchestrators — not invoked directly.
user-invocable: false
disable-model-invocation: true
---

# Portability Lens

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

1. **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

2. **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)

3. **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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.