Files changed: engine/.embcache.json engine/changelog.md engine/lint-report.md vault/.trash/2026-06-19.md vault/docs/hardware/environment.md vault/docs/hardware/ip-allocation.md vault/docs/matrix/archivist.md vault/docs/matrix/matrix_host.md vault/docs/matrix/mautrix_signal.md vault/docs/matrix/synapse.md vault/docs/matrix/synapse_retention_discovery.md vault/docs/navi/cc-rules.md vault/docs/navi/deployment.md vault/docs/navi/themes.md vault/docs/services/ots-setup.md vault/docs/services/services.md vault/docs/services/usenet.md vault/docs/software/authentik.md vault/docs/software/caddy.md vault/docs/software/central.md vault/docs/software/dns.md vault/docs/software/geo-tools.md vault/docs/software/navi.md vault/docs/software/recon.md vault/docs/software/searxng.md vault/glossary.md vault/notes/echo6-landing-page-data-export.md vault/notes/ia-download-queue.md vault/projects/advbbs-project.md vault/projects/argus.md vault/projects/deploy-livesync.md vault/projects/fleet-patch-audit.md vault/projects/fleet-platform-baseline.md vault/projects/matrix-synapse-deployment.md vault/projects/meshai-config-hot-apply.md vault/projects/meshai-region-routing-plan.md vault/projects/meshai.md vault/projects/meshcore-transport.md vault/projects/meshtastic-headscale-runbook.md vault/projects/mmud-project.md vault/projects/nominatim-v5-reimport.md vault/runbooks/add-peertube-channel.md vault/runbooks/authentik-access-groups.md vault/runbooks/authentik-create-invitation.md vault/runbooks/authentik-oidc-application.md vault/runbooks/authentik-upgrade.md vault/runbooks/central-deploy-cutover.md vault/runbooks/ct-runbook.md vault/runbooks/edge2-access-reference.md vault/runbooks/expose-service-contabo.md vault/runbooks/expose-service-edge2.md vault/runbooks/expose-service-home.md vault/runbooks/fleet-magicdns-resolved-migration.md vault/runbooks/headless-browser-page-verification.md vault/runbooks/headscale-oidc-boot-order.md vault/runbooks/headscale-onboard-node.md vault/runbooks/ia-cli-reference.md vault/runbooks/ia-download-mirror.md vault/runbooks/idahomesh-bridge-setup.md vault/runbooks/idahomesh-vpn-device-setup.md vault/runbooks/lxc-service-migration.md vault/runbooks/mailcow-create-mailbox.md vault/runbooks/meshai-prod-compose-override.md vault/runbooks/meshmonitor-password-reset.md vault/runbooks/meshtastic-sidecar-node.md vault/runbooks/meshtasticd-sim-nodes-runbook.md vault/runbooks/nordvpn-lxc.md vault/runbooks/peertube-remote-runner.md vault/runbooks/pg-backup.md vault/runbooks/pi-nas-omv-runbook.md vault/runbooks/pipeline-patterns.md vault/runbooks/proxmox-create-ubuntu-vm.md vault/runbooks/proxmox-onboard-node.md vault/runbooks/pymc-repeater-kiss-tnc-reenumeration.md vault/runbooks/recon-operations.md vault/runbooks/recon-service-integration.md vault/runbooks/syncthing-add-node.md vault/runbooks/toc-cortex-pve9.2-update.md vault/session-resume/SESSION-HANDOFF-meshai-test.md |
||
|---|---|---|
| .. | ||
| .githooks | ||
| lib | ||
| prompts | ||
| .embcache.json | ||
| bootstrap.sh | ||
| changelog.md | ||
| config.yaml | ||
| lint-report.md | ||
| Modelfile | ||
| README.md | ||
| sweep-full.log | ||
| sweep.sh | ||
| vocab.json | ||
Echo6 Vault Engine
Self-contained maintenance engine for the Obsidian knowledge vault at
/home/zvx/projects/.ref/vault/. Runs entirely on cortex (RTX A4000).
What it does
| Layer | Tool | Job |
|---|---|---|
| Tagger | Qwen2.5-7B-Instruct (Ollama) | Classifies docs; assigns topic tags, type, entity refs |
| Embeddings | bge-m3 via TEI (reused service) | Embeds docs into Qdrant for similarity / related links |
| Lint | lib/lint.py (deterministic) |
Enforces frontmatter schema; fixes safe violations automatically |
| Agent | lib/agent.py |
Orchestrates tagger + embeddings over changed docs |
| Sweep | sweep.sh |
Daily entry point; GPU guard, lint, agent, changelog |
File layout
engine/
config.yaml — single source of truth (endpoints, vocab, schema, schedule)
Modelfile — pinned vault-tagger build (qwen2.5:7b-instruct-q8_0, temp 0.1)
bootstrap.sh — idempotent setup: verify services, build model, install cron
sweep.sh — daily maintenance sweep (called by cron)
prompts/
system.md — canonical system prompt (source of truth; synced into Modelfile)
fewshot.md — tagged examples for prompt engineering (added in Step 5)
lib/
vocab_gen.py — generates vocab.json from live infra inventory (Step 3)
lint.py — deterministic frontmatter linter (Step 4)
agent.py — tagger + embeddings agent (Step 5)
vocab.json — generated entity lexicon (not committed; built by vocab_gen.py)
changelog.md — append-only audit log of all automated changes
How it runs
- Daily cron (
0 9 * * *UTC):sweep.shchecks GPU VRAM, runs lint, runs agent over docs changed since last sweep, appends tochangelog.md. - Git pre-commit hook (Step 4): runs lint against staged vault docs before commit.
- Manual:
./sweep.shorpython3 lib/agent.py --fullto reprocess all docs.
Setup
./bootstrap.sh
bootstrap.sh is idempotent and documents every step. Base model weights (~8 GB) are
pulled by bootstrap — they are not committed to the repo. Rebuilding from scratch:
./bootstrap.sh # pulls qwen2.5:7b-instruct-q8_0, builds vault-tagger, installs cron
Vocabulary
- Tier 1 — topic tags: stable list in
config.yamlundertopic_categories - Tier 2 — entity lexicon: generated into
vocab.jsonbylib/vocab_gen.pyfrom live Proxmox, Docker, and Headscale inventory. Regenerate anytime with:python3 lib/vocab_gen.py
Configuration
All tunables are in config.yaml. Key settings:
behavior.auto_apply— write changes directly (true) or dry-run only (false)behavior.confidence_threshold— below this, changes are flagged not appliedschedule.defer_if_gpu_busy_mib— skip sweep if GPU is already under load