Agent skill

Orchardcore Workflow Activity

by OrchardCMS in OrchardCMS/OrchardCore

Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration.

BSD-3-ClauseAuto-check passed

Install Orchardcore Workflow Activity

skills CLI
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-workflow-activity -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OrchardCMS/OrchardCore orchardcore-workflow-activity --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/orchardcore-workflow-activity .claude/skills/orchardcore-workflow-activity && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
orchardcore-workflow-activity
GitHub stars
8.2k
Token cost
~1.9k tokens
SKILL.md length
445 words
Files
2 (incl. references)
Skills in repo
16
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration.

  • Works in 5 steps: Create the activity class → Create the display driver → Create the shape templates → …
  • The user needs a new workflow Task
  • SKILL.md covers Decide: Task or Event, Workflow, Quick Reference and Gotchas, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Orchardcore Workflow Activity is an agent skill from OrchardCMS/OrchardCore. Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration. Use when the user needs a new workflow Task or Event, custom outcomes, activity editor UI, or to read/write workflow input, output, and properties.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/activities.md`).

The repository describes itself as: Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework. The licence is BSD-3-Clause.

When your agent uses it

  • The user needs a new workflow Task
  • Custom outcomes
  • Activity editor UI
  • Read/write workflow input

Example prompts

  • “Use the orchardcore-workflow-activity skill to create custom OrchardCore workflow activities — tasks and events — with their display drivers and…”
  • “/orchardcore-workflow-activity”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Create the activity class
  2. Create the display driver
  3. Create the shape templates
  4. Register
  5. Test

What it can do on your machine

Read from SKILL.md and the folder at commit 545c6a0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Orchardcore Workflow Activity loads about 1.9k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 73 tokens; SKILL.md has 445 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OrchardCMS/OrchardCore at commit 545c6a0, republished under its BSD-3-Clause licence (© OrchardCMS). 445 words, ~1,881 tokens.

Download SKILL.mdSave it as .claude/skills/orchardcore-workflow-activity/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
orchardcore-workflow-activity
description
Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration. Use when the user needs a new workflow Task or Event, custom outcomes, activity editor UI, or to read/write workflow input, output, and properties.

OrchardCore Workflow Activity

This skill guides you through writing custom workflow activities following project conventions.

A workflow is a graph of activities connected by outcomes. Two activity kinds:

  • Task — does work, then returns one or more outcomes (TaskActivity). Cannot start a workflow.
  • Event — waits for something to happen, halting the workflow until resumed (EventActivity). Can be a workflow start point.

Each activity pairs with a display driver that renders its thumbnail, design, and editor shapes, and is registered with services.AddActivity<TActivity, TDriver>().

Decide: Task or Event

NeedUse
Perform an action and continue (log, notify, HTTP call, set value)TaskActivity<T>
Wait for / react to an external trigger (signal, timer, HTTP request)EventActivity
Start a workflowEvent (tasks can't start)

Workflow

Step 1: Create the activity class

A task:

csharp
public class LogTask : TaskActivity<LogTask>
{
    private readonly IWorkflowExpressionEvaluator _expressionEvaluator;
    protected readonly IStringLocalizer S;

    public LogTask(IWorkflowExpressionEvaluator expressionEvaluator, IStringLocalizer<LogTask> localizer)
    {
        _expressionEvaluator = expressionEvaluator;
        S = localizer;
    }

    public override LocalizedString DisplayText => S["Log Task"];
    public override LocalizedString Category => S["Primitives"];

    // Persisted property — stored in the activity's Properties bag
    public WorkflowExpression<string> Text
    {
        get => GetProperty(() => new WorkflowExpression<string>());
        set => SetProperty(value);
    }

    public override IEnumerable<Outcome> GetPossibleOutcomes(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
        => Outcomes(S["Done"]);

    public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
    {
        var text = await _expressionEvaluator.EvaluateAsync(Text, workflowContext, null);
        // ... do work ...
        return Outcomes("Done");
    }
}

An event halts in Execute, gates on CanExecuteAsync, and resumes in Resume:

csharp
public class SignalEvent : EventActivity
{
    public static string EventName => nameof(SignalEvent);
    public override string Name => EventName;

    public override LocalizedString DisplayText => S["Signal Event"];
    public override LocalizedString Category => S["HTTP"];

    public WorkflowExpression<string> SignalName
    {
        get => GetProperty(() => new WorkflowExpression<string>());
        set => SetProperty(value);
    }

    public override async Task<bool> CanExecuteAsync(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
    {
        var signalName = await _expressionEvaluator.EvaluateAsync(SignalName, workflowContext, null);
        return string.Equals(workflowContext.Input.GetValue<string>("Signal"), signalName, StringComparison.OrdinalIgnoreCase);
    }

    public override IEnumerable<Outcome> GetPossibleOutcomes(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
        => Outcomes(S["Done"]);

    public override ActivityExecutionResult Resume(WorkflowExecutionContext workflowContext, ActivityContext activityContext)
        => Outcomes("Done");
}

EventActivity.Execute returns Halt() by default — the workflow persists and waits.

Step 2: Create the display driver
csharp
public sealed class LogTaskDisplayDriver : ActivityDisplayDriver<LogTask, LogTaskViewModel>
{
    protected override void EditActivity(LogTask activity, LogTaskViewModel model)
        => model.Text = activity.Text.Expression;

    protected override void UpdateActivity(LogTaskViewModel model, LogTask activity)
        => activity.Text = new WorkflowExpression<string>(model.Text);
}

ActivityDisplayDriver<TActivity, TEditViewModel> wires thumbnail/design/edit shapes automatically. You only map between activity and view model.

Step 3: Create the shape templates

Three Razor shapes, named by activity:

ShapeFileRenders
ThumbnailLogTask_Fields_Thumbnail.cshtmlactivity picker entry
DesignLogTask_Fields_Design.cshtmlnode on the workflow canvas
EditLogTask_Fields_Edit.cshtmlproperty editor form
Step 4: Register

In Startup.cs:

csharp
services.AddActivity<LogTask, LogTaskDisplayDriver>();
Step 5: Test

Build, open Admin → Workflows, create a workflow, drop your activity, wire its outcome, run. Events: trigger the external condition and confirm the halted workflow resumes.

Quick Reference

Required / common members
MemberPurpose
Nametechnical id (defaults to type name via TaskActivity<T>)
DisplayTextlocalized label (S["..."])
Categorygrouping in the activity picker
GetPossibleOutcomes(...)declares outcome ports
ExecuteAsync(...)task work; return Outcomes(...)
CanExecuteAsync(...)event gate (true → may run/resume)
Resume(...) / ResumeAsync(...)event continuation after halt
Show full SKILL.md (164 more words)Show less
Outcome & result helpers (from Activity)
CallMeaning
Outcomes("Done")continue down the Done port
Outcomes("Yes", "No")multiple outcomes
Halt()suspend (event waiting)
Noop()empty result
Outcomes(S["Done"])declare a possible outcome (in GetPossibleOutcomes)
Persisting state

GetProperty/SetProperty store into the activity's Properties JSON bag, keyed by member name ([CallerMemberName]):

csharp
public LogLevel LogLevel
{
    get => GetProperty(() => LogLevel.Information); // default if unset
    set => SetProperty(value);
}
Workflow-level data (WorkflowExecutionContext)
DictUse
Inputvalues supplied by the initiator (read)
Outputvalues returned to the initiator (write)
Propertiesshared state between activities
csharp
workflowContext.Output["Result"] = value;
workflowContext.Properties["Counter"] = 1;
var signal = workflowContext.Input.GetValue<string>("Signal");

Gotchas

  • Use WorkflowExpression<string> for user-editable fields so authors can write Liquid/JS; evaluate with IWorkflowExpressionEvaluator.
  • Events must override Name to a stable value (often a static EventName) — other code references it by name to resume.
  • GetPossibleOutcomes returns Outcome objects (localized labels); ExecuteAsync returns ActivityExecutionResult via Outcomes("...") strings. Keep the names aligned.
  • Long-running events persist the workflow to the DB; don't hold non-serializable state on the activity between halt and resume.

References

  • references/activities.md — base classes, state, outcomes, expression evaluation, full examples
  • src/docs/reference/modules/Workflows/README.md (repo) — official reference + built-in activity catalog
  • src/docs/topics/workflows/README.md (repo) — concepts
  • AGENTS.md (repo root) — build commands

© OrchardCMS, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .agents/skills/orchardcore-workflow-activity of OrchardCMS/OrchardCore.

  • SKILL.md
  • references/activities.md

Open the folder on GitHubat commit 545c6a0

Compare with similar skills

Orchardcore Workflow Activity next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Orchardcore Workflow Activity compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Orchardcore Workflow Activity this skillOrchardCMS/OrchardCore8.2k—~1.9kAutomated safety check: PassBSD-3-Clause
Events Activitiessickn33/agentic-awesome-skills47k1 repos~3.9kAutomated safety check: PassMIT
Eventscoreyhaines31/marketingskills54k—~3kAutomated safety check: PassMIT
Event Sourcing Architectdavila7/claude-code-templates32k4 repos~659Automated safety check: PassMIT
Event Store Designwshobson/agents40k9 repos~828Automated safety check: PassMIT
Event Staffing Orderingsickn33/agentic-awesome-skills47k1 repos~1.5kAutomated safety check: PassMIT

Similar skills

  • Events Activities

    sickn33/agentic-awesome-skills

    Event register: type, date and time, venue, organizer, audience, budget against actual cost, RSVP and attendance counts and feedback score.

    47k GitHub starsUsed in 1 repo~3.9k tokens
    Data & AnalyticsAuto-check passed
  • Events

    coreyhaines31/marketingskills

    When the user wants to plan, run, sponsor, speak at, or get pipeline from events — webinars, conferences, trade shows, meetups, dinners, workshops, virtual summits, or user conferences.

    54k GitHub stars~3k tokensUpdated today
    Marketing & SEOAuto-check passed
  • Event Sourcing Architect

    davila7/claude-code-templates

    Expert in event sourcing, CQRS, and event-driven architecture patterns.

    32k GitHub starsUsed in 4 repos~659 tokens
    Backend & APIsAuto-check passed
  • Event Store Design

    wshobson/agents

    Designs event stores for event-sourced systems: requirements, a comparison of EventStoreDB, PostgreSQL, Kafka, DynamoDB and Marten, and stream and versioning practices.

    40k GitHub starsUsed in 9 repos~828 tokens
    Backend & APIsAuto-check passed
  • Event Staffing Ordering

    sickn33/agentic-awesome-skills

    Order W-2 compliant temporary event staff for conventions, trade shows, festivals, concerts, sporting events, and brand activations across 300+ US and Canadian markets via TempGuru.

    47k GitHub starsUsed in 1 repo~1.5k tokens
    Agent WorkflowsAuto-check passed
  • Summarize Activity

    alpinejs/alpine

    Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.

    32k GitHub stars~1.6k tokensUpdated 3 days ago
    Backend & APIsAuto-check: notes

More from OrchardCMS/OrchardCore

All 16 skills in this repo
  • Orchardcore Admin Edit Views

    OrchardCMS/OrchardCore

    Creates and updates OrchardCore admin edit views using the ocat- CSS class conventions.

    8.2k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Orchardcore Asset Manager

    OrchardCMS/OrchardCore

    Builds, watches, and manages frontend assets in OrchardCore.

    8.2k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Orchardcore Data Migration

    OrchardCMS/OrchardCore

    Creates and updates OrchardCore data migrations (DataMigration classes with CreateAsync/UpdateFromX).

    8.2k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Orchardcore Display Management

    OrchardCMS/OrchardCore

    Controls how OrchardCore renders content — placement.json rules, display drivers, shapes, zones, alternates, and editor groupings (tabs/cards/columns).

    8.2k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Orchardcore Docs Writer

    OrchardCMS/OrchardCore

    Authors OrchardCore documentation — MkDocs Material pages, module README docs, nav entries, admonitions, tabbed content, and redirects.

    8.2k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Orchardcore Localization

    OrchardCMS/OrchardCore

    Localizes OrchardCore apps — UI strings (IStringLocalizer/IViewLocalizer S, T, H), PO files and pluralization, content translation (LocalizationPart, culture picker), and supported-culture…

    8.2k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Questions about Orchardcore Workflow Activity

What does Orchardcore Workflow Activity do?

Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration. Orchardcore Workflow Activity is an agent skill from OrchardCMS/OrchardCore. Creates custom OrchardCore workflow activities — tasks and events — with their display drivers and registration.

When should I use Orchardcore Workflow Activity?

Orchardcore Workflow Activity fits situations like: the user needs a new workflow Task; custom outcomes; activity editor UI; read/write workflow input.

How do I install Orchardcore Workflow Activity in Claude Code?

Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-workflow-activity -a claude-code`. Or copy the skill folder (.agents/skills/orchardcore-workflow-activity in OrchardCMS/OrchardCore) into .claude/skills/orchardcore-workflow-activity in your project. Claude Code loads it when a task matches its description.

