Skip to content

guidance: keep local development VMs small and necessary #186

Description

@gaelic-ghost

Problem

Current local-development guidance can lead an agent to create or enlarge a Linux VM/container runtime without first proving that virtualization is necessary or accounting for the developer machine's actual spare resources.

This caused an occasional Swift Lambda packaging task to use a Colima VM configured with a 100 GB virtual disk and 4 GiB RAM, even though ordinary TokenBrokerCloud development and integration testing can use native Homebrew PostgreSQL/Redis and does not need a VM. The stopped VM still occupied about 23 GB of host storage.

Requested guidance

Refine the applicable cloud deployment, server-side Swift, and general engineering guidance so agents:

  • prefer already-installed native host services for local development and integration tests;
  • do not introduce a VM merely to provide databases, caches, queues, or other services that already run natively;
  • require a concrete OS/architecture/tooling boundary before using a VM;
  • distinguish local runtime/testing from deployment-artifact packaging;
  • make build/package VMs short-lived and on-demand;
  • start from a conservative minimum (for example 1–2 CPUs, 2 GiB RAM, and a small explicitly sized sparse disk) based on measured workload needs;
  • inspect and report both virtual disk capacity and actual host disk usage;
  • ask before materially increasing CPU, RAM, or disk allocations;
  • prefer hosted CI/build infrastructure for infrequent deployment artifacts when that avoids persistent local resource cost and is operationally reasonable;
  • tear down disposable packaging environments when their cache value does not justify retained disk usage;
  • never represent a VM resource maximum as free or harmless merely because allocation is sparse.

Acceptance criteria

  • Relevant skills contain an explicit native-first decision gate.
  • VM recommendations state a reasonable minimum and an escalation rule.
  • Examples separate native service integration testing from Linux/architecture-specific packaging.
  • Validation or review checks flag unjustified large defaults such as 4+ CPUs, large RAM reservations, or 100 GB disks.
  • Guidance accounts for constrained developer laptops rather than assuming workstation/server capacity.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions