Why: Shared project identity resolution is one private module used by app and server.
Evidence: Boundary scan passes 85 edges and its injected illegal-edge negative check; previous full run stopped at this documented boundary.
Impact: Add only app/server to projectscope and projectscope to store, without allowing transport/composition dependencies in the resolver.
Refs: system-project-membership proposal r1; feature/project-member-access
Why: New cross-layer imports and unused exports could land unnoticed, and confirm-waiting reused the success color.
Evidence: bash scripts/lint-boundaries.sh passed, including a probe that a new edge fails. Both design-guard tests passed. Knip counts stay at the baselines.
Impact: make test-boundaries now checks architecture edges. Frontend and ui test targets also run the knip ratchet.
Refs: feature/architecture-baseline
Co-authored-by: Cursor <cursoragent@cursor.com>