Reuse: CustomAction (DisplayFormToolbar + EditControlBlock, the Send-to-R&D precedent), Field.ConversationStarters (the declarative-agent manifest's conversation_starters, one per line), the persona composition and RouterRequest of Tool.ChatAgent, IAgentMessageBus Chat posts (visible on /comms), IItemUpdateService for LastTested. A Draft copilot is not an actor yet: the action builds the ActorView from the row (ActorResolver.FromRowFields) - never widens the resolver. No starter = refused with a message, no literal default question. The stepped form and the High-risk rule stay on 12c-4.
Outcome (claude-code, 2026-09-29): Shipped: Field.ConversationStarters, two Test CustomActions on ContentType.Copilot, CopilotsController.Test (row -> actor view -> persona prompt -> provider router -> bus -> LastTested), and the item page now renders action messages (Flash). Served on my-claude-code/Copilots/catalog-guide: the copilot answered its first starter, the banner showed it, LastTested stamped, the exchange on /board/comms. Gap seen in the answer itself: the copilot cannot read its knowledge sources yet (single-shot, no tools) - filed as 12c-5.
plans/spway/12c/design.md
plans/spway/12a/report.md
SPICE.Foundation/Tools/ChatAgentToolInvoker.cs