docs: proxmox provider spec

Phase 1 of the proxmox provider plan: docs/proxmox-provider-spec.md
answers all 24 entries of the provider spec template against the
contract, citing the Phase 0 facts from pv1-1 as evidence.

It folds in the ten corrections recon found. The two that matter most:
Create inspects a taken VMID, waiting out a clone lock, before probing
past it, so a crash-retry adopts its own half-cloned VM instead of cloning
a duplicate; and Get checks the lock before the name, because a VM being
cloned has no name yet.

The plan now opens with a note that the spec wins where they disagree.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-23 09:18:29 +00:00
co-authored by Claude Opus 5.5
parent ff94fe70bb
commit 4e974f30f6
3 changed files with 915 additions and 1 deletions
@@ -4,6 +4,15 @@
## Context
> **Superseded in places by the spec.** Phase 0 recon found ten corrections
> to the design below (listed in the execution log), and Phase 1 folded them
> into [docs/proxmox-provider-spec.md](../proxmox-provider-spec.md). Where a
> phase step here disagrees with the spec (the Create allocation loop, Get's
> check order, resize and seed delete as tasks, no delete before upload,
> `isoStorage` required, `vlanTag`, the agent messages), **the spec wins**.
> Test names in the phases below remain the minimum; spec entry 21 adds the
> ones for the corrections.
The provider contract (`docs/provider-contract.md`), the spec template
(`docs/provider-spec-template.md`) and the kvm2 build proved the workflow:
spec first, then implementation against the contract, one commit per step.