lint-skills
When to use
Use this skill when:
- Validating the shape of every skill and rule in
src/ - 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
./scripts-run src/scripts/skill_linter <path>directly - Checking cross-references between files — use
check-refsinstead - Checking condensation freshness — use
bash scripts/condense.sh --checkinstead
Procedure
1. Inspect the environment
Confirm ./scripts-run is executable and the working directory is the agent-config
repository root — the linter expects to find src/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:
./scripts-run src/scripts/runtime_dispatcher run --skill lint-skills
The dispatcher resolves the request, the shell handler runs
./scripts-run src/scripts/skill_linter --all, captures stdout/stderr, and returns
a typed ExecutionResult.
3. Verify the result
Check the returned ExecutionResult:
status: successandexit_code: 0→ all skills and rules are cleanexit_code: 1→ warnings only — reviewstdoutfor the listed warningsexit_code: 2→ errors present — fix the flagged files before continuingstatus: timeout→ the linter exceededtimeout_seconds— investigatestatus: error→ the runner could not launch — check that./scripts-runis onPATHand the repository root is the current working directory
Output format
- One-line summary:
success | failure | timeout | error, exit code, duration in milliseconds - Count of skills and rules the linter inspected, if known
- List of files with errors (first 10), each with code and message
- Next action: fix errors, re-run, or surface the raw
stdoutfor review
Gotchas
- The command uses
--all, which walks the full tree — expect several seconds of runtime on a warm repo; bumptimeout_secondsif 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.tsdirectly when the intent is to test the runtime path — use the dispatcher so the handler and result object are exercised - Do NOT raise
timeout_secondsto hide a genuinely slow linter pass — investigate the slowdown first - Do NOT add shell redirection or pipes to
command— the handler runssubprocess.runwithshell=False; only argv form is supported