ad330641c3
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>