Agent skill

Orchardcore Tester

by OrchardCMS in OrchardCMS/OrchardCore

Tests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore.

BSD-3-ClauseAuto-check passedProductivity & Automation

Install Orchardcore Tester

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

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

GitHub CLI
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --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-tester .claude/skills/orchardcore-tester && 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-tester
GitHub stars
8.2k
Token cost
~2.6k tokens
SKILL.md length
561 words
Files
7 (incl. references)
Skills in repo
17
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Tests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore.

  • Works in 5 steps: Build → Run Application (Background) → Setup Test Site → …
  • The user needs to build
  • SKILL.md covers Prerequisites, Core Workflow, TL;DR (fastest reliable path) and Step 1: Build, plus 8 more sections
  • Calls dotnet and curl

What it does

Orchardcore Tester is an agent skill from OrchardCMS/OrchardCore. Tests OrchardCore CMS features through browser automation. Use when the user needs to build, run, setup, or test OrchardCore functionality including admin features, content management, media library, and module testing.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/admin-navigation.md`, `references/autosetup.md` and `references/common-features.md`).

It sits in Productivity & Automation, covering Browser automation. It works with Playwright, Bash and .NET. 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 to build
  • Test OrchardCore functionality including admin features
  • Content management

Example prompts

  • “Use the orchardcore-tester skill to test OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore”
  • “/orchardcore-tester”

Workflow steps

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

  1. Build
  2. Run Application (Background)
  3. Setup Test Site
  4. Test Features
  5. Verify Results

What it can do on your machine

Read from SKILL.md and the folder at commit bfbe92f. 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

    Shell commands in SKILL.md call:

    • dotnet
    • curl

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

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    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 Tester loads about 2.6k tokens when it runs, and up to ~9.3k if it reads all its reference files. Until then it costs about 60 tokens; SKILL.md has 561 words of instructions outside code blocks.

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

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 bfbe92f, republished under its BSD-3-Clause licence (© OrchardCMS). 561 words, ~2,637 tokens.

Download SKILL.mdSave it as .claude/skills/orchardcore-tester/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
orchardcore-tester
description
Tests OrchardCore CMS features through browser automation. Use when the user needs to build, run, setup, or test OrchardCore functionality including admin features, content management, media library, and module testing.

OrchardCore Feature Testing

This skill guides you through testing OrchardCore CMS features using browser automation with playwright-cli.

Prerequisites

  • OrchardCore repository (working directory)
  • .NET SDK 10.0+ installed
  • playwright-cli skill available, with a browser engine installed. On macOS (or any machine without Chrome) use webkit:
    bash
    playwright-cli --browser webkit install
    Then pass --browser webkit on the first open of a session. See references/playwright-cli.md.

The examples below show PowerShell and bash. The repo targets macOS/.NET 10; bash works everywhere. Use whichever matches your shell.

Core Workflow

Testing an OrchardCore feature follows these steps:

  1. Build the application
  2. Run the application server (background)
  3. Setup a test site (AutoSetup is the recommended unattended path)
  4. Test the feature via browser
  5. Verify results and clean up

TL;DR (fastest reliable path)

bash
# 1. build
dotnet build src/OrchardCore.Cms.Web -c Debug -f net10.0

# 2. fresh state + pick a port
rm -rf src/OrchardCore.Cms.Web/App_Data
PORT=$(( (RANDOM % 1000) + 5000 )); echo -n $PORT > .orchardcore-port

# 3. run with AutoSetup (provisions Default tenant on first request, no wizard)
cd src/OrchardCore.Cms.Web
OrchardCore__AutoSetup__AutoSetupPath= \
OrchardCore__AutoSetup__Tenants__0__ShellName=Default \
OrchardCore__AutoSetup__Tenants__0__SiteName=TestSite \
OrchardCore__AutoSetup__Tenants__0__SiteTimeZone=America/Los_Angeles \
OrchardCore__AutoSetup__Tenants__0__AdminUsername=admin \
OrchardCore__AutoSetup__Tenants__0__AdminEmail=admin@test.com \
OrchardCore__AutoSetup__Tenants__0__AdminPassword=Password1! \
OrchardCore__AutoSetup__Tenants__0__DatabaseProvider=Sqlite \
OrchardCore__AutoSetup__Tenants__0__RecipeName=Blog \
dotnet run -f net10.0 --no-build --urls "http://localhost:$PORT" > autosetup-console.log 2>&1 &
cd ../..

# 4. trigger + confirm
curl -s -o /dev/null "http://localhost:$PORT/"
grep -m1 "successfully provisioned" src/OrchardCore.Cms.Web/autosetup-console.log

Then log in (see Step 4 — the login password field needs the native-setter workaround). Full AutoSetup details and gotchas: references/autosetup.md.

Step 1: Build

powershell
dotnet build src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj -c Debug -f net10.0

Step 2: Run Application (Background)

Since multiple agents may run OrchardCore from different worktrees simultaneously, use a random port and run in background.

Get or Create Session Port
powershell
# Check for existing port file, or generate random port (5000-5999)
$portFile = ".orchardcore-port"
if (Test-Path $portFile) {
    $port = Get-Content $portFile
} else {
    $port = Get-Random -Minimum 5000 -Maximum 6000
    $port | Out-File $portFile -NoNewline
}
Write-Host "Using port: $port"
Start Application in Background
powershell
# Start OrchardCore in background process
$proc = Start-Process dotnet `
    -ArgumentList "run","-f","net10.0","--no-build","--urls","http://localhost:$port" `
    -WorkingDirectory "src/OrchardCore.Cms.Web" `
    -PassThru -NoNewWindow

