Pnpm Engine
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
Perform a broad Node/TypeScript repository health sweep — formatting, linting, type errors, dead code, dependency hygiene, and open Renovate PRs.
$ npx skills add commercetools/ui-kit --skill repo-maintenance-node -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install commercetools/ui-kit repo-maintenance-node --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/commercetools/ui-kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .claude/skills/repo-maintenance-node && 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 "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .claude/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-nodeType 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 commercetools/ui-kit --skill repo-maintenance-node -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install commercetools/ui-kit repo-maintenance-node --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/commercetools/ui-kit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .agents/skills/repo-maintenance-node && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .agents/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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 commercetools/ui-kit --skill repo-maintenance-node -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install commercetools/ui-kit repo-maintenance-node --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/commercetools/ui-kit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .cursor/skills/repo-maintenance-node && 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 "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .cursor/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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/commercetools/ui-kit.git --path .agents/skills/repo-maintenance-node--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 commercetools/ui-kit --skill repo-maintenance-node -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install commercetools/ui-kit repo-maintenance-node --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/commercetools/ui-kit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .gemini/skills/repo-maintenance-node && 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 "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .gemini/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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 commercetools/ui-kit repo-maintenance-nodeInstalls 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 commercetools/ui-kit --skill repo-maintenance-node -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/commercetools/ui-kit.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .github/skills/repo-maintenance-node && 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 "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .github/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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 commercetools/ui-kit --skill repo-maintenance-node -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install commercetools/ui-kit repo-maintenance-node --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/commercetools/ui-kit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/repo-maintenance-node .opencode/skills/repo-maintenance-node && 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 "repo-maintenance-node" agent skill from https://github.com/commercetools/ui-kit/tree/main/.agents/skills/repo-maintenance-node into .opencode/skills/repo-maintenance-node/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "repo-maintenance-node", 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.
repo-maintenance-nodePerform a broad Node/TypeScript repository health sweep — formatting, linting, type errors, dead code, dependency hygiene, and open Renovate PRs.
Repo Maintenance Node is an agent skill from commercetools/ui-kit. Perform a broad Node/TypeScript repository health sweep — formatting, linting, type errors, dead code, dependency hygiene, and open Renovate PRs. Use when cleaning up a repo or preparing for a release.
Its SKILL.md is about 3k 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 Linting and formatting, Monorepo tooling and Design systems. It works with TypeScript. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 62ca335. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashGrepGlobReadAgentFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmgitghnpmyarnFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
knip.devFrom 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.
Repo Maintenance Node loads about 3k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,140 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Grep, Glob, Read, AgentAutomated 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 commercetools/ui-kit at commit 62ca335, republished under its MIT licence (© commercetools). 1,140 words, ~2,957 tokens.
.claude/skills/repo-maintenance-node/SKILL.md (or your agent's skills folder).Perform a comprehensive health sweep for Node.js and TypeScript repositories.
Checks formatting, linting, type errors, dead code, dependency hygiene,
cross-package consistency, and open Renovate PRs. Reads AGENTS.md (or
CLAUDE.md) for repo-specific commands before running any checks.
--dry-run (optional): Report issues without making changes.--section <name> (optional): Run only a specific section. Valid values:
formatting, dead-code, deps, renovate. If omitted, run all sections.Target: $ARGUMENTS (defaults to all sections, applying fixes)
This skill is designed for parallel execution to minimize wall clock time. After Step 0 (configuration discovery), launch Agents A and B in parallel for the investigative workstreams. Once both complete, run Agent C (Code Quality) last so formatting/linting/type-check fixes apply on top of any changes from earlier steps. Only the dependency section has an additional internal ordering constraint (Renovate PRs must complete before filtering outdated deps).
flowchart TD
S0["Step 0: Read config"] --> A["Agent A: Dead Code Detection"]
S0 --> B["Agent B: Dependencies & Renovate"]
B --> B1["B1: Renovate PRs (gh API)"]
B --> B2["B2: Cross-package validation"]
B --> B3["B3: Dedupe check"]
B --> B5["B5: Peer dependency warnings"]
B1 --> B4["B4: Outdated deps (filtered by B1)"]
A --> C["Agent C: Code Quality (format + lint + typecheck)"]
B2 --> C
B3 --> C
B4 --> C
B5 --> C
C --> F["Step Final: Merge results → Generate report"]When launching parallel agents, pass them the discovered configuration from Step 0 (package manager, available scripts, monorepo status) so they don't need to re-read config files.
Before running any checks, read the repository's configuration files to discover project-specific commands and conventions:
AGENTS.md (if it exists) for:CLAUDE.md if AGENTS.md does not exist.package.json (or the workspace root manifest) to identify:lint, format, typecheck, etc.)pnpm, npm, yarn)workspaces field or
pnpm-workspace.yaml)Store discovered commands for use in subsequent steps. If a command is not found, skip the corresponding check and note it in the report.
Goal: Identify unused exports, imports, and files.
Launch this as a parallel Agent subagent.
Note: This section is complementary to deterministic tools like knip. If
knipis configured in the repo, prefer running it. Otherwise, use heuristic detection.
Check for knip:
# Look for knip in package.json scripts or devDependencies
grep -q '"knip"' package.json && echo "knip available"If knip is available:
pnpm knip # or: npx knipIf knip is not available, perform heuristic checks:
Heuristic dead code scan (when knip is unavailable):
grep -rn "export \(const\|function\|class\|type\|interface\|enum\)" src/Report findings as a list of potentially unused items. Do NOT auto-delete — dead code removal requires human review.
Goal: Surface Renovate PRs, check dependency health, and report outdated packages not already covered by Renovate.
Launch this as a parallel Agent subagent. Within this agent, run B1, B2, B3, and B5 in parallel, then run B4 after B1 completes (B4 needs the Renovate package list to filter outdated deps).
List open PRs from Renovate:
gh pr list --author "renovate[bot]" --state open --json number,title,url \
--jq '.[] | "- #\(.number) \(.title) \(.url)"'If the above returns no results, also try:
gh pr list --author "renovate" --state open --json number,title,url \
--jq '.[] | "- #\(.number) \(.title) \(.url)"'For each open Renovate PR, suggest running /renovate-review:
Run `/renovate-review <PR-NUMBER>` to assess safety and effort.Collect the package names covered by open Renovate PRs (parse the PR
titles — Renovate titles typically follow Update <package> to <version>
or Update dependency <package> to <version>). Store this set for use in
B4.
If no open Renovate PRs are found, report that the repo is up to date with Renovate.
If this is a monorepo:
Check for version inconsistencies across packages:
# For pnpm workspaces with catalogs
cat pnpm-workspace.yaml
# For npm/yarn workspaces, compare package.json files
find . -name "package.json" -not -path "*/node_modules/*" \
-exec grep -l '"dependencies"' {} \;Flag any package that pins a different version of the same dependency than other packages in the workspace (unless the workspace uses a catalog or resolutions to centralize versions).
Check for duplicates:
# pnpm
pnpm dedupe --check # or: pnpm dedupe (to fix)
# npm
npm dedupe --dry-run
# yarn
yarn dedupe --checkIf --dry-run is not set and duplicates are found, run the dedup command
and commit the result:
pnpm dedupe
git add pnpm-lock.yaml
git commit -m "chore(deps): deduplicate lockfile"Depends on B1 — wait for Renovate PR list before running.
Run the package manager's outdated check:
pnpm outdated # or: npm outdated / yarn outdatedFilter out any packages that already have an open Renovate PR (from the set collected in B1). Only report dependencies that are outdated AND not already being handled by Renovate.
Categorize the remaining results:
Report a summary table of outdated dependencies by category.
Check for peer dependency mismatches:
pnpm install --dry-run 2>&1 | grep -i "peer"
# or: pnpm ls --depth 0 2>&1 | grep -i "WARN"Alternatively, parse warnings from the most recent pnpm install output or
lockfile metadata.
Report mismatches grouped by severity:
cypress@4-13 but 15.x is installed)^10.2.14 but
10.2.10 is installed)These are advisory — do not auto-fix peer dependency issues.
Goal: Ensure code style is consistent and free of lint/type errors.
Launch this Agent subagent after Agents A and B complete so that fixes apply on top of any code changes from earlier steps. Within this agent, run formatting, linting, and type checking as parallel Bash commands (they don't depend on each other).
Run the formatter using the repo's configured command:
# Use the command from AGENTS.md / package.json, e.g.:
pnpm format # or: pnpm prettier --write .If --dry-run is set, run the check variant instead:
pnpm format --check # or: pnpm prettier --check .Separate real issues from expected noise. Formatter errors in CI config
files (e.g., .circleci-orbs/, codegen.*.yml) that use template variable
syntax (${...}) are often false positives — note them separately from
actual source code formatting issues.
Report the number of files changed (or issues found in dry-run mode).
Run the linter with auto-fix:
pnpm lint --fix # or: pnpm eslint --fix .If --dry-run is set, run without --fix:
pnpm lint # report onlyReport the number of issues fixed and any remaining issues that require manual intervention.
Run the TypeScript compiler in check mode:
pnpm typecheck # or: pnpm tsc --noEmitIf errors are found:
Report the number of type errors found, fixed, and remaining.
If any changes were made (and --dry-run is not set), stage and commit:
git add -A
git commit -m "chore: fix formatting, lint, and type errors"After all agents complete, merge their results into a summary report:
## Repository Maintenance Report
### Code Quality
- Formatting: X files fixed (or: "No issues found")
- Lint: X issues fixed, Y remaining
- TypeScript: X errors fixed, Y remaining (flagged for review)
### Dead Code
- Potentially unused exports: X
- Potentially dead files: X
- (See details above)
### Renovate PRs
- Open PRs: X
- #123 Update foo to v2.0.0
- #124 Update bar to v1.5.0
- Suggested action: Run `/renovate-review` on each
### Dependencies (not covered by Renovate)
- Outdated (patch): X
- Outdated (minor): X
- Outdated (major): X
- Peer dependency mismatches: X
- Duplicates in lockfile: X (resolved / not resolved)
- Cross-package inconsistencies: X
### Actions Taken
- [ ] Code quality fixes committed
- [ ] Lockfile deduplication committed
- [ ] (other actions)--dry-run. When set, make zero changes — only report.© commercetools, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/repo-maintenance-node of commercetools/ui-kit.
Open the folder on GitHubat commit 62ca335
Repo Maintenance Node 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 |
|---|---|---|---|---|---|---|
| Repo Maintenance Node this skillcommercetools/ui-kit | 154 | — | ~3k | Automated safety check: Notes | MIT | |
| Pnpm Engineteambit/bit | 18k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Linea Dependency MaintenanceConsensys-Incorporated/linea-attestation-registry | 177 | 1 repos | ~3.7k | Automated safety check: Warn | MIT | |
| Create Saleor Packagesaleor/apps | 162 | — | ~608 | Automated safety check: Pass | Custom licence | |
| Deno Runtime and Package Managerdenoland/skills | 100 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Monorepo Tooling and Dependenciespierrecomputer/pierre | 6.2k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
Consensys-Incorporated/linea-attestation-registry
Safely plan and execute dependency maintenance for JavaScript/TypeScript (npm, pnpm) and GitHub Actions, including npm lockfiles, pnpm workspaces, catalogs, overrides, SHA-pinned action versions…
saleor/apps
Scaffold a new shared package in the saleor-apps monorepo under ./packages/.
denoland/skills
Guides writing, running and configuring Deno 2.9+ projects: installing npm and JSR dependencies, permissions, config file precedence and the built-in fmt, lint, test and compile toolchain.
pierrecomputer/pierre
Sets one monorepo's rules for toolchain pins, pnpm package operations, the shared dependency catalog and moon tasks, so the agent adds versions and scripts the right way.
remorses/lintcn
Type-aware TypeScript lint rules in .lintcn/ Go files. An agent skill from remorses/lintcn.
commercetools/ui-kit
Manage restore context files so skills can survive /clear and /compact.
commercetools/ui-kit
Set up the restore-context hook so skills can resume workflows after /clear and /compact.
commercetools/ui-kit
Generate AI-assisted navigation aids to help humans start reviewing a pull request more efficiently.
commercetools/ui-kit
Persist guidelines, conventions, and architectural decisions into the repository's knowledge base.
commercetools/ui-kit
Review Renovate dependency upgrade PRs to assess safety and effort.
commercetools/ui-kit
Verify a Node.js/TypeScript repo's development environment is correctly set up.
Works with
Categories
Perform a broad Node/TypeScript repository health sweep — formatting, linting, type errors, dead code, dependency hygiene, and open Renovate PRs. Repo Maintenance Node is an agent skill from commercetools/ui-kit. Perform a broad Node/TypeScript repository health sweep — formatting, linting, type errors, dead code, dependency hygiene, and open Renovate PRs.
Repo Maintenance Node fits situations like: cleaning up a repo; preparing for a release.
Run `npx skills add commercetools/ui-kit --skill repo-maintenance-node -a claude-code`. Or copy the skill folder (.agents/skills/repo-maintenance-node in commercetools/ui-kit) into .claude/skills/repo-maintenance-node in your project. Claude Code loads it when a task matches its description.
Run `npx skills add commercetools/ui-kit --skill repo-maintenance-node -a codex`. Or copy the skill folder (.agents/skills/repo-maintenance-node in commercetools/ui-kit) into .agents/skills/repo-maintenance-node 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 commercetools/ui-kit --skill repo-maintenance-node -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/repo-maintenance-node, .gemini/skills/repo-maintenance-node, .github/skills/repo-maintenance-node and .opencode/skills/repo-maintenance-node in your project.
Going by SKILL.md and its folder, Repo Maintenance Node needs the command-line tools its instructions call (pnpm, git, gh, npm and yarn). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash, Grep, Glob, Read, Agent.
SKILL.md names 1 domain. As links in the text: knip.dev. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Repo Maintenance Node is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 Repo Maintenance Node: Pnpm Engine (teambit/bit, 18k stars), Linea Dependency Maintenance (Consensys-Incorporated/linea-attestation-registry, 177 stars), Create Saleor Package (saleor/apps, 162 stars) and Deno Runtime and Package Manager (denoland/skills, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
commercetools (a GitHub organization) maintains it in commercetools/ui-kit, which has 154 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 3, 2026.
Source: commercetools/ui-kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.