Managedcode Orleans Graph logo

Managedcode Orleans Graph

Organization
managedcode
managedcode-orleans-graph

Integrate ManagedCode.Orleans.Graph into an Orleans-based .NET application for grain-call policy enforcement, deadlock detection, live-call telemetry, and Mermaid graph diagnostics. USE FOR: ManagedCode.Orleans.Graph integration; allowed grain transitions; Orleans call filters; live policy graphs; reviewing Orleans call-cycle risk. DO NOT USE FOR: generic graph data modeling or traversal unrelated to Orleans calls. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.

Overview

Publishermanagedcode
Repositorydotnet-skills
Skill namemanagedcode-orleans-graph
Stars
492
Forks
38
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by managedcode on GitHub. Read the source before you install it.

Installation

Install the Managedcode Orleans Graph AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/ManagedCode-Orleans-Graph/skills/managedcode-orleans-graph
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/managedcode/dotnet-skills.git /tmp/dotnet-skills
mkdir -p .claude/skills
cp -r /tmp/dotnet-skills/catalog/Libraries/ManagedCode-Orleans-Graph/skills/managedcode-orleans-graph .claude/skills/managedcode-orleans-graph
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Managedcode Orleans Graph in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Managedcode Orleans Graph on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Managedcode Orleans Graph is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

ManagedCode.Orleans.Graph

Trigger On

  • integrating ManagedCode.Orleans.Graph into an Orleans-based system
  • enforcing which grain interfaces may call other grain interfaces and methods
  • detecting unsafe runtime grain call cycles or intentional self-reentrancy
  • generating configured-policy or live-call Mermaid diagrams
  • running observe mode to discover real traffic before locking down a policy

Install

Current upstream release reviewed: v10.0.3.

bash
dotnet add package ManagedCode.Orleans.Graph

The upstream package targets the current .NET 10 / Orleans 10 stack. Do not add it to older Orleans applications without first checking target frameworks and Orleans package compatibility.

Workflow

  1. Confirm the application needs grain-call policy enforcement or live-call diagnostics. If the task is generic graph data traversal, use normal Orleans grain modeling instead.
  2. Register Orleans.Graph filters in the silo with AddOrleansGraph(...).
  3. Model the policy from source grain to target grain and method. Start with explicit allow rules for client entry points and grain-to-grain transitions.
  4. Use AllowAll() observe mode only to discover traffic before enforcement. Keep a follow-up step to convert observed edges into reviewed policy.
  5. Register the client-side outgoing filter with clientBuilder.AddOrleansGraph() only when Orleans clients should participate in call-history tracking.
  6. Use attributes when colocating policy with grain contracts is clearer than central fluent setup.
  7. Generate Mermaid diagrams and inspect policy edges for review artifacts.
  8. Validate with real Orleans runtime tests, including timer, reminder, hosted-service, and stateless-worker call origins when those are part of the topology.

Practical Usage

Enforce a grain transition

csharp
using ManagedCode.Orleans.Graph.Extensions;

siloBuilder.AddOrleansGraph(graph =>
{
    graph.AllowClientCallGrain<IOrderGrain>();

    graph.AddGrainTransition<IOrderGrain, IPaymentGrain>()
        .Method(
            source => source.SubmitAsync(GraphParam.Any<Order>()),
            target => target.ChargeAsync(GraphParam.Any<Payment>()))
        .And();

    graph.AddGrain<IPaymentGrain>()
        .WithReentrancy();
});

Discover traffic before enforcement

csharp
siloBuilder.AddOrleansGraph(
    configureFilters: filters =>
    {
        filters.LiveGraphFlushPeriod = TimeSpan.FromSeconds(1);
    },
    configureGraph: graph =>
    {
        graph.AllowAll();
    });

clientBuilder.AddOrleansGraph();

After the app receives traffic, inspect the observed graph:

csharp
var telemetry = grainFactory.GetGrain<IOrleansGraphTelemetryGrain>(
    Constants.LiveGraphTelemetryGrainKey);

var observedGraph = await telemetry.GetObservedGraphAsync();
var mermaid = await telemetry.GenerateLiveMermaidDiagramAsync();

Use attributes on grain contracts

csharp
using ManagedCode.Orleans.Graph.Attributes;

[AllowClientCall]
[AllowGrainCall(
    typeof(IPaymentGrain),
    AllowAllMethods = false,
    SourceMethods = [nameof(IOrderGrain.SubmitAsync)],
    TargetMethods = [nameof(IPaymentGrain.ChargeAsync)])]
public interface IOrderGrain : IGrainWithStringKey
{
    Task SubmitAsync(Order order);
}

[AllowSelfReentrancy]
public interface IPaymentGrain : IGrainWithStringKey
{
    Task ChargeAsync(Payment payment);
}

Options And Constraints

  • AllowAll() is an observe/discovery mode, not a finished production policy.
  • AllowClientCallGrain<T>() is required for client-originated entry points that should be allowed.
  • TrackOrleansGraphInternalCalls should stay off unless debugging Orleans.Graph itself.
  • RegisterGrainTimer callbacks use * as the source method because Orleans does not expose a grain interface method for that callback.
  • Reminder callbacks use the source grain identity and ReceiveReminder as the source method.
  • Runtime vertices use exact graph identities. The library records ORLEANS_GRAIN_CLIENT for client calls and UNKNOWN_CALLER when Orleans exposes no resolvable caller identity.
  • v10.0.3 includes fixes for reminders and timers; re-test those origins when upgrading.

Deliver

  • explicit Orleans.Graph registration for the silo and, when needed, clients
  • reviewed allow rules for client-to-grain and grain-to-grain transitions
  • observe-mode output or Mermaid diagrams when discovering real call paths
  • validation coverage for blocked transitions, allowed transitions, self-reentrancy, and runtime graph diagnostics

Validate

  • the app needs call policy enforcement, not generic graph traversal
  • every client entry point and grain transition required by the workflow is allowed intentionally
  • missing or unexpected transitions fail before target grain code runs
  • observe-mode findings are converted into reviewed policy before production enforcement
  • timer, reminder, hosted-service, stateless-worker, and client-originated calls are covered when they exist
  • Mermaid or edge snapshots are generated from runtime traffic or configured policy and reviewed for cycles

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Managedcode Orleans Graph AI skill do?

Integrate ManagedCode.Orleans.Graph into an Orleans-based .NET application for grain-call policy enforcement, deadlock detection, live-call telemetry, and Mermaid graph diagnostics. USE FOR: ManagedCode.Orleans.Graph integration; allowed grain transitions; Orleans call filters; live policy graphs; reviewing Orleans call-cycle risk. DO NOT USE FOR: generic graph data modeling or traversal unrelated to Orleans calls. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.

Why use Managedcode Orleans Graph on TypingMind?

Because you install it once and use it with any model. Managedcode Orleans Graph is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Managedcode Orleans Graph in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/managedcode/dotnet-skills/tree/main/catalog/Libraries/ManagedCode-Orleans-Graph/skills/managedcode-orleans-graph. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Managedcode Orleans Graph?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Managedcode Orleans Graph?

As many as you like. As long as a model supports skills, you can use Managedcode Orleans Graph with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Managedcode Orleans Graph AI skill free?

Yes. It is published on GitHub by managedcode under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