Agent skill

New Package

by petarzarkov in 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…

MITAuto-check passedDevelopment

Install New Package

skills CLI
$ npx skills add petarzarkov/dunx --skill new-package -a claude-code

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

GitHub CLI
$ gh skill install petarzarkov/dunx new-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/petarzarkov/dunx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/new-package .claude/skills/new-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
new-package
GitHub stars
100
Token cost
~1.5k tokens
SKILL.md length
713 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 8 steps: package.json - copy… → tsconfig.json - exactly… → src/index.ts re-exporting the public… → …
  • Creating @dunx/http
  • SKILL.md covers Pick the parent first, Published package - packages//…, Adding a public subpath to an… and Private example - examples//, plus 1 more section
  • Calls bun and bunx

What it does

New Package is an agent skill from 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 fields, tsconfig, exports-driven build entrypoints, README, and coverage badge. Use when creating @dunx/http, @dunx/testing, @dunx/create-app, examples/full, or when adding a public subpath export to an existing package.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Monorepo tooling and Technical documentation. It works with TypeScript. The repository describes itself as: fastest web DI framework. NestJS-style structure at Bun speed. Constructor DI with no reflect-metadata, no experimentalDecorators, no JavaScript router. The licence is MIT.

When your agent uses it

  • Creating @dunx/http
  • @dunx/create-app
  • Adding a public subpath export to an existing package

Example prompts

  • “/new-package”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. package.json - copy packages/core/package.json and change name to
  2. tsconfig.json - exactly packages/core/tsconfig.json: extends the root,
  3. src/index.ts re-exporting the public surface, LICENSE, README.md.
  4. bun install to link the workspace.
  5. bun run build && bun run typecheck && bun run test.
  6. bun run gen:cov && bun run gen:readme - picks up the coverage badge and the
  7. bun run ci - rule-example.test.ts fails until examples/full imports
  8. First publish must be manual - see /release.

What it can do on your machine

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

    • bun
    • bunx

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

  • Network

    No URLs in SKILL.md. Its commands use bunx, 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

New Package loads about 1.5k tokens when it runs. Until then it costs about 107 tokens; SKILL.md has 713 words of instructions outside code blocks.

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

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 petarzarkov/dunx at commit d8be36b, republished under its MIT licence (© petarzarkov). 713 words, ~1,465 tokens.

