# Vaults

> >

- **Type:** Skill
- **Install:** `agentstack add skill-iurykrieger-claude-bedrock-vaults`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [iurykrieger](https://agentstack.voostack.com/s/iurykrieger)
- **Installs:** 0
- **Category:** [Productivity](https://agentstack.voostack.com/c/productivity)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [iurykrieger](https://github.com/iurykrieger)
- **Source:** https://github.com/iurykrieger/claude-bedrock/tree/main/skills/vaults
- **Website:** https://claude-bedrock.vercel.app

## Install

```sh
agentstack add skill-iurykrieger-claude-bedrock-vaults
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /bedrock:vaults — Vault Management

## Plugin Paths

The vault registry lives in the plugin root directory, not in any vault.
Use the "Base directory for this skill" provided at invocation to resolve paths:

- Vault registry: `/../../vaults.json`
- Plugin CLAUDE.md: `/../../CLAUDE.md` (auto-injected into context)

Where `` is the path shown in "Base directory for this skill".

---

## Overview

This skill manages the global vault registry — the file that maps vault names to
filesystem paths and tracks which vault is the default.

**You are a management agent.** This skill is read-only with respect to vaults themselves —
it never reads or modifies vault entities, never runs git operations inside vaults, and
never touches `.bedrock/config.json`. It only reads and writes the registry file (`vaults.json`).

---

## Phase 0 — Parse Input

Parse the user's input to determine the command mode:

| Input pattern | Mode | Variables |
|---|---|---|
| No flags / empty / `list` | **list** | — |
| `--set-default ` | **set-default** | `TARGET_NAME = ` |
| `--remove ` | **remove** | `TARGET_NAME = ` |

If the input doesn't match any pattern, default to **list** mode.

---

## Phase 1 — Read Registry

Resolve the registry path:

```
REGISTRY_PATH = /../../vaults.json
```

Read the registry file:

```bash
cat  2>/dev/null
```

**If the file does not exist or is empty:**
- For **list** mode: display "No vaults registered. Run `/bedrock:setup` in a vault directory to register your first vault."
- For **set-default** and **remove** modes: display "No vaults registered. Nothing to modify." and exit.

**If the file exists:** parse the JSON. Expected schema:

```json
{
  "vaults": [
    {
      "name": "",
      "path": "",
      "default": true | false
    }
  ]
}
```

Store the parsed vaults array as `VAULTS`.

---

## Phase 2 — Execute Command

### 2.1 List Mode

For each vault in `VAULTS`, check if the path still exists on disk:

```bash
test -d "" && echo "exists" || echo "missing"
```

Present a table:

```
## Registered Vaults

| Name | Path | Default | Status |
|---|---|---|---|
| my-vault | /Users/me/vaults/my-vault | * | ok |
| team-vault | /Users/me/vaults/team-vault | | ok |
| old-vault | /Users/me/vaults/old-vault | | missing |
```

- The `Default` column shows `*` for the default vault
- The `Status` column shows `ok` if the directory exists, `missing` if it does not

If any vault has status `missing`, add a note:

```
> Vaults marked as "missing" have paths that no longer exist on disk.
> Run `/bedrock:vaults --remove ` to clean up, or re-create the vault at the registered path.
```

### 2.2 Set-Default Mode

1. Find the vault with `name == TARGET_NAME` in `VAULTS`
2. If not found: display "Vault `` is not registered. Available vaults:" followed by a list of names. Exit.
3. If found:
   - Set `"default": false` on all vaults
   - Set `"default": true` on the matching vault
   - Write the updated registry back to `REGISTRY_PATH`
   - Display: "Default vault set to `` ()."

### 2.3 Remove Mode

1. Find the vault with `name == TARGET_NAME` in `VAULTS`
2. If not found: display "Vault `` is not registered. Available vaults:" followed by a list of names. Exit.
3. If found:
   - Remove the entry from `VAULTS`
   - If the removed vault was the default AND other vaults remain, mark the first remaining vault as default and inform the user
   - Write the updated registry back to `REGISTRY_PATH`
   - Display: "Vault `` removed from registry. Files on disk were NOT deleted ()."

---

## Phase 3 — Write Registry

When writing the registry (set-default or remove modes), use the Write tool to overwrite `REGISTRY_PATH` with the updated JSON:

```json
{
  "vaults": [
    { "name": "...", "path": "...", "default": true },
    { "name": "...", "path": "...", "default": false }
  ]
}
```

Format the JSON with 2-space indentation for readability.

---

## Critical Rules

| # | Rule |
|---|---|
| 1 | **NEVER modify vault files** — this skill only touches `vaults.json` |
| 2 | **NEVER run git operations** — no git pull, commit, push, or any git command |
| 3 | **NEVER delete files on disk** — `--remove` only removes the registry entry |
| 4 | **ALWAYS validate vault name exists** before set-default or remove |
| 5 | **ALWAYS check path existence** when listing vaults — flag missing paths |
| 6 | **ALWAYS maintain exactly one default** — if the default is removed, auto-assign the first remaining vault |
| 7 | **Vault names are kebab-case** — lowercase, no spaces, no special characters beyond hyphens |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [iurykrieger](https://github.com/iurykrieger)
- **Source:** [iurykrieger/claude-bedrock](https://github.com/iurykrieger/claude-bedrock)
- **License:** MIT
- **Homepage:** https://claude-bedrock.vercel.app

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-iurykrieger-claude-bedrock-vaults
- Seller: https://agentstack.voostack.com/s/iurykrieger
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
