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.

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