ASD

Add New Opc Skill

Checklist y guía de automatización para añadir un nuevo skill al proyecto OPC Skills, asegurando que todos los archivos, metadatos, logos y listados requeridos estén listos antes del release.

Estrellas
1.5k

en todo el repo

Actividad
32

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.9k tok

62 tok en reposo

Paquete
1 archivo

7 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add ReScienceLab/opc-skills --skill add-new-opc-skill --agent claude-code

Se instala solo en este repositorio.

Este skill makes network requests.

Qué hace

  • Guía paso a paso para publicar un nuevo skill en el proyecto OPC Skills
  • Crea la estructura de carpetas del skill con SKILL.md, scripts, examples y references
  • Genera un logo SVG estilo pixel-art usando los skills nanobanana y logo-creator
  • Añade la entrada del skill en skills.json, README.md, worker.js y CHANGELOG.md
  • Define el flujo de git con branch feature/skill/<skill-name> y PR contra develop

Úsalo cuando

  • Al añadir un nuevo skill al proyecto OPC Skills
  • Al publicar un skill
  • Al preparar un skill para su release

No lo uses cuando

    Qué lo activa

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

    • Quiero añadir un nuevo skill a OPC Skills, ayúdame con el checklist
    • Prepara este skill para publicarlo en el repo
    • Genera el logo y la entrada en skills.json para mi nuevo skill

    SKILL.md

    En inglés

    Add New OPC Skill

    Use this skill when adding a new skill to the OPC Skills project. Follow every step below to ensure the skill meets all publishing requirements.

    Pre-flight

    Before starting, confirm:

    • You are on a feature branch: feature/skill/<skill-name> (branched from develop)
    • The skill name is kebab-case (e.g., my-new-skill)

    Checklist

    1. Skill Directory Structure

    Create the skill directory with required files:

    skills/<skill-name>/
    ├── SKILL.md              (required) Main skill documentation
    ├── scripts/              (if skill has scripts)
    │   └── *.py / *.sh
    ├── examples/             (recommended) Usage examples
    │   └── *.md
    └── references/           (optional) API docs, templates
        └── *.md
    

    SKILL.md must include YAML frontmatter:

    ---
    name: <skill-name>
    description: Clear description. Include trigger keywords and "Use when..." contexts.
    ---
    

    Use template/SKILL.md as a starting point:

    cp -r template skills/<skill-name>
    

    2. Skill Logo

    Generate a pixel-art style SVG logo matching existing skill logos:

    # Use the logo-creator skill
    python3 skills/nanobanana/scripts/batch_generate.py \
      "Pixel art <subject> logo, 8-bit retro style, black pixels on white background, minimalist icon, clean crisp edges, no text, centered" \
      -n 20 --ratio 1:1 \
      -d .skill-archive/logo-creator/<date>-<skill-name> \
      -p logo
    
    # Open preview to pick a logo
    cp skills/logo-creator/templates/preview.html .skill-archive/logo-creator/<date>-<skill-name>/
    open .skill-archive/logo-creator/<date>-<skill-name>/preview.html
    
    # After picking (e.g., #5):
    python3 skills/logo-creator/scripts/crop_logo.py <input>.png <output>-cropped.png
    python3 skills/logo-creator/scripts/vectorize.py <output>-cropped.png skill-logos/<skill-name>.svg
    

    Verify: skill-logos/<skill-name>.svg exists and matches the pixel-art style of other logos.

    3. skills.json Entry

    Add a complete entry to the skills array in skills.json. All fields are required unless noted:

    {
      "name": "<skill-name>",
      "version": "1.0.0",
      "description": "Full description of the skill.",
      "logo": "https://raw.githubusercontent.com/ReScienceLab/opc-skills/main/skill-logos/<skill-name>.svg",
      "icon": "<simpleicons-name>",
      "color": "<hex-without-hash>",
      "triggers": ["trigger1", "trigger2"],
      "dependencies": {},
      "auth": {
        "required": false,
        "type": null,
        "keys": []
      },
      "install": {
        "user": {
          "claude": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a claude",
          "droid": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a droid",
          "opencode": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a opencode",
          "codex": "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a codex"
        },
        "project": {
          "claude": "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          "droid": "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          "cursor": "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          "opencode": "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          "codex": "npx skills add ReScienceLab/opc-skills --skill <skill-name>"
        }
      },
      "commands": [
        "python3 scripts/example.py \"{input}\""
      ],
      "links": {
        "github": "https://github.com/ReScienceLab/opc-skills/tree/main/skills/<skill-name>"
      }
    }
    

    Field notes:

    • icon: Use a Simple Icons name, or generic like "globe", "archive", "image"
    • color: 6-char hex without # (e.g., "6B7280")
    • dependencies: Object with skill names as keys and version ranges as values (e.g., {"twitter": ">=1.0.0"})
    • auth.keys: Array of {"env": "VAR_NAME", "url": "https://...", "optional": true/false}
    • commands: List of CLI commands the skill exposes (empty array [] if instructions-only)

    Validate after editing:

    python3 -c "import json; json.load(open('skills.json')); print('valid')"
    

    4. README.md

    Add the skill to the "Included Skills" table in README.md:

    | <img src="./skill-logos/<skill-name>.svg" width="24"> | [<skill-name>](./skills/<skill-name>) | Short description |
    

    Insert in the appropriate position within the existing table.

    5. Website (worker.js)

    Add the skill to the hardcoded skills array in website/worker.js inside the fetchCompareData() function. Find the ],\n };\n} closing of the skills array and add before it:

    {
      name: "<skill-name>",
      version: "1.0.0",
      description: "<description>",
      icon: "<icon>",
      color: "<color>",
      triggers: ["trigger1", "trigger2"],
      dependencies: [],
      auth: { required: false, note: "..." },
      install: {
        user: {
          claude: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a claude",
          droid: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a droid",
          opencode: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a opencode",
          codex: "npx skills add ReScienceLab/opc-skills --skill <skill-name> -a codex",
        },
        project: {
          claude: "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          droid: "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          cursor: "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          opencode: "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
          codex: "npx skills add ReScienceLab/opc-skills --skill <skill-name>",
        },
      },
      commands: [],
      links: {
        github: "https://github.com/ReScienceLab/opc-skills/tree/main/skills/<skill-name>",
      },
    },
    

    6. CHANGELOG.md

    Add the skill to the Skill Compatibility & Dependency Matrix table:

    | **<skill-name>** | 1.0.0 | - | - |
    

    Add an entry under ## [Unreleased] (or the release version section):

    ### <skill-name>
    #### [1.0.0] - YYYY-MM-DD
    - **Added**: Initial release - <description>
    

    Verification

    Before committing, verify all items:

    # 1. SKILL.md exists with valid frontmatter
    head -5 skills/<skill-name>/SKILL.md
    
    # 2. Logo SVG exists
    ls -la skill-logos/<skill-name>.svg
    
    # 3. skills.json is valid JSON with all fields
    python3 -c "
    import json
    config = json.load(open('skills.json'))
    skill = [s for s in config['skills'] if s['name'] == '<skill-name>'][0]
    required = ['name','version','description','logo','icon','color','triggers','dependencies','auth','install','links']
    missing = [f for f in required if f not in skill]
    print('PASS' if not missing else f'MISSING: {missing}')
    "
    
    # 4. README.md lists the skill
    grep '<skill-name>' README.md
    
    # 5. worker.js has the skill
    grep '<skill-name>' website/worker.js
    
    # 6. CHANGELOG.md has the skill in matrix
    grep '<skill-name>' CHANGELOG.md
    

    Git Workflow

    # Branch
    git checkout develop && git pull
    git checkout -b feature/skill/<skill-name>
    
    # Commit
    git add skills/<skill-name>/ skill-logos/<skill-name>.svg skills.json README.md website/worker.js CHANGELOG.md
    git commit -m "feat(skill): add <skill-name> skill"
    
    # PR to develop
    git push -u origin feature/skill/<skill-name>
    gh pr create --base develop
    

    Reproducido de ReScienceLab/opc-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    1 archivo 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 estar en una branch feature/skill/<skill-name> creada desde develop y tener acceso a los skills nanobanana y logo-creator.

    Necesita en el PATH:ghgitpython3

    Detalles

    Licencia
    Apache-2.0
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de ReScienceLab/opc-skills

    Este repo incluye 12 skills. Si instalas uno, normalmente ya tienes los demás.

    Genera informes de investigación de demanda de usuarios a partir de feedback real: scrapea y analiza solicitudes, quejas y preguntas en Reddit, X, GitHub, YouTube, LinkedIn y Amazon.

    Costo de contexto al activarse
    2.4k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 3 meses
    investigacion

    Archiva aprendizajes de sesión, soluciones de debugging y logs de despliegue en `.archive/yyyy-mm-dd/` como markdown indexado con tags buscables; mantiene `.archive/MEMORY.md` como índice.

    Costo de contexto al activarse
    538 tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 5 meses
    productividad

    Crea logos con generación de imágenes por IA: define estilo/formato, genera variaciones, itera con feedback, recorta, quita el fondo y exporta como SVG.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    25 archivos
    Última actualización
    hace 6 meses
    diseno ui

    SEO y GEO (Generative Engine Optimization) para sitios web: analiza keywords, genera schema markup y optimiza para buscadores de IA (ChatGPT, Perplexity, Gemini, Copilot, Claude) y tradicionales (Google, Bing).

    Costo de contexto al activarse
    2.1k tok
    Tamaño del paquete
    19 archivos
    Última actualización
    hace 6 meses
    seo geo

    Busca dominios, compara precios entre registradores, encuentra códigos promocionales y da recomendaciones de compra para dominios como .ai o .com.

    Costo de contexto al activarse
    957 tok
    Tamaño del paquete
    5 archivos
    Última actualización
    hace 6 meses
    investigacion

    Genera y edita imágenes con Google Gemini 3 Pro Image (Nano Banana Pro): texto a imagen, edición, distintas proporciones y salida en alta resolución (2K/4K).

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

    Skills relacionados

    Domina el sistema de tipos avanzado de TypeScript: generics, tipos condicionales, mapped types, template literals y utility types para aplicaciones type-safe.

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

    Patrones de resiliencia en Python: reintentos automáticos, backoff exponencial, timeouts y decoradores tolerantes a fallos para servicios.

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

    Organización de proyectos Python, arquitectura de módulos y diseño de APIs públicas con __all__, para nuevos proyectos o reorganización de directorios.

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