Skip to content

Lints

FieldValue
TypeSkill Resource
Source~/.copilot/skills/technical-writing/lints.toml
DescriptionNot specified

Source Content

# Lint registry for scripts/lint.py — the extension point.
# Add a lint: append a [[lint]] block. No code changes needed.
#
# Fields:
# name — shown in the summary table.
# globs — files this lint applies to. A lint whose file type didn't
# change never runs.
# command — {skill} expands to this skill's directory; {files} to the
# matched files. If the first token isn't an installed tool,
# the lint is skipped with a warning, never failed.
# required — true: a non-zero exit fails the run. false: advisory.
# note — one line of context, echoed when the lint runs.
[[lint]]
name = "readability"
globs = ["**/*.md", "**/*.mdx"]
command = "python3 {skill}/scripts/readability.py {files}"
required = true
note = "8th-grade gate; repeated technical terms down-weighted"
[[lint]]
name = "markdown"
globs = ["**/*.md", "**/*.mdx"]
command = "python3 {skill}/scripts/markdown_lint.py {files}"
required = true
note = "house Markdown/MDX rules, plus markdownlint-cli2 when installed"
[[lint]]
name = "mermaid"
globs = ["**/*.md", "**/*.mdx", "**/*.mmd", "**/*.mermaid"]
command = "python3 {skill}/scripts/mermaid_lint.py {files}"
required = true
note = "structural diagram lint; passes when a file has no diagrams"
[[lint]]
name = "prose"
globs = ["**/*.md", "**/*.mdx"]
command = "python3 {skill}/scripts/prose_lint.py {files}"
required = true
note = "Vale/Proselint/term-consistency are advisory; only a dead external link fails"
[[lint]]
name = "voice"
globs = ["**/*.md", "**/*.mdx"]
command = "python3 {skill}/scripts/voice_lint.py {files}"
required = false
note = "flags phrasing addressed to the prompter instead of the reader — see references/natural-voice.md"
[[lint]]
name = "spelling"
globs = ["**/*.md", "**/*.mdx"]
command = "codespell --ignore-words {skill}/scripts/codespell-ignore.txt {files}"
required = false
note = "advisory; add domain words to scripts/codespell-ignore.txt"