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.
A skill your agent uses when building charts, network graphs, timelines, or maps with @unovis/ts in vanilla TypeScript or JavaScript.
$ npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-ts-skilld --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/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/unovis-ts-skilld .claude/skills/unovis-ts-skilld && 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 "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .claude/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilldType 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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-ts-skilld --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/unovis-ts-skilld .agents/skills/unovis-ts-skilld && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .agents/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-ts-skilld --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/unovis-ts-skilld .cursor/skills/unovis-ts-skilld && 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 "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .cursor/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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/skilld-dev/vue-ecosystem-skills.git --path skills/unovis-ts-skilld--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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-ts-skilld --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/unovis-ts-skilld .gemini/skills/unovis-ts-skilld && 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 "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .gemini/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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 skilld-dev/vue-ecosystem-skills unovis-ts-skilldInstalls 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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/unovis-ts-skilld .github/skills/unovis-ts-skilld && 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 "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .github/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install skilld-dev/vue-ecosystem-skills unovis-ts-skilld --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/skilld-dev/vue-ecosystem-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/unovis-ts-skilld .opencode/skills/unovis-ts-skilld && 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 "unovis-ts-skilld" agent skill from https://github.com/skilld-dev/vue-ecosystem-skills/tree/main/skills/unovis-ts-skilld into .opencode/skills/unovis-ts-skilld/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unovis-ts-skilld", 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.
unovis-ts-skilldA skill your agent uses when building charts, network graphs, timelines, or maps with @unovis/ts in vanilla TypeScript or JavaScript.
Unovis TS Skilld is an agent skill from skilld-dev/vue-ecosystem-skills. Use when building charts, network graphs, timelines, or maps with @unovis/ts in vanilla TypeScript or JavaScript. Provides correct container and component setup, accessor and config patterns, update and destroy lifecycle, tooltip, crosshair, and styling rules for Unovis 1.7.x.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/api-surface.md`, `references/components.md` and `references/styling.md`).
It sits in Development. It works with TypeScript and JavaScript. The repository describes itself as: Agent Skills for the Vue ecosystem, written from current docs, issues, and releases. The licence is MIT.
Read from SKILL.md and the folder at commit c8994af. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
unovis.devAlso links to:
github.comFrom 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.
Unovis TS Skilld loads about 2.1k tokens when it runs, and up to ~7.5k if it reads all its reference files. Until then it costs about 74 tokens; SKILL.md has 579 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 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.
The full file from skilld-dev/vue-ecosystem-skills at commit c8994af, republished under its MIT licence (© skilld-dev). 579 words, ~2,054 tokens.
.claude/skills/unovis-ts-skilld/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Unovis core package for vanilla TypeScript/JavaScript. Version 1.7.0, Apache-2.0,
ES modules only ("type": "module"). Renders SVG (plus Leaflet/MapLibre for maps)
into a DOM element. Source paths cited below are relative to the package root
(node_modules/@unovis/ts/).
Install (per README.md and https://unovis.dev/docs/intro):
npm install -P @unovis/tsallowSyntheticDefaultImports in compilerOptions (required by Unovis
dependencies). Source: https://unovis.dev/docs/introtsconfig.json lists types explicitly, add "topojson-client" to it.
Source: https://unovis.dev/docs/intro@emotion/css (declared in
package.json sideEffects: styles/index.js). Importing any component
injects the global CSS variables. Do not import a CSS file; there is none.
For strict CSP sites read https://unovis.dev/docs/guides/cspThree building blocks (README.md, index.js):
XYContainer(element, config, data) — multiple XY components plus xAxis,
yAxis, tooltip, crosshair, annotations slots
(containers/xy-container/config.d.ts).SingleContainer(element, config, data) — exactly one component
(component slot), e.g. Graph, Sankey, TopoJSONMap, Donut, Treemap
(containers/single-container/config.d.ts).new Line({ x, y }). They
hold no data; the container feeds them the data array.LeafletMap,
LeafletFlowMap, and the legends (BulletLegend, RollingPinLegend,
FlowLegend). Source: https://unovis.dev/docs/introData records are generic (Line<Datum>), read through accessors:
a value or a function (d, i) => value. Types in types/accessor.d.ts:
NumericAccessor, StringAccessor, ColorAccessor, BooleanAccessor,
GenericAccessor.
import { Axis, Line, XYContainer } from '@unovis/ts'
type DataRecord = { x: number; y: number }
const data: DataRecord[] = [
{ x: 0, y: 0 },
{ x: 1, y: 2 },
{ x: 2, y: 1 },
]
const line = new Line<DataRecord>({
x: d => d.x,
y: d => d.y,
})
const chart = new XYContainer(document.getElementById('vis-container')!, {
components: [line],
xAxis: new Axis(),
yAxis: new Axis(),
}, data)Individual imports are tree-shakable and equivalent
(@unovis/ts/containers/xy-container, @unovis/ts/components/line, ...).
Source: https://unovis.dev/docs/quick-start. Heavy parts (Graph layouts,
LeafletMap renderer) load via dynamic import after initialization.
Data lives on the container; configs live on components. Update through the
container's public API (containers/xy-container/index.d.ts):
| Method | Purpose |
|---|---|
setData(data, preventRender?) | Replace the data array |
updateContainer(config, preventRender?) | Merge container config |
updateComponents(configs[], preventRender?) | Merge configs, index-aligned with components |
update(containerConfig, componentConfigs?, data?) | All at once |
SingleContainer has updateComponent (singular) instead of
updateComponents (containers/single-container/index.d.ts). Pass
preventRender: true to defer rendering when batching updates.
Always call chart.destroy() when tearing down (SPA route change, test
teardown). It removes the ResizeObserver, DOM node, and timers
(core/container/index.d.ts).
Container config width/height accept pixels or CSS units but not %
(core/container/config.d.ts). For percentage sizing, set width/height
via CSS on the container's DOM element instead. sizing controls fit
behavior: Sizing.Fit (default), Sizing.Extend, Sizing.FitWidth
(types/component.d.ts).
Tooltip and crosshair go in the container config, not the components array:
import { Axis, Crosshair, Line, Tooltip, XYContainer } from '@unovis/ts'
const tooltip = new Tooltip()
const crosshair = new Crosshair<DataRecord>({
color: d => d.color ?? null,
template: d => `<div>${d.x}: ${d.y}</div>`,
})
const chart = new XYContainer(el, {
components: [line],
xAxis: new Axis(),
yAxis: new Axis(),
tooltip,
crosshair,
}, data)Stacked bars use one y accessor per stack level:
import { Axis, StackedBar, XYContainer } from '@unovis/ts'
const bar = new StackedBar<DataRecord>({
y: [d => d.a, d => d.b],
})
new XYContainer(el, { components: [bar], xAxis: new Axis(), yAxis: new Axis() }, data)A graph lives in a SingleContainer with { nodes, links } data:
import { Graph, GraphLayoutType, SingleContainer } from '@unovis/ts'
const graph = new Graph<GraphNodeDatum, GraphLinkDatum>({
layoutType: GraphLayoutType.Force,
linkStroke: l => l.color ?? null,
nodeSize: n => n.size ?? 10,
})
const chart = new SingleContainer(el, { component: graph }, {
nodes: [{ id: 'a' }, { id: 'b' }],
links: [{ source: 'a', target: 'b' }],
})Events are declared per-component with CSS selectors exposed as static
selectors on each component class (core/component/config.d.ts):
const area = new Area<DataRecord>({
x: d => d.x,
y: d => d.y,
events: {
[Area.selectors.area]: {
click: d => console.log('clicked', d),
},
},
attributes: { // stable hooks for E2E tests
[Area.selectors.area]: { 'test-value': d => String(d.y) },
},
})Map with bundled TopoJSON (maps.d.ts exports WorldMapTopoJSON,
USATopoJSON, GermanyTopoJSON, UKTopoJSON, FranceTopoJSON,
IndiaTopoJSON, ChinaTopoJSON, USCountiesTopoJSON,
WorldMapSimplestTopoJSON, WorldMap110mAlphaTopoJSON):
import { SingleContainer, TopoJSONMap, WorldMapTopoJSON } from '@unovis/ts'
const map = new TopoJSONMap<AreaDatum, PointDatum>({
topojson: WorldMapTopoJSON,
mapFeatureName: 'countries',
areaColor: d => d.color ?? null,
pointColor: d => d.color ?? null,
longitude: d => d.longitude ?? null,
latitude: d => d.latitude ?? null,
})
new SingleContainer(el, { component: map }, areaData)component.config or container.config directly; call the
update* methods so changes merge with defaults and re-render.Axis instances for xAxis/yAxis need no type; the container assigns
it (containers/xy-container/config.d.ts). Set type only for a standalone
Axis in components.color accessors returning null fall back to the
container palette (--vis-color<N> CSS variables). Use colorKeys on XY
components to map series to colors (core/xy-component/config.d.ts).duration overrides all components;
component duration (default 600) applies to data transitions.CurveType, SymbolType, Position, ...) also
accept their raw string values, e.g. curveType: 'monotoneX'.package.json scripts).Official documentation: https://unovis.dev/docs/intro — component reference at
https://unovis.dev/docs/components/<Name> (e.g. /docs/components/Line),
containers at /docs/containers/XY_Container and
/docs/containers/Single_Container. Gallery: https://unovis.dev/gallery.
Release notes: https://github.com/f5/unovis/releases (current prepared
version 1.7.0, package.json).
© skilld-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/unovis-ts-skilld of skilld-dev/vue-ecosystem-skills.
Open the folder on GitHubat commit c8994af
Unovis TS Skilld 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 |
|---|---|---|---|---|---|---|
| Unovis TS Skilld this skillskilld-dev/vue-ecosystem-skills | 181 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop | 5.3k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Generate Release Notesteambit/bit | 18k | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Pnpm Engineteambit/bit | 18k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Convert Internal Package to TypeScriptTryGhost/Ghost | 56k | — | ~1.2k | Automated safety check: Pass | MIT |
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.
dmmulroy/anti-slop
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.
teambit/bit
Generate comprehensive release notes for Bit from git commits and pull requests.
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
TryGhost/Ghost
Moves a legacy internal Ghost package from JavaScript and CommonJS to TypeScript and ESM in three focused commits that keep git file history intact.
kucherenko/jscpd
Measures a code port between languages or frameworks with jscpd's function-level comparison, porting tests before code and tracking what is left unmatched.
skilld-dev/vue-ecosystem-skills
Floating UI for Vue (@floating-ui/vue@2.0.1). An agent skill from skilld-dev/vue-ecosystem-skills.
skilld-dev/vue-ecosystem-skills
A skill your agent uses whenever writing, debugging, or reviewing code that imports @formkit/core — FormKit's framework-agnostic core (node trees, values, events, hooks, message stores, ledgers…
skilld-dev/vue-ecosystem-skills
Data fetching layer for Vue built on Pinia. An agent skill from skilld-dev/vue-ecosystem-skills.
skilld-dev/vue-ecosystem-skills
A skill your agent uses when writing, debugging, or refactoring code that imports "pinia", the Vue 3 store library.
skilld-dev/vue-ecosystem-skills
A skill your agent uses when writing, debugging, or updating code that imports primevue (PrimeVue v5, UI component library for Vue 3).
skilld-dev/vue-ecosystem-skills
Build, configure, and debug apps with the Quasar framework (quasar npm package, v2.33.1).
Works with
Categories
A skill your agent uses when building charts, network graphs, timelines, or maps with @unovis/ts in vanilla TypeScript or JavaScript. Unovis TS Skilld is an agent skill from skilld-dev/vue-ecosystem-skills. Use when building charts, network graphs, timelines, or maps with @unovis/ts in vanilla TypeScript or JavaScript.
Unovis TS Skilld fits situations like: building charts; maps with @unovis/ts in vanilla TypeScript.
Run `npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a claude-code`. Or copy the skill folder (skills/unovis-ts-skilld in skilld-dev/vue-ecosystem-skills) into .claude/skills/unovis-ts-skilld in your project. Claude Code loads it when a task matches its description.
Run `npx skills add skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a codex`. Or copy the skill folder (skills/unovis-ts-skilld in skilld-dev/vue-ecosystem-skills) into .agents/skills/unovis-ts-skilld 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 skilld-dev/vue-ecosystem-skills --skill unovis-ts-skilld -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unovis-ts-skilld, .gemini/skills/unovis-ts-skilld, .github/skills/unovis-ts-skilld and .opencode/skills/unovis-ts-skilld in your project.
Going by SKILL.md and its folder, Unovis TS Skilld needs the command-line tools its instructions call (npm). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: unovis.dev; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.
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.
Unovis TS Skilld is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unovis TS Skilld: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.3k stars), Generate Release Notes (teambit/bit, 18k stars) and Pnpm Engine (teambit/bit, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
skilld-dev (a GitHub organization) maintains it in skilld-dev/vue-ecosystem-skills, which has 181 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 22, 2026.
Source: skilld-dev/vue-ecosystem-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.