Develop Microfeed
microfeed/microfeed
Develop and contribute changes to the microfeed repository safely from branch creation through validation, commit, push, and draft pull request.
Composition roots for Hono and Cloudflare. An agent skill from dmmulroy/skills.
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dmmulroy/skills cloudflare-composition-root --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cloudflare-composition-root .claude/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.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/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .claude/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-rootType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dmmulroy/skills cloudflare-composition-root --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cloudflare-composition-root .agents/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .agents/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dmmulroy/skills cloudflare-composition-root --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cloudflare-composition-root .cursor/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .cursor/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dmmulroy/skills.git --path cloudflare-composition-root--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dmmulroy/skills cloudflare-composition-root --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cloudflare-composition-root .gemini/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .gemini/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dmmulroy/skills cloudflare-composition-rootInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/cloudflare-composition-root .github/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .github/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dmmulroy/skills --skill cloudflare-composition-root -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dmmulroy/skills cloudflare-composition-root --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cloudflare-composition-root .opencode/skills/cloudflare-composition-root && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cloudflare-composition-root" agent skill from https://github.com/dmmulroy/skills/tree/main/cloudflare-composition-root into .opencode/skills/cloudflare-composition-root/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloudflare-composition-root", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cloudflare-composition-rootComposition roots for Hono and Cloudflare. An agent skill from dmmulroy/skills.
Cloudflare Composition Root is an agent skill from dmmulroy/skills. Composition roots for Hono and Cloudflare. Use when adding a binding-backed service or refactoring raw runtime dependencies out of inner code.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `EXAMPLES.md`).
It sits in Development, covering Refactoring. It works with Cloudflare and Hono. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8603380. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
rgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cloudflare Composition Root loads about 2.1k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,011 words of instructions outside code blocks.
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.
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.
The full file from dmmulroy/skills at commit 8603380, republished under its MIT licence (© dmmulroy). 1,011 words, ~2,141 tokens.
.claude/skills/cloudflare-composition-root/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use a composition root: each runtime entrypoint turns raw Cloudflare capabilities into application-owned dependencies, assembles services, and invokes them. Inner code receives ports, never Env, raw bindings, framework service locators, or binding names.
Cloudflare entrypoint
→ tracer + parsed configuration
→ binding adapters
→ exact service dependencies
→ application service
→ protocol projectionApply ../coding-standards/SKILL.md for TypeScript contracts, parsing, errors, side effects, and tests. When implementation shape is unclear, consult EXAMPLES.md for Hono, WorkerEntrypoint, adapter, and refactor templates.
Raw platform values may exist only in composition roots and binding adapters. A binding adapter accepts the smallest platform capability, not all of Env.
Inspect repository instructions and the affected:
Env declarations and every use of the relevant binding;Trace each affected behavior from entrypoint to side effect and caller-visible result. For refactors, record current error, retry, fallback, serialization, and tracing behavior before moving it.
Completion criterion: Every affected entrypoint, binding consumer, behavior, lifecycle, side effect, failure policy, and existing test seam is accounted for.
Define contracts from consumer needs:
/** Persistence capability required by document application services. */
export interface DocumentStore {
/** Find one document by its domain ID. */
find(id: DocumentId): Promise<Document | null>;
/** Persist one valid document. */
save(document: Document): Promise<void>;
}
/** Exact dependencies of the publish-document use case. */
export type PublishDocumentDependencies = Readonly<{
documents: DocumentStore;
clock: Clock;
tracer: Tracer;
}>;Rules:
Env to Dependencies.Tracer into services and adapters that create spans; do not add it to every method signature.Env or raw bindings.Choose lifetimes explicitly:
ExecutionContext inward.Completion criterion: Every inner signature uses application/domain types; each operation and factory has a current caller; and dependency, tracer, and side-effect lifetimes have explicit owners.
WorkersKvDocumentStore.Env parameters, factories, generic wrappers, duplicated parsers/key builders, and compatibility overloads after their final callers move.Do not broaden the refactor to unrelated bindings merely for symmetry.
Completion criterion: New code is fully composed on every serving surface, or every migrated raw binding reaches only its adapter; behavior and policy changes are either absent or explicitly requested and tested.
At each composition root, in order:
For Hono:
createApp(dependencies) and route/middleware factories that close over exact dependencies.context.env for raw bindings.For WorkerEntrypoint, Durable Objects, Workflows, queues, and scheduled handlers, treat each runtime constructor or handler as its own composition root. Do not assume one surface's dependency graph or lifecycle fits another.
Completion criterion: Every serving surface establishes tracing and constructs the complete dependency graph; no inner module acquires runtime resources or reads a binding name.
Verify through production seams:
Search for leakage using the project's binding names and runtime types, for example:
rg 'Env|KVNamespace|R2Bucket|D1Database|DurableObjectNamespace|ExecutionContext' srcClassify every match: composition root, binding adapter, unavoidable framework declaration, or violation. Also search for direct context.env and binding-name access in route, service, domain, and capability modules.
Completion criterion: Every raw platform reference is classified and permitted; every changed port, adapter, service, entrypoint, failure path, and lifecycle has evidence; and no application module imports or receives Cloudflare runtime types.
© dmmulroy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in cloudflare-composition-root of dmmulroy/skills.
Open the folder on GitHubat commit 8603380
Cloudflare Composition Root 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cloudflare Composition Root this skilldmmulroy/skills | 429 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Develop Microfeedmicrofeed/microfeed | 4.1k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Vite Flare Starterjezweb/claude-skills | 1.1k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Typescript Idiomsirahardianto/awesome-agv | 157 | — | ~6.1k | Automated safety check: Pass | MIT | |
| Cloudflare WorkersEpicenterHQ/epicenter | 4.8k | — | ~576 | Automated safety check: Pass | Custom licence | |
| HonoEpicenterHQ/epicenter | 4.8k | — | ~513 | Automated safety check: Pass | Custom licence |
microfeed/microfeed
Develop and contribute changes to the microfeed repository safely from branch creation through validation, commit, push, and draft pull request.
jezweb/claude-skills
Scaffold a full-stack Cloudflare app from the vite-flare-starter template — React 19 + Hono + D1+Drizzle + better-auth + Tailwind v4+shadcn/ui + TanStack Query + R2 + Workers AI.
irahardianto/awesome-agv
TypeScript strict typing: type narrowing, discriminated unions, Zod runtime validation, generic utility types, and Vitest testing.
EpicenterHQ/epicenter
Cloudflare Workers patterns for Worker runtime APIs, Durable Objects, KV, R2, D1, Queues, WebSockets, streaming responses, bindings, wrangler configuration, and deployment limits.
EpicenterHQ/epicenter
Hono patterns for TypeScript API routes, middleware, request and response typing, streaming, WebSockets, and Cloudflare Workers deployment.
getsentry/sentry-for-ai
Full Sentry SDK setup for Cloudflare Workers and Pages. An agent skill from getsentry/sentry-for-ai.
dmmulroy/skills
Design Effect services. An agent skill from dmmulroy/skills.
dmmulroy/skills
Control Herdr, a terminl multiplexer for coding agents. An agent skill from dmmulroy/skills.
dmmulroy/skills
Correct-by-construction TypeScript standards. An agent skill from dmmulroy/skills.
dmmulroy/skills
Prelude bootstrapping for TypeScript. An agent skill from dmmulroy/skills.
dmmulroy/skills
Write a typed call-stack architecture handoff. An agent skill from dmmulroy/skills.
Works with
Categories
Composition roots for Hono and Cloudflare. An agent skill from dmmulroy/skills. Cloudflare Composition Root is an agent skill from dmmulroy/skills. Composition roots for Hono and Cloudflare.
Cloudflare Composition Root fits situations like: adding a binding-backed service; refactoring raw runtime dependencies out of inner code.
Run `npx skills add dmmulroy/skills --skill cloudflare-composition-root -a claude-code`. Or copy the skill folder (cloudflare-composition-root in dmmulroy/skills) into .claude/skills/cloudflare-composition-root in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dmmulroy/skills --skill cloudflare-composition-root -a codex`. Or copy the skill folder (cloudflare-composition-root in dmmulroy/skills) into .agents/skills/cloudflare-composition-root in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dmmulroy/skills --skill cloudflare-composition-root -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloudflare-composition-root, .gemini/skills/cloudflare-composition-root, .github/skills/cloudflare-composition-root and .opencode/skills/cloudflare-composition-root in your project.
Going by SKILL.md and its folder, Cloudflare Composition Root needs the command-line tools its instructions call (rg).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Cloudflare Composition Root is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cloudflare Composition Root: Develop Microfeed (microfeed/microfeed, 4.1k stars), Vite Flare Starter (jezweb/claude-skills, 1.1k stars), Typescript Idioms (irahardianto/awesome-agv, 157 stars) and Cloudflare Workers (EpicenterHQ/epicenter, 4.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dmmulroy (a GitHub user) maintains it in dmmulroy/skills, which has 429 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on July 23, 2026.
Source: dmmulroy/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.