Thank you, Eric. Your post contained commands (TakeList, Rule, BlockMap) that were new for me.
I used your suggestion to construct a SparseArray whose AdjacencyMatrix is the requested graph.
With[{d = 4},
AdjacencyGraph[
SparseArray[(Flatten[
BlockMap[Inner[List, #[[1]], Partition[#[[2]], 2, 1], List] &,
TakeList[Range[d (d + 1)/2], Range[d]], 2, 1], 2][[#]] ->
1) & /@ Range[d (d - 1)], d (d + 1)/2],
VertexLabels -> Automatic]]