Product identity: a shared PRODUCT.md injected into every agent run on the product

Adds Product.Identity (a PRODUCT.md brief) and threads it through the run context:
AgentRunContextProvider resolves the run's team -> product and carries ProductId +
ProductIdentity on AgentRunContext; PromptAssembler injects a "# Product" section
(framed as shared, data-not-instructions) ahead of the agent's persona. Adds
GET/PUT /products/{id}/identity (read = view-board, set = owner) and the EF column.

This makes the product, not just the team, the unit of shared context — every agent
on a product sees the same identity. Product-scoped working memory follows next.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-15 18:09:42 +03:30
parent 39881a20eb
commit 56d41a231f
9 changed files with 520 additions and 2 deletions
@@ -225,6 +225,9 @@ namespace TeamUp.Modules.OrgBoard.Persistence.Migrations
b.Property<Guid?>("DivisionId")
.HasColumnType("uuid");
b.Property<string>("Identity")
.HasColumnType("text");
b.Property<string>("Kind")
.IsRequired()
.HasMaxLength(16)