How do I install Orchardcore Workflow Activity in Codex?

Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-workflow-activity -a codex`. Or copy the skill folder (.agents/skills/orchardcore-workflow-activity in OrchardCMS/OrchardCore) into .agents/skills/orchardcore-workflow-activity in your project. Codex loads it when a task matches its description.

Can I use Orchardcore Workflow Activity in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-workflow-activity -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchardcore-workflow-activity, .gemini/skills/orchardcore-workflow-activity, .github/skills/orchardcore-workflow-activity and .opencode/skills/orchardcore-workflow-activity in your project.

What does Orchardcore Workflow Activity need to run?

SKILL.md names no scripts, command-line tools or credentials: Orchardcore Workflow Activity is instructions for the agent only.

Does Orchardcore Workflow Activity access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Orchardcore Workflow Activity safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Orchardcore Workflow Activity use?

Orchardcore Workflow Activity is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Orchardcore Workflow Activity use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Orchardcore Workflow Activity?

Skills that share tags, products or a category with Orchardcore Workflow Activity: Events Activities (sickn33/agentic-awesome-skills, 47k stars), Events (coreyhaines31/marketingskills, 54k stars), Event Sourcing Architect (davila7/claude-code-templates, 32k stars) and Event Store Design (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Orchardcore Workflow Activity?

OrchardCMS (a GitHub organization) maintains it in OrchardCMS/OrchardCore, which has 8,195 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 9, 2026.

Source: OrchardCMS/OrchardCore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.