Files
Teamup/src/Shared/TeamUp.SharedKernel/Ai/ISkillCatalog.cs
T
soroush.asadi d9f9349117 M4: the assembler — assemble → model → parse (Increment 2)
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>
2026-06-10 06:19:02 +03:30

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);
}