Skip to content
Agentmart
Submit a tool

skill-lint

Lint a BDK skill or agent file for best practices and portability.

Skill by broneq

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/broneq-skill-lint

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Lint a BDK skill or agent file for best practices and portability. Use when reviewing, creating, or editing a skill (skills/*.md) or agent (agents/*.md) to verify it meets BDK conventions. Trigger on phrases like "check this skill", "verify agent", "does this follow best practices", "lint skill", or when about to commit a new skill/agent.

Use cases: writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/skill-lint

What's inside

Skill name
skill-lint
Description
Lint a BDK skill or agent file for best practices and portability. Use when reviewing, creating, or editing a skill (skills/*.md) or agent (agents/*.md) to verify it meets BDK conventions. Trigger on phrases like "check this skill", "verify agent", "does this follow best practices", "lint skill", or when about to commit a new skill/agent.
License
MIT
Instructions
243 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • files: referenced but missing: scripts/inject.py

Files (1)

  • SKILL.md

SKILL.md (first lines)

> Relies on BDK foundation (STARTUP_INSTRUCTIONS.md). Assumes environment discovery has already run (language, test runner, build tool are known).

# Skill Lint

Verify BDK skill or agent file meets portability and quality conventions.

## Determine target

- `$ARGUMENTS` may be one or more space-separated paths.
- No arguments: ask user which file, or infer from recent context.

Per path:
1. Read file.
2. List all files in skill directory (recursively). Every file other than `SKILL.md` is supporting file.
3. Each supporting file: lint too (checks 3–6 only — portability checks), regardless of whether referenced in SKILL.md.

Print **separate report block** per file linted.

## Run checks

Report each check as `PASS`, `FAIL`, or `WARN` with one-line reason.

### 1. Frontmatter present
- File must start with `---`
- Must contain `name:` field
- Must contain `description:` field

### 2. Model field
- **Agent files** (`agents/`): `model:` **required** — FAIL if missing
- **Skill files** (`skills/`): `model:` recommended — WARN if missing (some skills intentionally inherit)

### 3. No absolute paths
Fail if file contains:
- `/Users/`, `/home/`, `/root/`, `/opt/`, `/var/`, `C:\`
- Any hardcoded filesystem path

### 4. No project-specific file references
Warn if file refs files only in one project:
- Patterns: specific filenames like `src/foo.py`, `app/models/user.rb`, `internal/auth/handler.go`
- Exception: generic illustrative examples (e.g. `<your-file>`, `path/to/file`)

### 5. No project-specific instructions
Warn if file contains phrases tied to specific project:
- "in this project", "this repo", "our codebase", specific org/team names
- Hardcoded branch names, database names, service names

### 6. No language-specific commands
Fail if file hardcodes language/framework tooling:
- Test runners: `pytest`, `go test`, `npm test`, `yarn test`, `cargo test`, `rspec`, `jest`, `mocha`
- Build tools: `mvn`, `gradle`, `cargo build`, `make` (as build command)
- Linters: `ruff`, `eslint`, `golangci-lint`, `rubocop`, `flake8`

Use generic phrasing: "run the project's test suite", "run the linter".

### 7. BDK foundation header (skills only)
Skills must start body (after frontmatter) with:
```
> Relies on BDK foundation (STARTUP_INSTRUCTIONS.md)...
```
FAIL if missing.

### 8. Skill cross-references use full namespace
Refs to other BDK skills must use `/bdk:` prefix.
- FAIL on: `/commit`, `/debug`, `/create-plan` (bare names)
- PASS on: `/bdk:commit`, `/bdk:debug`

### 9. `name` format valid
If `name:` present: must match `^[a-z0-9-]{1,64}$`.
- FAIL on uppercase, underscores, spaces, or >64 chars.

### 10. `description` length
If `description:` present: WARN if >250 chars (truncated in skill listing).

### 11. Invalid frontmatter fields
FAIL if file uses unsupported/obsolete frontmatter fields:
- `arguments:` (list of objects) — replaced by `argument-hint:`
- Any field not in: `name`, `description`, `argument-hint`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`

### 12. `effort` valid value
If `effort:` present: must be one of `low`, `medium`, `high`, `xhigh`, `max`.
- FAIL on any other value.

### 13. `context` + `agent` combo
If `agent:` present but `context: fork` missing: WARN — `agent:` only applies with `context: fork`.

### 14. Dead skill combo
If both `disable-model-invocation: true` AND `user-invocable: false`: FAIL — skill inaccessible.

### 15. `$ARGUMENT` typo
If body uses `$ARGUMENT` (no S): FAIL — correct variable is `$ARGUMENTS` or `$ARGUMENTS[N]`.

### 16. External skill/agent references
BDK skills depend only on BDK-owned skills. Flag `/slash-command` and agent name invocations NOT prefixed `/bdk:`.

**Slash command refs** (`/name` in body):
- WARN on bare `/name` refs (e.g. `/commit`, `/debug`) — ambiguous, may resolve to wrong skill
- WARN on `/other-plugin:name` — hard dep on external plugin not guaranteed present
- PASS on `/bdk:name` — BDK namespace, expected

**Agent refs** (backtick or plain `agent-name` in body, e.g. `` `test-runner` ``):
1. Check if `agents/<name>.md` exists in BDK repo.
2. If exists → WARN: bare name found, use `/bdk:<name>` prefix.
3. If not exists → WARN: unknown agent dependency, not shipped with BDK.

### 17. Skill directory format
Per Claude Code skills spec, each skill must live at `<skill-name>/SKILL.md`.
- FAIL if filename not exactly `SKILL.md` (case-sensitive)
- WARN if parent dir name doesn't match `name` field in frontmatter (causes confusing dual identities)

### 18. Artifacts go to `.bdk/`
Skills producing file output must write to `.bdk/` in project root, not arbitrary dirs.
- FAIL if skill body instructs writing to `docs/`, `output/`, `tmp/`, `reports/`, or other non-`.bdk` paths
- PASS if output path is `.bdk/...` or no file output produced
- Exception: skills writing code/config into project structure as part of code-gen task (not report/artifact output)

### 19. No unused files in skill directory
List all files in skill directory (recursively). Every file other than `SKILL.md` must be referenced in skill body (markdown link, inline code mention, or explicit filename reference).
- WARN for each file present but not referenced anywhere in `SKILL.md`
- Exception: `SKILL.md` itself always exempt

From broneq/bdk, MIT.

More from broneq/bdk

Signals

Stars
1
Forks
0
Open issues
6
Last commit (this folder)
Aug 21, 2026 (2 months ago)
Last release
Sep 25, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from broneq

Cite this page

skill-lint. Agent Mart. https://agentmart.dev/skills/broneq-skill-lint (last updated 2026-10-24)