Lint skills

Four skills scan the wiki for problems. Findings feed back into compile.

Lint findings are not user-facing reports. They are the orchestrator's queue. Each finding generates a follow-up action: recompile a paper, fill a gap, fix a broken link.

Gaps

Identifies missing dimensions in entity articles. A cohort with 6 of 21 dimensions covered has 15 gaps. The gaps skill ranks them by impact: which missing dimension would most change a buyer's scoring decision?

Source: .claude/skills/lint/gaps/SKILL.md

Consistency

Checks for contradictions between entities. Same cohort referenced with different N values. Same investigator at two different institutions without explanation. Same platform with conflicting technical specs.

Source: .claude/skills/lint/consistency/SKILL.md

Staleness

Flags entities that may be outdated. Checks provenance.last_compiled against a staleness threshold. Flags entities whose source papers have been updated or retracted since compilation.

Source: .claude/skills/lint/staleness/SKILL.md

Connections

Finds latent links. Two cohorts from the same institution that do not reference each other. An investigator mentioned in a paper body but not linked. A platform used by multiple cohorts that could share QC protocols.

Source: .claude/skills/lint/connections/SKILL.md

Running lint

# Full lint scan
vcro lint

# Python scanner (generates the raw scan JSON)
python3 scripts/lint_scan.py --wiki store/wiki --raw store/raw \
  --out store/lint/$(date +%Y-%m-%d)_scan.json

The Python scanner produces a structured JSON scan. The four lint skills read the scan and classify findings. The orchestrator queues the findings for compile follow-up.