๐ŸŽฏ

skill-linter

๐ŸŽฏSkill

from majesticlabs-dev/majestic-marketplace

VibeIndex|
What it does

Validates skill submissions against agentskills.io specification, checking frontmatter, directory structure, and content quality for marketplace compliance.

๐Ÿ“ฆ

Part of

majesticlabs-dev/majestic-marketplace(184 items)

skill-linter

Installation

Install ScriptRun install script
curl -fsSL https://raw.githubusercontent.com/majesticlabs-dev/majestic-marketplace/master/install.sh | bash
Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add https://github.com/majesticlabs-dev/majestic-marketplace.git
Install PluginInstall plugin from marketplace
/plugin install {plugin-name}
Local ServerRun MCP server locally
claude mcp add sequential-thinking -s local -- npx -y @modelcontextprotocol/server-sequential-thinking
Claude CodeAdd plugin in Claude Code
/plugin marketplace update majestic-marketplace

+ 4 more commands

๐Ÿ“– Extracted from docs: majesticlabs-dev/majestic-marketplace
16Installs
20
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Validate skills against agentskills.io specification. Use when adding new skills to the marketplace, reviewing skill PRs, checking skill compliance, or running quality gates on skills. Validates frontmatter fields (name, description, license, compatibility, metadata, allowed-tools), directory naming, line limits, and structure.

Overview

# Skill Linter

When to Use

  • Adding new skills to the marketplace
  • Reviewing skill PRs
  • Running quality gates before merge
  • Checking existing skills for compliance

Validation Rules

Required Frontmatter

| Field | Constraints |

|-------|-------------|

| name | 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens, must match parent directory name |

| description | 1-1024 chars, non-empty, should include keywords for discoverability |

Optional Frontmatter

| Field | Constraints |

|-------|-------------|

| license | Short license name or file reference |

| compatibility | 1-500 chars, environment requirements |

| metadata | Key-value pairs (string values only) |

| allowed-tools | Space-delimited tool list |

Structure Requirements

| Rule | Requirement |

|------|-------------|

| Directory name | Must match name field exactly |

| SKILL.md | Required, must exist |

| Line limit | Max 500 lines in SKILL.md |

| Subdirectories | Only scripts/, references/, assets/ allowed |

Content Quality Rules

| Rule | Requirement |

|------|-------------|

| No ASCII art | Box-drawing characters (โ”€โ”‚โ”Œโ”โ””โ”˜โ”œโ”คโ”ฌโ”ดโ”ผ), arrows (โ†‘โ†“โ†โ†’โ†”), and decorative diagrams waste tokens. LLMs tokenize character-by-character, not visually. Use plain lists or tables instead. |

| No decorative quotes | Inspirational quotes or attributions ("As X said...") have no functional value for LLM execution. |

| No persona statements | "You are an expert..." wastes tokens. Use Audience: / Goal: framing instead. |

| Functional content only | Every line should improve LLM behavior. Ask: "Does this help Claude execute better?" |

Audience/Goal Framing (Required)

Replace persona roleplay with audience-focused framing:

โŒ Bad (persona):

```

You are an expert software engineer with deep expertise in testing.

Your role is to analyze code and generate thorough test coverage.

```

โœ… Good (audience/goal):

```

Audience: Developers needing test coverage for new or changed code.

Goal: Generate comprehensive tests based on specified test type and framework.

```

Rationale: "Explain X for audience Y" yields better-tailored outputs than "Act as persona Z".

ASCII Art Detection Pattern:

```regex

[โ”€โ”‚โ”Œโ”โ””โ”˜โ”œโ”คโ”ฌโ”ดโ”ผโ•ญโ•ฎโ•ฏโ•ฐโ•โ•‘โ•”โ•—โ•šโ•โ• โ•ฃโ•ฆโ•ฉโ•ฌโ†‘โ†“โ†โ†’โ†”โ‡’โ‡โ‡”โ–ฒโ–ผโ—„โ–บ]{3,}

```

Files matching this pattern should be flagged for review.

Name Pattern

```regex

^[a-z][a-z0-9](-[a-z0-9]+)$

```

Valid: my-skill, skill1, api-v2-handler

Invalid: -skill, skill-, my--skill, MySkill, my_skill

Command/Agent Invocation Patterns

Skills should primarily provide knowledge, not orchestration. If invocations are needed:

| Pattern | Status | Use Instead |

|---------|--------|-------------|

| Skill("command", args: "...") | โŒ Deprecated | /command args |

