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
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
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/dmmulroy-skillsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewMinimal 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 boundaryLimitations
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.
Related
SkillsFive skills for TypeScript: Effect 3 and 4 code review, service and layer rules, tech debt cleanup and a plan-to-merge PR loop
Over 200 skills by stack and practice: React, Next.js, Rails, Rust, Python, debugging, TDD and UI review
Agent skills for the Metarhia stack: JavaScript style, data structures, GoF patterns and npm release prep in one command.
iuhoay/skills collects agent skills: Vanilla Rails, Linear, stacked pull requests, plan challenging and tidy changes.
Twenty skills for reading unfamiliar code, reviewing documents and commits, translating Markdown and OpenSpec-driven development
Mindrally skills collection
Claude Code Skills Collection
Over two hundred coding-guideline skills for frameworks and languages, converted from Cursor rules to SKILL.md
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| dmmulroy/skills (this card) | no | 433 | |
| Effect skill | no | 355 | a standalone skill for the Effect library, while here Effect is one of seven topics in the set |
| Cloudflare Skills | no | 3,348 | Cloudflare's product-by-product sets, while this one focuses on Hono app architecture |
| grill-me: plan interview skill | no | 1,560 | a 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.