chore: sync vault to ~/cosmic-brain (Obsidian-registered path)
This commit is contained in:
172
skills/wiki-lint/SKILL.md
Normal file
172
skills/wiki-lint/SKILL.md
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
name: wiki-lint
|
||||
description: >
|
||||
Health check the Obsidian wiki vault. Finds orphan pages, dead wikilinks, stale claims,
|
||||
missing cross-references, frontmatter gaps, and empty sections. Creates or updates
|
||||
Dataview dashboards. Generates canvas maps. Triggers on: "lint", "health check",
|
||||
"clean up wiki", "check the wiki", "wiki maintenance", "find orphans", "wiki audit".
|
||||
allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
|
||||
---
|
||||
|
||||
# wiki-lint — Wiki Health Check
|
||||
|
||||
Run lint after every 10-15 ingests, or weekly. Ask before auto-fixing anything. Output a lint report to `wiki/meta/lint-report-YYYY-MM-DD.md`.
|
||||
|
||||
---
|
||||
|
||||
## Lint Checks
|
||||
|
||||
Work through these in order:
|
||||
|
||||
1. **Orphan pages** — wiki pages with no inbound wikilinks. They exist but nothing points to them.
|
||||
2. **Dead links** — wikilinks that reference a page that does not exist.
|
||||
3. **Stale claims** — assertions on older pages that newer sources have contradicted or updated.
|
||||
4. **Missing pages** — concepts or entities mentioned in multiple pages but lacking their own page.
|
||||
5. **Missing cross-references** — entities mentioned in a page but not linked.
|
||||
6. **Frontmatter gaps** — pages missing required fields (type, status, created, updated, tags).
|
||||
7. **Empty sections** — headings with no content underneath.
|
||||
8. **Stale index entries** — items in `wiki/index.md` pointing to renamed or deleted pages.
|
||||
|
||||
---
|
||||
|
||||
## Lint Report Format
|
||||
|
||||
Create at `wiki/meta/lint-report-YYYY-MM-DD.md`:
|
||||
|
||||
```markdown
|
||||
---
|
||||
type: meta
|
||||
title: "Lint Report YYYY-MM-DD"
|
||||
created: YYYY-MM-DD
|
||||
updated: YYYY-MM-DD
|
||||
tags: [meta, lint]
|
||||
status: developing
|
||||
---
|
||||
|
||||
# Lint Report — YYYY-MM-DD
|
||||
|
||||
## Summary
|
||||
- Pages scanned: N
|
||||
- Issues found: N
|
||||
- Auto-fixed: N
|
||||
- Needs review: N
|
||||
|
||||
## Orphan Pages
|
||||
- [[Page Name]] — no inbound links. Suggest: link from [[Related Page]] or delete.
|
||||
|
||||
## Dead Links
|
||||
- [[Missing Page]] — referenced in [[Source Page]] but does not exist. Suggest: create stub or remove link.
|
||||
|
||||
## Missing Pages
|
||||
- "concept name" — mentioned in [[Page A]], [[Page B]], [[Page C]]. Suggest: create a concept page.
|
||||
|
||||
## Frontmatter Gaps
|
||||
- [[Page Name]] — missing fields: status, tags
|
||||
|
||||
## Stale Claims
|
||||
- [[Page Name]] — claim "X" may conflict with newer source [[Newer Source]].
|
||||
|
||||
## Cross-Reference Gaps
|
||||
- [[Entity Name]] mentioned in [[Page A]] without a wikilink.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
Enforce these during lint:
|
||||
|
||||
| Element | Convention | Example |
|
||||
|---------|-----------|---------|
|
||||
| Filenames | Title Case with spaces | `Machine Learning.md` |
|
||||
| Folders | lowercase with dashes | `wiki/data-models/` |
|
||||
| Tags | lowercase, hierarchical | `#domain/architecture` |
|
||||
| Wikilinks | match filename exactly | `[[Machine Learning]]` |
|
||||
|
||||
Filenames must be unique across the vault. Wikilinks work without paths only if filenames are unique.
|
||||
|
||||
---
|
||||
|
||||
## Writing Style Check
|
||||
|
||||
During lint, flag pages that violate the style guide:
|
||||
|
||||
- Not declarative present tense ("X basically does Y" instead of "X does Y")
|
||||
- Missing source citations where claims are made
|
||||
- Uncertainty not flagged with `> [!gap]`
|
||||
- Contradictions not flagged with `> [!contradiction]`
|
||||
|
||||
---
|
||||
|
||||
## Dataview Dashboard
|
||||
|
||||
Create or update `wiki/meta/dashboard.md` with these queries:
|
||||
|
||||
````markdown
|
||||
---
|
||||
type: meta
|
||||
title: "Dashboard"
|
||||
updated: YYYY-MM-DD
|
||||
---
|
||||
# Wiki Dashboard
|
||||
|
||||
## Recent Activity
|
||||
```dataview
|
||||
TABLE type, status, updated FROM "wiki" SORT updated DESC LIMIT 15
|
||||
```
|
||||
|
||||
## Seed Pages (Need Development)
|
||||
```dataview
|
||||
LIST FROM "wiki" WHERE status = "seed" SORT updated ASC
|
||||
```
|
||||
|
||||
## Entities Missing Sources
|
||||
```dataview
|
||||
LIST FROM "wiki/entities" WHERE !sources OR length(sources) = 0
|
||||
```
|
||||
|
||||
## Open Questions
|
||||
```dataview
|
||||
LIST FROM "wiki/questions" WHERE answer_quality = "draft" SORT created DESC
|
||||
```
|
||||
````
|
||||
|
||||
---
|
||||
|
||||
## Canvas Map
|
||||
|
||||
Create or update `wiki/meta/overview.canvas` for a visual domain map:
|
||||
|
||||
```json
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1",
|
||||
"type": "file",
|
||||
"file": "wiki/overview.md",
|
||||
"x": 0, "y": 0,
|
||||
"width": 300, "height": 140,
|
||||
"color": "1"
|
||||
}
|
||||
],
|
||||
"edges": []
|
||||
}
|
||||
```
|
||||
|
||||
Add one node per domain page. Connect domains that have significant cross-references. Colors map to the CSS scheme: 1=blue, 2=purple, 3=yellow, 4=orange, 5=green, 6=red.
|
||||
|
||||
---
|
||||
|
||||
## Before Auto-Fixing
|
||||
|
||||
Always show the lint report first. Ask: "Should I fix these automatically, or do you want to review each one?"
|
||||
|
||||
Safe to auto-fix:
|
||||
- Adding missing frontmatter fields with placeholder values
|
||||
- Creating stub pages for missing entities
|
||||
- Adding wikilinks for unlinked mentions
|
||||
|
||||
Needs review before fixing:
|
||||
- Deleting orphan pages (they might be intentionally isolated)
|
||||
- Resolving contradictions (requires human judgment)
|
||||
- Merging duplicate pages
|
||||
Reference in New Issue
Block a user