# Save PID for later cleanup
$proc.Id | Out-File ".orchardcore-pid" -NoNewline
Write-Host "Started OrchardCore (PID: $($proc.Id)) on http://localhost:$port"
Wait for Application Ready
powershell
# Poll until app responds (max 60 seconds)
$port = Get-Content ".orchardcore-port"
$timeout = 60; $elapsed = 0
while ($elapsed -lt $timeout) {
    try {
        $response = Invoke-WebRequest -Uri "http://localhost:$port" -UseBasicParsing -TimeoutSec 2
        Write-Host "Application ready at http://localhost:$port"
        break
    } catch {
        Start-Sleep -Seconds 2
        $elapsed += 2
    }
}
Stop Application
powershell
# Stop the background process
if (Test-Path ".orchardcore-pid") {
    $pid = Get-Content ".orchardcore-pid"
    Stop-Process -Id $pid -Force -ErrorAction SilentlyContinue
    Remove-Item ".orchardcore-pid" -Force
    Write-Host "Stopped OrchardCore (PID: $pid)"
}
bash
# bash: find the process actually listening on the port and kill it.
# (Backgrounding dotnet via a subshell makes $! unreliable, so resolve by port.)
PORT=$(cat .orchardcore-port)
PID=$(lsof -ti tcp:$PORT -sTCP:LISTEN | head -1)
[ -n "$PID" ] && kill "$PID" && echo "Stopped OrchardCore (PID: $PID)"
rm -f .orchardcore-pid

Step 3: Setup Test Site

A fresh App_Data is uninitialized, so the site must be provisioned. There are two paths.

Provision the Default tenant from configuration on first request — no browser, no wizard. OrchardCore.Cms.Web already wires AutoSetup in (Program.cs → .AddSetupFeatures("OrchardCore.AutoSetup")); you just supply env vars when starting the app (see the TL;DR above, or run them inline with dotnet run from Step 2).

Key rules (full details in references/autosetup.md):

  • Prefix is OrchardCore__AutoSetup__Tenants__0__<Option> — __ is the separator between each level of the OrchardCore:AutoSetup section.
  • No quotes around values in bash inline-env form (quotes become part of the value and corrupt the admin password/email).
  • SiteTimeZone is required (e.g. America/Los_Angeles).

Confirm success with the log line:

The AutoSetup successfully provisioned the site 'TestSite'.
bash
grep -m1 "successfully provisioned" src/OrchardCore.Cms.Web/autosetup-console.log
Option B — Interactive setup wizard (browser)

