$npx -y skills add iurykrieger/claude-bedrock --skill setupInitialize any folder as a Bedrock-powered Obsidian vault. Creates entity directories, copies templates, configures language and domain taxonomy, scaffolds connected example entities, and checks dependencies. Use when: "bedrock setup", "bedrock-setup", "/bedrock:setup", "initiali
| 1 | # /bedrock:setup — Vault Initialization |
| 2 | |
| 3 | ## Plugin Paths |
| 4 | |
| 5 | Templates and entity definitions are in the plugin directory, not in the vault root. |
| 6 | Use the "Base directory for this skill" provided at invocation to resolve paths: |
| 7 | |
| 8 | - Entity definitions: `<base_dir>/../../entities/` |
| 9 | - Templates: `<base_dir>/../../templates/{type}/_template.md` |
| 10 | - Plugin CLAUDE.md: `<base_dir>/../../CLAUDE.md` (auto-injected into context) |
| 11 | |
| 12 | Where `<base_dir>` is the path shown in "Base directory for this skill". |
| 13 | |
| 14 | --- |
| 15 | |
| 16 | ## Overview |
| 17 | |
| 18 | This skill bootstraps any folder into a fully functional Bedrock-powered Obsidian vault |
| 19 | through an interactive guided flow. It creates directories, copies templates, configures |
| 20 | the vault, scaffolds example entities with bidirectional wikilinks, checks dependencies, |
| 21 | and guides the user through next steps. |
| 22 | |
| 23 | **You are a setup agent.** Follow the phases below in order. Do not skip steps. |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## Phase 0 — Idempotency Check |
| 28 | |
| 29 | Check if the vault is already initialized: |
| 30 | |
| 31 | ```bash |
| 32 | ls .bedrock/config.json 2>/dev/null |
| 33 | ``` |
| 34 | |
| 35 | **If `.bedrock/config.json` exists:** |
| 36 | |
| 37 | 1. Read and display the current configuration: |
| 38 | ``` |
| 39 | This vault is already initialized: |
| 40 | - Language: <language> |
| 41 | - Preset: <preset> |
| 42 | - Domains: <domains> |
| 43 | - Git strategy: <git.strategy or "commit-push" if absent> |
| 44 | - Initialized at: <date> |
| 45 | ``` |
| 46 | |
| 47 | 2. Check if this vault is registered in the global vault registry: |
| 48 | ```bash |
| 49 | cat <base_dir>/../../vaults.json 2>/dev/null |
| 50 | ``` |
| 51 | If the registry exists, check if any entry has a `path` matching the current working directory. |
| 52 | - **If registered:** display "Registered as vault `<name>`" alongside the config above. |
| 53 | - **If NOT registered:** display "This vault is not yet registered in the global vault registry." |
| 54 | |
| 55 | 3. Ask the user: |
| 56 | > "This vault is already initialized. What would you like to do?" |
| 57 | > 1. **Reconfigure** — Update language, domains, git strategy, and regenerate vault CLAUDE.md (directories and entities are NOT touched) |
| 58 | > 2. **Register only** — Register this vault in the global registry (if not already registered) without changing configuration |
| 59 | > 3. **Skip** — Exit with no changes |
| 60 | |
| 61 | - **Reconfigure**: proceed to Phase 1, but set `RECONFIGURE_MODE = true`. In Phase 3, skip directory creation (3.1), template copying (3.2), Obsidian configuration (3.5), and example entity generation (3.6). Phase 3.7 (vault registration) still runs. |
| 62 | - **Register only**: skip directly to Phase 3.7 (vault registration). If already registered, display "This vault is already registered as `<name>`. No changes made." and exit. |
| 63 | - **Skip**: exit with "No changes made. Vault is already initialized." |
| 64 | |
| 65 | **If `.bedrock/config.json` does NOT exist:** proceed to Phase 1 with `RECONFIGURE_MODE = false`. |
| 66 | |
| 67 | --- |
| 68 | |
| 69 | ## Phase 1 — Language and Dependencies |
| 70 | |
| 71 | ### 1.1 Language Selection |
| 72 | |
| 73 | Ask the user: |
| 74 | |
| 75 | > "What language should vault content be written in?" |
| 76 | > 1. **English (en-US)** *(default)* |
| 77 | > 2. **Portuguese (pt-BR)** |
| 78 | > 3. **Spanish (es)** |
| 79 | > 4. **Other** — specify a locale code (e.g., `fr-FR`, `de-DE`, `ja-JP`) |
| 80 | > |
| 81 | > Press Enter for default (en-US). |
| 82 | |
| 83 | Store the selected language as `VAULT_LANGUAGE`. This determines: |
| 84 | - The language of example entity content |
| 85 | - The language directive in the vault CLAUDE.md |
| 86 | - The language instruction for all future skill output in this vault |
| 87 | |
| 88 | ### 1.2 Dependency Check |
| 89 | |
| 90 | Check for external tools, environment variables, and MCP servers that enhance the Bedrock experience. |
| 91 | **Never block initialization.** |
| 92 | |
| 93 | **Dependencies to check:** |
| 94 | |
| 95 | | Dependency | Check method | What it unlocks | |
| 96 | |---|---|---| |
| 97 | | graphify | Glob: `~/.claude/skills/graphify/SKILL.md` | **Required.** Extraction engine for all `/bedrock:learn` ingestion. Without it, /learn cannot function. | |
| 98 | | docling | Bash: `command -v docling >/dev/null 2>&1` | **Required.** Universal file → markdown converter used by `/bedrock:learn` to ingest DOCX, PPTX, XLSX, HTML, EPUB, PDF, images, and other non-markdown formats. Without it, /learn can only ingest text-native formats. | |
| 99 | | CONFLUENCE_API_TOKEN + CONFLUENCE_USER_EMAIL | Bash: `test -n "$CONFLUENCE_API_TOKEN" && test -n "$CONFLUENCE_USER_EMAIL"` | Confluence page ingestion via `/bedrock:learn` (API strategy). | |
| 100 | | GOOGLE_ACCESS_TOKEN | Bash: `test -n "$GOOGLE_ACCESS_TOKEN"` | Google Docs and Sheets ingestion via `/bedrock:learn` (API strategy). | |
| 101 | | claude-in-chrome MCP | ToolSearch: `select:mcp__claude-in-chrome__tabs_context_mcp` (succeeds = available) | **Optional.** Browser fallback |