---
date: 2026-06-28
type: audit
source: kb-health.py
score: 2800
tags: [audit, health, metric]
---

# KB health — 2026-06-28

**Score (меньше = лучше): `2800`**
Проверено файлов: 1754

## Разбивка

| Категория | Кол-во | Вес | Штраф |
|---|---:|---:|---:|
| broken_wikilinks | 31 | 10 | 310 |
| broken_paths | 171 | 10 | 1710 |
| missing_frontmatter | 25 | 3 | 75 |
| orphan_files | 68 | 2 | 136 |
| undated_todos | 534 | 1 | 534 |
| duplicate_basenames | 7 | 5 | 35 |
| **ИТОГО** | | | **2800** |

## Битые wikilinks

| Откуда | `[[таргет]]` |
|---|---|
| `decisions/2026-06-15-unifi-controller-homelab.md` | `[[feedback_dttb_dns_split_view]]` |
| `decisions/2026-06-26-authentik-sso-deploy.md` | `[[project_deapple_migration]]` |
| `decisions/2026-06-08-swarmclaw-lxc135-deploy.md` | `[[../snippets/spaceweb-dns-api]]` |
| `decisions/2026-05-26-omni-domain-and-update.md` | `[[feedback_spaceweb_dns_desync]]` |
| `decisions/2026-06-04-lipki-deco-p9-powerline-degradation.md` | `[[../claude-memory/feedback_lipki_deco_powerline]]` |
| `decisions/2026-05-23-glavtorg-autologon-off.md` | `[[feedback_vmware_workstation_session]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_omniroute_update]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/project_german_hermes]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` |
| `decisions/2026-06-20-german-hermes-out-of-usage.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` |
| `notes/claude/2026-06-22-045321-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md` | `[[project_swarmclaw]]` |
| `notes/claude/2026-06-22-013250-на-proxmox-homelab-установи-hermes-agent-я-его-буд.md` | `[[feedback_antigravity_onboarding]]` |
| `projects/openwrt-4/credentials.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag]]` |
| `projects/dttb/proxmox-pve-147.md` | `[[../../claude-memory/project_alexandr_assistant]]` |
| `projects/dttb/finland-hostkey-vps.md` | `[[../../claude-memory/finland-vps-security]]` |
| `projects/benilux/kp-alexandr-umny-server.md` | `[[../../claude-memory/project_alexandr_assistant]]` |
| `projects/niikn/maul-pc.md` | `[[project_niikn_maxim_assistant]]` |
| `projects/niikn/maul-pc.md` | `[[../../snippets/netbird-claude-install.ps1]]` |
| `projects/niikn/maul-pc.md` | `[[../../snippets/clients/]]` |
| `projects/niikn/desktop-jt9qee4.md` | `[[../../snippets/netbird-claude-install.ps1]]` |
| `projects/niikn/desktop-35c8vmi.md` | `[[../../snippets/netbird-claude-install.ps1]]` |
| `projects/buzharovo/podkop-router.md` | `[[buzharovo-router]]` |
| `projects/buzharovo/podkop-router.md` | `[[reference_infra]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 0]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 1]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 2]]` |
| `projects/dttb/graphify-out/GRAPH_REPORT.md` | `[[_COMMUNITY_Community 3]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_busybox_ip_br_flag\]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_iphone_breaks_fakeip\]]` |
| `snippets/podkop-reference.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_root_cause_recurring]]` |
| `snippets/podkop-fakeip-diagnostics.md` | `[[../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_openclaw_crash_loop]]` |

## Битые relative-пути

