Install
$ agentstack add skill-iurykrieger-claude-bedrock-vaults ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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:
cat 2>/dev/null
If the file does not exist or is empty:
- For list mode: display "No vaults registered. Run
/bedrock:setupin 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:
{
"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:
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
Defaultcolumn shows*for the default vault - The
Statuscolumn showsokif the directory exists,missingif 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
- Find the vault with
name == TARGET_NAMEinVAULTS - If not found: display "Vault `` is not registered. Available vaults:" followed by a list of names. Exit.
- If found:
- Set
"default": falseon all vaults - Set
"default": trueon the matching vault - Write the updated registry back to
REGISTRY_PATH - Display: "Default vault set to `` ()."
2.3 Remove Mode
- Find the vault with
name == TARGET_NAMEinVAULTS - If not found: display "Vault `` is not registered. Available vaults:" followed by a list of names. Exit.
- 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:
{
"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
- Source: iurykrieger/claude-bedrock
- License: MIT
- Homepage: https://claude-bedrock.vercel.app
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.