Agent skill

Prelude

by dmmulroy in dmmulroy/skills

Prelude bootstrapping for TypeScript. An agent skill from dmmulroy/skills.

MITAuto-check passedDevelopment

Install Prelude

skills CLI
$ npx skills add dmmulroy/skills --skill prelude -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dmmulroy/skills prelude --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dmmulroy/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/prelude .claude/skills/prelude && rm -rf skills-src

Use ~/.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/

Facts

Skill name
prelude
GitHub stars
430
Token cost
~1.4k tokens
SKILL.md length
732 words
Files
2
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Prelude bootstrapping for TypeScript. An agent skill from dmmulroy/skills.

  • Works in 5 steps: Map the repository → Classify every candidate → Seed from the template → …
  • Rebuilding a prelude.ts from ambient generic helpers and types
  • SKILL.md covers 1. Map the repository, 2. Classify every candidate, 3. Seed from the template and 4. Consolidate ambient helpers…, plus 1 more section
  • Runs TypeScript scripts from its folder

What it does

Prelude is an agent skill from dmmulroy/skills. Prelude bootstrapping for TypeScript. Use when creating or rebuilding a prelude.ts from ambient generic helpers and types.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `prelude.ts`).

It sits in Development. It works with TypeScript. The licence is MIT.

When your agent uses it

  • Rebuilding a prelude.ts from ambient generic helpers and types

Example prompts

  • “/prelude”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Map the repository
  2. Classify every candidate
  3. Seed from the template
  4. Consolidate ambient helpers and types
  5. Verify the foundation

What it can do on your machine

