All authors

Claude Skills by mattbrailsford
github.com/mattbrailsford38 skills0 installs6 views
- Review Skill LinksRepo-only review of how this devkit's skills and agents fit together after a skill is added, renamed, split, or substantially changed: runs the mechanical checks, then reads for routing gaps, conflicting advice, duplicated rules, and missing two-way pointers between related skills. Use when the user asks to review cross-references, check skill wiring, or make sure everything still fits after a skill change. Not shipped with the plugin.Votes: 0GitHub stars: 2
- Bdd SpecsWrites behavior-driven executable specs from a feature's STORIES.md and PLAN.md, structured as Feature > Scenario > Specification with exactly one logical assertion per test, using whichever test framework the project already has. Covers both layers a feature might touch — C# and Lit/TypeScript, in this skill's references/ files — the discipline is identical, only the syntax differs. Use when a feature's design and stories are finalized and it's time to turn them into a test suite, or when as...Votes: 0GitHub stars: 2
- Decision ReviewDigests a finished build into the handful of things the human should actually look at — assumptions the builder made, spec deviations, workarounds, judgment calls on ambiguous plan wording. Read-only, never gates or fixes anything. pr-describe invokes this automatically while writing every PR, so it doesn't normally need to be run by hand — but it's user-invocable for an earlier look once feature-build finishes a feature, before a PR exists. Use when asked to "review decisions", "what decisio...Votes: 0GitHub stars: 2
- Design PrinciplesCoupling and cohesion, DRY/YAGNI/KISS, the Law of Demeter, Tell-Don't-Ask, Command-Query Separation, and fail-fast. Horizontal principles that apply to almost any code — C# or Lit/TypeScript — written in an Umbraco package. Use whenever writing or reviewing service/class/component design, not just when a specific pattern question comes up. This skill's references/ files carry the C# and Lit/TypeScript illustrations — read whichever layer the task is actually in. For the five SOLID principles ...Votes: 0GitHub stars: 2
- Dotnet Best PracticesGeneral modern C#/.NET language discipline — nullable reference types, type modeling, async/LINQ/disposal correctness, error-handling shape, immutability. Not Umbraco-specific. Use when writing or reviewing any C# code, alongside `umbraco-extensibility` (which covers Umbraco's own extension mechanisms, not language discipline) and `ef-core-data` (persistence specifics). Complements `typescript-best-practices` on the frontend side.Votes: 0GitHub stars: 2
- Ef Core DataEF Core conventions for a persistence layer inside an Umbraco package — one entity model targeting both SQL Server and SQLite, product-prefixed migrations, repositories internal to their owning service, query shape that holds up on large tables, and testing against a real (if in-memory) database. EF Core is the recommended data-access approach for a new Umbraco package. Use when designing or reviewing a package's entities, migrations, or repositories.Votes: 0GitHub stars: 2
- Feature BuildDrives a feature's PLAN.md checklist to completion, task by task — a builder subagent implements, a reviewer subagent gates, commit only on pass. Owns BUILD-LOG.md in the feature's plan folder. Use once feature-plan has produced an ordered task list and it's time to actually write code.Votes: 0GitHub stars: 2
- Feature CloseCloses a feature's plan folder once the work is over: records how it ended (shipped, abandoned, or superseded), moves decisions that outlive the feature into project memory, fixes links into the plan, then moves the folder to the archive. Owns the plan's status line and its move. Use after a feature's PR is merged, on each version line it shipped to, or when a plan is dropped or replaced by another.Votes: 0GitHub stars: 2
- Feature DesignSolution-space interview for an Umbraco feature — which extension points, data model, Management API surface, and frontend components to use. Owns ARCHITECTURE.md, SPEC.md and any screen mockups in the feature's plan folder. Use once feature-explore has defined the problem and it's time to decide how to build it: which CMS extension point fits, whether it needs persistence, what the package/project structure should look like. Also use on its own to capture a project mockup starter for a produ...Votes: 0GitHub stars: 2
- Feature ExploreProblem-space interview for a new Umbraco feature or package — what problem, for whom, why, and what's explicitly out of scope. Owns BRIEF.md in the feature's plan folder. Use when starting a new feature, package, or add-on and nothing has been written down yet, or when a feature request is vague and needs shaping before any design or code happens.Votes: 0GitHub stars: 2
- Feature PlanSlices a finished design into stories and an ordered, dependency-aware task checklist. Owns STORIES.md and PLAN.md in the feature's plan folder, and delegates to the user-stories and bdd-specs skills. Use once feature-design has decided how to build the feature and it's time to break it into reviewable, committable units of work for feature-build.Votes: 0GitHub stars: 2
- Git WorkflowConventional Commits, trunk-vs-branch by change size, and how an Umbraco package's own versioning relates to the CMS major versions it supports. Use whenever committing, branching, or deciding how to structure either for a change in an Umbraco project. Does not cover release pipelines — see the README's "Building on top" section for that.Votes: 0GitHub stars: 2
- Github InitBootstraps the GitHub remote for a new Umbraco package or add-on — README, LICENSE, one CONTRIBUTING.md. Use when a project has no `origin` remote yet and it's time to push it publicly for the first time.Votes: 0GitHub stars: 2
- Gof PatternsAll 23 Gang of Four design patterns (creational, structural, behavioral) as a fast reference — a one-or-two-sentence "when to use" plus a short idiomatic snippet per pattern, in both C# and (for the ones common in backoffice component work) Lit/TypeScript. The full examples live in this skill's references/ files, read on demand — only pull in the category or layer actually relevant to the question at hand, not all of them. Use when choosing or reviewing a design pattern in an Umbraco package,...Votes: 0GitHub stars: 2
- Investigate BugFinds the cause of a bug whose cause isn't known yet, in an Umbraco package or backoffice extension (C# and/or Lit). Pins down the symptom, reproduces it through the real entry point, gathers evidence from logs, the Management API, and the browser, narrows it by layer and by history, then tests one hypothesis at a time until the cause is proven. Reports the cause with its evidence and routes the fix to `quick-fix` or the `feature-*` pipeline; it never writes the fix itself. Given an issue ID,...Votes: 0GitHub stars: 2
- Issue BacklogThe entry point for working a tracker's open issues from new to fixed, one stage at a time: triage the new ones, get the maintainer's call on the ones waiting for a decision, investigate the unproven bugs in parallel subagents, each in its own worktree, then start fixes one issue at a time. Shows how many issues sit in each state, suggests the next stage, and runs it through the skill that owns it. Use for "work through the backlog", "get the issues ready", "what's next on the tracker". For o...Votes: 0GitHub stars: 2
- Issue ResolveRoutes a triaged tracker issue, plus any notes on how to fix it, into whichever existing fix mechanism its size warrants — `quick-fix` for something small, the full `feature-explore` → `feature-design` → `feature-plan` → `feature-build` pipeline for anything bigger. Triages the issue first if `issue-triage` hasn't already. Drafts, never posts, the tracker resolution once the fix lands. Use once you've seen an `issue-triage` report and decided to act on one issue, or when `issue-backlog` start...Votes: 0GitHub stars: 2
- Issue TriageTriages one issue, a range, or everything untriaged on the tracker — classifies type and likely code area, checks for duplicates, flags anything that looks like a security report, and writes a report for human review. Tracks triage state with `state/*` labels on the tracker itself and keeps the reporter in the loop with a plain-language comment, both applied only once the user approves; keeps no log of its own. More than one issue spawns one issue-triager subagent per issue, orchestrated from...Votes: 0GitHub stars: 2
- Major UpgradeMoves an Umbraco package or extension to a new Umbraco CMS major version (for example 17 to 18): finds every breaking change that actually hits the project, writes an ordered upgrade checklist, then works through it task by task with the builder and reviewer agents, keeping the build green at every commit. Owns `docs/upgrades/v<major>.md`, and archives it once the upgrade ships. Use when asked to "upgrade to Umbraco N", "support v18", "port the package to the new major", when a new CMS major'...Votes: 0GitHub stars: 2
- Plain WritingHow to write documents a person has to read — plan files (BRIEF, ARCHITECTURE, SPEC, STORIES, PLAN), pull request descriptions, decision reviews, issue triage notes. Concise without dropping detail, plain words over jargon, and no restating what a screenshot, table or diagram already shows. Use whenever writing or revising prose meant for a human reader. Not for code comments, commit messages or specs that run as tests.Votes: 0GitHub stars: 2
- Pr DescribeWrites the pull request description — the one skill git-workflow always delegates to for this, never done by hand. Produces a diagram-based outline (file trees, before/after code diffs, call chains, EF Core/SQL table changes, Lit component trees, manifest registration changes, backoffice registrations, settings, API endpoints) plus, for UI changes, where to find each screen, who can see it, and built or before/after screenshots, when the feature has a plan folder under `docs/plans/`, or a pla...Votes: 0GitHub stars: 2
- Pr ReviewReviews a pull request opened by someone outside the core maintainer team against an open-source Umbraco package repo. Dispatches the existing `reviewer` agent against the PR diff for its Umbraco-aware checklist (public API impact, manifest alias renames, multi-version/provider parity, layering, security), then adds what only matters because the diff came from outside the team: a pre-check for anything that would run on your machine during build/test, an unconditional security pass, contribut...Votes: 0GitHub stars: 2
- Project InitSetup wizard for an Umbraco package or project. Walks through each piece the pipeline relies on, checks what's already there, and offers to add what's missing, one step at a time: the solution (from a real dotnet new template), CLAUDE.md, .gitignore, .claude/memory/ and the plan-folder convention, per-worktree demo site ports, lint and format, and backend, frontend and e2e tests, and local clones of the Umbraco CMS source and docs. Never adds anything without asking. Use when starting a new r...Votes: 0GitHub stars: 2
- Quick FixMakes a small, obvious fix directly on the current branch — no feature-explore, no feature-design, no feature-plan, no feature-build. Use for a typo, a reversed condition, a dead try/catch, a misnamed variable, a stray import, or a missing null check — single concern, usually under ~20 lines, in either C# or Lit/TypeScript. Not a sixth pipeline phase: this is the deliberate escape hatch around the pipeline for a fix too small to justify it. Escalates to feature-plan or feature-explore the mom...Votes: 0GitHub stars: 2
- Security DotnetBackend security review checklist for an Umbraco CMS package — Management API controllers, EF Core queries built from user or backoffice-user input, backoffice authorization, secrets/sensitive-configuration storage, custom non-Management-API endpoints, and NuGet dependency supply chain. Use when reviewing or writing any Management API controller action, any EF Core query assembled from input, any code path handling API keys/tokens/connection strings, or any endpoint added outside the standard...Votes: 0GitHub stars: 2
- Security LitFrontend security review checklist for an Umbraco backoffice package built with Lit — XSS via `unsafeHTML`/`unsafeSVG`, secrets that leak into a client bundle, sensitive data in browser storage, and npm dependency supply chain. Use when reviewing or writing any Lit template that renders user-generated, AI-generated, or externally-sourced content, any frontend code that reads a build-time environment variable, or any use of `localStorage`/`sessionStorage`. For backend security (Management API ...Votes: 0GitHub stars: 2
- Solid PrinciplesThe five SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion), grounded in Umbraco package development. Use when adding or reshaping a service, class, component, or interface in either layer of an Umbraco package, or when reviewing whether a design will hold up as the package grows. The principles are the same regardless of layer; this skill's references/ files carry the C# and Lit/TypeScript illustrations — read whichever lay...Votes: 0GitHub stars: 2
- Typescript Best PracticesGeneral TypeScript language discipline — type modeling, null hygiene, error handling, and the toString()/toJSON() rule. Not framework- or project-specific. Use when writing or reviewing any TypeScript. For an Umbraco backoffice frontend package specifically, also see `umbraco-backoffice-conventions` (compiler setup, package/file structure) and the official Backoffice Skills plugin (individual extension-point patterns) — this skill covers only the language discipline that applies regardless of...Votes: 0GitHub stars: 2
- Umbraco Backoffice ConventionsUmbraco-backoffice-specific frontend conventions built with Lit and UUI — required compiler setup, local vs. global components, what gates your public API surface, generating a typed client from a Management API's OpenAPI spec, the lifecycle of observable subscriptions and of extension APIs you create, localization key naming, build output (what stays external, cache busting), and building a multi-package frontend workspace in order. Use when setting up or structuring a Lit + UUI backoffice f...Votes: 0GitHub stars: 2
- Umbraco Backoffice UxHow an Umbraco backoffice screen should look and behave for the editor using it — matching existing screens, pickers vs select boxes, the five moments every UI needs (first run, mistake, wait, finish, return), components that appear in more than one place, and the small details that most often get sent back (icon buttons, contrast, labels, table columns). Use when designing, building or reviewing any backoffice UI. Not for package structure, compiler setup or public API surface (`umbraco-back...Votes: 0GitHub stars: 2
- Umbraco Cms SourceHow to look up Umbraco CMS source code in a local clone of umbraco/Umbraco-CMS, read at the release tag matching the CMS version the project targets — where the clone's path is recorded, picking the tag, and the read-only git commands for reading, searching, and listing files at that tag. Falls back to GitHub via `gh` when there's no clone. Use whenever you need to see how the CMS itself implements something: a base class, an extension point's real contract, a sibling backoffice element, a se...Votes: 0GitHub stars: 2
- Umbraco DocsHow to look up the official Umbraco documentation (docs.umbraco.com) for the major version the project targets — from a local clone of umbraco/UmbracoDocs, where the clone's path is recorded, which version folder to read, and the read-only git commands for reading and searching it. Falls back to the live site's Markdown pages and its llms.txt index when there's no clone. Use whenever you need Umbraco's documented way of doing something: an extension point's registration, a configuration setti...Votes: 0GitHub stars: 2
- Umbraco ExtensibilityUmbraco's own extension mechanisms, and how to build on them instead of inventing your own — Composer registration, collection-builder extensibility, notification handlers, and attribute-based discovery — plus a catalogue of the most common concrete, backend-side Umbraco CMS extension points (property value converters, Management API endpoints, content finders, URL segment providers, health checks, search indexing, and more). Use when deciding how to make a feature extensible by other package...Votes: 0GitHub stars: 2
- Umbraco Load BalancingKeeping an Umbraco package or backoffice extension correct when the site that installs it runs on more than one server — files that must not live on one server's disk, state that must not live in one server's memory, caches that must be cleared on every server, background jobs and notification handlers that must run once rather than once per server, concurrent writes from two servers, absolute URLs behind a load balancer, and multi-step flows that can't assume the next request lands on the sa...Votes: 0GitHub stars: 2
- Umbraco MarketplaceGets a finished Umbraco package listed on the Umbraco Marketplace — the umbraco-marketplace NuGet tag, the Umbraco package dependency Marketplace uses to infer version support, the CMS v14+ compatibility gotcha, and the optional umbraco-marketplace.json metadata file. Use once a package is ready to publish to NuGet, or when reviewing an existing package's packaging/publish setup.Votes: 0GitHub stars: 2
- Umbraco Package ConventionsBackend package conventions for an Umbraco package that aren't about extension mechanisms specifically — async method naming, type and member visibility (internal by default), public-API backwards compatibility, and where extension methods live. Use when naming a service method, deciding whether a type or member should be public, changing a public method's signature, or organizing extension methods. For Umbraco's own extension mechanisms (Composers, collection builders, notification handlers,...Votes: 0GitHub stars: 2
- Umbraco PerformanceKeeping an Umbraco package or backoffice extension fast on the sites that install it — reading published content from the cache instead of the services layer, tree traversal that doesn't walk the whole site, navigation extensions called with injected services, caching your own lookups and deciding what clears them, data type configuration and property value converter cache levels, evicting output caches when package data changes, keeping hot paths (notification handlers, indexing, bulk operat...Votes: 0GitHub stars: 2
- User StoriesWrites, splits, and refines user stories with Given/When/Then acceptance criteria, feeding directly into bdd-specs. Writes STORIES.md in the feature's plan folder. Normally dispatched by feature-plan, but usable standalone when someone just wants help drafting or tightening a story. Use whenever turning a feature request or a vague ask into a structured, testable backlog entry.Votes: 0GitHub stars: 2