Start the app without AutoSetup env vars, then drive the wizard with playwright-cli. The plain inputs (Site Name, User Name, Email) fill normally, but the password and confirmation fields cannot be filled with fill/type — use the native-setter eval workaround. Full step-by-step: references/setup-wizard.md. Quick shape:

bash
PORT=$(cat .orchardcore-port)
playwright-cli --browser webkit open "http://localhost:$PORT/"
playwright-cli snapshot
# fill <sitename>, <username>, <email>; pick Blog from the recipe dropdown
# set passwords via native setter (see below / setup-wizard.md), then click Finish Setup

Reset for fresh setup:

bash
rm -rf src/OrchardCore.Cms.Web/App_Data
powershell
Remove-Item -Recurse -Force src/OrchardCore.Cms.Web/App_Data
Show full SKILL.md (207 more words)Show less

Step 4: Test Features

Important: Replace 5000 with the actual port from .orchardcore-port file.

Login to Admin

The username fills normally, but the login password field (input[name="LoginForm.Password"]) cannot be filled with fill/type — use the native-setter eval (same limitation as the setup wizard; see references/playwright-cli.md).

bash
PORT=$(cat .orchardcore-port)
playwright-cli --browser webkit open "http://localhost:$PORT/Login"
playwright-cli snapshot                       # get the username/login-button refs

# username: plain fill works
playwright-cli fill <username-ref> "admin"

# password: fill is a no-op here — set it via the native setter + events
playwright-cli eval '((p)=>{var s=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set; s.call(p,"Password1!"); p.dispatchEvent(new Event("input",{bubbles:true})); p.dispatchEvent(new Event("change",{bubbles:true})); return p.value.length})(document.querySelector("input[name=\"LoginForm.Password\"]"))'

# submit, then confirm /Admin loads (does NOT redirect back to /Login)
playwright-cli click <login-button-ref>
playwright-cli open "http://localhost:$PORT/Admin"
playwright-cli eval 'window.location.pathname'   # -> "/Admin" when authenticated

The eval prints a benign result is not a function message (it returns a number); the value is still set — verify with playwright-cli eval 'document.querySelector("input[name=\"LoginForm.Password\"]").value'.

Common Test Scenarios

Test Media Library:

bash
playwright-cli open http://localhost:$port/Admin/Media
playwright-cli snapshot

Test Content Creation:

bash
playwright-cli open http://localhost:$port/Admin/Contents/ContentItems
playwright-cli snapshot
# Click New, select content type, fill fields, publish

Enable a Feature:

bash
playwright-cli open http://localhost:$port/Admin/Features
playwright-cli snapshot
# Search for feature, click Enable

See references/common-features.md for detailed workflows.

Step 5: Verify Results

After each action:

bash
# Check page state
playwright-cli snapshot

# Check for JavaScript errors
playwright-cli console error

# Verify page title
playwright-cli eval "document.title"
Debugging with Log Files

Console output is not visible when running in background. Use log files instead:

powershell
# View last 50 lines of today's log
Get-Content "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Tail 50

# Search for errors
Select-String -Path "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Pattern "ERROR|Exception" -Context 2,5

See references/debugging.md for more debugging techniques.

Quick Reference

TaskURL Path
Admin Dashboard/Admin
Features/Admin/Features
Content Items/Admin/Contents/ContentItems
Media Library/Admin/Media
Users/Admin/Users/Index
Themes/Admin/Themes

Session Files

FilePurpose
.orchardcore-portPersisted port number for session
.orchardcore-pidProcess ID for cleanup

Default Credentials

References

  • references/autosetup.md - Unattended AutoSetup (env-var recipe, gotchas, troubleshooting)
  • references/playwright-cli.md - playwright-cli specifics: browser install, eval constraint, the password-field workaround
  • references/setup-wizard.md - Interactive browser setup wizard (with password workaround)
  • references/admin-navigation.md - Admin URLs and UI patterns
  • references/common-features.md - Feature-specific testing guides
  • references/debugging.md - Log files and troubleshooting
  • AGENTS.md (repo root) - Build and development instructions

© 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 6 other files (references) in .agents/skills/orchardcore-tester of OrchardCMS/OrchardCore.

  • SKILL.md
  • references/admin-navigation.md
  • references/autosetup.md
  • references/common-features.md
  • references/debugging.md
  • references/playwright-cli.md
  • references/setup-wizard.md