Download SKILL.mdSave it as .claude/skills/new-package/SKILL.md (or your agent's skills folder).
name
new-package
description
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 fields, tsconfig, exports-driven build entrypoints, README, and coverage badge. Use when creating @dunx/http, @dunx/testing, @dunx/create-app, examples/full, or when adding a public subpath export to an existing package.

/new-package

packages/core is the reference. Copy its shape rather than composing a manifest from memory.

Pick the parent first

ParentForPublishedReference
packages/framework an app importsyespackages/core
tools/a CLI a consumer runs (bunx @dunx/<name>)yestools/mcp
internal/repo-only: site, harness, bundle, shared UInointernal/ui
examples/an app that consumes the packagesnoexamples/minimal

Two lists decide what publishes, and both must name a new published parent - they are the only places that know: PUBLISHABLE_DIRS in scripts/version.ts and PUBLISHED_DIRS in scripts/update-readme.ts. private: true is what actually stops a publish, so getting the parent wrong fails safe.

A workspace with no build script is skipped by scripts/build-all.ts, which is how internal/ui ships as source with its exports pointing at src/.

Published package - packages/<name>/ or tools/<name>/

  1. package.json - copy packages/core/package.json and change name to @dunx/<name>, description, keywords, homepage, and repository.directory - the last two carry the parent, so tools/<name> rather than packages/<name> for a CLI. Leave the rest alone. The fields that are not optional:
    • "type": "module" - without it verbatimModuleSyntax raises TS1287 against ESM syntax, and Node treats the shipped ESM as CommonJS
    • main + types → dist/ paths, and an exports map with types and import conditions. No module field, no require condition - ESM only
    • "files": ["LICENSE", "README.md", "dist"] - without it src/ ships
    • version: "0.0.0" - scripts/version.ts owns it from here
    • scripts verbatim: build, test, test:cov, typecheck
  2. tsconfig.json - exactly packages/core/tsconfig.json: extends the root, include: ["src"], exclude: ["node_modules", "dist"]. One per package. Do not add a build variant.
  3. src/index.ts re-exporting the public surface, LICENSE, README.md.
  4. bun install to link the workspace.
  5. bun run build && bun run typecheck && bun run test.
  6. bun run gen:cov && bun run gen:readme - picks up the coverage badge and the README Packages table row.
  7. bun run ci - rule-example.test.ts fails until examples/full imports every new public subpath (Rule 4).
  8. First publish must be manual - see /release.

Adding a public subpath to an existing package

scripts/build-package.ts derives entrypoints from the manifest's exports and bin fields. That is deliberate: a subpath cannot be added without also being built. So the manifest edit is the build change - add the exports key, then bun run build and confirm the file exists in dist/.

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

Private example - examples/<name>/

Same skeleton, minus publishing: "private": true, no files, no exports, no publishConfig. Depend on packages with "@dunx/core": "workspace:*".

Name it @dunx/example-<dir>. CI reaches every example through bun run --filter '@dunx/example-*' test, so an off-pattern name is an example that silently stops being checked. It needs a bunfig.toml with the compiler preload under both the root and [test], a tsconfig.json extending the root, a typecheck script, and a test script with at least one test - --filter matches only workspaces that have the script, so an example without one is skipped without saying so.

There are four, and they are not one per package - they are a ladder of questions an evaluator asks in order (minimal → databases / testing → full). Per-package examples were tried and reverted; that reversal holds. Before adding a fifth, read docs/ROADMAP.md, "The example ladder", which records which candidates were rejected and why:

  • examples/full is the integration example. It grows through the phases and is the only place the packages are shown composing. Do not fork it per phase, and do not carve pieces out of it into new examples.
  • examples/minimal is valuable only because it is small. Do not add to it.
  • A new example must answer a question the existing four do not, and must be keepable alive by CI. If its whole subject needs a service CI does not have, it would demonstrate nothing there - that is a rejection, not a caveat.

An example that needs a service CI does not have (Redis, Postgres, MySQL, S3, network) must detect that, print a clear "skipping" line, and still exit 0. An example that cannot run is an example nobody notices has rotted.

Invariants

  • Relative imports carry a .js extension. tsc copies the specifier verbatim into the emitted .d.ts; extensionless fails for consumers on node16/nodenext. moduleResolution: nodenext makes this a compile error here instead of their problem.
  • No file over 500 lines. Split before you reach it.
  • No dependencies unless genuinely required at runtime. Validation-library adapters go in peerDependencies.

Finish with the publish-guard agent - it checks the exports map against real dist/ output.

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

Files

Just SKILL.md in .claude/skills/new-package of petarzarkov/dunx.

Open the folder on GitHubat commit d8be36b

Compare with similar skills

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

New Package compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
New Package this skillpetarzarkov/dunx100—~1.5kAutomated safety check: PassMIT
Add Packageremix-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
Nx Importnrwl/nx29k6 repos~3.5kAutomated safety check: PassMIT
Link Workspace Packagesnomcopter/react-mosaic4.8k6 repos~760Automated safety check: PassCustom licence

Similar skills

  • Add Package

    remix-run/remix

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

    33k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • 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
  • 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 petarzarkov/dunx

  • Docs Pass

    petarzarkov/dunx

    Revise one documentation file so it states facts instead of performing insight, and get it under the budgets in scripts/no-slop.test.ts.

    100 GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check passed
  • Release

    petarzarkov/dunx

    Version and publish @dunx/ packages to npm. An agent skill from petarzarkov/dunx.

    100 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed
  • Spike

    petarzarkov/dunx

    Resolve an open technical question by measuring it on real Bun instead of assuming, then record the verified result in docs/architecture/constraints.md.

    100 GitHub stars~742 tokensUpdated 2 days ago
    Auto-check passed
  • Whats Next

    petarzarkov/dunx

    Write or refresh HANDOFF.md - a compact resume point holding completed objectives, live file paths, approaches already tried and rejected, and the exact next steps, placed against the roadmap in…

    100 GitHub stars~819 tokensUpdated 2 days ago
    Auto-check passed
  • Coverage Report

    petarzarkov/dunx

    Regenerate the coverage report and badges, or diagnose a wrong percentage, a 404ing badge, or a package showing 0%.

    100 GitHub stars~971 tokensUpdated 2 days ago
    Auto-check passed

Works with

Categories

Questions about New Package

What does New Package do?

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…. New Package is an agent skill from 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 fields, tsconfig, exports-driven build entrypoints, README, and coverage badge.

When should I use New Package?

New Package fits situations like: creating @dunx/http; @dunx/create-app; adding a public subpath export to an existing package.

How do I install New Package in Claude Code?

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

How do I install New Package in Codex?

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

Can I use New 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 petarzarkov/dunx --skill new-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/new-package, .gemini/skills/new-package, .github/skills/new-package and .opencode/skills/new-package in your project.

What does New Package need to run?

Going by SKILL.md and its folder, New Package needs the command-line tools its instructions call (bun and bunx).

Does New Package 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 New 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 New Package use?

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

About 1.5k tokens (SKILL.md is roughly 5.9k 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 New Package?

Skills that share tags, products or a category with New Package: Add Package (remix-run/remix, 33k stars), Enforce Rules For Typescript (moeru-ai/airi, 50k stars), Adk Readme Writer (BrainDAO/adk-ts, 119 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 New Package?

petarzarkov (a GitHub user) maintains it in petarzarkov/dunx, which has 100 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

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