agent-skill-kit-discoverability-linter
Score a SKILL.md description 0-100 for trigger quality, flag vague language, warn on vendor-specific frontmatter, and verify relative file references resolve. Use when the user asks to lint a skill, improve discoverability, score a description, or check why an agent never fires their skill.
- License 许可
- Apache-2.0
- 最近更新
- 2026-08-25
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- agent-skill-kit-discoverability-linter
- tier
- app
- license
- Apache-2.0
- description
- Score a SKILL.md description 0-100 for trigger quality, flag vague language, warn on vendor-specific frontmatter, and verify relative file references resolve. Use when the user asks to lint a skill, improve discoverability, score a description, or check why an agent never fires their skill.
- compatibility
- requires `skills-ref` CLI
03 SKILL.md 正文
Agent Skill Discoverability Linter
Wraps skills-ref lint. The first qualitative pass in the toolkit — beyond structural validation, it scores a description's likelihood of triggering the right agent activations.
When to use
- "Why doesn't my skill ever fire?"
- "Improve this description"
- "Score my SKILL.md descriptions"
- "Lint my skill against vendor-neutrality"
Sub-scores
| Sub-score | Weight | What it rewards |
|---|---|---|
| keyword density | 25 | Description tokens that also appear in the body (semantic overlap). |
| action verbs | 20 | First-token verb (12) + any-position verb (8) from action_verbs.txt. |
| trigger phrases | 20 | Presence of use when, when, if, or for. |
| specificity | 20 | Avoidance of vague phrases (helps with, general purpose, etc.). |
| length sweet spot | 15 | 60-300 chars; linear ramp on either side. |
The score is clamped to 100.
Issue codes emitted
L001_VENDOR_SPECIFIC_FIELD(warn) — top-level frontmatter key matches a vendor prefix (claude-,cursor-,devin-, etc.). Recommend moving undermetadata.L002_DESCRIPTION_QUALITY(warn) — a sub-score triggered a quality warning (vague phrases found, no action verb, no trigger phrase).W002_BROKEN_REFERENCE(warn) — same code the validator emits; the linter resolves all relative file references in the body and surfaces any that do not exist on disk.
Worked example
Before (score: 18/100):
description: A useful tool that helps with stuff related to skills.
After (score: 82/100):
description: Score a SKILL.md description for trigger quality, flag vague language, and warn on vendor-specific frontmatter. Use when the user asks to lint a skill, improve discoverability, or check why their skill never fires.
Invocation
skills-ref lint <skill-dir-or-tree> [--format json|human] [--explain] [--min-score N]
Common patterns:
# Single skill, full breakdown
skills-ref lint .agents/skills/my-skill --explain
# Tighten the bar for CI
skills-ref lint .agents/skills/ --min-score 60
# Machine-readable for the optimizer (Feature 06)
skills-ref lint .agents/skills/my-skill --format json
Exit codes
0— every scored skill scored at or above the threshold (default 40) and emitted no broken-reference warnings.1— at least one skill scored below the threshold, emittedW002_BROKEN_REFERENCE, or failed to parse.64— usage error.
JSON shape
The --format json output is consumable by the description optimizer (Feature 06):
{"breakdown":{"actionVerbs":20,"keywordDensity":25,"length":15,"specificity":20,"triggerPhrases":20},"issues":[],"path":"...","score":100}
Limits
- The scorer is deterministic — no LLM in the loop. For LLM-driven rewrites, the optimizer (Feature 06) consumes this output.
- Vague-phrase, action-verb, and stop-word lists live in the package's
assets/directory and are intentionally narrow. The lists are maintained on the mjs side and symlinked into the py side. - Vendor-neutrality is intentionally narrower than the auditor's unauthorized-field check. The auditor flags any unauthorized top-level field as MEDIUM; this linter flags only vendor-prefixed unauthorized fields as warnings and points at
metadata.
Reference
Full specification: see the canonical spec at ../../../docs/agentskills.io.md.
04 同仓库更多 Skills
validation_handoff
Forces the agent to conclude its response by generating a strict validation checklist and outlining pending actions, focusing heavily on defensive execution and edge-case testing.
project-ployglot-project-scafford
Scaffold a polyglot library project as TypeScript + Python twin packages under `packages/ts/` + `packages/py/`, with a shared `SPEC.md`, cross-language `tests/parity/fixtures.json`, side-by-side `examples/sdk/` + `examples/api/` documentation, per-package `Makefile`, and a root orchestrator that exposes `make ci`. Open-source friendly — no organization-specific paths or scopes baked in. Use when starting a new polyglot library, porting a single-language library to a twin, or auditing/regularizing an existing two-language repo against the canonical layout.
playwright-ui-locator
Auto-heal Playwright tests after a frontend developer changes a div's class, id, or other selector. Catches a failing Playwright test, captures the old vs new DOM tree, finds the element that drifted, derives the most stable replacement locator, and proposes the fix as a GitHub pull request (confident heals) or files a GitHub issue (ambiguous / element-removed cases) — never editing the working tree directly. Trigger when Playwright tests fail with "locator resolved to 0 elements", "Timeout waiting for selector", or after a UI refactor / class rename / Tailwind cleanup broke previously-passing tests.
org-learn-context-window
Distill the current conversation into a reusable command or skill artifact. Use when the user wants to capture a workflow they just executed (create a reusable slash command) or formalize a resolution/mistake/correction into a reusable skill so the same class of issue never recurs.
org-agent-skill-creator
Scaffold and validate scope-aware agent skills (company, enterprise, org, team, project, application). Use when the user asks to create a new agent skill, generate a SKILL.md file, scaffold a skill directory, or validate that existing skill directories meet SKILL_SPEC.md (frontmatter, naming rules, structure, scope/tier).
app-workshop-session-pdf-recap-next
Extract content from a workshop session PDF and produce a structured recap focused on (1) what was learned, (2) next steps, and (3) possible enhancements. Ingests a single PDF file path, parses session material (slides, transcripts, exercises, Q&A), and emits a Markdown report with Learning Recap, Next Steps, and Enhancement Opportunities sections with page-level traceability. Use when the user asks to "summarize a workshop", "recap a training PDF", "pull next steps from a session deck", or provides a workshop/seminar/tutorial PDF and wants a learn-and-act summary.