umbraco
- 155 skills
- 0 followers
- last month last updated
- ▌ Release Management 3 · umbracoCreates a release branch for this Umbraco.Automate satellite - bumps the Directory.Packages.props Automate package ranges and version.json to a stable version for the chosen Umbraco CMS major line. Use when preparing a new release.
- ▌ Post Release Cleanup 3 · umbracoMerges a released release/* branch back into main or support/17.x, tags the merge commit, creates the GitHub Release, bumps version.json for next-cycle nightlies, and deletes the release branch. Use after the release build is green AND the package has been manually pushed to MyGet.
- ▌
- ▌ Repo Setup 2 · umbracoPerforms initial repository setup including git hooks, demo site creation, and dependency installation. Use when cloning the repository for the first time, onboarding a new developer, or resetting the development environment.
- ▌ Ops Branching 2 · umbracoThis repo's branch model, and the only holder of it. Merges a PR with whichever strategy the model calls for, opens a PR onto the correct base for its line, and starts a work branch rooted correctly. The integration branches, the release base and the merge strategy are PRIVATE — a caller asks for an outcome and never learns a branch name or a strategy. Command-only: it answers no reads. Called by name with (action, context-json) by a service, never by a loop. NOT for direct use — never select it from a description match.
- ▌ Ops Workspace 2 · umbracoAn isolated place to build and test one change in Umbraco.Automate — a git worktree under `.claude/worktrees/`, rooted on the target line's integration branch, with the local config files a build needs — and the teardown that removes it. Prepared and torn down by `ops-change`, never by a loop. Called by name with (action, context-json). Not model-invoked.
- ▌ Release Management 2 · umbracoOrchestrates the complete release preparation process - detects changed products, analyzes commits for version bumps, updates version.json files, generates manifests and changelogs, and creates release branches. Use when preparing a new release.
- ▌ Changelog Management 2 · umbracoGenerates changelogs for products from conventional commit history. Use when preparing a release, updating release documentation, or previewing unreleased changes before creating a release branch.
- ▌ Demo Site Management 2 · umbracoManages the Umbraco.Automate demo site for development. Handles starting with DemoSite-Claude profile, port discovery via named pipes, and stopping. Use when starting, stopping, or checking the demo site.
- ▌ Post Release Cleanup 2 · umbracoMerges a release or hotfix branch back into its version line's vN/main and vN/dev, bumps version.json on vN/dev so nightly builds produce versions higher than the released version, and optionally deletes the release branch. Creates the next major's vN+1 line and updates the GitHub default branch on a major-version cutover. Use after a release has been deployed and tagged.
- ▌ Release Manifest Management 2 · umbracoGenerates and manages the release-manifest.json file. Use when you need to create or update the manifest file that specifies which products to include in a vN/release or vN/hotfix. Called by the release-management orchestration skill.
- ▌ Session Hook Config 2 · umbracoConfigures startup hooks for Claude Code on the web, particularly for .NET proxy setup. Use when setting up a repository for Claude Code web sessions, when dotnet restore fails with 401 errors in Claude Code web, or when configuring SessionStart hooks for environment initialization.
- ▌ MCP CLI 2 · umbraco bundleGuide for configuring and running Umbraco MCP servers via the CLI. Use when the user wants to set up an MCP server for Claude Code, configure auth, filtering, dry-run, readonly mode, or use introspection commands to understand available tools.
- ▌ Run Umbraco UI · umbraco bundleBuild, run, and drive the Umbraco.UI (UUI) web-component library via its Storybook. Use when asked to run/start/launch Storybook, screenshot a UUI component, drive the component library in a browser, or build/preview the components.
- ▌ Umbraco Skill Author · umbraco bundleA framework for authoring Umbraco skills in THIS marketplace: how to structure, scaffold, write, and audit a skill so it matches the house conventions. Use this whenever the user wants to start or build a new skill for the Umbraco marketplace, e.g. "make a new skill for X", "how should I structure this skill", "turn these docs into a skill", "scaffold a skill", or "get this skill ready to ship". Ends with a self-audit checklist, then hands off to `umbraco-skill-evaluator` for the eval loop — this skill covers authoring, not evaluation. SKIP: non-skill work, and general skill-building unrelated to this Umbraco marketplace (use the generic skill-creator for those).
- ▌ Umbraco Skill Evaluator · umbraco bundleRun quantitative + qualitative evaluations on an existing Claude skill. Use this whenever the user wants to test, benchmark, eval, validate, regression-check, or measure the value of a skill they've already drafted — including phrases like "run evals on this skill", "is this skill actually helping", "compare with-skill vs without-skill", "iterate on my skill based on results". This is the lightweight cousin of skill-creator: it skips drafting, blind comparison, and description-tuning, and focuses purely on the eval loop with Haiku-powered grading.
- ▌ Umbraco Reference Instance · umbraco bundleBoot the committed reference Umbraco site and prove that a skill's produced code actually runs. Use this whenever you want to run/validate an implementation or content-modelling skill against a real, running Umbraco instance — e.g. "test the sitemap skill in Umbraco", "does this skill's code actually work", "boot the reference site", "run the instance", "validate <skill> end-to-end". This is the runtime counterpart to `umbraco-skill-evaluator`: the evaluator grades whether Claude *writes* the right code; this skill proves the code *builds and serves* in Umbraco. Authoring/maintainer tooling — not shipped in any plugin.
- ▌ Umbraco Sitemap · umbraco bundleAdd an XML sitemap to an Umbraco 17+ site. Offers two approaches: the official docs Razor-template + Document Type approach, and a custom cached API controller that needs no backoffice setup. Use this skill whenever the user asks to add, create, build, implement, or enable an XML sitemap for an Umbraco site, including related goals like "improve SEO", "let search engines index the site", or "set up robots.txt". SKIP: non-Umbraco projects or Umbraco < 17.
- ▌ Umbraco Custom Error Pages · umbraco bundleImplement custom 404 and 500 error pages in Umbraco 16.1+. Offers two 404 approaches: a multi-site-aware IContentLastChanceFinder (default) and the official docs' zero-code Error404Collection config; 500s use a shared MVC controller. Trigger: user asks to "add custom error pages", "set up 404 page", "handle 500 errors", "create page not found", "implement error handling", "customize error pages in Umbraco". SKIP: non-Umbraco projects, and maintenance/upgrade pages (use umbraco-custom-maintenance-page instead).
- ▌ Umbraco Custom Maintenance Page · umbraco bundleCustomize the page shown to visitors while Umbraco runs upgrade migrations. Covers Umbraco 17+ upgrade pages, including the unattended upgrade view introduced for Umbraco 17.3+, the documented UmbracoWebsite maintenance page convention, and branded holding pages for Cloud and hosting downtime. Trigger: user asks to "customize maintenance page", "brand maintenance page", "create custom maintenance page", "style upgrade page", "change maintenance page in Umbraco", or "customize upgrading view". SKIP: non Umbraco projects, normal 404/500/Boot Failed pages, and general deployment holding pages without an Umbraco upgrade. Use umbraco-custom-error-pages for application errors.
- ▌ Ops Change · umbracoBuild one change in Umbraco.Automate: implement it on a `vN/feature/*` branch, prove it with `dotnet build` + the affected product's tests and its dependents' tests, and close the issue once it has landed on every line a human confirmed as a target. Ports are never opened without that confirmation. Called by name with (action, context-json). Not model-invoked.
- ▌ Ops Release · umbracoShip an Umbraco.Automate release for one version line. Delegates the mechanics to the repo's existing skills — `/release-management` for planning and cutting, `/post-release-cleanup` for the sync — then waits for the Azure pipeline, tags per product and per release, and publishes the GitHub release. Called by name with (action, context-json). Not model-invoked.
- ▌ Session Hook Config · umbracoConfigures startup hooks for Claude Code on the web, particularly for .NET proxy setup. Use when setting up a repository for Claude Code web sessions, when dotnet restore fails with 401 errors in Claude Code web, or when configuring SessionStart hooks for environment initialization.
- ▌ Repo Setup · umbracoPerforms initial repository setup including git hooks, demo site creation, and dependency installation. Use when cloning the repository for the first time, onboarding a new developer, or resetting the development environment.
- ▌ Checkout Pr · umbracoCheck out a pull request into an isolated git worktree. Use when you want to review, test, or inspect a PR without affecting your current working directory.
- ▌ Add Provider · umbracoScaffolds a new AI provider package (Umbraco.AI.X) following the established provider plugin pattern. Use when adding support for a new AI vendor (e.g., Cohere, Groq, xAI, DeepSeek). Covers code, config, marketplace metadata, install scripts, and CI registration.
- ▌ Worktree Merge · umbracoMerge a feature worktree branch into the appropriate vN/dev and clean up. Use for lightweight features that don't need a PR — merges locally, pushes, then removes the worktree and branch.
- ▌ Repo Management · umbracoProvides a unified interface for repository management including setup, releases, changelogs, and builds. Use when unsure which management task to perform, or when needing guidance on repository operations like building, releasing, or generating changelogs.
- ▌ Worktree Cleanup · umbracoClean up a git worktree and its local branch after a feature has been merged. Use after a PR is merged or a feature branch is no longer needed.
- ▌ Release Management · umbracoOrchestrates the complete release preparation process - detects changed products, analyzes commits for version bumps, updates version.json files, generates manifests and changelogs, and creates release branches. Use when preparing a new release.
- ▌ Changelog Management · umbracoGenerates changelogs for products from conventional commit history. Use when preparing a release, updating release documentation, or previewing unreleased changes before creating a release branch.
- ▌ Demo Site Automation · umbraco bundleAutomates browser-based interactions with Umbraco.AI demo site using Playwright. Handles login, navigation, and editing of AI entities (connections, profiles, prompts, agents). Use when testing UI workflows, creating or editing AI entities through the backoffice, or demonstrating Umbraco.AI features.
- ▌ Demo Site Management · umbracoManages the Umbraco.AI demo site for development. Handles starting with DemoSite-Claude profile, port discovery via named pipes, and OpenAPI client generation. Use when starting, stopping, or checking the demo site, or when generating OpenAPI clients for frontend development.
- ▌ Post Release Cleanup · umbracoMerges a release or hotfix branch back into vN/main and vN/dev, bumps version.json on vN/dev so nightly builds produce versions higher than the released version, checks GitHub issues and the Azure DevOps AI Team backlog for anything needing a release-confirmation comment or closing, and optionally deletes the release branch. If the release is a new major version, creates the new vN+1/dev and vN+1/main branches and updates the GitHub default branch. Use after a release has been deployed and tagged.
- ▌ Web Environment Setup · umbracoSets up Claude Code web environment for building the Umbraco.AI solution. Installs .NET SDK, configures proxy for NuGet, and prepares git for GitVersioning. Use this when starting a new Claude Code web session to build the project.
- ▌ Release Manifest Management · umbracoGenerates and manages the release-manifest.json file. Use when you need to create or update the manifest file that specifies which products to include in a release/hotfix. Called by the release-management orchestration skill.
- ▌ MCP CLI · umbracoGuide for running and debugging this Umbraco MCP server via the CLI. Use when the user wants to list tools, call tools, configure filtering, dry-run, readonly mode, or debug configuration.
- ▌ Release · umbracoCreate a release branch from dev with version bumps and changelog. Use when the user wants to prepare a new release, bump a version, or cut a release. Triggers on phrases like "release 17.1.2", "cut a release", "prepare a release", "version bump", or just "/release".
- ▌ Run E2e · umbracoRun Playwright E2E tests for the hosted MCP Cloudflare Worker. Use this skill when the user says /run-e2e, "run e2e tests", "run the e2e", "run playwright tests", or wants to test the hosted worker end-to-end. Handles starting Umbraco, building, and running the full test suite.
- ▌ Add Eval · umbracoAdd or update an LLM eval test for a specific tool or collection. Creates a new eval scenario or updates an existing one to cover new tools. Use when adding eval coverage for new or modified tools.
- ▌ Add Test · umbracoAdd an integration test for a specific tool in an existing collection. Creates a test file following the collection's established patterns. Use when adding tests for new or modified tools, or re-creating deleted tests.
- ▌ Add Tool · umbracoAdd a new tool to an existing MCP collection. Creates the tool file, updates the collection index, optionally adds integration tests and eval tests. Use when adding new API endpoints to collections already created by '/build-tools'.
- ▌ Build Evals · umbracoBuild LLM eval tests for MCP tool collections. Reads .discover.json and creates eval setup and scenario test files per collection. Use after running '/build-tools'.
- ▌ Build Tools · umbracoBuild MCP tool collections from discovered API groups. Reads .discover.json and generates tools and collection registrations. Use after running 'npx @umbraco-cms/create-umbraco-mcp-server discover'.
- ▌ Discuss MCP · umbraco bundleAdvisory skill for reflecting on and improving an MCP server — trace analysis, chained tool design, and behavioral coverage review.
- ▌ MCP Testing · umbracoLoad MCP eval testing patterns using @umbraco-cms/mcp-server-sdk/evals. Use when writing LLM-based acceptance tests for MCP tools.
- ▌ MCP Patterns · umbraco bundleLoad MCP development patterns and best practices for building tools with the @umbraco-cms/mcp-server-sdk. Use when starting tool development or needing pattern reference.
- ▌ Count MCP Tools · umbraco bundleCount MCP tools in an SDK-based project and analyze implementation gaps against .discover.json. Use when the user asks about tool counts, progress, or collection coverage.
- ▌ Build Tools Tests · umbraco bundleBuild integration tests for MCP tool collections. Reads .discover.json and creates test setup, builders, helpers, and test files per collection. Use after running '/build-tools'.
- ▌ Update Ignored Endpoints · umbraco bundleUpdate the IGNORED_ENDPOINTS.md documentation file with current endpoint coverage analysis. Discovers all generated API client files and compares against implemented MCP tools. Use when documentation needs to be refreshed or when verifying ignored endpoint status.
- ▌ Umb Review · umbraco bundleAutomated PR code review for Umbraco CMS. Analyzes changed files for intent, impact on consumers, breaking changes, architecture compliance, and code quality. Non-interactive — outputs a full structured review. Use this skill whenever the user asks to review a branch, review a PR, check their changes for issues, analyze a diff, or validate breaking change patterns — even if they don't say "review" explicitly. Does NOT apply to writing new code, fixing bugs, refactoring, explaining architecture, writing tests, or reviewing documentation content.
- ▌ Umb Bump Version · umbracoBump the Umbraco CMS version across all required files. Use when the user asks to bump, update, or set the version number — e.g., "bump version to 17.3.4", "set version to 18.0.0-rc", "update version". Accepts the target version as an argument.
- ▌ Umb Release Notes · umbracoImprove a set of auto-generated GitHub release notes for an Umbraco CMS release. Cross-checks the notes against every PR carrying the release label, adds any that are missing, re-files every PR under the most appropriate category, and strips purely-internal entries. Use whenever the user asks to tidy up, improve, complete, or recategorize release notes for a given version, or mentions a release-notes text file plus a version number.
- ▌ Umb Update Openapi · umbracoRegenerate the Management API OpenApi.json for Umbraco CMS from a running backend, and optionally regenerate the backoffice hey-api client so its generated types match. Proactively offer to run this at the end of any work that adds, removes, or changes Management API controllers, endpoints, routes, or their request/response/view models — OpenApi.json and the generated backend-api client go stale the moment the API surface changes, so suggest syncing rather than waiting to be asked. Also use it whenever the user asks to update/refresh/regenerate OpenApi.json or the openapi document, says the generated backend-api / hey-api client is stale or out of date, or has just added an endpoint and needs the client types — including phrasings like "sync the OpenAPI spec", "update the API client", "the openapi doc is out of date", or "regenerate the server API", even if OpenApi.json isn't named explicitly. Does NOT apply to Delivery API changes or to internal service/repository edits that don't alter the Management API su
- ▌ Umb Update Server Dependencies For Minor · umbracoUpdate Server-Side Dependencies (minor & patch) - Umbraco CMS
- ▌ Core Add Module · umbracoAdd a new module to the core package (src/packages/core/). Use when adding shared UI framework infrastructure that all packages can use — e.g., a new extension system feature, a new utility, a new shared component pattern, a new picker, or a new workspace primitive. Core modules are imported as @umbraco-cms/backoffice/{module-name}. Also use when the user says things like "add a module to core", "create a new core feature", or "add shared infrastructure".
- ▌ General Create Kind · umbracoCreate a new extension kind — a reusable default implementation for an extension type. Use when multiple extensions of the same type share the same element/API implementation and only differ in configuration. Kinds reduce boilerplate by providing pre-built defaults that extensions customize via meta.
- ▌ General Deprecate API · umbracoDeprecate a public API (class, method, property, type, constant, or context token) following the 2-major-version rule. Use when removing or replacing any publicly exported symbol that external consumers may depend on — includes exports from package index.ts files, global components, extension type aliases, and manifest schemas.
- ▌ General Add Value Type · umbracoAdd a new value type — a named, typed string constant that extends UmbValueTypeMap. Use when a feature needs to declare what type of value it holds so it can be referenced in collection columns or value summary manifests. Also use when a property editor needs to expose its value type for use in collection views.
- ▌ General Create Package · umbracoCreate a new package in the Umbraco backoffice client with its first module. Use when adding a new domain feature area that needs its own package under src/packages/ — e.g., a new CMS feature like data types, tags, or relations. Packages are self-contained domain modules that can theoretically be uninstalled independently. Also use when the user says things like "scaffold a new package", "add a new feature package", or "create a new domain module".
- ▌ General Add Localization · umbracoAdd localization keys and use them in elements or controllers. Use when adding user-facing text that should be translatable — labels, descriptions, error messages, button text, status text, or any string shown in the backoffice UI.
- ▌ General Create Condition · umbracoCreate a new extension condition that controls when extensions are active. Use when you need to conditionally show or hide extensions based on application state (e.g., current section, user permissions, entity state, workspace context). Conditions are registered as extensions and referenced in manifest condition arrays.
- ▌ General Create Workspace · umbracoCreate a new workspace for an entity in the Umbraco backoffice. Supports two workspace types — default (simple, manifest-only, for root/listing pages) and routable (entity detail editing with create/edit flows). Use when the user says "create a workspace", "add a workspace for X", or "scaffold a workspace". For routable workspaces, the entity must already have a package, entity type, repository, and data source.
- ▌
- ▌ General Create Repository · umbracoCreate or extend a repository in the Umbraco backoffice. Covers detail (CRUD), item (batch lookup), collection (paginated list), and action-specific (publish, duplicate, move, etc.) repositories. Use when the user says "create a repository", "add a data source", or when a feature needs to fetch or post data. Each repository type has its own template — pick the right one based on the operation.
- ▌ General Create Extension Type · umbracoCreate a new extension type for the Umbraco backoffice extension registry. Use when adding a new type of extension that can be registered via manifests (e.g., a new dashboard type, a new sidebar app type, a new toolbar extension type). Any package can define extension types.
- ▌ Ops CI · umbracoThis repo's CI, read-only. `status` reports whether a PR is pending, green or red and which checks say so; `log` returns the failing part of a failing build's log, trimmed to what is needed to diagnose it. The CI provider — GitHub checks, Azure Pipelines, anything else — is internal: no caller learns which one this repo uses. Nothing here starts, retries or cancels a build. Called by name with (action, context-json) . NOT for direct use — never select it from a description match.
- ▌ Github Ops · umbraco bundleShared how-to for GitHub operations in both environments this system runs in — locally with the `gh` CLI + `git`, and on Claude web / in scheduled routines with the GitHub MCP server (`mcp__github__*`, no `gh` there). One operation catalog, two reference files for the GitHub mechanism, plus a CI-provider reference so the "read CI status / read a failing log" operations resolve to GitHub checks or Azure Pipelines — which of the two is chosen inside the `ops-ci` capability, not here and not in any config key. The loop skills point here instead of each re-explaining the dual path. Load this whenever a loop needs to touch GitHub (list/create issues, open/merge PRs, check CI, push files) and you need the concrete command/tool for the current environment.
- ▌ Ops Notify · umbracoTell a human something happened, through whichever channel this repo uses — a Claude push notification by default, or whatever a repo overrides this with. Infrastructure, not a gate: a notification that fails must never fail the work it was reporting on. Idempotent per caller-supplied key, so a sweeping loop cannot send the same message twice. Called by name with (action, context-json) . NOT for direct use — never select it from a description match.
- ▌ Ops Install · umbraco bundleOnboard a repo to the engine, and prove it is covered. Detects the repo's setup, writes the facts detection cannot reach to `.claude/ops-repo-meta.json`, reports capability coverage against the catalog (present / inherited / missing), scaffolds a stub for every missing capability from its catalog entry, asks whether each INHERITED default actually fits (coverage matches names, not behaviour), interviews the human to fill that stub's TODOs, creates every `ops/` label on the repo its role implies, installs the caller workflow on every repo that emits routed events, and validates the routing overlay. It checks its OWN version first, because onboarding with a stale installer wastes time on bugs already fixed. Seven of its ten steps are deterministic scripts. Interactive, run once per repo. Trigger on "onboard this repo", "install the ops engine", "check capability coverage".
- ▌ Loop Dispatch · umbraco bundleSingle front door for a repo's automation loops, so one routine per repo can handle every loop event instead of one routine per event. Deterministically routes each triggering GitHub event (parsed from the trigger block, decided by route-event.sh) to the matching loop skill; a non-matching event is a quiet no-op. It only routes; each loop owns its own guardrails. Repo-agnostic; github-ops required. Trigger from one per-repo routine wired to all the loop events.
- ▌ Ops Branching · umbraco bundleThis repo's branch model, and the only holder of it. Merges a PR with whichever strategy the model calls for, opens a PR onto the correct base for its line, and starts a work branch rooted correctly. The integration branches, the release base and the merge strategy are PRIVATE — a caller asks for an outcome and never learns a branch name or a strategy. Command-only: it answers no reads. Called by name with (action, context-json) by a service, never by a loop. NOT for direct use — never select it from a description match.
- ▌ Ops Integrate · umbracoLand an approved PR. Owns every piece of merge policy — the gates (landing label, CI green, mergeable, and a base the branch model accepts), the release-base skip, and the merge itself — and returns a structured outcome the caller reports on. A caller hands it a PR and reads back what happened; it never holds a branch name or a merge strategy. Called by name with (action, context-json) by a framework loop. NOT for direct use — never select it from a description match.
- ▌ Ops Port Loop · umbracoLand a change that has already shipped on one line onto this repo's other live lines. Fired by the port label on a merged PR, or by `ops-merge-loop` straight after it lands one. Works out the target lines from the repo's declared port order — never from a branch name a human typed — and drives each one through the repo's own `ops-change` as a real change with its own verify and CI. It never lands a port: each gets the same human gate as any other PR. Trigger via loop-dispatch on Pull request: Labeled `ops/port`.
- ▌ Ops Repo Meta · umbraco bundleAmbient facts about this repo and its family, returned as structured data: `identity` (repo, default branch, the trigger labels), `topology` (which repo fills the `code` / `issues` / `releases` / `learnings` role), and `lines` (the live version lines, which is primary, and the port direction). The framework default detects what it can and reads a repo's declared facts; a repo that has facts detection cannot reach ships its own `ops-repo-meta` instead. Called by name with (action, context-json) . NOT for direct use — never select it from a description match.
- ▌ Ops Workspace · umbracoAn isolated place to build and test one change — worktree, database, ports, dependencies — and the teardown that removes everything it created. Prepared and torn down by `ops-change`, never by a loop, so how isolation is provisioned stays a product fact. The framework default uses a plain git worktree; a repo needing a seeded database or a free port ships its own. Called by name with (action, context-json). NOT for direct use — never select it from a description match.
- ▌ Ops Issue Loop · umbracoTurns a repo's `ops/ready-for-ai` backlog into CI-green PRs by commanding `ops-change` (implement → verify) per issue. It owns the loop only — the queue, the `/goal`, rolling cap-3 dispatch, model choice per issue, the CI-green cap and the backstops — and knows nothing about how to build any product: that is `ops-change`, which the repo provides and which wraps its own workspace. It stops at a green PR and never merges; landing is `ops-merge-loop`, rework is `ops-rework-loop`. Two modes: LOCAL (orchestrated, cap 3) and CLOUD (one session per issue, CI as the test gate). Trigger via loop-dispatch on Issue: Labeled `ops/ready-for-ai`, or "work the ready issues".
- ▌ Ops Merge Loop · umbracoSweeps the PRs a maintainer has labelled for landing and hands each to `ops-integrate · land`, then reports what came back. It owns scheduling only — the sweep, the CI poll cadence and its 15-minute cap, the cap of 10 PRs per run, and the comment on each PR. Every merge gate, the release-base skip and the merge itself belong to `ops-integrate`; this loop never resolves a base branch or a merge strategy and never calls `ops-branching`. Repo-agnostic; runs locally or as a scheduled cloud routine. Trigger on "land the ready PRs", "run the merge loop".
- ▌ Ops Rework Loop · umbracoLabel-triggered loop that acts on PR review feedback. When a reviewer has left comments and labels a PR `ops/auto-rework`, it reads every actionable point, commands `ops-change · implement` scoped to that feedback and `ops-change · verify`, pushes, replies on the threads, re-requests review, and clears the label — then stops. It never waits for CI and never merges: it hands the PR back so there is one merge path behind one human gate. Runs in a cloud routine or locally. Trigger: a PR labelled `ops/auto-rework`, or "rework PR #N".
- ▌ New Loop Routine · umbraco bundleStand up the standardised loop automation for a repo — one loop-dispatch routine per repo, fired by a committed GitHub Action (not UI event triggers), with identical env, model, tools, connections, and a thin prompt every time. The Action routes at the edge and only fires the routine on a real match. Use when onboarding a new repo to the loops, or to standardise/rewrite existing routines. Interactive/local.
- ▌ Ops Release Loop · umbraco bundleEvent-triggered release with no mid-flow human approval, guarded by two automated gates: green CI, then an Opus pre-publish review against a repo-overridable checklist. When an issue titled `release <version>` is labelled `ops/auto-release`, it commands `ops-release · plan / cut`, drives CI green, runs the review (a BLOCK stops it), then `publish` and `sync`, and comments + closes the triggering issue. All release mechanics live in the repo's `ops-release`; this loop only orchestrates and gates, and never touches `ops-branching`. Requires github-ops. Trigger from a routine on Issue: Labeled = ops/auto-release, or run manually as "release <version>".
- ▌ Ops Preflight · umbraco bundleCheck whether a product repo is in a state where the loops will do GOOD work, before onboarding it. `ops-install` proves a repo is wired up; this proves it is worth wiring, because coverage matches skill names and a repo with no test command, no isolated build and an undocumented branch model onboards green and wastes every run. Reads the repo against a merged check catalog (engine base + every matching stack profile + the repo's own override), groups every check under the section of the source checklist it belongs to (release management and testing first, since they unlock the merge and release parts of the pipeline), and reports each as needed for the loops to work or as making them better rather than as a pass or fail grade. Three verdicts, never two: present, gap, and unknown for anything detection could not see. It never runs your build. Then it interviews the human on what the files could not answer and offers to file one issue per real gap. Advisory — it blocks nothing. Interactive, run before `/ops-in
- ▌ Ops Triage Loop · umbraco bundleThe weekly sweep that turns captured proto-learnings into reviewed work. Reads the open `ops/proto-learning` issues on the learnings repo, clusters them by lesson, applies a promotion threshold, and routes each cluster to its home — an issue on the repo that owns it, a drafted PR against shared skills, a `ops/loop-improvement` issue against the engine, or closed with a reason. Files issues rather than editing product repos, and nothing auto-merges. Scheduled, not event-triggered: `ops/triaged` is a marker it writes, never a trigger. Trigger on "triage the learnings", "run the triage sweep".
- ▌ Umb Cms Dev CLI · umbraco bundleGuide for running and debugging this Umbraco MCP server via the CLI. Use when the user wants to list tools, call tools, configure filtering, dry-run, readonly mode, or debug configuration.
- ▌ Umb Cms MCP Setup · umbracoGuide for installing and configuring the Umbraco MCP server (@umbraco-cms/mcp-dev) as a live MCP connection in an AI client. Use when the user wants to set up, connect, install, or troubleshoot the MCP server itself (as opposed to running it standalone via the CLI).
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌
- ▌ Umbraco Sorter · umbracoImplement drag-and-drop sorting with UmbSorterController in Umbraco backoffice
- ▌
- ▌
- ▌ Umbraco E2e Testing · umbraco bundleE2E testing for Umbraco backoffice extensions using Playwright and @umbraco-cms/acceptance-test-helpers
- ▌
- ▌
- ▌
- ▌ Umbraco Backoffice · umbraco bundleUmbraco backoffice extension customisation - complete working examples showing how extension types combine