Documentation Type
Fix incorrect information
Location
docs/development.md
Description
docs/development.md has stale references and mental model errors that diverge from the current codebase. Found during a documentation audit using docs/documentation-audit.md.
String Replacements
- Line 7 — Go version
1.25+ should be 1.26+ (go.mod says go 1.26)
- Line 429 — Project structure listing is missing the
orchestrator/ package (should appear between audit/ and workloads/)
Mental Model Fixes
-
Lines 452–458 (Architecture Layers table) — audit is listed in Layer 4 but belongs in Layer 1 (it performs no orchestration, just recording). orchestrator is missing from Layer 4 (it is where errgroup concurrency and the RunOrchestrator/CleanupOrchestrator live).
-
Lines 570–577 (MultiVMWorkload interface listing) — Shows the old Roles() []string method. The actual interface uses RoleDistribution() []RoleSpec, where RoleSpec has Role string and VMCount int fields.
-
Lines 579–585 (Multi-VM workload pattern instructions) — Steps 2–3 reference Roles() and len(Roles()). Should reference RoleDistribution() returning []RoleSpec with per-role VM counts, and explain that VMCount() sums the RoleSpec.VMCount values.
-
Lines 519–520 (Override table) — DataVolumeTemplates() row says default returns nil but omits the error return. Actual signature: DataVolumeTemplates() ([]kubevirtv1.DataVolumeTemplateSpec, error).
-
Line 521 (Override table) — ServiceSpec(namespace) takes no argument in the actual interface: ServiceSpec() *corev1.Service.
-
Line 597 (Storage-backed workloads section) — References "the orchestrator's namespaceDataVolumes helper" — the function is now exported as NamespaceDataVolumes in internal/orchestrator/types.go.
-
Line 459 (Concurrency pattern section) — Says parallel operations use errgroup.Group across packages. Orchestration concurrency now lives in internal/orchestrator/orchestrator.go, not scattered across cmd/ and multiple internal packages.
Suggested Content
- Update Go prerequisite to
1.26+
- Add
orchestrator/ to project structure listing
- Move
audit to Layer 1 and add orchestrator to Layer 4 in the layers table
- Replace
Roles() []string with RoleDistribution() []RoleSpec in the MultiVMWorkload interface listing and pattern instructions
- Fix
DataVolumeTemplates() to show ([]kubevirtv1.DataVolumeTemplateSpec, error) return
- Fix
ServiceSpec() to remove the namespace parameter
- Update
NamespaceDataVolumes path to internal/orchestrator/types.go
- Update concurrency narrative to reference
internal/orchestrator/orchestrator.go
Documentation Type
Fix incorrect information
Location
docs/development.md
Description
docs/development.mdhas stale references and mental model errors that diverge from the current codebase. Found during a documentation audit usingdocs/documentation-audit.md.String Replacements
1.25+should be1.26+(go.mod saysgo 1.26)orchestrator/package (should appear betweenaudit/andworkloads/)Mental Model Fixes
Lines 452–458 (Architecture Layers table) —
auditis listed in Layer 4 but belongs in Layer 1 (it performs no orchestration, just recording).orchestratoris missing from Layer 4 (it is whereerrgroupconcurrency and theRunOrchestrator/CleanupOrchestratorlive).Lines 570–577 (MultiVMWorkload interface listing) — Shows the old
Roles() []stringmethod. The actual interface usesRoleDistribution() []RoleSpec, whereRoleSpechasRole stringandVMCount intfields.Lines 579–585 (Multi-VM workload pattern instructions) — Steps 2–3 reference
Roles()andlen(Roles()). Should referenceRoleDistribution()returning[]RoleSpecwith per-role VM counts, and explain thatVMCount()sums theRoleSpec.VMCountvalues.Lines 519–520 (Override table) —
DataVolumeTemplates()row says default returnsnilbut omits the error return. Actual signature:DataVolumeTemplates() ([]kubevirtv1.DataVolumeTemplateSpec, error).Line 521 (Override table) —
ServiceSpec(namespace)takes no argument in the actual interface:ServiceSpec() *corev1.Service.Line 597 (Storage-backed workloads section) — References "the orchestrator's
namespaceDataVolumeshelper" — the function is now exported asNamespaceDataVolumesininternal/orchestrator/types.go.Line 459 (Concurrency pattern section) — Says parallel operations use
errgroup.Groupacross packages. Orchestration concurrency now lives ininternal/orchestrator/orchestrator.go, not scattered acrosscmd/and multiple internal packages.Suggested Content
1.26+orchestrator/to project structure listingauditto Layer 1 and addorchestratorto Layer 4 in the layers tableRoles() []stringwithRoleDistribution() []RoleSpecin the MultiVMWorkload interface listing and pattern instructionsDataVolumeTemplates()to show([]kubevirtv1.DataVolumeTemplateSpec, error)returnServiceSpec()to remove thenamespaceparameterNamespaceDataVolumespath tointernal/orchestrator/types.gointernal/orchestrator/orchestrator.go