dmmulroy/skills

Dillon Mulroy's personal skill set: strict TypeScript, Cloudflare Workers architecture, Effect services and technical specs

  • 433 ★ on the repository
  • Last commit
  • MIT
Skill

Minimal access

Why this level

  • Most of the set is instructions, and the install script only copies skill folders
  • The `herdr` skill controls Herdr panes and processes, but only inside its own session
All reasons and checks

dmmulroy/skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/dmmulroy-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • Most of the set is instructions, and the install script only copies skill folders
  • The `herdr` skill controls Herdr panes and processes, but only inside its own session

This is third-party code. Review the repository files before installing.

What it does

The repository collects skills the author uses on TypeScript projects. `coding-standards` sets rules for code where errors are expressed in types: typed failures, parsing at boundaries, domain modeling, modules and adapters, tests. `prelude` helps create a `prelude.ts` file in a repository from foundation types and helpers that already repeat in the project. `cloudflare-composition-root` keeps Cloudflare bindings and runtime types at the composition roots of Hono and Worker apps, with `WorkerEntrypoint` and refactoring examples in `EXAMPLES.md`. `effect-service-design` helps design new Effect service modules and audit existing code by Layer, and `references/AUDIT.md` holds the audit checklist. `tech-spec` writes a typed call-stack specification on request, without implementing anything. `herdr` controls panes and tabs of the Herdr terminal multiplexer, and `bro` asks the agent to restate its last answer more plainly.

Who it is for. TypeScript developers on Cloudflare Workers and Effect who want the agent to follow a strict style with typed errors.

Good fit when

  • The agent writes TypeScript and you want typed errors and input parsed at the module boundary
  • A Hono worker keeps leaking Cloudflare bindings into business code and they need to go back to the composition root
  • You are designing an Effect service or want to audit an existing one by layers
  • Before implementing, you need to agree on contracts and data flows as TypeScript pseudocode
  • You work inside Herdr and the agent should open panes for the dev server on its own

Not a fit when

  • The project is not TypeScript: the `coding-standards` rules are written for its type system
  • You work outside Herdr: the `herdr` skill stops on its own without `HERDR_ENV=1`
  • You need finished code rather than design: `tech-spec` only describes the solution by design
  • Your team's style differs from the author's rules: they are personal and written for his code

Example request

Use coding-standards and rewrite input handling in this module: errors as types, parsing at the boundary

Limitations

This is the author's personal set, not a universal standard: the `coding-standards` rules are strict and override project habits when those differ. The description has no install command, so the skills are copied into the agent's skills directory by hand or via `npx skills add dmmulroy/skills`, which the author does not describe himself. The `scripts/install-skills.sh` script copies folders to `~/.dotfiles/home/.agents/skills`, tied to the author's dotfiles, so you have to change the path via `SKILLS_DEST`. The `herdr` skill works only inside a Herdr pane. The repository was last changed in July 2026.

How to disable. Delete the skill folders from the agent's skills directory, for example `.claude/skills/` or `.agents/skills/`.

FAQ

What is a composition root in the Cloudflare skill?

It is the Hono or Worker entry point where the app is assembled. The skill keeps Cloudflare bindings and runtime types there only, and domain logic receives ordinary dependencies.

Why does `tech-spec` implement nothing?

The skill file forbids implementation: it returns a spec with contracts and call flows and saves to a file only on request. Use another skill for code.

Which skills trigger on their own and which on command?

The description marks `tech-spec` and `bro` as user-invoked, and the model loads the rest by task topic. You can see it in the `disable-model-invocation` line at the top of `SKILL.md`.

What does `prelude` do?

It prepares a `prelude.ts` file with foundation types and functions. It starts from a bundled set and adds generic types and helpers found in the target repository.

Does the set include Matt Pocock's skills?

The description says some skills (`grilling`, `tdd`, `domain-modeling` and others) are vendored from mattpocock/skills. The current file tree does not show those folders, so check the contents after installing.

Discussion

No questions or reviews yet.

Skills

Five skills for TypeScript: Effect 3 and 4 code review, service and layer rules, tech debt cleanup and a plan-to-merge PR loop

SkillExtended access79Repository stars

Over 200 skills by stack and practice: React, Next.js, Rails, Rust, Python, debugging, TDD and UI review

SkillMinimal access225Repository stars

Agent skills for the Metarhia stack: JavaScript style, data structures, GoF patterns and npm release prep in one command.

SkillExtended access60Repository stars

iuhoay/skills collects agent skills: Vanilla Rails, Linear, stacked pull requests, plan challenging and tidy changes.

SkillExtended access54Repository stars

Twenty skills for reading unfamiliar code, reviewing documents and commits, translating Markdown and OpenSpec-driven development

SkillExtended access92Repository stars

Mindrally skills collection

Claude Code Skills Collection

Over two hundred coding-guideline skills for frameworks and languages, converted from Cursor rules to SKILL.md

SkillMinimal access305Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
dmmulroy/skills (this card)no433
Effect skillno355a standalone skill for the Effect library, while here Effect is one of seven topics in the set
Cloudflare Skillsno3,348Cloudflare's product-by-product sets, while this one focuses on Hono app architecture
grill-me: plan interview skillno1,560a single skill that interrogates a plan, while this is a set of strict code rules and specs

README in short

The description lists the skills with a note on who invokes each, the model or the user, then the vendored Matt Pocock skills, the design principles and credits. The principles come down to explicit dependencies, typed failures and deep modules.

README badge

Original SKILL.md

---
name: coding-standards
description: Correct-by-construction TypeScript standards. Use for TypeScript engineering or when another skill needs the user's coding standards.
---
These standards describe how to design and write TypeScript code in this codebase. They are especially intended for agents: inspect existing code before adding patterns, libraries, Adapters, or abstractions, but apply these standards to all new and refactored behavior. Follow existing conventions only when they are compatible with these standards.

## Decision priority

When rules pull in different directions, use this order:

1. Preserve correctness, safety, and debuggability.
2. Apply these standards to all new code and to the full behavior being refactored.
3. Follow compatible project architecture and conventions.
4. Contain incompatible existing patterns at the nearest boundary rather than copying them into new code.
5. Avoid changing unrelated old code unless a broader migration is explicitly requested.
6. Document meaningful trade-offs with comments or ADRs.

## Core principles

- Prefer **errors as values** over `throw` / rejected promises for expected failures.
- **Parse don't validate**. Parse early and as close to composition or application roots as possible. Do not merely validate and throw away the information learned.
- Make **illegal states unrepresentable** where practical.
- Prefer **correct-by-construction** APIs over convention-based invariants.
- Use branded/refined/domain types when they prevent a realistic mistake, such as mixing identifiers or units, bypassing parsing, or constructing an invalid value.
- Prefer **composition over inheritance**.
- Prefer **imperative shell / functional core**.
- Design **deep, cohesive modules** with **low caller burden**.
- Test behavior through real seams; **avoid** module mocks and spy-driven tests.
- Keep code discoverable for humans and agents.

## Adapting to existing codebases

Before adding a new pattern or library, inspect the repo for existing choices around:

- error handling
- schema parsing
- dependency injection
- testing
- observability
- adapters/services
- module layout

Apply these standards to all new code and to the full behavior being refactored. Do not preserve weaker patterns merely for consistency. Keep unrelated old code unchanged and translate incompatible patterns at the nearest boundary.

For example, if existing code uses exception-style errors, do not rewrite the whole system for an unrelated change. Represent known failures as typed values in new or refactored code, then translate them at the boundary into the outcome required by the existing framework. Preserve existing logging, tracing, metrics, and error-reporting hooks.

Report a problem