Deno skills for AI coding assistants. Covers using Deno as a package manager and runtime, migrating from npm/yarn/pnpm/bun, Fresh, and Deno Deploy.
by denolandTypeScript
Last 12 weeks · 2 commits
2 of 6 standards met
A pass over every skill for text that describes the skill rather than the subject. Three patterns accounted for most of it: Overview headers restating the H1 directly above them, When to Use lists restating the frontmatter description verbatim, and Scope Boundaries blocks instructing the model not to mention Deno when asked about Docker or AWS Lambda. Progressive disclosure already handles that last one — a skill loads because the task matched it. The rest is commentary aimed at the reader instead of the task: "the most common way this goes wrong", "three rules carry most of the weight", "this takes seconds and prevents repeated trial-and-error failures", and an instruction to "always show the core deploy command first" which is now handled by putting the command first. CRITICAL and IMPORTANT markers around advice already stated plainly are gone too; deno-sandbox said to use three times, twice as a prohibition on writing the alternative. One real bug turned up. deno-sandbox recommended in three places as the way to execute untrusted code. That flag does not exist — it exits immediately with "unexpected argument '--allow-none' found". Running with no permissions is a bare . Given the skill exists specifically to sandbox untrusted code, the snippet a reader is most likely to copy was the broken one. deno-sandbox loses two thirds of its body and deno-deploy a sixth. No facts were dropped; the flag tables, environment variable reference, and tunnel documentation are untouched.
The core skills had drifted well behind the runtime. They taught JSR-first imports and hand-written import maps as the mental model, while Deno 2.9 is much closer to npm and bun in practice: deno install reads package.json, deno add express installs from npm, node_modules and node: built-ins work. None of deno ci, outdated, why, list, link, pack, approve-scripts, audit or dx were documented anywhere, and the shipped API-server template imported a serve function that @std/http has not exported since before std 1.0, so anyone following it got code that would not run. This merges deno-guidance, deno-expert and deno-project-templates into a single deno skill rewritten around that reframing, and drops the "always mention deno fmt" and "never write this string" instructions, which were tuned for a rubric rather than for being useful. It adds migrate-to-deno, built around an incremental ladder where each rung is independently useful and reversible, since most Node projects need no code changes at all. It also adds a CI check that type-checks every fenced TypeScript block and validates every deno subcommand against the installed binary, which is what would have caught the @std/http bug. That check currently covers the two rewritten skills; deno-frontend, deno-sandbox and deno-deploy are unchanged here and get added to it as they are reworked. Version is bumped to 2.0.0 because three skill names disappear. The README documents the merge for anyone who installed them individually. Stacked on #12, which reformats the repo and enforces formatting in CI, so this diff stays prose-only. Review and merge that one first.
Runs deno fmt over the repo for the first time and adds a CI job so the formatting cannot drift again, split out of #11 so that PR's diff stays prose-only. Nearly all of it is line rewrapping, markdown table padding, arrow-function parens, and alphabetical sorting of named import specifiers. Two changes are worth a reviewer's attention rather than a scroll-past. deno fmt sorts named imports, so import { App, staticFiles, fsRoutes } becomes import { App, fsRoutes, staticFiles } in the Fresh examples; a real edit to the text, benign but not invisible. More importantly, in DENO_KV.md it parsed the consecutive array literals of the key-hierarchy example as index expressions and collapsed them into one meaningless line, fixed here by fencing that block with deno-fmt-ignore. Anyone reformatting the remaining prose-heavy skills should watch for the same failure on illustrative, non-runnable code blocks. Note that git diff -w does not show this as empty, because rewrapping moves words across line boundaries rather than only changing whitespace within a line. Reviewing the second and third commits alone is the quickest way to see everything that is not pure rewrapping. The fmt check needs an explicit path (deno fmt --check .) because there is no deno.json at the repo root until #11 adds one; without it deno declines to format a non-workspace directory. #11 is stacked on top of this, so this one merges first.
Repository: denoland/skills. Description: Deno skills for AI coding assistants. Covers using Deno as a package manager and runtime, migrating from npm/yarn/pnpm/bun, Fresh, and Deno Deploy. Stars: 96, Forks: 8. Primary language: TypeScript. Languages: TypeScript (100%). License: MIT. Topics: agent-skills, ai, claude-code, deno, llm, skills. Open PRs: 1, open issues: 1. Last activity: 3w ago. Community health: 37%. Top contributors: thisisjofrank, bartlomieju, dsherret, crowlKats.