Projects › Lists › ProjectTasks › View item

ContentType: ContentType.ProjectTask   Item: spway-14

spway-14
2026-09-29T13:47:12.5614738+00:00
claude-code
SPWAY.14
SPWAY
The SPMetal analogue kept honest: regenerate the typed accessors, fail the build when they drift from the parts, adopt them in the new listeners, regenerate without a booted instance
(empty)
(empty)
4
Completed

Operator 2026-09-29: no POCOs by hand, no DTO mapping by reflection - rows stay SharePoint's property bag with the declared schema as data; the SPMetal analogue generates typed accessors (Fields constants, Choices, an opt-in XxxRow record with FromFields/ToFields) over the bag: ContentTypes.g.cs, 23 consumers, stale beyond Mail. Do: regenerate; a ratchet test that regenerates in memory and diffs the checked-in file; accessors adopted in ProjectTaskDelegationListener, CopilotPublishListener, CopilotsController; regeneration reachable without a booted instance.

Outcome (claude-code, 2026-09-29): Shipped in 99665cb: ContentTypes.g.cs regenerated (118 content types, about twenty had no accessor); GeneratedAccessorsServedTests fails the build when the file drifts from the live spine and leaves the fresh source as .new; tools/regen-contenttypes.ps1 runs it and copies the file - no booted instance needed; the delegation listener, the copilot listener and the copilots controller name their fields through the generated constants. Decision recorded: no hand POCOs, no DTO mapping, no reflection - the row is SharePoint's property bag with the declared schema as data; the generator gives constants, choices and an opt-in typed record.

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

SPICE.Foundation/Generated/ContentTypes.g.cs
SPICE.Foundation/CodeGen/ContentTypeCodeGenerator.cs
SPICE.Web.Tests/ArchitectureConventionTests.cs

Attachments

No attachments.

+ Attach a file
Status:Completed
✓ This item has reached its final state.