mcpbeat Sign in

Agent Linter Agent Skill

Agent ve skill dosyalarinin yapisal dogrulamasi. Frontmatter kontrol, naming convention, zorunlu bolum kontrolu, tutarlilik denetimi. Yeni agent/skill eklendiginde veya mevcut dosyalar duzenlediginde otomatik calistirilir.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
521
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/vibeeval/vibecosystem --skill agent-linter

The instruction itself

14 sections, as written by the author

Agent & Skill Linter

Agent ve skill dosyalarinin kalite kontrolu. Yanlis yapilandirilmis dosyalar runtime'da sessizce basarisiz olur -- linter bunu onler.

Agent Dosyasi Kurallari

Frontmatter (ZORUNLU)

---
name: agent-adi          # kebab-case, dosya adiyla AYNI olmali
description: Tek satir   # 20-200 karakter arasi
tools: ["Read", "Bash"]  # Gecerli tool listesi
model: opus              # Opsiyonel: opus | sonnet
---

Frontmatter Validasyonu

| Kural | Kontrol | Hata Seviyesi |

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

| name mevcut | Frontmatter'da name var mi? | ERROR |

| name = dosya adi | name: sleuth == sleuth.md | ERROR |

| name kebab-case | code-reviewer OK, codeReviewer FAIL | ERROR |

| description mevcut | Bos olmamali | ERROR |

| description uzunlugu | 20-200 karakter | WARN |

| tools array | String array olmali | ERROR |

| tools gecerli | Sadece bilinen tool isimleri | WARN |

| model gecerli | opus, sonnet veya bos | ERROR |

Body Kurallari

| Kural | Kontrol | Hata Seviyesi |

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

| System prompt var | Frontmatter'dan sonra icerik var | ERROR |

| 50+ satir | Cok kisa agent tanimlari yetersiz | WARN |

| 2000 satir max | Cok uzun dosyalar token israf eder | WARN |

| Markdown basliklar | En az 1 ## basligi var | WARN |

Skill Dosyasi Kurallari

Frontmatter (ZORUNLU)

---
name: skill-adi          # kebab-case
description: Aciklama    # 20-300 karakter
---

Skill Validasyonu

| Kural | Kontrol | Hata Seviyesi |

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

| Dosya adi | SKILL.md veya skill.md | ERROR |

| name mevcut | Frontmatter'da | ERROR |

| name = klasor adi | name: tdd-workflow == skills/tdd-workflow/ | WARN |

| description mevcut | Bos olmamali | ERROR |

| Icerik var | Frontmatter'dan sonra en az 20 satir | WARN |

| Kod ornegi var | En az 1 code block | INFO |

Lint Calistirma

Bash Script

#!/bin/bash
# scripts/lint-agents.sh

ERRORS=0
WARNS=0

lint_agent() {
  local file="$1"
  local name=$(basename "$file" .md)

  # Frontmatter kontrolu
  if ! head -1 "$file" | grep -q "^---"; then
    echo "ERROR: $file - frontmatter yok"
    ERRORS=$((ERRORS + 1))
    return
  fi

  # name field kontrolu
  local fm_name=$(sed -n '/^---$/,/^---$/p' "$file" | grep "^name:" | sed 's/name: *//')
  if [ -z "$fm_name" ]; then
    echo "ERROR: $file - name field yok"
    ERRORS=$((ERRORS + 1))
  elif [ "$fm_name" != "$name" ]; then
    echo "ERROR: $file - name '$fm_name' != dosya adi '$name'"
    ERRORS=$((ERRORS + 1))
  fi

  # description kontrolu
  local desc=$(sed -n '/^---$/,/^---$/p' "$file" | grep "^description:")
  if [ -z "$desc" ]; then
    echo "ERROR: $file - description yok"
    ERRORS=$((ERRORS + 1))
  fi

  # Uzunluk kontrolu
  local lines=$(wc -l < "$file")
  if [ "$lines" -lt 10 ]; then
    echo "WARN: $file - cok kisa ($lines satir)"
    WARNS=$((WARNS + 1))
  elif [ "$lines" -gt 2000 ]; then
    echo "WARN: $file - cok uzun ($lines satir)"
    WARNS=$((WARNS + 1))
  fi
}

