Skip to content
Development
Skill

/outsystems-app-architecture

[Beta] Generate an interactive HTML graph of a single OutSystems app's architecture — UI flows + screens, server/client/service actions with signatures, entities with attributes and relationships, static enums, structures, roles, AI model connections, library dependencies and

From plugin
outsystems-mcp
427 skills5 agents1 command1 MCP

Claude Code

$ npx -y skills add OutSystems/outsystems-mcp --skill outsystems-app-architecture --agent claude-code

SKILL.md

outsystems-app-architecture.SKILL.md
name: outsystems-app-architecture
description: "[Beta] Generate an interactive HTML graph of a single OutSystems app's architecture — UI flows + screens, server/client/service actions with signatures, entities with attributes and relationships, static enums, structures, roles, AI model connections, library dependencies and where the app is deployed — with OutSystems-themed dark mode styling. ONE app per invocation — do NOT iterate over multiple apps in a single call (run the skill explicitly per-app; for more than 3 named apps, ask the user and wait for an explicit answer first). For 'every app' / 'all apps' requests and tenant-wide views, use outsystems-tenant-architecture instead: its scope guard asks before any per-app run, without listing the apps first. Use when the user asks for the architecture of a specific app, 'show me the architecture of [app]', 'explore [app]', 'what's inside [app]', 'give me an overview of [app]', or similar. Not for OutSystems 11 (O11) or Service Studio."
license: MIT
compatibility: Needs an agent that can run shell commands and Python 3.8+ (standard library only), with the OutSystems MCP server connected and signed in. Validated on Claude Code. Claude Desktop's Chat tab has no shell and cannot run it. The generated HTML loads its graph library from a CDN; offline it shows a plain listing instead.
allowed-tools: Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/outsystems-app-architecture/scripts/build.py *) Bash(python3 "${CLAUDE_PLUGIN_ROOT}/skills/outsystems-app-architecture/scripts/build.py" *) Write mcp__plugin_outsystems_outsystems__app_list mcp__plugin_outsystems_outsystems__app_info mcp__plugin_outsystems_outsystems__app_refs mcp__plugin_outsystems_outsystems__app_revisions mcp__plugin_outsystems_outsystems__env_list mcp__plugin_outsystems_outsystems__env_apps mcp__plugin_outsystems_outsystems__context_screens mcp__plugin_outsystems_outsystems__context_actions mcp__plugin_outsystems_outsystems__context_entities mcp__plugin_outsystems_outsystems__context_structures mcp__plugin_outsystems_outsystems__context_roles mcp__plugin_outsystems_outsystems__context_connections mcp__outsystems__app_list mcp__outsystems__app_info mcp__outsystems__app_refs mcp__outsystems__app_revisions mcp__outsystems__env_list mcp__outsystems__env_apps mcp__outsystems__context_screens mcp__outsystems__context_actions mcp__outsystems__context_entities mcp__outsystems__context_structures mcp__outsystems__context_roles mcp__outsystems__context_connections
metadata:
  version: "1.7.0"
  maturity: beta
  author: OutSystems

**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.

OutSystems App Architecture

Produces a single HTML file with a force-directed graph of one app's internal structure: UI flows → screens, action groups → server, client and service actions, data layer (entities / enums / structures, with entity → entity reference edges), security (roles), and **dependencies** — AI model connections and referenced libraries. OutSystems dark theme, filter-by-category sidebar, click a node for its attributes, signature or input parameters. The sidebar also shows where the app is deployed and its recent revisions.

The app data is inlined in the file. The graph library (vis-network 9.1.9, pinned with a Subresource Integrity hash) and the fonts load from CDNs: without network access, or if the CDN serves anything but the pinned file, the page shows a plain HTML listing of the same data instead of the graph.

Prerequisites

  • The OutSystems MCP server is connected and signed in. This skill reads

the tools named below; tool names here are the server's own, and your harness may show them with a prefix (in Claude Code, `mcp__plugin_outsystems_outsystems__app_info` for `app_info`).

  • A shell with `python3` (3.8 or later, standard library only). The

script reads the saved tool results from disk and writes the HTML; it never calls the server and holds no sign-in of its own.

  • `<skill-folder>` below is this skill's own folder: the one holding this

file (in the OutSystems plugin, `skills/outsystems-app-architecture/`), so `<skill-folder>/scripts/build.py` is the script next to it. Values in angle brackets are placeholders you substitute; quote every path, since a home folder can contain spaces.

  • Run every `build.py` command on its own and exactly as this file writes

it: the skill's permissions match `python3 "<skill-folder>/scripts/build.py" ...` and nothing else, so an added redirect (`2>&1`), pipe or chained command (`;`, `&&`) makes the harness stop and ask the user.

  • No shell available? Stop and tell the user this skill needs one (for

example Claude Code, not Claude Desktop's Chat tab); don't try to build the page by hand.

**The core rule: keep large data off the model's context.** Tool results go to disk, `build.py` reads them from there, and the HTML comes out the other side. Never read a saved result back into the conversation.

Procedure

Step 0 — Scope guard

This skill produces **one app's architecture** per invocation. Read the user's request and route:

**Branch A — One specific app** ("architecture of Banking Portal", "show me TaskTracker") → Continue.

**Branch B — Multiple specific apps** ("architecture of Banking Portal AND TaskTracker AND ...") → For N ≤ 3, run this skill once per app sequentially. For N > 3, **ask the user** — it's ~10K tokens each, ~50K + ~5 min for 5 apps. Confirm before chaining.

**Branch C — Whole tenant** ("architecture of everything", "all my apps") → **Stop and route to `outsystems-tenant-architecture`.** That skill is a single tenant-level pass at ~3-10K tokens, not 100× per-app calls. Tell the user: *"

Read more
@outsystems
Ships withoutsystems-mcp

Distribution 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.

427 skills5 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
42
Star history of OutSystems/outsystems-mcp on GitHub, a chart by star-history.com

Other skills on outsystems-mcp.

outsystems

outsystems

OutSystems Developer Cloud (ODC) over MCP. Edit apps, publish, deploy, search tenant elements, manage external libraries. Load…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about outsystems-app-architecture.

Which coding agents can use outsystems-app-architecture?
outsystems-app-architecture installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.