Generalizes working memory to a scope: ITeamMemory becomes IWorkingMemory with a
MemoryScope (Team | Product); MemoryEntry's TeamId becomes ScopeType+ScopeId (data-
preserving rename migration). On approval, Governance writes the decision/correction
at PRODUCT scope when the team belongs to a product (resolved via IBoardStats), so it
is shared by every agent across the product's teams — else at team scope. The assembler
recalls product memory (shared) plus team memory (local), merged by relevance, under a
"# Shared memory" section.
This is the other half of product-centric agents: a decision approved on one team now
informs every agent on the product, not just that team.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>