echo "=== Agent Linter ==="
for f in agents/*.md; do
  lint_agent "$f"
done

echo ""
echo "=== Skill Linter ==="
for f in skills/*/SKILL.md skills/*/skill.md; do
  [ -f "$f" ] && lint_agent "$f"
done

echo ""
echo "Sonuc: $ERRORS error, $WARNS warning"
[ "$ERRORS" -gt 0 ] && exit 1 || exit 0

CI Entegrasyonu

# .github/workflows/lint-agents.yml
name: Agent & Skill Lint
on:
  pull_request:
    paths: ['agents/**', 'skills/**']

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: bash scripts/lint-agents.sh

Yaygin Hatalar

| Hata | Ornek | Cozum |

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

| name/dosya uyumsuzlugu | name: codeReviewer dosya: code-reviewer.md | name'i kebab-case yap |

| Description cok kisa | description: Reviews code | Ne yaptigini detayla |

| Tools yanlis format | tools: Read, Bash | tools: ["Read", "Bash"] |

| Bos agent dosyasi | Sadece frontmatter, body yok | System prompt ekle |

| Duplicate name | 2 agent ayni name'e sahip | Benzersiz isim ver |

| Skill klasor/name uyumsuz | name: tdd klasor: tdd-workflow/ | Eslestir |

Toplu Lint Raporu

# Tum agent'lari tara, rapor uret
cd ~/vibecosystem
bash scripts/lint-agents.sh 2>&1 | tee lint-report.txt

# Sadece ERROR'lari goster
grep "^ERROR" lint-report.txt

# Istatistik
echo "Agents: $(ls agents/*.md | wc -l)"
echo "Skills: $(ls skills/*/SKILL.md skills/*/skill.md 2>/dev/null | wc -l)"
echo "Errors: $(grep -c ERROR lint-report.txt)"
echo "Warnings: $(grep -c WARN lint-report.txt)"

vibecosystem Entegrasyonu

  • verifier agent: Lint'i final quality gate'e ekle
  • qa-engineer agent: Yeni agent/skill PR'larinda lint calistir
  • self-learner agent: Lint hatalari pattern olarak ogren
  • catalyst agent: Scaffold sırasinda lint-uyumlu dosya uret
  • /commit skill: Commit oncesi agent/skill dosyalarini lint'le

Other skills for the same job

different authors, same section of the catalogue
Gemini
by softaworks
×2

Use when the user asks to run Gemini CLI for code review, plan review, or big context (>200k) processing. Ideal for comprehensive analysis requiring large context windows. Uses Gemini 3 Pro by default for state-of-the-art reasoning and coding.

5k tokens
Claude Skills
by ComeOnOliver
×2

Claude Skills meta-skill: extract domain material (docs/APIs/code/specs) into a reusable Skill (SKILL.md + references/scripts/assets), and refactor existing Skills for clarity, activation reliability, and quality gates.

13k tokens scripts
Backend Atomic Commit
by ComeOnOliver
×1

> Pedantic backend pre-commit and atomic commit Skill for Django/Optimo-style repos. Enforces local AGENTS.md / CLAUDE.md, pre-commit hooks, .security/* helpers, and Monty’s backend engineering taste – with no AI signatures in commit messages.

14k tokens
Safe Edit
by ComeOnOliver
×1

Automatically backs up files, saves diffs, uses agents/skills, and ensures modular code (<200 lines) before any implementation. Use this skill for ALL code changes to ensure safe, reversible, and clean implementations.

11k tokens
Sharing Skills
by ComeOnOliver
×1

Use when you've developed a broadly useful skill and want to contribute it upstream via pull request - guides process of branching, committing, pushing, and creating PR to contribute skills back to upstream repository

4k tokens
Od Code Migration
by nexu-io

Default reference pipeline for the code-migration taskKind — code-import → design-extract → token-map → rewrite-plan → patch-edit ↔ build-test devloop → diff-review → handoff.

4k tokens
Review Agent Setup
by wshobson

Configure human-in-the-loop gating for AI agent review actions in Claude Code. Use when setting up a project where an agent may post PR reviews, comments, merges, or edit CI configuration, and you want a cryptographically auditable approval trail with Cedar-enforced gates.

1k tokens
Auto Updater
by anthropics
vendor

> Check installed community skills for updates. Shows a diff and requires explicit approval before applying. Use when the user says "check for updates", "update my skills", "anything new for my installed skills", or when invoked from the registry-sync agent.

2k tokens

How to use it

Copy the folder

Take vibeeval/agent-linter from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.