Home / Docs / Builder Agent Skills

Builder Agent Skills

Framework knowledge, pinned to the agent

Every OpenCaddis Builder agent now runs through the FabrCore Harness and receives the repository's FabrCore skill library. Skills give the coding agent focused, on-demand guidance for the framework area it is working in instead of forcing all documentation into every prompt.

Automatic for project agents

There is no skill picker in the current Builder UI. When you select Create agent for a project, OpenCaddis publishes the bundled packages for local-user, pins their exact references to the new agent, and enables the Harness todo loop.

Skill lifecycle

1
Package at build time

The fabrcore* directories under .agents/skills are turned into text-only ZIP packages and embedded in OpenCaddis.Server.Builder.

2
Version by content

OpenCaddis normalizes each package and computes a SHA-256 content version. The resulting reference is name@version.

3
Publish for the principal

Before creating a project agent, the App uploads every embedded package through FabrCore's protected Harness Skill administration API for local-user.

4
Pin exact references

The agent configuration receives the complete comma-separated reference set through _HarnessSkills. ForceReconfigure ensures the project agent picks up the pinned set.

5
Load on demand

The Harness exposes read-only load_skill and read_skill_resource operations. Skill resources are fetched only when the agent needs them.

Bundled skill library

The current package set covers the FabrCore overview plus specialized guidance for agents, Harness, server hosting, messaging, plugins and tools, MCP, Orleans, Surface, testing, memory, GraphRAG, security, Microsoft 365 Copilot, transcription, and other supported framework areas. Packages come from the same repository skill sources used during OpenCaddis development.

Text-only and non-executable

FabrCore V1 Agent Skills accept SKILL.md plus UTF-8 text resources such as Markdown, JSON, YAML, CSV, XML, and text files. Scripts and executable content are not included in the managed package.

How the Builder Harness uses Skills

  • The project agent uses CreateFabrCoreHarnessAgent, not a one-shot chat agent.
  • The default Harness loop is explicitly set to todo, so incomplete work can trigger another bounded iteration.
  • Roslyn, project-filesystem, and controlled .NET CLI tools are still supplied as the agent's execution surface.
  • Skills provide instructions and reference material; they do not expand the agent's filesystem or command permissions.
  • If the iteration budget ends with open todos, the agent reports the remaining work instead of claiming completion.

Publishing and security boundary

The local Server enables FabrCore admin authentication using the current mode's generated cloud key and identifies the caller as opencaddis-app. The key is held by the App and is not exposed in the UI. Skill uploads are buffered only on the protected administration route and capped at 4 MiB.

PropertyCurrent behavior
ScopeOne principal; Builder currently publishes for local-user.
VersionExact, immutable content-hash reference.
TransportValidated ZIP over the protected FabrCore admin API.
Runtime accessRead-only skill and resource loading through the Harness.
Local persistenceLocalhost Orleans storage is process-local. OpenCaddis republishes packages when a Builder agent is provisioned.

Refresh the embedded packages

After changing a repository FabrCore skill, regenerate the checked-in ZIP packages before building the Builder:

PowerShell
dotnet msbuild src/OpenCaddis.Server.Builder/OpenCaddis.Server.Builder.csproj -t:PackageFabrCoreAgentSkills
Documentation