reyn lint¶
Run deterministic structural checks on a skill directory: graph, frontmatter, artifact references, and Python preprocessor steps (when mode: safe, the AST is also validated). Detects most authoring mistakes before runtime.
Synopsis¶
Positional arguments¶
| Name | Description |
|---|---|
SKILL |
Skill name. Same resolution as reyn run: reyn/project/ → reyn/local/ → stdlib. |
What is checked¶
- Graph: every key references a phase file in
phases/; every value is a known phase, sub-skill (@name), orend. - Reachability: every phase reachable from
entry; phases withcan_finish: truehave a path toend. - Frontmatter: required keys (
type,name,entry,final_output). - Artifact references: every
inputandfinal_output_schemaresolves to an artifact file. - Preprocessor: each
pythonstep has a matchingpermissions.pythonentry, the.pyfile exists, and the function is defined. Inmode: safe, the AST is checked against the allowlist (noopen,eval,exec,__import__,subprocess, etc.).
Exit codes¶
| Code | Meaning |
|---|---|
0 |
No errors (warnings may still be present) |
1 |
One or more errors found |
Output¶
Each issue is printed on its own line:
[error] reyn/local/my_skill/phases/draft.md
graph references unknown phase 'reveiw' (typo for 'review'?)
[warning] reyn/local/my_skill/phases/draft.md
phase 'draft' has can_finish: true but no path to 'end'
A summary follows: N error(s), M warning(s).
When clean: No issues found.
Examples¶
Lint a project skill:
Lint a stdlib skill (sanity check after editing):
Use in CI:
See also¶
- Reference: skill.md
- Reference: phase.md
- Reference: graph
- Reference: preprocessor
- Reference: reyn skills —
reyn skills validatefor op/permission consistency (complements lint)