Agent skill

Add Package

by remix-run in remix-run/remix

Create or align a package in the Remix monorepo to match existing package conventions.

MITAuto-check passedDevelopment

Install Add Package

skills CLI
$ npx skills add remix-run/remix --skill add-package -a claude-code

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

GitHub CLI
$ gh skill install remix-run/remix add-package --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/remix-run/remix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-package .claude/skills/add-package && 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
add-package
GitHub stars
33k
Token cost
~2k tokens
SKILL.md length
762 words
Files
2
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

Create or align a package in the Remix monorepo to match existing package conventions.

  • Adding a brand new package under packages/
  • SKILL.md covers Overview, Workflow and Templates
  • Calls pnpm, npm and git
  • Fixing an existing packages structure

What it does

Add Package is an agent skill from remix-run/remix. Create or align a package in the Remix monorepo to match existing package conventions. Use when adding a brand new package under packages/, or when fixing an existing package's structure, test setup, TypeScript/build config, code style, and README layout to match the rest of Remix 3.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Development, covering Monorepo tooling and Technical documentation. It works with TypeScript and Remix. The repository describes itself as: The fully-stacked web framework. The licence is MIT.

When your agent uses it

  • Adding a brand new package under packages/
  • Fixing an existing packages structure
  • TypeScript/build config
  • README layout to match the rest of Remix 3

Example prompts

  • “/add-package”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit ef2c594. 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

    Shell commands in SKILL.md call:

    • pnpm
    • npm
    • git
    • bun
    • node

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm, npm and git, which can reach the network depending on how they are called.

    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

Add Package loads about 2k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 762 words of instructions outside code blocks.

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

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 remix-run/remix at commit ef2c594, republished under its MIT licence (© remix-run). 762 words, ~2,006 tokens.

Download SKILL.mdSave it as .claude/skills/add-package/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
add-package
description
Create or align a package in the Remix monorepo to match existing package conventions. Use when adding a brand new package under packages/, or when fixing an existing package's structure, test setup, TypeScript/build config, code style, and README layout to match the rest of Remix 3.

Add Package

Overview

