Standardized workflow for submitting and managing community agent skills.

Install

mkdir -p .claude/skills/skills-x && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13345" && unzip -o skill.zip -d .claude/skills/skills-x && rm skill.zip

Installs to .claude/skills/skills-x

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Guide for contributing new skills to the skills-x collection. This skill should be used when users want to add new open-source skills from external sources (like agentskills.io or anthropics/skills) to the skills-x repository. It covers the complete workflow from discovery to publishing.
288 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Add new open-source skills from external sources
  • Create original skills for the skills-x collection
  • Update existing skills with new versions
  • Validate skill format compliance before submission
  • Ensure bilingual output for Chinese/English
  • Test bilingual output after UI changes

How it works

The skill guides users through a standardized workflow for contributing skills, including finding and validating sources, adhering to internationalization rules, and ensuring compliance with the required skill directory structure and `SKILL.md` format.

Inputs & outputs

You give it
User request to contribute a new skill or update an existing one
You get back
New or updated skill integrated into the skills-x collection, with i18n compliance

When to use skills-x

  • Contribute new skill
  • Validate skill format
  • Add external skills to registry

About this skill

Skills-X Contribution Guide

This skill provides a standardized workflow for contributing new skills to the skills-x collection.

When to Use This Skill

  • Adding new community skills from external sources (agentskills.io, anthropics/skills, etc.)
  • Creating x original skills
  • Updating existing skills with new versions
  • Validating skill format compliance before submission
  • After creating a new skill, ask whether to generate a REAEDME (background summary)

Project Structure Overview

skills-x/
├── pkg/registry/        # Skill registry definition
│   └── registry.yaml    # Indexes skills from external sources
├── skills/              # Self-developed skills (自研)
│   └── skills-x/        # This skill (embedded in binary)
├── cmd/skills-x/        # Go source code
│   ├── command/         # CLI commands (list, init)
│   └── i18n/
│       └── locales/     # Language files (zh.yaml, en.yaml)
├── npm/                 # npm package
│   └── package.json     # Version number here
└── Makefile             # Build commands

Key Changes:

  • No local skills/ directory - Skills are fetched directly from external repositories
  • Central registry - All skill sources defined in pkg/registry/registry.yaml
  • Dynamic fetching - Skills are cloned on-demand, not bundled with binary

⚠️ Internationalization (i18n) Rules - CRITICAL

skills-x supports bilingual (Chinese/English) output. Follow these rules strictly:

Rule 1: NO Mixing Languages in a Single String

FORBIDDEN - Never mix Chinese and English in the same string:

// BAD: Mixed languages
desc = "🔄 套娃! Contribution guide (not for regular use)"
tag = "⭐ 作者自研 Original"

CORRECT - Use separate i18n keys:

// GOOD: Use i18n.T() to get localized string
desc = i18n.T("list_skillsx_desc")
tag = i18n.T("list_castlex_tag")

Rule 2: All User-Facing Strings Must Use i18n

Any text displayed to users MUST go through the i18n system:

  1. Add keys to both language files:

cmd/skills-x/i18n/locales/zh.yaml:

my_message: "这是中文消息"

cmd/skills-x/i18n/locales/en.yaml:

my_message: "This is English message"
  1. Use in Go code:
import "github.com/castle-x/skills-x/cmd/skills-x/i18n"

// Simple string
msg := i18n.T("my_message")

// With format arguments
msg := i18n.Tf("my_format_msg", arg1, arg2)

Rule 3: i18n Key Naming Convention

TypeKey PrefixExample
Category namescat_cat_creative, cat_document
Skill descriptionsskill_skill_pdf, skill_docx
Command descriptionscmd_cmd_list_short
List outputlist_list_header, list_total
Init outputinit_init_success
Error messageserr_err_skill_not_found

Rule 4: Adding New Skill Descriptions

When adding a new skill, you MUST add descriptions to BOTH language files:

Step 1: Add English description to en.yaml:

skill_new-skill: "Brief description in English"

Step 2: Add Chinese description to zh.yaml:

skill_new-skill: "简短的中文描述"

Step 3: The code automatically picks up translations via:

desc := i18n.T("skill_" + skillName)

Rule 5: Testing Bilingual Output

Always test BOTH languages after any UI changes:

# Test Chinese
SKILLS_LANG=zh ./bin/skills-x list

# Test English  
SKILLS_LANG=en ./bin/skills-x list

Rule 6: Environment Variable Priority

Language is detected in this order:

  1. SKILLS_LANG (highest priority, skills-x specific)
  2. LANG (system locale)
  3. LC_ALL (system locale)
  4. Default: zh (Chinese)

Skill Directory Structure Requirements

All skills MUST follow the Agent Skills specification:

skill-name/
├── SKILL.md          # Required: Instructions + metadata
├── LICENSE.txt       # Required: License file
├── scripts/          # Optional: Executable code
├── references/       # Optional: Documentation
└── assets/           # Optional: Templates, resources

SKILL.md Format Requirements

The SKILL.md file MUST contain YAML frontmatter with required fields:

---
name: skill-name        # Required: lowercase, hyphens only, max 64 chars
description: ...        # Required: max 1024 chars, describe what and when
license: MIT            # Optional: license identifier
metadata:               # Optional: additional metadata
  author: example
  version: "1.0"
---

Name Field Rules

  • Length: 1-64 characters
  • Characters: lowercase letters, numbers, hyphens only
  • Must NOT start or end with hyphen
  • Must NOT contain consecutive hyphens (--)
  • Must match parent directory name

Valid: pdf-processing, data-analysis, code-review Invalid: PDF-Processing, -pdf, pdf--processing

Description Field Rules

  • Length: 1-1024 characters
  • Should clearly describe what the skill does AND when to use it
  • Include keywords that help AI agents identify relevant tasks

Contributing Community Skills (Open Source Skills)

NEW WORKFLOW: To add a new open source skill to the registry, you only need to edit pkg/registry/registry.yaml. No manual downloading or local copying required!

Step 1: Find and Validate Source Skill

Search for skills at:

Before adding a skill to registry, verify:

  1. The repository has a valid SKILL.md file in the skill directory
  2. The SKILL.md has proper YAML frontmatter with name and description fields
  3. The skill name matches directory name (lowercase, hyphens only)
  4. License information is available

Step 2: Add Skill Source to Registry

Edit pkg/registry/registry.yaml and add a new source entry:

# Example: Adding a new skill source
new-source-name:
  repo: github.com/owner/repo-name
  license: MIT  # or Apache-2.0, etc.
  skills:
    - name: skill-name
      path: path/to/skill/in/repo  # e.g., "skills/pdf" or "packages/skills/pdf"
      description: "Brief English description"
      description_zh: "简短的中文描述"