Open the folder on GitHubat commit bfbe92f

Compare with similar skills

Orchardcore Tester 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 Tester compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Orchardcore Tester this skillOrchardCMS/OrchardCore8.2k—~2.6kAutomated safety check: PassBSD-3-Clause
Agent Browserdavekilleen/Dex4941 repos~1.6kAutomated safety check: PassMIT
Aspiremicrosoft/aspire.dev1954 repos~1.1kAutomated safety check: PassMIT
Dotnet Testingnovotnyllc/dotnet-artisan232—~972Automated safety check: PassMIT
Skyvern Browser AutomationSkyvern-AI/skyvern23k1 repos~2.9kAutomated safety check: PassAGPL-3.0
CUAWright Web Task Automationmicrosoft/CUAWright6k—~2kAutomated safety check: NotesMIT

Similar skills

  • Agent Browser

    davekilleen/Dex

    Browser automation using Vercel's agent-browser CLI. An agent skill from davekilleen/Dex.

    494 GitHub starsUsed in 1 repo~1.6k tokens
    Productivity & AutomationAuto-check passed
  • Aspire

    microsoft/aspire.dev

    Official

    Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps.

    195 GitHub starsUsed in 4 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Dotnet Testing

    novotnyllc/dotnet-artisan

    Defines .NET test strategy and implementation patterns across xUnit v3 (Facts, Theories, fixtures, IAsyncLifetime), integration testing (WebApplicationFactory, Testcontainers), Aspire testing…

    232 GitHub stars~972 tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Skyvern Browser Automation

    Skyvern-AI/skyvern

    Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.

    23k GitHub starsUsed in 1 repo~2.9k tokens
    Productivity & AutomationAuto-check passed
  • Official

    Solves web tasks by driving a local Playwright browser one bash command at a time, saving a reusable script, screenshots and an action log for each run.

    6k GitHub stars~2k tokensUpdated 4 days ago
    Productivity & AutomationAuto-check: notes
  • AI Search Hub

    minsight-ai-info/AI-Search-Hub

    Run the AI Search Hub browser automation scripts for Yuanbao, LongCat, Doubao, Qwen, Gemini, Grok, and MiniMax.

    1.3k GitHub stars~1.3k tokensUpdated 5 mo ago
    Productivity & AutomationAuto-check passed

More from OrchardCMS/OrchardCore

All 17 skills in this repo
  • Orchardcore Video Producer

    OrchardCMS/OrchardCore

    Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same…

    8.2k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • 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

Questions about Orchardcore Tester

What does Orchardcore Tester do?

Tests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore. Orchardcore Tester is an agent skill from OrchardCMS/OrchardCore. Tests OrchardCore CMS features through browser automation.

When should I use Orchardcore Tester?

Orchardcore Tester fits situations like: the user needs to build; test OrchardCore functionality including admin features; content management.

How do I install Orchardcore Tester in Claude Code?

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

How do I install Orchardcore Tester in Codex?

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

Can I use Orchardcore Tester 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-tester -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-tester, .gemini/skills/orchardcore-tester, .github/skills/orchardcore-tester and .opencode/skills/orchardcore-tester in your project.

What does Orchardcore Tester need to run?

Going by SKILL.md and its folder, Orchardcore Tester needs the command-line tools its instructions call (dotnet and curl).

Does Orchardcore Tester access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Orchardcore Tester 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 Tester use?

Orchardcore Tester 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 Tester use?

About 2.6k tokens (SKILL.md is roughly 11k 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 6.6k tokens, read only when the agent opens those files.

What are the alternatives to Orchardcore Tester?

Skills that share tags, products or a category with Orchardcore Tester: Agent Browser (davekilleen/Dex, 494 stars), Aspire (microsoft/aspire.dev, 195 stars), Dotnet Testing (novotnyllc/dotnet-artisan, 232 stars) and Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Orchardcore Tester?

OrchardCMS (a GitHub organization) maintains it in OrchardCMS/OrchardCore, which has 8,193 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 10, 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.