Use this skill to scaffold and standardize packages so they look and behave like the existing @remix-run/* packages. Follow this exactly when creating package files, public exports, tests, and docs.

Workflow

  1. Create the package directory and baseline files.
  • Create packages/<package-name>/.
  • Add:
    • package.json
    • tsconfig.json
    • tsconfig.build.json
    • CHANGELOG.md
    • README.md
    • LICENSE
    • src/
  • For new packages, start CHANGELOG.md with ## Unreleased as the first section to indicate changes are not released yet.
  1. Set up package.json using monorepo conventions.
  • Use:
    • name: @remix-run/<package-name>
    • version (for brand-new packages): "0.0.0"
    • type: "module"
    • license: "MIT"
    • repository.directory: packages/<package-name>
    • homepage: https://github.com/remix-run/remix/tree/main/packages/<package-name>#readme
  • Include files:
    • LICENSE
    • README.md
    • dist
    • src
    • !src/**/*.test.ts
  • Add standard scripts:
    • build: tsgo -p tsconfig.build.json
    • clean: git clean -fdX
    • prepublishOnly: pnpm run build
    • test: remix test
    • test:bun: bun x --bun remix test
    • typecheck: tsgo --noEmit
  • Use baseline dev dependencies:
    • "@remix-run/assert": "workspace:^"
    • "@remix-run/test": "workspace:^"
    • "@types/node": "catalog:"
    • "@typescript/native-preview": "catalog:"
  • Add keywords like existing packages (short, lowercase, feature-focused).
  • Every published package must declare accurate sideEffects metadata. The generated remix package derives its metadata from each owning package, and package metadata validation rejects missing or invalid declarations.
    • Use "sideEffects": false only when evaluating every runtime module is free of observable side effects, including effects introduced by its imports.
    • Otherwise, list every effectful module using package-relative paths or glob patterns. Cover both source and emitted paths when the published package contains both, such as ./src/register.ts and ./dist/register.js.
    • Re-audit the field whenever runtime exports, top-level imports, or evaluation behavior changes. Registration, polyfills, global mutation, hook installation, event listeners, and effectful style imports are common reasons a module must be listed.
  1. Define exports with src entry files only.
  • In exports, map each public subpath to a dedicated file in src.
  • Always include ./package.json.
  • Mirror each export in publishConfig.exports with dist output:
    • types: ./dist/<entry>.d.ts
    • default: ./dist/<entry>.js
  • Rule: every export must have a src file that re-exports from src/lib.
    • Example: export ./foo -> src/foo.ts -> export { ... } from './lib/foo.ts'
  • Type-only exports may map only a types condition to src/*.d.ts and dist/*.d.ts.
  • Runtime-specific exports may use package conditions before default when the runtime owns that condition, such as node-hmr for remix/node-hmr/runtime.
  • If a package has type-only exports, add node ../../scripts/copy-package-type-only-exports.ts . to the package build script after tsgo.
  1. Add TypeScript config files with shared defaults.

Use this tsconfig.json pattern:

json
{
  "compilerOptions": {
    "strict": true,
    "lib": ["ES2024", "DOM", "DOM.Iterable"],
    "module": "ES2022",
    "moduleResolution": "Bundler",
    "target": "ESNext",
    "allowImportingTsExtensions": true,
    "rewriteRelativeImportExtensions": true,
    "verbatimModuleSyntax": true
  }
}

Use this tsconfig.build.json pattern:

json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "declaration": true,
    "declarationMap": true,
    "outDir": "./dist"
  },
  "include": ["src"],
  "exclude": ["src/**/*.test.ts"]
}
  1. Implement source structure and test setup.
  • Structure source as:
    • src/<entry>.ts for public entry points
    • src/lib/*.ts for implementation
    • src/lib/*.test.ts for tests (colocated with implementation)
  • Tests use Remix's test runner:
    • import * as assert from '@remix-run/assert'
    • import { describe, it } from '@remix-run/test'
  • Keep tests IDE-friendly:
    • Do not generate tests with loops/conditionals inside describe().
  1. Follow monorepo code style rules while implementing.
  • Use import type { ... } and export type { ... } for types.
  • Include .ts extensions in relative imports.
  • Prefer let for locals; use const only at module scope.
  • Never use var.
  • Prefer function declarations/expressions for normal functions.
  • Use arrow functions for callbacks; use concise callbacks when returning a single expression.
  • Use object method shorthand (method() {}) instead of arrow properties.
  • Use native class fields and #private members.
  • Avoid Node-specific APIs when Web APIs are available.
Show full SKILL.md (261 more words)Show less
  1. Write README in the same style and section order as existing packages.
  • Start with:
    • # <package-name>
    • One short paragraph describing purpose.
  • Typical section order:
    • ## Features
    • ## Installation
    • ## Usage
    • Optional deep-dive sections (only if needed)
    • ## Related Packages (if applicable)
    • ## License
  • Installation instructions must always include installing the remix package.
  • If using the package requires a peer dependency, installation instructions must also include that peer dependency in the command.
  • Preferred installation pattern:
sh
npm i remix
  • Example when a peer dependency is required:
sh
npm i remix <peer-dependency>
  • Usage examples must always import from remix package exports, not from @remix-run/<package-name> directly.

  • License section format:

    • See [LICENSE](https://github.com/remix-run/remix/blob/main/LICENSE)
  1. Handle generated remix package updates deliberately.
  • packages/remix is generated automatically in CI.
  • Do not hand-edit packages/remix/package.json or packages/remix/src/*; run the generator when generated output is required.
  • When adding a new package, add it to packages/remix/manifest.json before running the generator:
    • Add one entry per export: "remix/<canonical-path>": "@remix-run/<package-name>","remix/<canonical-path>/foo": "@remix-run/<package-name>/foo".
    • Include type-only and runtime-condition exports that should be reachable through remix/..., such as remix/<canonical-path>/types.
    • Choose a domain-oriented canonical path (e.g. remix/middleware/logger, not remix/logger-middleware).
  • If user asks for full surfacing, you can still update root README.md package list when applicable.
  1. Validate before finishing.
  • Run package checks:
    • pnpm --filter @remix-run/<package-name> run typecheck
    • pnpm --filter @remix-run/<package-name> run test
    • pnpm --filter @remix-run/<package-name> run build
  • Run repo lint (required):
    • pnpm run lint
  • Create packages/<package-name>/.changes/ on demand and add or update a change file when requested by contribution workflow.
  • For a brand-new package, the initial change file should use a minor. filename (for example, minor.initial-release.md) so the first release bumps 0.0.0 to 0.1.0.

Templates

Use this minimal src/index.ts style:

ts
export { createThing, type ThingOptions } from './lib/thing.ts'

Use this minimal test style:

ts
import * as assert from '@remix-run/assert'
import { describe, it } from '@remix-run/test'

import { createThing } from './thing.ts'

describe('createThing', () => {
  it('returns expected value', () => {
    let result = createThing()
    assert.equal(result, 'ok')
  })
})

© remix-run, 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 .agents/skills/add-package of remix-run/remix.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit ef2c594

Compare with similar skills

Add Package 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.

Add Package compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Package this skillremix-run/remix33k—~2kAutomated safety check: PassMIT
Enforce Rules For Typescriptmoeru-ai/airi50k—~3.4kAutomated safety check: PassMIT
Adk Readme WriterBrainDAO/adk-ts119—~2.6kAutomated safety check: NotesMIT
New Packagepetarzarkov/dunx100—~1.5kAutomated safety check: PassMIT
Nx Importnrwl/nx29k6 repos~3.5kAutomated safety check: PassMIT
Link Workspace Packagesnomcopter/react-mosaic4.8k6 repos~760Automated safety check: PassCustom licence

Similar skills

  • Enforce AIRI's TypeScript and Vue source rules for imports, naming, comments, JSDoc, fallbacks, stateful and protocol code, and module design.

    50k GitHub stars~3.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Adk Readme Writer

    BrainDAO/adk-ts

    ADK-TS README specialist. An agent skill from BrainDAO/adk-ts.

    119 GitHub stars~2.6k tokensUpdated 3 mo ago
    DevelopmentAuto-check: notes
  • New Package

    petarzarkov/dunx

    Add a workspace to the dunx monorepo - a published package under packages/, a published CLI under tools/, a private workspace under internal/, or an example under examples/ - with correct manifest…

    100 GitHub stars~1.5k tokensUpdated 12 days ago
    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
  • Link Workspace Packages

    nomcopter/react-mosaic

    Link workspace packages in monorepos (npm, yarn, pnpm, bun).

    4.8k GitHub starsUsed in 6 repos~760 tokens
    DevelopmentAuto-check passed
  • Pnpm Engine

    teambit/bit

    Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.

    18k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from remix-run/remix

All 19 skills in this repo
  • Supersede PR

    remix-run/remix

    Safely replace one GitHub pull request with another. An agent skill from remix-run/remix.

    33k GitHub stars~456 tokensUpdated today
    Auto-check passed
  • Author UI Primitives

    remix-run/remix

    Build idiomatic headless primitives in packages/ui for Remix.

    33k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Fix Issue

    remix-run/remix

    Fix a reported issue in Remix from a GitHub issue. An agent skill from remix-run/remix.

    33k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Make Demo

    remix-run/remix

    Create or revise demos in the Remix repository. An agent skill from remix-run/remix.

    33k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Make PR

    remix-run/remix

    Create GitHub pull requests with clear, reviewer-friendly descriptions.

    33k GitHub stars~847 tokensUpdated today
    Auto-check passed
  • Make Tracking Issue

    remix-run/remix

    Create or revise a GitHub tracking issue for a Remix change, including the target outcome, implementor context, a concise checkbox plan, compatibility concerns, and required gates.

    33k GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Add Package

What does Add Package do?

Create or align a package in the Remix monorepo to match existing package conventions. Add Package is an agent skill from remix-run/remix. Create or align a package in the Remix monorepo to match existing package conventions.

When should I use Add Package?

Add Package fits situations like: adding a brand new package under packages/; fixing an existing packages structure; typeScript/build config; README layout to match the rest of Remix 3.

How do I install Add Package in Claude Code?

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

How do I install Add Package in Codex?

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

Can I use Add Package 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 remix-run/remix --skill add-package -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-package, .gemini/skills/add-package, .github/skills/add-package and .opencode/skills/add-package in your project.

What does Add Package need to run?

Going by SKILL.md and its folder, Add Package needs the command-line tools its instructions call (pnpm, npm, git, bun and node). Our summary lists: Node.js.

Does Add Package access the network?

SKILL.md contains no URLs. Its commands use npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Add Package 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 Add Package use?

Add Package 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 Add Package use?

About 2k tokens (SKILL.md is roughly 8k 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 Add Package?

Skills that share tags, products or a category with Add Package: Enforce Rules For Typescript (moeru-ai/airi, 50k stars), Adk Readme Writer (BrainDAO/adk-ts, 119 stars), New Package (petarzarkov/dunx, 100 stars) and Nx Import (nrwl/nx, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Package?

remix-run (a GitHub organization) maintains it in remix-run/remix, which has 33,397 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.

Source: remix-run/remix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.