Files
knowledge-base/audit/2026-04-18-health.md
dttb 4508bc7339 kb-health: объективная метрика качества KB (karpathy-style val_bpb)
6 категорий штрафов со взвешенной суммой:
- broken_wikilinks (×10) — [[foo]] не ведёт никуда
- broken_paths (×10) — [text](./foo.md) не существует
- missing_frontmatter (×3) — .md без frontmatter-заголовка
- orphan_files (×2) — нет входящих wikilinks и не в служебных папках
- undated_todos (×1) — "- [ ]" без YYYY-MM-DD
- duplicate_basenames (×5) — одинаковое имя в разных папках

Baseline сегодня: score=493 (158 файлов).
Выход: audit/DATE-health.md (человекочит) + audit/health-latest.json (для agent-loop).

False-positives зачинены:
- wikilinks внутри backticks/fenced code игнорим
- ../ и ./ пути резолвятся от файла-источника
- CLAUDE.md/README.md не требуют frontmatter
2026-04-18 20:14:43 +03:00

141 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
date: 2026-04-18
type: audit
source: kb-health.py
score: 493
tags: [audit, health, metric]
---
# KB health — 2026-04-18
**Score (меньше = лучше): `493`**
Проверено файлов: 158
## Разбивка
| Категория | Кол-во | Вес | Штраф |
|---|---:|---:|---:|
| broken_wikilinks | 0 | 10 | 0 |
| broken_paths | 4 | 10 | 40 |
| missing_frontmatter | 70 | 3 | 210 |
| orphan_files | 90 | 2 | 180 |
| undated_todos | 48 | 1 | 48 |
| duplicate_basenames | 3 | 5 | 15 |
| **ИТОГО** | | | **493** |
## Битые relative-пути
| Откуда | Путь |
|---|---|
| `decisions/2026-04-14-niikn-openwrt-awg-fix.md` | `/root/.claude/knowledge-base/projects/niikn/openwrt-bypass.md` |
| `decisions/2026-04-14-niikn-openwrt-awg-fix.md` | `/root/.claude/projects/-root/memory/niikn-vpn-status.md` |
| `projects/dttb/spaceweb-dns.md` | `feedback_spaceweb_dns.md` |
| `claude-memory/niikn-vpn-status.md` | `/root/.claude/knowledge-base/projects/niikn/openwrt-bypass.md` |
## Без frontmatter (70)
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
- `decisions/2026-03-03-mailserver-setup-scenario.md`
- `decisions/2026-04-16-unifi-migration-peredelki.md`
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
- `decisions/2026-03-04-matrix-niikn-setup.md`
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
- `decisions/2026-04-17-code-server-upgrade.md`
- `notes/2026-02-26-session-summary.md`
- `notes/2026-02-26-knowledge-base-setup.md`
- `notes/2026-02-26-full-session-log.md`
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
- `projects/clawdbot-bots.md`
- `projects/bitrix-sites.md`
- `projects/infrastructure-overview.md`
- `projects/homelab-proxmox.md`
- `projects/video-surveillance.md`
- `projects/all-projects-summary.md`
- `projects/unresolved-issues.md`
- `projects/nextcloud.md`
- `projects/dttb/agentdvr-home.md`
- `projects/dttb/mailcow-dttb.md`
- `projects/dttb/netbird-inventory.md`
- `projects/dttb/npm-proxy-hosts.md`
- `projects/dttb/gitea.md`
- `projects/dttb/video-surveillance-report.md`
- `projects/dttb/network-topology.md`
- `projects/dttb/server1c.md`
- `projects/dttb/npm-homelab.md`
- `projects/dttb/openclaw.md`
- ... +40 ещё
## Orphan — без бэклинков (90)
_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._
- `decisions/2026-04-17-peredelki-podkop-stability-fix.md`
- `decisions/2026-03-03-mailserver-setup-scenario.md`
- `decisions/2026-04-16-unifi-migration-peredelki.md`
- `decisions/2026-04-14-niikn-openwrt-awg-fix.md`
- `decisions/2026-03-04-matrix-niikn-setup.md`
- `decisions/2026-02-26-clawdbot-129-cliproxy-fix.md`
- `decisions/README.md`
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md`
- `decisions/2026-04-17-code-server-upgrade.md`
- `notes/2026-02-26-session-summary.md`
- `notes/2026-02-26-knowledge-base-setup.md`
- `notes/README.md`
- `notes/2026-02-26-full-session-log.md`
- `notes/2026-02-26-claude-code-session-clawdbot-fix.md`
- `projects/clawdbot-bots.md`
- `projects/bitrix-sites.md`
- `projects/infrastructure-overview.md`
- `projects/homelab-proxmox.md`
- `projects/video-surveillance.md`
- `projects/all-projects-summary.md`
- `projects/unresolved-issues.md`
- `projects/nextcloud.md`
- `projects/krasnogorsk/README.md`
- `projects/dttb/agentdvr-home.md`
- `projects/dttb/mailcow-dttb.md`
- `projects/dttb/netbird-inventory.md`
- `projects/dttb/gitea.md`
- `projects/dttb/video-surveillance-report.md`
- `projects/dttb/network-topology.md`
- `projects/dttb/server1c.md`
- ... +60 ещё
## TODO без даты (48 шт в 12 файлах)
- `projects/niikn/changelog.md` — 12 шт
- `projects/niikn/NIIKN-ChangeLog.md` — 6 шт
- `projects/niikn/matrix.md` — 5 шт
- `projects/dttb/nextcloud-talk-bot/README.md` — 5 шт
- `daily/2026-04-19.md` — 5 шт
- `claude-memory/mas-niikn.md` — 5 шт
- `decisions/2026-04-16-unifi-migration-peredelki.md` — 4 шт
- `projects/niikn/README.md` — 2 шт
- `decisions/2026-04-14-openclaw-claude-code-pipeline.md` — 1 шт
- `projects/dttb/mailcow-dttb.md` — 1 шт
- `daily/2026-04-17.md` — 1 шт
- `templates/daily-note.md` — 1 шт
## Дубликаты имён (3)
- `README.md`:
- `README.md`
- `decisions/README.md`
- `notes/README.md`
- `projects/krasnogorsk/README.md`
- `projects/dttb/README.md`
- `projects/glavtorg/README.md`
- `projects/niikn/README.md`
- `projects/dttb/nextcloud-talk-bot/README.md`
- `snippets/README.md`
- `scripts/README.md`
- `nextcloud.md`:
- `projects/nextcloud.md`
- `projects/dttb/nextcloud.md`
- `proxmox-inventory.md`:
- `projects/dttb/proxmox-inventory.md`
- `projects/mmfb/proxmox-inventory.md`
---
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*