Metaskills skill
Agent skills for the Metarhia stack: JavaScript style, data structures, GoF patterns and npm release prep in one command.
- 60 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The installer creates symlinks in editor folders and appends to `.gitignore` and `.npmignore`.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/metaskillsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The installer creates symlinks in editor folders and appends to `.gitignore` and `.npmignore`.
This is third-party code. Review the repository files before installing.
What it does
Metaskills is a set of seven skills for the Metarhia stack. `js-conventions` sets style and naming for JavaScript and TypeScript, `js-data-structures` and `data-structures` cover collections, `metautil-data-structures` describes the list, queue, deque and trie from metautil, `js-gof` shows GoF patterns in JavaScript, `error-handling` gathers error rules and `npm-publish` prepares a package for release. The `npx metaskills` command finds installed editors and links each one to the package `skills` folder with a symlink. Skills stay in the package and are attached by symlinks. The created links are added to `.gitignore` and `.npmignore`.
Who it is for. Teams writing JavaScript to Metarhia conventions who want an agent in Cursor, Claude Code or Windsurf to follow the same rules.
Good fit when
- An agent writes a JavaScript module and mixes up names and style with the Metarhia ones.
- A metautil queue or trie appears in the project and the agent needs to see how it is built.
- Before an npm release you want to walk the checklist together with an agent.
- The team uses several editors and the rules must live in one place.
Not a fit when
- The project does not use Metarhia: style and patterns are tailored to that stack.
- You need rules for another language, the set covers only JavaScript and TypeScript.
- The editor skills folder is already maintained by hand: the installer skips such targets.
Example request
Write a job queue service following Metarhia conventions and check names against js-conventions.Limitations
The rules describe the conventions of one stack, so they help little outside Metarhia. The installer points at `node_modules/metaskills/skills`: the package must be present in the project, and the command is rerun after each update. A target folder you maintain yourself is left alone and reported as skipped. The repository script `npm run evals` calls `claude` and bills your account, so ordinary use does not need it. The set is small and grows with the stack, so check the `skills` folder for the current list.
How to disable. Delete the symlinks from `.cursor/skills`, `.claude/skills` and other target folders, run `npm uninstall metaskills` and remove the lines it added to `.gitignore`.
FAQ
How do I add Metaskills to Claude Code?
Run `npx metaskills claude` in the project root: the skills appear in `.claude/skills` as a symlink. Without an argument the command detects installed editors itself.
Which editors are supported?
Cursor, Claude Code, Windsurf, VS Code (the `.github/skills` folder), Gemini and Antigravity. `npx metaskills all` sets up all of them.
What should I do after updating the package?
Run `npx metaskills` again. Missing links are added and an old `metaskills` symlink is replaced with a link to the directory.
Does the installer copy skill files?
No, it creates a symlink to `node_modules/metaskills/skills`. It adds the created folders to `.gitignore` and `.npmignore`.
How do I check the Cursor setup?
After `npx metaskills cursor` open `.cursor/skills`: skills such as `js-conventions/SKILL.md` appear there and the agent reads them from that folder.
Discussion
No questions or reviews yet.
Related
SkillsOver 200 skills by stack and practice: React, Next.js, Rails, Rust, Python, debugging, TDD and UI review
skills-npm links agent skills shipped in your dependencies in node_modules and listed in the skills field of package.json
Auditing skills for GitHub repositories and profiles, WordPress, EmDash and Astro CI, site SEO, text readability and metadata.
Over 1,100 ready-made skills for Claude Code, Codex, Gemini CLI and Cursor, plus an MCP server that picks a skill for the task
Dozens of mizchi's agent skills: frontend audits, AWS, Cloudflare, SQL, Playwright and OpenTelemetry, installed one by one
A set of 17 skills on niche tools: SQL Server, PostgreSQL, HTMX, Hapi.js, Hurl and ast-grep, with up-to-date reference material.
README in short
The package ships on npm with skills in `skills/<name>/SKILL.md`. Development uses a linter, skill format checks and behaviour evals run through Claude Code.
README badge
Original SKILL.md
---
name: js-conventions
description: Metarhia JavaScript and TypeScript conventions, project lint setup, formatting, naming, object shape and hidden class rules, named intermediate variables, split-then-compose, contracts, module and export order, ternaries, lookup tables, dynamic dispatch, iteration, async/await, cognitive complexity, performance, and benchmarking. Apply automatically whenever writing, editing, refactoring, simplifying, optimizing, formatting, cleaning up, or reviewing .js, .mjs, .cjs, .ts, or .d.ts files, or when the user asks about code style or linting
---
# JavaScript conventions
Apply on every JavaScript or TypeScript change. Prefer readability unless the
task has a measured reason to do otherwise. See [examples.md](examples.md) to
compare code before and after applying most rules. Read
[performance.md](performance.md) for library or system code (runtimes, parsers,
protocols, I/O) or a measured hot path, and benchmark exceptions on the target
runtime.
## Preparations
- Add these dev dependencies to `package.json` when missing:
`eslint-config-metarhia`, `eslint`, and `prettier`
- Add these scripts to `package.json` when missing or update to following readable format:
```json
"lint": "eslint . && prettier --check \"**/*.{js,jsx,mjs,cjs,ts,tsx,json,md,mdx,yaml,yml}\"",
"fix": "eslint . --fix && prettier --write \"**/*.{js,jsx,mjs,cjs,ts,tsx,json,md,mdx,yaml,yml}\""
```
The extension list groups JavaScript, TypeScript, data, docs, configs.
- Run `npm t` before and after changing code with ai. Finish only when lint, format,
and test checks pass
- Run `npm run fix` before fixing remaining lint or format issues by hand
- Preserve the existing module system, source and declaration file types, and
package layout unless the task asks to change them
- Resolve runtime packages from the registry (or the project's declared source of truth), not from sibling `file:` links in a gitignored lockfile that other machines will not have
## Formatting
For writing new code use single quotes, semicolons, trailing commas in multiline arrays, objects, and parameters, and one blank line between semantic blocks. Keep lines within 80 characters except URLs. Let Prettier and `eslint-config-metarhia` handle spacing, braces, and indentation.
## Naming
- Use `camelCase` for variables and parameters
- Use `UpperCamelCase` for classes and types
- Use `UPPER_SNAKE_CASE` for global constants
- Use `new` only with capitalized constructor names
- Prefer full words for all identifiers (`error`, not `err`). Use a short or