d9f9349117
SharedKernel contracts (so Assembler stays decoupled): IAgentRunContextProvider (agent + task) and ISkillCatalog (skill prompts by key). Implemented by OrgBoard (AgentRunContextProvider) and Skills (SkillCatalog). Assembler: - PromptAssembler builds house-style + identity + the agent's skill bodies + the task, and derives the primary action + risk from the agent's first skill. RAG/working-memory join at M6. - AgentRunExecutor (real): resolve context + skills → assemble → resolve BYOK config (with fallback) → call IModelClient → parse into action + risk → capture all on the AgentRun. Verified: build green; ArchitectureTests 8/8; IntegrationTests 29/29 — incl. the M4 acceptance: assigning a Spec task to Aria (PO, gated, stub BYOK) yields a Completed run with the assembled prompt (skill body + task title), action "write-spec", risk "Draft", and model output. Nothing executes — the gate is M5. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
19 lines
601 B
C#
19 lines
601 B
C#
namespace TeamUp.SharedKernel.Ai;
|
|
|
|
/// <summary>A skill's prompt body + its primary risk-tagged action, for prompt assembly.</summary>
|
|
public sealed record SkillPrompt(
|
|
string Key,
|
|
string Name,
|
|
string Body,
|
|
string PrimaryAction,
|
|
string PrimaryActionRisk,
|
|
IReadOnlyList<string> Roles);
|
|
|
|
/// <summary>Resolves skill prompts by key (latest version). Implemented by the Skills module.</summary>
|
|
public interface ISkillCatalog
|
|
{
|
|
Task<IReadOnlyList<SkillPrompt>> GetByKeysAsync(
|
|
IReadOnlyCollection<string> keys,
|
|
CancellationToken cancellationToken = default);
|
|
}
|