| SlashCommand("command", ...) | โŒ Deprecated | /command args |

| Task(subagent_type="agent", ...) | โœ… Correct | (no change) |

โœ… Preferred command invocation:

```

/majestic:config tech_stack generic

/majestic-engineer:tdd-workflow

/majestic-ralph:start "task" --max-iterations 50

```

โŒ Deprecated patterns:

```

Skill("config-reader", args: "tech_stack generic")

SlashCommand("majestic:build-task", args: "...")

```

Note: Agent invocation via Task() is correct - there is no @agent syntax.

Usage

Validate Single Skill

```bash

./scripts/validate-skill.sh path/to/skill-name

```

Validate All Marketplace Skills

```bash

for skill in plugins//skills//; do

./scripts/validate-skill.sh "$skill"

done

```

CI Integration

Add to pre-commit hook or CI pipeline:

```yaml

  • name: Lint Skills

run: |

for skill in plugins//skills//; do

.claude/skills/skill-linter/scripts/validate-skill.sh "$skill" || exit 1

done

```

Validation Script

The linter script at scripts/validate-skill.sh performs these checks:

  1. Directory exists with SKILL.md file
  2. Frontmatter present with YAML delimiters
  3. Name field valid - pattern, length, matches directory
  4. Description field valid - present, length constraints
  5. Optional fields valid - if present, match constraints
  6. Line count - under 500 lines
  7. Subdirectory names - only allowed directories
  8. No ASCII art - detects box-drawing characters and decorative diagrams

Error Codes

| Code | Meaning |

|------|---------|

| 0 | All validations passed |

| 1 | Missing SKILL.md |

| 2 | Invalid frontmatter |

| 3 | Name validation failed |

| 4 | Description validation failed |

| 5 | Optional field validation failed |

| 6 | Line limit exceeded |

| 7 | Invalid subdirectory |

| 8 | ASCII art detected (warning) |

Example Output

```

Validating: plugins/majestic-tools/skills/brainstorming

[PASS] SKILL.md exists

[PASS] Frontmatter present

[PASS] Name 'brainstorming' valid (12 chars)

[PASS] Name matches directory

[PASS] Description valid (156 chars)

[PASS] Line count: 87/500

[PASS] Subdirectories valid

Result: ALL CHECKS PASSED

```

Spec Reference

Based on [agentskills.io/specification](https://agentskills.io/specification):

  • Progressive disclosure - Metadata ~100 tokens at startup, full content <5000 tokens when activated
  • Reference files - Keep one level deep from SKILL.md
  • Token budget - Main SKILL.md recommended under 500 lines

More from this repository10

๐Ÿช
majesticlabs-dev-majestic-marketplace๐ŸชMarketplace

Majestic Labs plugin marketplace for Claude Code extensions

๐ŸŽฏ
add-config-field๐ŸŽฏSkill

Systematically updates `.agents.yml` config schema by adding a new field across templates, versions, and migration logic.

๐ŸŽฏ
claude-headless-mode๐ŸŽฏSkill

Enables non-interactive Claude CLI execution with flexible output formats, JSON schema support, and seamless scripting integration.

๐ŸŽฏ
fluff-detector๐ŸŽฏSkill

Detects and removes unnecessary human-oriented content in LLM artifacts to optimize token efficiency and execution.

๐ŸŽฏ
icp-discovery๐ŸŽฏSkill

Discovers and analyzes Internet Computer Protocol (ICP) blockchain infrastructure, networks, and potential integration points for decentralized applications.

๐ŸŽฏ
google-ads-strategy๐ŸŽฏSkill

Develops comprehensive Google Ads campaign strategies by analyzing market trends, target audience, and performance metrics to optimize advertising spend and conversion rates.

๐ŸŽฏ
market-research๐ŸŽฏSkill

Conducts comprehensive market research and competitive analysis for product development, identifying market trends, customer needs, and potential opportunities.

๐ŸŽฏ
anycable-coder๐ŸŽฏSkill

Generates and configures AnyCable WebSocket server code for Ruby on Rails applications with automatic setup and deployment support.

๐ŸŽฏ
narrative-builder๐ŸŽฏSkill

Generates engaging narrative content by dynamically constructing story arcs, character backgrounds, and plot developments using advanced language modeling.

๐ŸŽฏ
landing-page-builder๐ŸŽฏSkill

Generates customizable landing pages with AI-powered design suggestions and responsive templates for quick website creation.