Skip to content
Back to skills

Lint Agents

ASecurity

Validates required frontmatter fields and body content in every agent and skill file in the pack by running scripts/lint-agents.sh. Interprets failures with specific fix instructions. Use before committing new or modified agents/skills, or as a CI gate. Trigger this when someone says: lint agents, validate agents, check agent files, run lint-agents, validate the pack, check if my agent is valid, did I write the skill correctly.

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 13, 2026
ai-agentsgobash

Security analysis

A100/100

Scanned October 13, 2026

npx -y skills add chuckplayer/claude-agent-pack --skill lint-agents --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lint Agents?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lint Agents
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chuckplayer-lint-agents/badge)](https://www.skillsdirectory.com/skills/chuckplayer-lint-agents)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lint-agents
description: "Validates required frontmatter fields and body content in every agent and skill file in the pack by running scripts/lint-agents.sh. Interprets failures with specific fix instructions. Use before committing new or modified agents/skills, or as a CI gate. Trigger this when someone says: lint agents, validate agents, check agent files, run lint-agents, validate the pack, check if my agent is valid, did I write the skill correctly."
---

# Lint Agents

Run the Agent Pack linter to validate all agent and skill files, then interpret any failures with specific, actionable fix instructions.

## 1. Run the linter

```bash
bash scripts/lint-agents.sh
```

Capture the full output. If the script does not exist or is not executable, report:

> `scripts/lint-agents.sh` not found. Run `/setup-project` to scaffold the project structure, or check that you are in the correct repository root.

## 2. Parse the output

For each file reported in the output:

- **PASS** — note it as passing. No action needed.
- **FAIL** — identify the specific reason from the linter message and produce a targeted fix instruction (see below).

## 3. Produce fix instructions for each failure

Map linter failure messages to actionable fixes:

| Failure message | Fix |
|---|---|
| Missing required field: `name` | Add `name: <value>` to the frontmatter. For agents, this is the agent's identifier. For skills, it matches the slash command name. |
| Missing required field: `description` | Add `description: >` followed by a multi-line description, or `description: "..."` for a single-line value. The description is the routing contract — make it specific. |
| Unknown frontmatter field: `<field>` | Remove the `<field>` line. Only `name`, `description`, `tools`, `model`, `effort`, `permissionMode`, and `version` are valid for agents; only `name`, `description`, `license`, `compatibility`, `metadata`, and `allowed-tools` are valid for skills. |
| Description exceeds the limit (1536 characters for agents, 1024 for skills) | Shorten the description. Remove repeated information — trigger phrases, exclusions, and the core purpose should each appear once. |
| Missing body content | The file has frontmatter but no body. Add at minimum one section (`## ...`) explaining what the agent or skill does. |
| Body is too short | Expand the body. Agent files must contain behavioral instructions, not just a title. |

If the failure message does not match any of the above patterns, quote the exact linter message and ask the developer to compare their file against a well-formed example in the `skills/` or `agents/` directory.

## 4. Report

Output a structured summary:

```
## Lint Results

### Passing
- agents/csharp-engineer.md ✓
- skills/implement/SKILL.md ✓
[...]

### Failing
- agents/my-new-agent.md ✗
  **Reason:** Missing required field: `description`
  **Fix:** Add `description: >` followed by a clear routing description to the frontmatter.

[...]

### Summary
- Total files checked: N
- Passing: N
- Failing: N

### Gate result: [PASS | FAIL]
```

Gate is PASS only if zero files fail. A single failing file is a FAIL gate.

## Gotchas

- **Running from the wrong directory:** `scripts/lint-agents.sh` expects to be run from the repository root. If the working directory is wrong, the script will report file-not-found errors for every agent. Verify the working directory before diagnosing individual failures.
- **Newly added files not appearing:** The linter discovers files via glob. If a new agent or skill file was just created but is not in the expected directory (`agents/` or `skills/<name>/SKILL.md`), it will not be checked. Verify the file path matches the convention.
- **Fixing one failure revealing another:** After fixing a failure and re-running, a previously hidden failure in the same file may appear. This is normal — address failures one at a time or fix all visible issues before re-running.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.