kb-health
Lint and health-check the knowledge base. Finds orphan pages, missing cross-references, stale claims, broken wiki-links, and regenerates the index.
Best use case
kb-health is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
It is a strong fit for teams already working in Codex.
Lint and health-check the knowledge base. Finds orphan pages, missing cross-references, stale claims, broken wiki-links, and regenerates the index.
Teams using kb-health should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/kb-health/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How kb-health Compares
| Feature / Agent | kb-health | Standard Approach |
|---|---|---|
| Platform Support | Codex | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Lint and health-check the knowledge base. Finds orphan pages, missing cross-references, stale claims, broken wiki-links, and regenerates the index.
Which AI agents support this skill?
This skill is designed for Codex.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# KB Health
Audit the knowledge base for structural and content issues. Reports problems and, with `--fix`, repairs what can be fixed automatically (broken links, missing index entries). Human review is required for content issues (stale claims, empty sections).
## Triggers
- "check KB health" → full audit
- "find orphan pages" → orphan check only
- "regenerate KB index" → `--index-only`
- `/kb-health` → direct invocation
## Parameters
### `--path <subtree>` (optional)
Scope the check to a subdirectory (e.g., `--path .aiwg/kb/entities/`). Defaults to full KB root.
### `--kb <path>` (optional)
Root of the knowledge base. Defaults to `.aiwg/kb/`.
### `--fix` (optional)
Automatically repair issues that are safe to fix without human judgment:
- Remove references to confirmed-missing pages from Sources tables
- Add pages missing from the index
- Normalize slug inconsistencies (spaces → hyphens in filenames)
Does NOT auto-fix: empty required sections, stale claim dates, ambiguous duplicates.
### `--index-only` (optional)
Skip all checks; only regenerate `index.md`.
---
## Checks
### 1. Orphan Pages
An orphan is a page with no incoming `[[wiki-link]]` references from any other KB page.
Procedure:
1. Collect all `.md` files under `<kb>/`.
2. For each file, extract all `[[...]]` references.
3. Build an inverted index: page → set of pages that link to it.
4. Pages with zero incoming links are orphans.
Orphans in `sources/` are less critical (sources are often terminal nodes). Report them separately.
### 2. Broken Wiki-Links
For every `[[link-target]]` found in any KB page:
1. Derive the expected file path (slug → filename in each subdirectory).
2. Check whether the file exists.
3. If not: report as a broken link with the containing file and line number.
With `--fix`: remove confirmed-broken links from Sources tables. Flag broken links in prose sections for manual review (do not silently remove).
### 3. Empty Required Sections
Templates define required sections (Overview, Definition, Key Takeaways, etc.).
Detect pages where a required section header exists but the body is a placeholder (`_..._` or a single empty line).
Report as warnings, not errors. Do not auto-fix content.
### 4. Stale Pages
A page is considered stale if:
- Its `_Last updated:` date is more than 180 days ago, AND
- At least one source it references was published after that date (detectable via source summary dates)
Report stale pages as advisory — staleness is informational, not a structural error.
### 5. Duplicate Slugs
Detect files with the same normalized slug in different subdirectories (e.g., `entities/python.md` and `concepts/python.md`). These may be legitimate or accidental duplicates. Report all cases; do not auto-resolve.
---
## Index Regeneration
Always regenerate `<kb>/index.md` at the end of a health check run (or when `--index-only` is used).
The index lists all KB pages grouped by directory with their first-line description (the `>` blockquote line from templates):
```markdown
# Knowledge Base Index
_Generated: YYYY-MM-DD — N pages_
## Entities (N)
- [Entity Name](entities/entity-name.md) — type · domain
## Concepts (N)
- [Concept Name](concepts/concept-name.md) — category · domain
## Sources (N)
- [Source Title](sources/source-slug.md) — type · author · date
## Comparisons (N)
- [A vs B](comparisons/a-vs-b.md) — purpose
## Syntheses (N)
- [Synthesis Title](syntheses/synthesis-slug.md) — type · confidence
```
---
## Report Format
```
KB Health Report — YYYY-MM-DD
Root: .aiwg/kb/
Pages scanned: N
ERRORS (must fix)
Broken links: N
entities/foo.md:12 — [[missing-page]] not found
WARNINGS (review recommended)
Orphan pages: N
sources/old-article.md — no incoming links
Empty sections: N
concepts/bar.md — Definition section is placeholder
Stale pages: N
entities/baz.md — last updated 2024-01-01 (>180 days)
INFO
Duplicate slugs: N
entities/python.md and concepts/python.md share slug "python"
Index regenerated: .aiwg/kb/index.md (N entries)
```
---
## Scope Limits
- Read-only by default. `--fix` enables targeted writes; `--index-only` writes only `index.md`.
- Do not delete any pages, even if they appear to be duplicates. Report and let the human decide.
- Maximum pages scanned per run: 500. If KB exceeds this, use `--path` to scope.
## References
- @$AIWG_ROOT/agentic/code/frameworks/knowledge-base/templates/entity-page.md
- @$AIWG_ROOT/agentic/code/frameworks/knowledge-base/templates/concept-page.md
- @$AIWG_ROOT/agentic/code/frameworks/knowledge-base/templates/source-summary.md
- @$AIWG_ROOT/agentic/code/frameworks/knowledge-base/skills/kb-ingest/SKILL.mdRelated Skills
workspace-health
Assess workspace alignment and recommend cleanup or realignment actions at key lifecycle transition points
project-health-check
Analyze overall project health and metrics
corpus-health
Report on research corpus health, completeness, and integrity
codebase-health
Scan source code and report agent-readiness metrics with actionable recommendations
aiwg-orchestrate
Route structured artifact work to AIWG workflows via MCP with zero parent context cost
venv-manager
Create, manage, and validate Python virtual environments. Use for project isolation and dependency management.
pytest-runner
Execute Python tests with pytest, supporting fixtures, markers, coverage, and parallel execution. Use for Python test automation.
vitest-runner
Execute JavaScript/TypeScript tests with Vitest, supporting coverage, watch mode, and parallel execution. Use for JS/TS test automation.
eslint-checker
Run ESLint for JavaScript/TypeScript code quality and style enforcement. Use for static analysis and auto-fixing.
repo-analyzer
Analyze GitHub repositories for structure, documentation, dependencies, and contribution patterns. Use for codebase understanding and health assessment.
pr-reviewer
Review GitHub pull requests for code quality, security, and best practices. Use for automated PR feedback and approval workflows.
YouTube Acquisition
yt-dlp patterns for acquiring content from YouTube and video platforms