Read from SKILL.md and the folder at commit 8603380. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (TypeScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Prelude loads about 1.4k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 732 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~33
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from dmmulroy/skills at commit 8603380, republished under its MIT licence (© dmmulroy). 732 words, ~1,388 tokens.

Download SKILL.mdSave it as .claude/skills/prelude/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
prelude
description
Prelude bootstrapping for TypeScript. Use when creating or rebuilding a prelude.ts from ambient generic helpers and types.

Bootstrap a TypeScript Prelude

A prelude is an explicitly imported module for ambient helpers and types: ubiquitous, domain-neutral building blocks that have no more precise owner. Use the bundled prelude.ts as the foundation, then adapt it to evidence from the target repository. Apply ../coding-standards/SKILL.md throughout.

Ambient describes a helper's role, not a TypeScript global. Keep prelude exports behind ordinary imports; do not add global declarations or global augmentation.

1. Map the repository

Read repository instructions, package manifests, TypeScript configuration, source layout, and import conventions. Locate:

  • an existing prelude or equivalent shared module;
  • files named utils, helpers, common, types, result, errors, or similar;
  • generic type aliases and tiny generic functions repeated across modules;
  • established libraries for results, schemas, redaction, branding, collections, and exhaustive matching;
  • every caller of plausible ambient helpers.

Search by both filenames and concepts. Use the ubiquitous generic helper/type categories in the coding standards as seed search terms, then inspect definitions and callers rather than classifying from names alone.

Completion criterion: Every plausible ambient definition found by repository-wide filename, symbol, and duplication scans is inventoried with its owner, callers, dependencies, and current behavior.

2. Classify every candidate

A symbol belongs in the prelude when all of these hold:

  • it is domain-neutral and useful across unrelated modules;
  • no domain, application service, adapter, protocol, or focused generic module is a more precise owner;
  • centralizing it reduces duplication or gives a ubiquitous concept one canonical implementation;
  • its dependencies are minimal, stable, and already justified by the project;
  • its behavior is small enough to understand at the import site or hidden behind a precise type.

Keep a symbol with its focused owner when it encodes domain meaning, application policy, boundary translation, framework behavior, I/O, or a cohesive generic concept such as string casing or non-trivial collection operations. Prefer an established library over a local duplicate. A prelude is a curated foundation, not a barrel or miscellaneous dumping ground.

Record one decision for every candidate: use the established library, keep the current owner, move into the prelude, merge with a template symbol, or delete as an unused duplicate.

Completion criterion: Every inventoried candidate has one decision grounded in its semantics and callers; no candidate remains classified only by its filename or name.

Show full SKILL.md (364 more words)Show less

3. Seed from the template

Read the bundled prelude.ts completely. Copy it to the project's established shared-module location as the starting point. If a prelude already exists, merge deliberately instead of overwriting it.

Choose exactly one expected-failure foundation:

  1. When the project uses Effect, use Effect's result/error facilities and remove the template's local Result fallback.
  2. When the project uses better-result, use it and remove the local fallback.
  3. When the project uses neither, ask whether to install better-result.
    • If accepted, install it and remove the local fallback.
    • If declined, enable the template's local Result types and helpers.

Retain each other template export only when repository usage, the coding standards, or the requested foundation justifies it. Preserve compatible existing behavior when merging equivalent helpers; surface semantic conflicts rather than silently choosing one implementation.

Completion criterion: The target file is founded on the template, has exactly one result strategy, and every retained template export has an explicit justification.

4. Consolidate ambient helpers and types

Move or merge the approved repository candidates into the prelude. For each moved symbol:

  • preserve behavior unless a behavior change was requested;
  • preserve or deliberately migrate its public name and type contract;
  • update every caller to import from the prelude directly;
  • retain required JSDoc, safety comments, and targeted lint suppressions;
  • remove superseded definitions and compatibility re-exports after their callers move.

Keep the resulting module side-effect free. It must not read configuration, acquire resources, register handlers, perform I/O, contain domain/application policy, or re-export unrelated modules.

Completion criterion: Every approved candidate has one canonical definition, every caller uses it, and no removed source remains as a second source of truth.

5. Verify the foundation

Run the repository's formatter, type checker, linter, and focused tests. Search again for the old symbols, duplicate definitions, stale import paths, and broad utility files that were part of the inventory. Review every prelude export for current usage or an explicit foundational reason.

Report:

  • the chosen result strategy;
  • template exports retained or removed;
  • repository helpers moved, merged, left in place, or deleted;
  • verification commands and outcomes.

Completion criterion: Repository checks pass, every inventory decision is reflected in code, duplicate ambient definitions are gone, and every prelude export is justified.

© dmmulroy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in prelude of dmmulroy/skills.

  • SKILL.md
  • prelude.ts

Open the folder on GitHubat commit 8603380

Compare with similar skills

Prelude 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.

Prelude compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Prelude this skilldmmulroy/skills430—~1.4kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Nx Importnrwl/nx29k6 repos~3.5kAutomated safety check: PassMIT
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.3k1 repos~2.2kAutomated safety check: PassMIT
OpenTUI Terminal Interfacescline/cline70k—~1.9kAutomated safety check: PassApache-2.0

Similar skills

  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Nx Import

    nrwl/nx

    Import, merge, or combine repositories into an Nx workspace using nx import.

    29k GitHub starsUsed in 6 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

    5.3k GitHub starsUsed in 1 repo~2.2k tokens
    DevelopmentAuto-check passed
  • Helps build terminal user interfaces with OpenTUI using its core imperative API or its React and Solid reconcilers, with references for layout, keyboard, animation and testing.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Frontend Code Review

    langgenius/dify

    Reviews frontend changes under `web/` or `packages/dify-ui/` for concrete defects and broken project contracts, using routed rule packs and a severity scale for findings.

    158k GitHub stars~938 tokensUpdated today
    DevelopmentAuto-check passed

More from dmmulroy/skills

  • Effect Service Design

    dmmulroy/skills

    Design Effect services. An agent skill from dmmulroy/skills.

    430 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check passed
  • Composition roots for Hono and Cloudflare. An agent skill from dmmulroy/skills.

    430 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check passed
  • Coding Standards

    dmmulroy/skills

    Correct-by-construction TypeScript standards. An agent skill from dmmulroy/skills.

    430 GitHub stars~8.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Tech Spec

    dmmulroy/skills

    Write a typed call-stack architecture handoff. An agent skill from dmmulroy/skills.

    430 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Prelude

What does Prelude do?

Prelude bootstrapping for TypeScript. An agent skill from dmmulroy/skills. Prelude is an agent skill from dmmulroy/skills. Prelude bootstrapping for TypeScript.

When should I use Prelude?

Prelude fits situations like: rebuilding a prelude.ts from ambient generic helpers and types.

How do I install Prelude in Claude Code?

Run `npx skills add dmmulroy/skills --skill prelude -a claude-code`. Or copy the skill folder (prelude in dmmulroy/skills) into .claude/skills/prelude in your project. Claude Code loads it when a task matches its description.

How do I install Prelude in Codex?

Run `npx skills add dmmulroy/skills --skill prelude -a codex`. Or copy the skill folder (prelude in dmmulroy/skills) into .agents/skills/prelude in your project. Codex loads it when a task matches its description.

Can I use Prelude in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dmmulroy/skills --skill prelude -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prelude, .gemini/skills/prelude, .github/skills/prelude and .opencode/skills/prelude in your project.

What does Prelude need to run?

Going by SKILL.md and its folder, Prelude needs TypeScript for the scripts in its folder. Our summary lists: Node.js.

Does Prelude access the network?

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.

Is Prelude safe to install?

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.

What licence does Prelude use?

Prelude is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Prelude use?

About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Prelude?

Skills that share tags, products or a category with Prelude: Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Nx Import (nrwl/nx, 29k stars) and Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Prelude?

dmmulroy (a GitHub user) maintains it in dmmulroy/skills, which has 430 GitHub stars. The repository holds 5 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.