Worked examples that chain skills and MCP tools into a complete flow. Each one names
the skills it uses — look them up in the Reference for the full
catalog. The delegation guides need the "dispatch" table group enabled
(vdb config enable dispatch).
/skill-name — you invoke it (an agent skill)
vault_tool() — called automatically over MCP
Scenario. One thread through a whole day — work hours, then after the laptop closes, hobby hours on a separate homelab vault. The vault is the hub; agents radiate from it; you supply intent and the occasional eye-roll. Timestamps are aspirational. Each act links to its detailed guide.
☕ Morning
Somewhere a celebrity is two bites into his 3:15 a.m. breakfast, twelve minutes out from the
3:40 workout he'll caption about discipline. Your phone logs a different personal record at 3:28 —
and you are unconscious for it. A vault_status() digest shows the
overnight /loop already closed the last research note and stamped forty tool calls in
query_log before the man has even laced up. No plunge, no caption, no "who's up?" —
the reps that count ran while you recovered. You'll read about them at 8:45 like a normal
person.
Between two LinkedIn "I'm humbled to announce" posts you hit a genuinely interesting article.
You clip it with /vdb-research-assistant and a one-line instruction — "research how this
applies to our stack" — and put the phone down. A note lands in the vault with the source URL
and an open question. That's the whole interaction.
While you slept (unlike the on-call rotation), a scheduled agent — a Hermes cron or a
/loop — swept the notes flagged for research, ran each one, and wrote the findings
back as a wiki note, attributed in query_log so the morning briefing knows it's
new.
The '63 Studebaker Avanti doesn't have a touchscreen and that's the point — so at the light, a
Hermes cron runs /vdb-morning-briefing and pushes it to your phone via
the gateway (Telegram / WhatsApp / Slack): priority tasks, open incidents, expiring certs,
unhealthy services — and a summary of last night's research. You read it; the supercharger reads
the room. No one says "let's circle back."
→ Detail: Start your day
The brief flags a CVE in a dependency. You don't wait for the 14-slide security deck — you
tell Hermes to open it. /vdb-incident-response records and documents the incident;
you dispatch the patch to a background worktree agent. By the time you reach your desk, the fix
is in review.
→ Detail: Incident, end to end
🖥 The workday
vault_agent_sessions says the patch agent finished. You review its branch, run
/vdb-impact-analysis on the patched service to confirm no regressions, then merge.
/vdb-change-log records the change, the incident flips to resolved, and
/vdb-runbook-manager captures a runbook — the one future-on-call-you will thank you
for at 2 a.m.
→ Detail: Incident, end to end · Ship a change safely
A quick vault_agent_sessions(status="running"): two story agents are done (review
+ merge), one failed (re-dispatch), and one is stalled on a question — you take it over with
vdb sessions --inject and unblock it. A team that never books a 1:1.
→ Detail: Hand it to a background agent
A "quick sync" runs forty-five minutes. Before it eats your context, /vdb-handoff
stashes the half-done task to a durable note — so it survives "let's take this offline" — and
you resume exactly where you were once everyone's done aligning on alignment.
→ Detail: Stash a task for later
Something from the research sparks a feature. /vdb-po shapes it into a goal → epic →
stories, /vdb-sprint ranks them by WSJF, and the first epic's ready stories get
delegated to background agents that claim and work them in parallel. Here metric_type
is a column, not a vibe.
→ Detail: Roadmap pipeline
The end-of-day questions — what shipped, what the agents touched (query_log by
VAULT_AGENT), what's blocked, what's due tomorrow — are a few queries, not a status
meeting. On the way to the parking lot, a late story agent finishes and pings your phone; you
approve the merge from the gateway.
🏁 Evening — off the clock, onto the fun vault
The work vault goes dark. The lifted truck — the one on 40s that needs a running start at the drive-thru — gets pointed at the Thursday-night dirt oval, with Catfish riding shotgun and the Hubbard brothers following in something that shouldn't still run. The other vault — the one that doesn't pay you — wakes up, and so does its resident Hermes instance, the one you named Son of Anton. Homelab notes live in a separate vault, so one command repoints every call at it — no cross-contamination between the day job and the dirt.
vdb context use homelab # point every vdb/MCP call at the homelab vault vdb status # confirm: resolved vault = homelab, and why
Son of Anton runs the evening sweep while you're staging — no SLA, no Jira: from the pit wall you
glance at your phone between runs and /vdb-vm-health-check +
/vdb-host-inventory-sync have flagged a drifted Proxmox node and an unhealthy container;
/vdb-cert-monitor says the *.home cert expires in nine days (renew it
before Home Assistant dies and the family files a Sev-1); /vdb-network-audit finds an
unknown device on the IoT VLAN — almost certainly the new smart toaster. You thumb-type one
renewal and make your heat with thirty seconds to spare.
Roy-Lee, two trailers down and mid-argument about gear ratios, texts: "didn't you already
price the bigger GPU? what'd the idle one land at?" You don't remember; the vault does. One
vault_search() from the staging lanes pulls last month's decision note —
numbers, vendor, the part you talked yourself out of. He gets an answer; you get back in line.
You want to self-host a model. /vdb-capacity-planner reads the spare-hardware
inventory and finds the idle GPU and the RAM scattered across the fleet, then proposes where it
lands. No procurement ticket. No six-week lead time. No VP sign-off — just Catfish saying it'll
"probably draw too much off the garage circuit," which, fair.
Truck parked, fender liner one zip-tie closer to optional. /vdb-wiki-ingestion folds
the day's research and the homelab notes into durable wiki pages. Tomorrow's questions,
pre-answered — which is more than you can say for the all-hands.
vault_agent_sessions(status="running")query_log filtered by VAULT_AGENTvault_recent_changes(host="…")vault_roadmap_summary()vault_due_tasks(date="tomorrow")vault_blast_radius(nodes="…")Skills across the day: W /vdb-research-assistant,
/vdb-morning-briefing, /vdb-incident-response, /vdb-impact-analysis,
/vdb-change-log, /vdb-runbook-manager, /vdb-dispatch,
/vdb-handoff, /vdb-po, /vdb-sprint · evening:
/vdb-vm-health-check, /vdb-host-inventory-sync, /vdb-cert-monitor,
/vdb-network-audit, /vdb-capacity-planner, /vdb-wiki-ingestion —
across two vaults, stitched together by Hermes cron + the gateway.
Scenario. One command (or a scheduled job) that tells you what needs attention before you decide anything.
/vdb-morning-briefing synthesizes from vault data: priority + due tasks, open
incidents, certs nearing expiry, unhealthy services, and agent activity since the last
briefing.
Print it to the terminal, save it to the daily note, or — with Hermes — schedule a cron that runs it and pushes it to your phone through the gateway.
The briefing is a launchpad: claim a due task, open an incident, start a cert renewal, or dispatch a fix. Each routes into the guides below.
# what the briefing pulls from
vault_due_tasks(date="today")
vault_incidents(status="open")
vault_cert_expiry(days=30)
Skills: W /vdb-morning-briefing. Tools:
R vault_due_tasks, vault_incidents,
vault_cert_expiry, vault_service_query.
Scenario. You're deep in a feature. A bug surfaces that you don't want to deal with right now — but you also don't want to lose the context you just built up, or derail the feature. Capture it and move on.
Invoke /vdb-handoff — "save this bug for later."
A durable type: handoff note in Handoffs/ with the goal, the
relevant files, what you already know about the cause, and the next steps — secrets
redacted, existing artifacts linked not pasted.
It reindexes so the note is searchable and returns the path. You keep working on the feature; the bug is safely parked.
After a context clear or days later, list what's still waiting:
# list everything still waiting vault_sql("SELECT path, title, created FROM notes WHERE type='handoff' AND status='open' ORDER BY created DESC") # or full-text search the bodies vault_search("payment retry timeout")
Skills: W /vdb-handoff. The note is the
system of record — it outlives the conversation.
Scenario. Same bug — but it's well understood and you'd rather it just get fixed while you stay on the feature. Delegate it fire-and-forget.
Capture it with /vdb-handoff as above — goal, cause, acceptance criteria.
Hand the note to /vdb-dispatch. It creates an isolated git worktree, installs
the handoff as handoff.md there (plus a durable vault copy), and launches a
headless agent under systemd-run --user seeded with
"read handoff.md and implement".
A type: agent-session ledger note is written and the watch command printed.
Keep working; look in on the job on your own schedule:
# what's running, and how to take over each one vault_agent_sessions(status="running") # tail the headless job's output journalctl --user -u vdb-<name> -f
Skills: W /vdb-handoff →
W /vdb-dispatch. Permission defaults to edit-level; a large
handoff triggers a warning that a headless run may stall — switch to guide 3 (interactive)
when supervision matters.
Scenario. Hermes is driving a task and hits a question that needs a focused research pass — say, "how does library X handle retries across versions?" Rather than spend its own context on it, Hermes delegates the research to a Claude Code session it can watch and take over.
Hermes invokes /vdb-handoff to capture exactly what to research and what a good
answer looks like — links to the code in question, the versions to compare, the decision the
answer feeds.
/vdb-handoff-session --harness claude: a worktree is created, the handoff
installed, and Claude Code launches in a tmux session seeded to read it and
produce findings.
The session is takeoverable — Hermes (or you) can attach to steer, answer a prompt, or read
progress; or observe read-only via vdb sessions:
# take over the research session tmux attach -t research-retry-semantics # or just watch it read-only vdb sessions --name research-retry-semantics
Claude writes its findings into the vault (a research/wiki note); Hermes reads that note and
continues the original task. The session note is flipped to status: done.
Skills: W /vdb-handoff →
W /vdb-handoff-session. Any harness can delegate to any other
— claude / opencode / pi / hermes — because the seed is a plain handoff doc, not a harness-specific
format.
Scenario. You're about to change a shared service and want the blast radius and a
test plan before you touch it. Needs the "qa" group.
/vdb-impact-analysis walks the service / call graph: what the change can reach
(vault_blast_radius), which QA scenarios it touches, and where there's no coverage
(vault_coverage_gaps).
It emits a row-by-row plan — re-run these scenarios, author these new ones — saved as a vault note. It does not write the tests itself.
Hand that plan to /vdb-handoff-session (or /vdb-dispatch): an agent in
a worktree authors the missing tests and runs the re-run set.
After merging, /vdb-graph-sync refreshes graph_nodes /
graph_edges from the updated relationship frontmatter so the next analysis is
accurate.
vault_blast_radius(nodes="checkout-service", depth=3) vault_coverage_gaps(node="checkout-service")
Skills: W /vdb-impact-analysis →
W /vdb-handoff-session →
W /vdb-graph-sync.
Scenario. An alert fires — or a CVE lands in your briefing. Record it, find the cause, fix it, and make the next one faster, without losing the trail.
/vdb-incident-response creates a structured type: incident note —
severity, affected host, timeline.
It correlates: vault_recent_changes on the affected host (what deployed lately?),
vault_incidents for prior matches, vault_search for related notes.
Findings go in the timeline.
For a known fix, delegate remediation to a worktree agent (/vdb-handoff-session,
interactive preferred for anything production), and record the change with
/vdb-change-log.
Resolve the incident, then /vdb-runbook-manager writes a runbook from what worked
— so the same symptom is a lookup next time, not an investigation.
vault_recent_changes(host="db-01") vault_incidents(status="resolved", host="db-01")
Skills: W /vdb-incident-response →
W /vdb-change-log →
W /vdb-runbook-manager. Tools:
R vault_recent_changes, vault_incidents,
vault_runbook.
Scenario. A new or unfamiliar code repo enters the picture. Teach the vault about it, then delegate work into it — the vault supplies workflow context, the repo supplies implementation context.
/vdb-source-ingestor records it in source_repos: local path, remote,
language, tech stack, related IaC — queryable via vault_source_repos.
Pull architecture notes, conventions, and entry points into vault notes (or a wiki page) so any agent dispatched there starts with context instead of cold.
Point /vdb-dispatch / /vdb-handoff-session at the repo: an agent runs
in a worktree of that repo, seeded with a handoff. The repo is the "external source
location" the vault delegates to.
vault_agent_sessions shows every delegated session and its worktree, so parallel
work across repos stays visible from the hub.
vault_source_repos(language="python") vault_agent_sessions(status="running")
Skills: W /vdb-source-ingestor →
W /vdb-dispatch. Tools:
R vault_source_repos, vault_agent_sessions.
Scenario. A planning pass turns goals into ready stories, then a fleet of agents
works them in parallel — each in its own worktree, claiming atomically so two agents never grab
the same story. End to end, vault-native. Needs the "roadmap" and
"dispatch" groups.
With /vdb-po: capture goals → epics → stories, score them, and mark the
well-formed ones status: ready. Stories with needs_technical_input
stay back.
/vdb-sprint ranks ready stories by WSJF and works the top of the queue —
spawning one worktree agent per story via /vdb-dispatch instead of doing each
inline.
Each spawned agent calls vault_claim_story, which returns the full story note
(acceptance criteria + epic context) and prevents two agents grabbing the same story.
The agent works the story, then reports with vault_update_story_status
(blocked / in-review / done) — appending to the activity log and optionally firing a
notification.
On done, the integration pushes the status back to the external tracker (Jira /
GitLab / Linear) — and enriches the ticket with the context the tracker never had: the story's
WSJF score and rank, its parent epic and goal, the worktree branch and the agent session that
did the work, and the vault_blast_radius() the change touched. The
ticket stops being a title and a guess; it carries the decision trail.
# auto-posted on done — fields the tracker couldn't have:
done via wt-checkout-retry (agent: claude-code) · WSJF 18.5 (rank 2/14)
epic: Checkout resilience · goal: Cut cart-abandon 15%
blast radius: checkout-service → [payments, inventory, email] (depth 3)
Track everything from the vault — no need to attach to anything:
# what's ready, what's in flight, where it all stands
vault_ready_stories(limit=10)
vault_agent_sessions(status="running")
vault_roadmap_summary()
Skills: W /vdb-po →
W /vdb-sprint → W
/vdb-dispatch. Tools: W vault_claim_story,
W vault_update_story_status,
R vault_ready_stories /
vault_roadmap_summary / vault_agent_sessions.
"I told it to just vibe out a backend. It filed three incidents about my vibes and a runbook titled do not do that again."
"Finally, a database that judges my note-taking as harshly as I do."
"It saved me a pile of tokens, which I immediately spent asking it to explain the tokens it saved."
Testimonials are vibe-coded. Any resemblance to engineers living, on-call, or merely between standups is coincidental and, frankly, a little concerning. No tokens were harmed; several were gently reallocated.