Skip to content
Back to skills

Lint Skills

ASecurity

Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata.

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 5, 2026
ai-agentspythongoshellbash

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add event4u-app/agent-config --skill lint-skills --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lint Skills?

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

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

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
---
model_tier: medium
name: lint-skills
description: "Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata."
domain: process
execution:
  type: assisted
  handler: shell
  timeout_seconds: 120
  allowed_tools: []
  command:
    - python3
    - src/scripts/skill_linter.py
    - "--all"
workspaces:
  - agent-config-maintainer
packs:
  - meta
---

# lint-skills

## When to use

Use this skill when:

- Validating the shape of every skill and rule in `.agent-src.uncondensed/`
- Verifying execution metadata (`execution.type`, `handler`, `command`) is well-formed
- Checking locally before opening a PR that CI's skill-lint job will pass
- Investigating a reported linter failure on a specific skill or rule

Do NOT use when:

- Linting only one file — call `python3 src/scripts/skill_linter.py <path>` directly
- Checking cross-references between files — use `check-refs` instead
- Checking condensation freshness — use `bash scripts/condense.sh --check` instead

## Procedure

### 1. Inspect the environment

Confirm `python3` is available and the working directory is the agent-config
repository root — the linter expects to find `.agent-src.uncondensed/skills/`
and related directories relative to `cwd`.

### 2. Dispatch via the runtime layer

Invoke the skill through the runtime dispatcher so the `execution:` block in
this skill's frontmatter governs the call:

```bash
python3 scripts/runtime_dispatcher.py run --skill lint-skills
```

The dispatcher resolves the request, the shell handler runs
`python3 src/scripts/skill_linter.py --all`, captures stdout/stderr, and returns
a typed `ExecutionResult`.

### 3. Verify the result

Check the returned `ExecutionResult`:

- `status: success` and `exit_code: 0` → all skills and rules are clean
- `exit_code: 1` → warnings only — review `stdout` for the listed warnings
- `exit_code: 2` → errors present — fix the flagged files before continuing
- `status: timeout` → the linter exceeded `timeout_seconds` — investigate
- `status: error` → the interpreter could not launch — check that `python3`
  is on `PATH` and the repository root is the current working directory

## Output format

1. One-line summary: `success | failure | timeout | error`, exit code,
   duration in milliseconds
2. Count of skills and rules the linter inspected, if known
3. List of files with errors (first 10), each with code and message
4. Next action: fix errors, re-run, or surface the raw `stdout` for review

## Gotchas

- The command uses `--all`, which walks the full tree — expect several seconds
  of runtime on a warm repo; bump `timeout_seconds` if the repo has grown
- Running outside the agent-config repo root will make the linter report zero
  skills, which looks like a pass but is actually a no-op
- Warnings (`exit_code: 1`) do not fail CI by default; do not dismiss them as
  "green" when the task is to get to zero warnings

## Do NOT

- Do NOT invoke `src/scripts/skill_linter.py` directly when the intent is to test
  the runtime path — use the dispatcher so the handler and result object are
  exercised
- Do NOT raise `timeout_seconds` to hide a genuinely slow linter pass —
  investigate the slowdown first
- Do NOT add shell redirection or pipes to `command` — the handler runs
  `subprocess.run` with `shell=False`; only argv form is supported

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.