| Откуда | Путь |
|---|---|
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_superwhisper_no_license.md` |
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/reference_groq_api.md` |
| `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_superwhisper_no_license.md` |
| `notes/ru-geoblocked-services.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_win11_unattended_upgrade.md` |
| `notes/ru-geoblocked-services.md` | `../../.claude/projects/-Users-ai-knowledge-base/memory/feedback_nspd_blocks_mts.md` |
| `notes/claude/2026-06-23-185108-привет.md` | `projects/dttb/openwrt-router.md` |
| `notes/claude/2026-06-23-185108-привет.md` | `snippets/podkop-reference.md` |
| `notes/claude/2026-04-21-200915-охотхозяйство-с-openwrt-на-orange-pi-нужно-настрои.md` | `projects/dttb/vps-swtest.md` |
| `notes/claude/2026-05-21-102751-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-amnezia-reinstall.md` |
| `notes/claude/2026-04-24-194555-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-04-20-113423-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `decisions/2026-04-28-rustdesk-lejianwen-pro-migration.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/rustdesk.md` |
| `notes/claude/2026-04-28-122042-промт-для-claude-code-развёртывание-rustdesk-api-s.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-04-30-221054-найди-инфу-вчера-оксане-делали-доступ-через-рустде.md` | `projects/niikn/office-pc.md` |
| `notes/claude/2026-04-29-153123-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/proxmox-inventory.md` |
| `notes/claude/2026-04-29-153123-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-05-29-234117-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-05-29-234117-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-inventory.md` |
| `notes/claude/2026-04-29-231939-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/happ-routing-roscomvpn.md` |
| `notes/claude/2026-06-27-230948-httpsmaildttbrudomainadmin-можешь-найти-креды.md` | `projects/dttb/mailcow-dttb.md` |
| `notes/claude/2026-05-30-105828-давай-проверим-openvrt-benelux.md` | `projects/dttb/proxmox-pve-147.md` |
| `notes/claude/2026-04-24-194322-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/clients/yaroslav-amnezia-setup.md` |
| `notes/claude/2026-04-24-194322-создай-учет-подключаемых-клиентов-со-всеми-данными.md` | `snippets/apple-id-us-on-russia.md` |
| `notes/claude/2026-05-04-100627-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/znamenskoye/network-topology-diagram.md` |
| `notes/claude/2026-04-20-115126-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/mmfb/mikrotik.md` |
| `notes/claude/2026-04-20-115126-найди-информацию-по-настройке-openwrt-и-podcop-в-н.md` | `projects/niikn/mikrotik.md` |
| `notes/claude/2026-06-19-142423-10001-установи-обновление-sh-wget-o-httpsrawgithub.md` | `projects/dttb/credentials.md` |
| `notes/claude/2026-06-19-142423-10001-установи-обновление-sh-wget-o-httpsrawgithub.md` | `projects/dttb/proxmox-inventory.md` |
| `notes/claude/2026-04-24-165527-новый-клиент-ммфб-юрий-витальевич-нужно-подключить.md` | `projects/mmfb/yuri-vitalievich.md` |
| `notes/claude/2026-05-06-210824-superwhisper-можешь-проверить-не-работает.md` | `../knowledge-base/decisions/2026-05-05-mac-dictation-groq-hammerspoon.md` |
| `notes/claude/2026-06-11-235741-npm-api-креды-не-подходят-поищу-точные-логинпароль.md` | `projects/dttb/npm-proxy-hosts.md` |
| `notes/claude/2026-05-20-195902-давай-проверим-openvrt-benelux.md` | `decisions/2026-05-20-benelux-compromise.md` |
| `notes/claude/2026-05-28-131315-нужно-в-нетбирд-найти-и-настроить-подключение-к-эт.md` | `projects/niikn/maul-pc.md` |
| `notes/claude/2026-04-29-160010-сделай-красивую-ссылку-с-локацией-финляндия-для-ha.md` | `snippets/clients/yaroslav-happ-setup.md` |
| `notes/claude/2026-05-04-085317-можешь-составлять-графические-схемы-на-dttbruhttpd.md` | `projects/dttb/network-topology-diagram.md` |
| `notes/claude/2026-06-18-134919-добей-swarmclaw-по-хэндофу.md` | `snippets/podkop-agent-runbook.md` |
| `notes/claude/2026-05-21-104248-давай-проверим-openvrt-benelux.md` | `projects/benilux/credentials.md` |
| `notes/claude/2026-06-05-123547-давай-проверим-openvrt-benelux.md` | `decisions/2026-06-05-benelux-blackout-fw4-recovery.md` |
| `notes/claude/2026-04-29-071329-на-компе-юрия-продолжим-проверь-он-сети.md` | `projects/mmfb/otchet-yuri-2026-04.md` |
| `notes/claude/2026-05-23-133737-еще-клиент-ярослав-сервера-1с-главторг-жалуется-чт.md` | `projects/glavtorg/instruction-yaroslav-autologon.md` |
| `notes/claude/2026-05-27-191956-давай-проверим-openvrt-benelux.md` | `snippets/clients/alexandr-benelux-power-recovery.md` |
| `notes/claude/2026-04-21-203517-дай-мне-команду-в-сшел-виндовс-установка-нетбирд-и.md` | `/Users/ai/.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag.md` |
| `notes/claude/2026-06-20-152229-npm-api-креды-не-подходят-поищу-точные-логинпароль.md` | `projects/backlog-current.md` |
| `notes/claude/2026-06-28-014229-httpsmaildttbrudomainadmin-можешь-найти-креды.md` | `projects/dttb/mailcow-dttb.md` |
| `notes/claude/2026-05-28-215219-102531240-администратор-ol260380eg-нужно-подключит.md` | `projects/mmfb/lionart-1c.md` |
| `notes/claude/2026-05-26-111148-нужно-на-omni-робуте-установить-ему-домен-у-тебя-е.md` | `memory/feedback_antigravity_onboarding.md` |
| `notes/claude/2026-05-26-111148-нужно-на-omni-робуте-установить-ему-домен-у-тебя-е.md` | `memory/MEMORY.md` |
| `notes/claude/2026-06-02-001742-есть-клиент-француз-у-него-есть-cudy-tr3000-с-podk.md` | `projects/openwrt-4/canal-plus-setup-runbook.md` |
| `notes/claude/2026-06-08-213054-найди-аналог-openclaw-для-меня-нужен-аркестратор-и.md` | `decisions/2026-06-08-swarmclaw-lxc135-deploy.md` |
| ... | +121 ещё |

## Без frontmatter (25)

- `decisions/2026-06-01-claude-remote-control-mobile.md`
- `decisions/2026-06-11-niikn-opyt-arhiv-100mb.md`
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
- `notes/ru-geoblocked-services.md`
- `projects/dttb/znamenskoye-log.md`
- `projects/niikn/office-pc.md`
- `projects/niikn/_kbtmp_readme.md`
- `projects/niikn/kripto-arm.md`
- `projects/niikn/_kbtmp_claude.md`
- `projects/mmfb/yuri-vitalievich.md`
- `projects/mmfb/otchet-yuri-2026-04.md`
- `projects/dttb/graphify-out/GRAPH_REPORT.md`
- `snippets/happ-vpn-client-instruction.md`
- `snippets/invoice-template.md`
- `snippets/assets/happ-routing-roscomvpn/README-upstream.md`
- `claude-memory/servicedesk-dttb.md`
- `claude-memory/benelux.md`
- `claude-memory/nextcloud-dttb.md`
- `claude-memory/nvr-fix.md`
- `claude-memory/videonablyudenie.md`
- `claude-memory/znamenskoe-home.md`
- `claude-memory/niikn-nextcloud.md`
- `claude-memory/krasnogorsk.md`
- `claude-memory/mas-niikn.md`
- `claude-memory/MEMORY.md`

## Orphan — без бэклинков (68)

_Эти файлы никто не упоминает через `[[..]]`. Кандидаты на удаление или добавление ссылок._

- `decisions/2026-05-14-buzharovo-watchdog-public-only.md`
- `decisions/2026-04-30-niikn-culture-gov-fakeip-fix.md`
- `decisions/2026-06-01-claude-remote-control-mobile.md`
- `decisions/2026-06-17-niikn-deco-p9-backhaul-degradation.md`
- `decisions/2026-05-26-server-upgrade-z6-g4.md`
- `decisions/2026-06-27-benelux-foreign-banks-eu-exit.md`
- `decisions/2026-06-21-buzharovo-mcp-1c-deploy.md`
- `decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md`
- `decisions/2026-06-11-niikn-opyt-arhiv-100mb.md`
- `decisions/2026-06-04-deapple-migration-roadmap.md`
- `decisions/2026-04-28-netbird-watchdog-lxc-132-137.md`
- `decisions/2026-05-05-mac-dictation-groq-hammerspoon.md`
- `decisions/2026-05-23-glavtorg-autologon-off.md`
- `decisions/2026-06-08-finland-vless-happ-dns-diag.md`
- `decisions/2026-05-08-buzharovo-1c-licensing-options.md`
- `decisions/2026-05-06-kb-search-overhaul.md`
- `decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md`
- `decisions/2026-06-20-german-hermes-out-of-usage.md`
- `notes/ru-geoblocked-services.md`
- `projects/openwrt-4/STATUS-2026-06-03-eod.md`
- `projects/openwrt-4/session-handoff-2026-06-02.md`
- `projects/openwrt-4/client-letter.md`
- `projects/dttb/network-topology-diagram.md`
- `projects/glavtorg/instruction-yaroslav-autologon.md`
- `projects/benilux/kp-alexandr-umny-server.md`
- `projects/niikn/mailcow.md`
- `projects/niikn/NIIKN-Infrastructure.md`
- `projects/niikn/credentials.md`
- `projects/niikn/changelog.md`
- `projects/niikn/_kbtmp_tpl_decision.md`
- ... +38 ещё

## TODO без даты (534 шт в 99 файлах)

- `projects/backlog-current.md` — 39 шт
- `decisions/2026-06-04-deapple-migration-roadmap.md` — 13 шт
- `decisions/2026-04-30-rustdesk-pre-prod-audit.md` — 13 шт
- `projects/lipki/README.md` — 11 шт
- `templates/vpn-client.md` — 7 шт
- `decisions/2026-05-26-server-upgrade-z6-g4.md` — 6 шт
- `decisions/2026-04-29-rustdesk-client-deployment-package.md` — 6 шт
- `projects/buzharovo/severny-les-bot.md` — 6 шт
- `notes/claude/2026-05-30-223109-session.md` — 5 шт
- `notes/claude/2026-05-31-230412-session.md` — 5 шт
- `notes/claude/2026-06-01-115908-session.md` — 5 шт
- `notes/claude/2026-05-31-212135-session.md` — 5 шт
- `notes/claude/2026-05-31-150934-session.md` — 5 шт
- `notes/claude/2026-06-15-203254-session.md` — 5 шт
- `notes/claude/2026-05-30-143711-session.md` — 5 шт
- `notes/claude/2026-05-31-232509-session.md` — 5 шт
- `notes/claude/2026-06-08-161105-session.md` — 5 шт
- `notes/claude/2026-06-07-235211-session.md` — 5 шт
- `notes/claude/2026-06-08-160130-session.md` — 5 шт
- `notes/claude/2026-06-08-002741-session.md` — 5 шт

## Дубликаты имён (7)

- `README.md`:
  - `README.md`
  - `decisions/README.md`
  - `notes/README.md`
  - `projects/znamenskoye/README.md`
  - `projects/openwrt-4/README.md`
  - `projects/dttb/README.md`
  - `projects/glavtorg/README.md`
  - `projects/benilux/README.md`
  - `projects/vishnevyy-sad/README.md`
  - `projects/sergey/README.md`
  - `projects/niikn/README.md`
  - `projects/lipki/README.md`
  - `projects/krasnogorsk/README.md`
  - `projects/mmfb/README.md`
  - `projects/buzharovo/README.md`
  - `projects/peredelki/README.md`
  - `projects/zelenograd/README.md`
  - `projects/dttb/nextcloud-talk-bot/README.md`
  - `snippets/README.md`
  - `snippets/mac-dictation/README.md`
  - `scripts/README.md`
- `nextcloud.md`:
  - `projects/nextcloud.md`
  - `projects/dttb/nextcloud.md`
- `network-topology-diagram.md`:
  - `projects/znamenskoye/network-topology-diagram.md`
  - `projects/dttb/network-topology-diagram.md`
  - `projects/niikn/network-topology-diagram.md`
- `credentials.md`:
  - `projects/openwrt-4/credentials.md`
  - `projects/dttb/credentials.md`
  - `projects/benilux/credentials.md`
  - `projects/niikn/credentials.md`
  - `projects/peredelki/credentials.md`
  - `projects/dttb/ai-assistant-pilot/credentials.md`
- `proxmox-inventory.md`:
  - `projects/dttb/proxmox-inventory.md`
  - `projects/mmfb/proxmox-inventory.md`
- `server1c.md`:
  - `projects/dttb/server1c.md`
  - `projects/buzharovo/server1c.md`
- `mikrotik.md`:
  - `projects/niikn/mikrotik.md`
  - `projects/mmfb/mikrotik.md`

---
*Генерируется `scripts/kb-health.py`. JSON-версия в `audit/health-latest.json` для agent-loop.*