Required fields for each source:

  • repo: GitHub repository URL (without https://)
  • license: License type (MIT, Apache-2.0, etc.)
  • skills: List of skills available from this source

Required fields for each skill:

  • name: Skill name (must match directory name in repo)
  • path: Path to skill directory within repository
  • description: English description (max 1024 chars)
  • description_zh: Chinese description (optional, max 1024 chars)

Step 3: Verify Skill Installation (Always)

After updating the registry, ALWAYS build and run list/init tests (no need to ask).

# Build the binary
make build

# Test listing the skill
./bin/skills-x list | grep "skill-name"

# Test installing the skill
./bin/skills-x init skill-name --target /tmp/test-install
ls /tmp/test-install/skill-name/

Validation checks:

  • Skill appears in list output
  • Skill can be installed with init
  • English and Chinese descriptions display correctly
  • License information is accurate

Step 4: Ask for Release Actions

After tests finish, ask the user whether they want to:

  • Commit and push
  • Create GitHub release
  • Publish to npm

Contributing Self-Developed Skills (自研)

Self-developed skills should be placed in the skills/ directory at the project root.

Step 1: Create Skill Directory

mkdir -p skills/<skill-name>

Step 2: Create Required Files

  1. Create SKILL.md with proper frontmatter:
---
name: <skill-name>
description: <what this skill does and when to use it>
license: MIT
metadata:
  author: x
  version: "1.0"
---

# <Skill Name>

<Detailed instructions for the AI agent>
  1. Add LICENSE.txt (copy from project root or create)

  2. Ask the user whether to add a summary document named REAEDME.md.

    • Purpose: describe the skill’s background, the problem it solves, and the author's goals.
    • Do NOT include any secrets or API keys.

Step 3: Add i18n Translations

Same as community skills - add to both en.yaml and zh.yaml:

skill_new-skill: "Description"

Note: Self-developed skills are automatically assigned category skills-x and marked with IsX: true.


Build and Test

# Build the binary
make build

# Test Chinese output
SKILLS_LANG=zh ./bin/skills-x list | grep "<skill-name>"

# Test English output
SKILLS_LANG=en ./bin/skills-x list | grep "<skill-name>"

# Test downloading the skill
./bin/skills-x init <skill-name> --target /tmp/test-skills
ls /tmp/test-skills/<skill-name>/

Release Workflow

Step 1: Update Version

Increment version in npm/package.json:

"version": "0.1.X"  // increment patch version

Step 2: Build for npm

make build-npm

Step 3: Pre-Release Testing (CRITICAL)

⚠️ IMPORTANT: Always run this test before releasing to catch broken or missing skills!

Test all skills can be installed successfully:

# Use a clean temporary directory
TEST_DIR=$(mktemp -d)
echo "Testing in: $TEST_DIR"

# Test installing all skills
./bin/skills-x init --all --target "$TEST_DIR"

# Check for failures
if [ $? -ne 0 ]; then
  echo "❌ Some skills failed to install!"
  echo "Review the output above for skills that are:"
  echo "  - Not found in repository"
  echo "  - Have incorrect paths"
  echo "  - Repository no longer exists"
  exit 1
fi

# Clean up
rm -rf "$TEST_DIR"
echo "✅ All skills tested successfully"

If any skills fail:

  1. Skill not found in repo (⚠ 在仓库中未找到 skill 路径):

    • The skill path in registry.yaml is incorrect
    • The skill was removed/renamed in the source repository
    • Action: Remove from pkg/registry/registry.yaml or fix the path
  2. Repository not accessible:

    • The re

Content truncated.

When not to use it

  • When the user wants to mix languages in a single string for user-facing text
  • When the user wants to use local `skills/` directory for open source skills
  • When the user wants to skip i18n for user-facing strings

Limitations

  • It requires strict adherence to i18n rules for bilingual output
  • It mandates a specific `SKILL.md` format with YAML frontmatter
  • It does not allow mixing languages in a single string for user-facing text

How it compares

This skill enforces strict internationalization rules and a centralized registry for open-source skills, ensuring consistent bilingual output and a simplify contribution process, unlike ad-hoc skill additions.

Compared to similar skills

skills-x side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
skills-x (this skill)05moReviewIntermediate
using-superpowers953moNo flagsBeginner
ultrawork112moNo flagsAdvanced
clawhub252moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

using-superpowers

obra

Use when starting any conversation - establishes mandatory workflows for finding and using skills, including using Skill tool before announcing usage, following brainstorming before coding, and creating TodoWrite todos for checklists

95205

ultrawork

Yeachan-Heo

Parallel execution engine for high-throughput task completion

11184

clawhub

openclaw

Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.

25151

skill-installer

openai

Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).

29141

continuous-learning

affaan-m

Automatically extract reusable patterns from Claude Code sessions and save them as learned skills for future use.

995

memory-keeper-proactive-context-maintenance

b4CU-R4U

Automatically detect and maintain memory freshness by monitoring context staleness, significant code changes, task completions, and phase transitions. Proactively suggests and executes memory sync operations with user confirmation. Use when the user says "sync memory", "update context", or when the Skill detects that context is stale (>2 hours), significant changes have occurred (new commits), tasks completed, or major milestones reached. Replaces passive "context is stale" warnings with active maintenance.

694

Search skills

Search the agent skills registry