OpenCaddis Server Builder
A skill-equipped Harness agent for each project
OpenCaddis.Server.Builder is a development host. From the App's Builder page, it inspects a .NET solution and provisions a dedicated FabrCore Harness agent for a selected project. Each agent receives a fixed project boundary, a managed FabrCore Skill library, a todo-driven execution loop, and tools designed for .NET add-on work.
Builder registers development agents and tools and provisions their managed Skills, but disables add-on directory loading. The runtime Server remains the place where published add-ons execute.
Workspace rules
- The selected folder must contain exactly one
.slnor.slnxfile. - A missing solution can be created as a .NET 10
.slnx. - A new project is a .NET 10 class library with a
FabrCore.Sdk1.6.3 reference and is added to the solution. - Projects are loaded through Roslyn
MSBuildWorkspace. - Each project gets a deterministic agent handle derived from its name and full path.
Builder agent tools
| Tool group | Current capabilities | Boundary |
|---|---|---|
| Roslyn code analysis | Project overview, documents, declaration outlines, symbol lookup, compiler diagnostics, and workspace reload. | One configured project. |
| Project filesystem | List and read text files, create or overwrite files, exact-text replacement, and single-file deletion. | Paths must remain inside the project; generated and protected paths are restricted. |
| .NET CLI | Restore, clean, build project/solution, test, format, list/add/remove packages, manage project references, and publish the add-on DLL. | Fixed project, solution, and output paths; supported arguments are controlled. |
Managed Agent Skills
Before the agent is created, OpenCaddis publishes the embedded FabrCore Skill packages through the protected Host administration API. Each package is principal-scoped, immutable, and addressed by an exact content-hash version. The full reference set is assigned through _HarnessSkills.
- Skills are compiled into the Builder from the repository's
.agents/skills/fabrcore*sources. - Skill guidance is loaded on demand and does not add filesystem or shell authority.
- The Builder agent is force-reconfigured so a recreated project agent uses the current pinned Skill set.
- Use the Builder Agent Skills guide for packaging, versioning, storage, and security details.
Harness execution
The add-on builder is no longer a single-turn chat agent. It uses CreateFabrCoreHarnessAgent with the todo loop enabled, streams work back to Surface, reports delegations lost across a restart, and lists any todos left open when the bounded iteration budget ends.
Agent working contract
The generated system prompt tells the agent to inspect before editing, stay inside its project, make focused changes, reload Roslyn after file edits, build and test meaningful changes, publish only when asked or required, and report the exact verification and output path. The Harness adds a model-managed todo list and keeps iterating while tracked work remains, subject to its run budget.
Publish behavior
Publishing builds the configured project in Release, identifies the primary target DLL, creates the configured add-on directory if needed, and copies only that DLL into the runtime output path. Restart OpenCaddis Server afterward so it creates a fresh add-on catalog.