outsystems-app-archite…
[Beta] Generate an interactive HTML graph of a single OutSystems app's architecture — UI flows + screens, server/client/service…
[Beta] Reference + workflow for building, testing, and deploying C# class-library "External Logic" libraries for OutSystems Developer Cloud (ODC). Covers SDK attributes ([OSInterface] / [OSAction] / [OSParameter] / [OSStructure] / [OSIgnore]), supported data types, optional
Claude Code
$ npx -y skills add OutSystems/outsystems-mcp --skill outsystems-custom-code --agent claude-code
Codex
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a codex -y
Cursor
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a cursor -y
Gemini CLI
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a gemini-cli -y
GitHub Copilot
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a github-copilot -y
OpenCode
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a opencode -y
Windsurf
$ npx skills add OutSystems/outsystems-mcp --skill outsystems-custom-code -a windsurf -y
name: outsystems-custom-code description: '[Beta] Reference + workflow for building, testing, and deploying C# class-library "External Logic" libraries for OutSystems Developer Cloud (ODC). Covers SDK attributes ([OSInterface] / [OSAction] / [OSParameter] / [OSStructure] / [OSIgnore]), supported data types, optional parameters, logging via ILogger, project structure, runtime constraints (95s execution / 1 GB memory / 5.5 MB payload), unit + container integration tests, and deployment via the OutSystems MCP. Use when the user asks to "build a C# library for OutSystems", "create ODC external logic", "write custom code for ODC", "deploy an external library", "publish C# code to OutSystems", or names ODC External Logic / external library / OSInterface / OSAction directly. Not for OutSystems 11 (O11) or Service Studio.' license: MIT compatibility: Ships for Claude Code, Cursor and Kiro. Needs a shell with the .NET 10 SDK, and Docker for the integration tests, so Claude Desktop's Chat tab, which has no shell, can't run it. Deployment requires the `outsystems` MCP server connected and authenticated, and builds on the main `outsystems` skill for the upload, polling and publish rules. Python is NOT required by this skill. metadata: version: "1.3.0" author: outsystems-r-and-d maturity: beta
**Beta Feature.** This skill is a Beta Feature: a non-final OutSystems capability provided to collect customer feedback. It can change significantly, including through breaking changes, or be discontinued. The first time you use this skill in a conversation, tell the user it's a Beta Feature and share <https://www.outsystems.com/legal/beta-features-agreement>.
This file describes how to create, build, test, and deploy C# libraries for the OutSystems Developer Cloud (ODC) External Logic feature.
**Load the main `outsystems` skill before uploading: upload, polling and publish rules come from it** (read the live tool catalog, poll long-running operations to terminal, confirm before every tenant write). The main skill's upload, polling and publish rules apply, and this skill's two confirmations (see [Upload and publish](#upload-and-publish)) always apply on top of them. For building and packaging the library, follow this skill.
---
OutSystems ODC External Logic allows extending ODC apps with custom C# code. The C# class library project is built locally, published as a ZIP file to the ODC platform. OutSystems generates a wrapper around the code that exposes the decorated interfaces as server actions consumable by ODC applications.
---
These are hard limits enforced by the ODC platform. Never design functions that approach or exceed them:
| Constraint | Limit | |---|---| | Max execution duration | **95 seconds** per function call | | Max memory | **1,024 MB** | | Max ephemeral storage | **512 MB** | | Max payload (inputs + outputs combined) | **5.5 MB** |
For large data: stream in chunks, use references/URLs instead of raw bytes.
---
refuses to upload, update, or install a library that targets it.
If `dotnet --list-sdks` shows no 10.x SDK, or `docker info` fails, tell the user and stop at the step that needs it: the build and unit tests need the SDK, the container tests need Docker.
<PackageReference Include="OutSystems.ExternalLibraries.SDK" Version="1.7.0" />
Always use the latest stable version. Check: https://www.nuget.org/packages/OutSystems.ExternalLibraries.SDK
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="OutSystems.ExternalLibraries.SDK" Version="1.7.0" />
</ItemGroup>
</Project>Note: the SDK package itself may only ship `net8.0`/`netstandard2.0` assets (no `net10.0`-specific build) — that's fine, NuGet resolves the closest compatible asset and it runs correctly under a `net10.0`-targeted project.
---
Applied to a **public interface**. Every method on this interface becomes a server action in ODC.
using OutSystems.ExternalLibraries.SDK;
namespace MyCompany.MyLibrary
{
[OSInterface(
Name = "MyLibrary",
Description = "Short description of what this library does."
)]
public interface IMyLibrary
{
[OSAction(Description = "Greets a person by name")]
string Greet(
[OSParameter(Description = "Name to greet")] string name
);
}
}Applied to individual interface methods to override defaults.
[OSAction(
Description = "Validates an IBAN and returns structured result.",
ReturDistribution repo for the OutSystems MCP. To install, paste the matching prompt below into your AI assistant. Every harness section below sets up two artifacts and says how to keep the skill current.
[Beta] Generate an interactive HTML graph of a single OutSystems app's architecture — UI flows + screens, server/client/service…
[Beta] Build an interactive HTML REVERSE-dependency explorer — answers 'who depends on this library/agent/connection?' from the…
[Beta] Drive ODC Mentor to bootstrap an OutSystems app from a design source — Figma URL, screenshot/image, HTML mockup, or…
[Beta] Drive ODC Mentor to bootstrap an OutSystems app from a TEXT-ONLY structured spec. For Figma/image/HTML inputs, use…
[Beta] Generate an interactive HTML graph of an OutSystems Developer Cloud tenant's assets (web/mobile apps, agents and agent…
OutSystems Developer Cloud (ODC) over MCP. Edit apps, publish, deploy, search tenant elements, manage external libraries. Load…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.