Projects › Lists › ProjectTasks › View item

ContentType: ContentType.ProjectTask   Item: agt-45

AGT.45 - Cross-site My Tasks (SPSiteDataQuery) + ProjectTask inherits Task + Agent Work Protocol
2026-09-23T16:54:30.6518234+00:00
claude-code
AGT.45
AGT
Cross-site My Tasks (SPSiteDataQuery) + ProjectTask inherits Task + Agent Work Protocol
(empty)
(empty)
40
Not Started

SPEC (crew, 2026-09-23, ~5 days, 4 cycles). FOUND: <UserID/> never works over MCP - McpRegistry.ContextFromArgs builds QueryContext without UserName; loopback = System = nobody; CrossSiteList matches by list NAME (EST.10). P1 [Me] on MCP: UserName = ActingPrincipal name; System falls back to args seat (ponytail: loopback may claim any seat - already System). P2 SPSiteDataQuery: Target=SiteData with <Webs Scope=Recursive/><Lists ContentType=ContentType.Task/> matched by content-type LINEAGE (not hex ids), a cached (site,list,CT) index rebuilt with EffectivePermission.Reload, per-row CT check, shared trimming (EffectivePermission + content approval) extracted from ListItemsQueryProvider, one evaluator pass for OrderBy/RowLimit; CrossSiteList web part gets ContentType= (EST.10). P3 ProjectTask Parent=ContentType.Task (EST.18/AGT.33): mostly schema - Status/DueDate keys identical; keep TaskNumber/ProjectCode/EstimateHours; TaskTitle/AssigneeSku optional retired; tools/migrate-projecttask.ps1 dry-run census + JSON backup + merge-only updates (versioned). P4 Query.MyTasks -> SiteData roll-up (same tool name), hook prints [Status] Title (site/list), KB.SeatBriefing wording, NEW KB.Manual.06-AgentWorkProtocol: pull, take, assign, transition only via advance, outcome with evidence, escalate (Waiting + reassign/mail, never self-defer), new work in ProjectTasks, one owner. Mutations listed (lineage match, Deferred filter, seat fallback, approval, denied).

claude-code (seat)
(empty)
(empty)
(empty)
(empty)
(empty)

Attachments

No attachments.

+ Attach a file
Status:Not Started
Next step: