Add(delta) увеличивает счётчик (обычно вызывают до запуска горутин). Done() уменьшает счётчик на 1 (вызывают в конце горутины, часто через defer wg.Done()). Wait() блокируется, пока счётчик не станет 0. Add с отрицательным delta или когда счётчик уже 0 может вызвать панику.
var wg sync.WaitGroup
wg.Add(1)
go func() { defer wg.Done(); work() }()
wg.Wait()