# Lint registry for scripts/lint.py — the extension point.
# Add a lint: append a [[lint]] block. No code changes needed.
# name — shown in the summary table.
# globs — files this lint applies to. A lint whose file type didn't
# 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.
# This skill's other scripts (debt_scanner.py, tech_debt_analyzer.py,
# architecture_diagram_generator.py, dependency_analyzer.py,
# project_architect.py, project_scaffolder.py, code_quality_analyzer.py,
# ecosystem_analyzer.py, format_detector.py, inventory.py,
# report_generator.py, security_assessor.py, stack_comparator.py,
# tco_calculator.py, migration_analyzer.py, debt_prioritizer.py,
# debt_dashboard.py) are generative/analytical tools, not file-change
# validators — they stay separate SKILL.md entrypoints, same reasoning as
# backend's verify_scaffold.sh.
globs = [ " **/adr-*.md " , " **/ADR-*.md " ]
command = " bash {skill}/scripts/lint_adr.sh {files} "
note = " house ADR skeleton (frontmatter id/status + Decision/Why/Applies-when headings), no unresolved [TODO]/[TBD] in a non-draft doc "
name = " comparison-shape "
globs = [ " **/comparison*.md " , " **/*-comparison.md " , " **/*-evaluation.md " ]
command = " bash {skill}/scripts/lint_comparison.sh {files} "
note = " consistent criteria columns across every candidate, no lopsided/blank cells, a real Trade-offs/Consequences section (not prose-sniffed keywords) "
name = " workspace-config "
globs = [ " **/pnpm-workspace.yaml " , " **/turbo.json " , " **/nx.json " , " **/package.json " ]
command = " bash {skill}/scripts/lint_workspace_config.sh {files} "
note = " valid JSON/YAML, workspace glob paths resolve — advisory since not every package.json is a monorepo root "