agentsclimarketplace

Agent linter

Skill vibeeval/vibecosystem/skills/agent-linter

AI software team for Claude Code - 138 agents, 295 skills, 73 hooks. Self-learning, multi-agent swarm, autonomous skill evolution.

Install
npx -y skills add vibeeval/vibecosystem --skill agent-linter

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

5.1 KB, as published. Nobody here has run it

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

KuralKontrolHata Seviyesi
name mevcutFrontmatter'da name var mi?ERROR
name = dosya adiname: sleuth == sleuth.mdERROR
name kebab-casecode-reviewer OK, codeReviewer FAILERROR
description mevcutBos olmamaliERROR
description uzunlugu20-200 karakterWARN
tools arrayString array olmaliERROR
tools gecerliSadece bilinen tool isimleriWARN
model gecerliopus, sonnet veya bosERROR

Body Kurallari

KuralKontrolHata Seviyesi
System prompt varFrontmatter'dan sonra icerik varERROR
50+ satirCok kisa agent tanimlari yetersizWARN
2000 satir maxCok uzun dosyalar token israf ederWARN
Markdown basliklarEn az 1 ## basligi varWARN

Skill Dosyasi Kurallari

Frontmatter (ZORUNLU)

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

Skill Validasyonu

KuralKontrolHata Seviyesi
Dosya adiSKILL.md veya skill.mdERROR
name mevcutFrontmatter'daERROR
name = klasor adiname: tdd-workflow == skills/tdd-workflow/WARN
description mevcutBos olmamaliERROR
Icerik varFrontmatter'dan sonra en az 20 satirWARN
Kod ornegi varEn az 1 code blockINFO

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

HataOrnekCozum
name/dosya uyumsuzluguname: codeReviewer dosya: code-reviewer.mdname'i kebab-case yap
Description cok kisadescription: Reviews codeNe yaptigini detayla
Tools yanlis formattools: Read, Bashtools: ["Read", "Bash"]
Bos agent dosyasiSadece frontmatter, body yokSystem prompt ekle
Duplicate name2 agent ayni name'e sahipBenzersiz isim ver
Skill klasor/name uyumsuzname: 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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.