Skip to content
Back to skills

Vault Operations

ASecurity

Operate the persistent /home/user/Vault layout, sync, and graph safely.

  • 25 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 18, 2026
ai-agentsnodedebugginggitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 18, 2026

npx -y skills add nikolanovoselec/codeflare --skill vault-operations --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vault Operations?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vault Operations
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nikolanovoselec-vault-operations-codeflare/badge)](https://www.skillsdirectory.com/skills/nikolanovoselec-vault-operations-codeflare)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vault-operations
description: "Operate the persistent /home/user/Vault layout, sync, and graph safely."
version: 1.0.0
disable-model-invocation: true
---

# Vault Operations

`/home/user/Vault/` is the persistent, user-curatable note store, synced session-to-session via rclone bisync to R2. The vault is always tagged `user_vault` in the unified graph from entrypoint init, never pruned by active-repo prune-on-switch, and skipped by the active-repo PostToolUse hook (a tool call inside the vault never re-tags it).

## Layout

```
Vault/
├── Index.md          <- PRESEED: codeflare dashboard (overwrite each boot)
├── README.md         <- PRESEED: vault user guide (overwrite each boot)
├── CONFIG.md         <- PRESEED: SilverBullet #meta config page (overwrite each boot)
├── STYLES.md         <- PRESEED: codeflare editor theme (overwrite each boot)
├── Raw/
│   ├── Sessions/     <- MACHINE-OWNED: hot capture files plus deterministic Archive.md
│   └── Pasted/       <- USER-OWNED, OPTIONAL: manual archive only; NOT the SB drag-drop target
├── Notes/            <- USER-OWNED: curated prose; SB attachments land next to the note
├── Inbox/            <- USER-OWNED: SB Quick Note lands under Inbox/YYYY-MM-DD/
├── Journal/          <- USER-OWNED: SB "Journal: Today" lands here
├── Library/Codeflare <- PRESEED: bundled SB plugs (pdf, treeview, github, graph)
├── graphify-out/     <- DERIVED: regenerated by vault-extract agent; never hand-edit
└── .silverbullet/    <- EDITOR CONFIG: SilverBullet maintains it
```

## Reading

Prefer the unified graph (`Pi graphify tools`) for any cross-session lookup; it ingests every vault file plus every active repo's graphify-out, so one query returns vault + code side by side. Use `query_graph` for free-text, `get_node` when you know the concept name. Read raw vault files only when the graph points at a specific path. For session-memory lookup, search current `Raw/Sessions/*.md` capture files first (excluding `Archive.md`), then search `Raw/Sessions/Archive.md` only when the hot files do not answer the question.

## Writing (who writes where)

| Path | Who writes | When |
|---|---|---|
| `Raw/Sessions/<capture>.md` | Capture agent only | Triggered every 20 real user prompts and for an uncaptured tail on session resume. Never hand-edit or delete. |
| `Raw/Sessions/Archive.md` | Image-owned compactor only | Deterministic cold-capture archive. Agents may read it after hot files, but never edit or replace it. |
| `Inbox/<YYYY-MM-DD>/*` | User via SilverBullet | Quick Note + attachments land in same date folder. |
| `Journal/*` | User via SilverBullet | Journal: Today lands here. |
| `Notes/**/*.md` | User (primarily) | If user asks to file a note, write here. Use `[[wikilinks]]` for concepts. |
| `Raw/Pasted/*` | Optional manual user archive | NOT the SB drag-drop target. Don't generate files here from agent code. |
| `graphify-out/` | graphify CLI only | Build output. Never write directly. |
| `.silverbullet/` | The editor only | Touch only when debugging SB itself. |

## Wikilink convention

- Wrap **concepts** in `[[wikilinks]]` (e.g. `[[VaultMonitorDaemon]]`). The vault-extract agent emits each as a concept node with `source_file: null`; graphify's global_add external-label dedup matches on these to unify the concept across vault notes and per-repo graphs.
- Dedup is **exact-string label match** (case-sensitive). `[[VaultMonitorDaemon]]` does NOT auto-link to snake_case `vault_monitor_daemon`. Fuzzy matching would create cross-repo noise; choose PascalCase concept names you actively want unified.
- Keep **file paths**, **code symbols**, and **issue/PR refs** as prose — they namespace per-project.

## Hard rules (NEVER)

- **Never `rm` from the vault.** User-curated content and capture history are sacred; if you think a file is wrong, ask.
- **Never edit or delete individual `Raw/Sessions/` captures.** Only the capture pipeline creates them; only the verified image compactor removes exact archived sources.
- **Never edit, replace, or regenerate `Raw/Sessions/Archive.md`.** It is deterministic image-owned output.
- **Never write into `graphify-out/`.** Build output; run `graphify extract` instead.
- **Never `cd` into the vault and `git init`.** Vault syncs via rclone bisync, not git. Adding `.git/` confuses the graphify-active-repo hook + bisync filters.

## Vault-monitor hook

`memory-capture.sh` content-hash checks Vault on every resumed-tail capture and each crossed 20-real-user-prompt epoch. It writes a marker only when content changed. `vault-monitor-hook.sh` exits silently without that marker; when it emits `additionalContext`, spawn the background vault-extract agent per the directive. The agent's first step deletes the marker (dedup gate).

## Worker proxy boundary

SilverBullet inside the container is reachable from the codeflare UI via `/api/vault/:sid/`. Auth + rate-limit happens at the Worker; SB itself binds to localhost only. Do not try to expose port 3030 directly — the auth boundary is the Worker route.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.