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?
- Reads: all entity files,
provenance_coveragefrom frontmatter - Writes: gap findings to the lint scan output
- High-impact gaps: specimen retention (dim 15), access and consent (dim 16), collection protocol (dim 20)
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.
- Reads: entity files, cross-references between entities
- Writes: consistency findings with the conflicting quotes and source IDs
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.
- Reads: entity frontmatter dates, source metadata
- Writes: staleness findings with recommended recompile actions
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.
- Reads: entity files,
referenced_bylists,store/wiki/index/links.md - Writes: connection findings to
store/lint/{date}_graph-connections.json
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.