Skills Agentes

Antfu

Herramientas y convenciones de Anthony Fu para proyectos JavaScript/TypeScript: configuración de ESLint, monorepos y publicación de librerías.

Reemplaza a: npm view <pkg> version, Prettier, configuración manual de ESLint

Estrellas
5.9k

en todo el repo

Actividad
53

0–100, la ruta de este skill

Actualizado
hace 3 meses

último commit aquí

Commits
2

últimos 90 días

Contexto
1.3k tok

61 tok en reposo

Paquete
6 archivos

22 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add antfu/skills --skill antfu --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Aplica convenciones de código de Anthony Fu: separación de tipos, imports explícitos, sin alias de rutas nuevos
  • Configura ESLint con @antfu/eslint-config, TypeScript strict y git hooks con simple-git-hooks
  • Establece comandos @antfu/ni (ni, nr, nu, nci) y catálogos nombrados de pnpm
  • Usa fast-npm-meta para consultar versiones de paquetes npm en vez de npm view
  • Ejecuta pnpm run lint --fix al finalizar tareas

Úsalo cuando

  • Al configurar nuevos proyectos JavaScript/TypeScript
  • Al configurar alternativas a ESLint/Prettier
  • Al trabajar con monorepos o publicación de librerías
  • Cuando el usuario menciona las preferencias de Anthony Fu

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Configura este proyecto con las convenciones de Anthony Fu”
    • “Añade @antfu/eslint-config a este repo”
    • “Revisa la última versión de vite con fast-npm-meta”
    • “Configura los catálogos de pnpm para este monorepo”

    SKILL.md

    En inglés

    Coding Practices

    Code Organization

    • Single responsibility: Each source file should have a clear, focused scope/purpose
    • Split large files: Break files when they become large or handle too many concerns
    • Type separation: Always separate types and interfaces into types.ts or types/*.ts
    • Constants extraction: Move constants to a dedicated constants.ts file

    Runtime Environment

    • Prefer isomorphic code: Write runtime-agnostic code that works in Node, browser, and workers whenever possible
    • Clear runtime indicators: When code is environment-specific, add a comment at the top of the file:
    // @env node
    // @env browser
    

    TypeScript

    • Explicit return types: Declare return types explicitly when possible
    • Avoid complex inline types: Extract complex types into dedicated type or interface declarations

    Explicitness

    Favor explicit, traceable code over implicit "magic". A reader (human or agent) should be able to follow where every name comes from without running tooling.

    • Explicit imports: Prefer explicit import statements. Avoid auto-imports — when a framework provides them (e.g. Nuxt/Nitro), turn them off for new projects (see app-development).
    • No path aliases by default: Use relative imports (./foo, ../bar). Only use path aliases (@/, ~/, #imports, etc.) when they are already configured in the project; don't introduce new ones for greenfield code.

    Comments

    • Avoid unnecessary comments: Code should be self-explanatory
    • Explain "why" not "how": Comments should describe the reasoning or intent, not what the code does

    Testing (Vitest)

    • Test files: foo.ts → foo.test.ts (same directory)
    • Use describe/it API (not test)
    • Use toMatchSnapshot for complex outputs
    • Use toMatchFileSnapshot with explicit path for language-specific snapshots

    Tooling Choices

    @antfu/ni Commands

    Command Description
    ni Install dependencies
    ni <pkg> / ni -D <pkg> Add dependency / dev dependency
    nr <script> Run script
    nu Upgrade dependencies
    nun <pkg> Uninstall dependency
    nci Clean install (pnpm i --frozen-lockfile)
    nlx <pkg> Execute package (npx)

    Checking npm Package Versions

    Use fast-npm-meta to look up the latest version of a package — it queries a small metadata endpoint instead of downloading the full registry payload (which can be megabytes per package).

    nlx fast-npm-meta version vite              # 7.3.1
    nlx fast-npm-meta version "nuxt@^3.5"       # 3.5.22 — range-aware
    nlx fast-npm-meta version vite nuxt vue     # multiple at once
    nlx fast-npm-meta version vite --json       # JSON for scripting
    nlx fast-npm-meta full vite                 # full version list + dist-tags
    

    Prefer this over npm view <pkg> version when you only need the latest version, and over reading package.json from the registry directly.

    TypeScript Config

    {
      "compilerOptions": {
        "target": "ESNext",
        "module": "ESNext",
        "moduleResolution": "bundler",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "resolveJsonModule": true,
        "isolatedModules": true,
        "noEmit": true
      }
    }
    

    ESLint Setup

    // eslint.config.mjs
    import antfu from '@antfu/eslint-config'
    
    export default antfu()
    

    When completing tasks, run pnpm run lint --fix to format the code and fix coding style.

    For detailed configuration options: antfu-eslint-config

    Git Hooks

    {
      "simple-git-hooks": {
        "pre-commit": "pnpm i --frozen-lockfile --ignore-scripts --offline && npx lint-staged"
      },
      "lint-staged": { "*": "eslint --fix" },
      "scripts": {
        "prepare": "npx simple-git-hooks"
      }
    }
    

    pnpm Catalogs

    Use named catalogs in pnpm-workspace.yaml for version management:

    Catalog Purpose
    prod Production dependencies
    inlined Bundler-inlined dependencies
    dev Dev tools (linter, bundler, testing)
    frontend Frontend libraries

    Avoid the default catalog. Catalog names can be adjusted per project needs.


    References

    Topic Description Reference
    ESLint Config Framework support, formatters, rule overrides, VS Code settings antfu-eslint-config
    Project Setup .gitignore, GitHub Actions, VS Code extensions setting-up
    App Development Vue/Nuxt/UnoCSS conventions, auto-import control, Storybook component testing app-development
    Library Development tsdown bundling, pure ESM publishing library-development
    Monorepo pnpm workspaces, centralized alias, Turborepo monorepo

    Reproducido de antfu/skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    6 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere pnpm y, para comandos ni/nr/nu, tener instalado @antfu/ni.

    Necesita en el PATH:npx

    Detalles

    Creador
    antfu
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    antfu/skills
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de antfu/skills

    Este repo incluye 19 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack skills entero y su comando de instalación

    Convenciones de diseño estilo antfu: tokens semánticos basados en clases con UnoCSS para light/dark, más reglas anti-slop y de micro-interacción para devtools y landing pages.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    15 archivos
    Última actualización
    hace 3 meses
    diseno ui

    Nitro

    5.9k

    Nitro es el toolkit de servidor agnóstico de framework (usado por Nuxt) para construir y desplegar servidores web en cualquier lugar: routing, config, caching, tasks, websockets y despliegue en Node/Bun/Deno/Cloudflare/Vercel.

    Costo de contexto al activarse
    880 tok
    Tamaño del paquete
    15 archivos
    Última actualización
    hace 3 meses
    desarrollo apis

    Nuxt

    5.9k

    Framework full-stack Vue con SSR, auto-imports y routing basado en archivos. Úsalo para apps Nuxt, server routes, useFetch, middleware o hybrid rendering.

    Costo de contexto al activarse
    977 tok
    Tamaño del paquete
    20 archivos
    Última actualización
    hace 3 meses
    herramientas desarrollo

    Pnpm

    5.9k

    Gestor de paquetes de Node.js con resolución estricta de dependencias. Úsalo para comandos de pnpm, pnpm-workspace.yaml, catalogs, patches, overrides, config dependencies o el global virtual store.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    18 archivos
    Última actualización
    hace 3 meses
    herramientas desarrollo

    Slidev

    5.9k

    Crea y presenta slidedecks web para desarrolladores con Slidev, usando Markdown, componentes Vue, resaltado de código, animaciones y funciones interactivas.

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    56 archivos
    Última actualización
    hace 3 meses
    documentos

    Tsdown

    5.9k

    Empaqueta librerías TypeScript y JavaScript a gran velocidad usando Rolldown. Útil al construir librerías, generar declaraciones de tipos, bundlear en múltiples formatos o migrar desde tsup.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    42 archivos
    Última actualización
    hace 3 meses
    herramientas desarrollo

    Skills relacionados

    Optimiza la configuración del contexto del agente. Úsalo al iniciar una sesión nueva, cuando la calidad del agente empeora, al cambiar de tarea o al configurar archivos de reglas y contexto de un proyecto.

    Costo de contexto al activarse
    3.9k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 28 días
    herramientas desarrollo

    Gestiona la baja y migración de sistemas: retirar APIs o funciones antiguas, migrar usuarios a una nueva implementación, migrar un esquema de BD en producción (expand/contract) sin downtime, o decidir si mantener o retirar código.

    Costo de contexto al activarse
    3.2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    herramientas desarrollo

    Estructura las prácticas de flujo de trabajo en git: commits, ramas, resolver conflictos, dividir trabajo sin confirmar en commits atómicos, PRs, push, trabajo en paralelo, releases, versión semántica, tags y changelog.

    Costo de contexto al activarse
    3.5k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    herramientas desarrollo