From obsidian-skills
Use this skill to work inside the Breadcrumbs docs vault, including setup, orientation, editing flow, terminology checks, Caliber sync, and commit workflow. Do NOT use it for Breadcrumbs plugin code development.
How this skill is triggered — by the user, by Claude, or both
Slash command
/obsidian-skills:breadcrumbs-development-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- This is a **documentation vault**, not a code project. There is no build step, no test suite, no package manager. The "project" is a set of Markdown files exported from Obsidian Publish.
API.md only documents window.BCAPI at a placeholder level.grep -q "caliber" .git/hooks/pre-commit 2>/dev/null && echo "hook-active" || echo "no-hook". If no hook, run caliber refresh manually before committing.The vault has this layout:
breadcrumbs-docs-vault/
├── Home.md # Entry point
├── Concepts.md # Graph, traversal, edge attributes
├── Edge Fields.md # Core concept: typed link labels
├── Field Groups.md # Collections of fields
├── Note Attributes.md # BC-ignore-in-edges, BC-ignore-out-edges
├── API.md # Placeholder — window.BCAPI only
├── Debugging.md # Log levels, edge build errors
├── Contributing.md # How to contribute
├── Explicit Edge Builders/ # 9 builder types (Typed Links, Date Notes, etc.)
├── Implied Edge Builders/ # Transitive rules, relation rounds
├── Views/ # Tree, Matrix, Codeblocks, Trail, Previous-Next
├── Commands/ # Rebuild Graph, Threading, Freeze Crumbs, etc.
├── Suggesters/ # Edge Field Suggester, Metadata Field Suggester
├── Guides/ # Layered Daily Notes, Personal Relationship Mgmt
├── Announcements/ # Discord release announcements
├── Images/ # Screenshots referenced via ![[image.png]]
├── CLAUDE.md # Agent instructions (Caliber-managed)
├── AGENTS.md # Agent instructions (Caliber-managed)
└── DOWNLOAD_INFO.md # Publish export metadata
Verify: Run find . -name '*.md' -not -path './Images/*' | sort to confirm all doc pages are present.
Before editing any file, follow these rules:
| Convention | Correct | Wrong |
|---|---|---|
| Internal links | [[Edge Fields]] | [Edge Fields](Edge%20Fields.md) |
| Image embeds | ![[filename.png]] |  |
| Mermaid diagrams | ```mermaid fenced block | HTML or image-based diagrams |
| Folder index frontmatter | BC-folder-note-field: down | No frontmatter on index pages |
| Announcement chaining | next:: [[Announcement 2024-04-25]] | Manual prev/next links |
Verify: After editing, confirm all internal links use [[wikilink]] syntax: rg -n '\[.*\]\(.*\.md\)' <edited-file> should return zero results.
These terms have precise meanings in Breadcrumbs. Always use the exact term:
| Term | Meaning | Key file |
|---|---|---|
| Edge Fields | Typed link labels (up, down, parent, child) | Edge Fields.md |
| Field Groups | Collections of fields for traversal/views | Field Groups.md |
| Explicit Edge Builders | Derive edges from notes/metadata/tags/folders/dates | Explicit Edge Builders/Explicit Edge Builders.md |
| Implied Edge Builders | Inferred edges via transitive rules | Implied Edge Builders/Implied Edge Builders.md |
| Transitive Implied Relations | Chain syntax [parent, parent] -> grandparent | Implied Edge Builders/Transitive Implied Relations.md |
| Note Attributes | BC-ignore-in-edges, BC-ignore-out-edges | Note Attributes.md |
| Views | Tree View, Matrix View, Codeblocks, Trail View, Previous-Next View | Views/Views.md |
| Commands | Rebuild Graph, Threading, Freeze Crumbs, Jump to First Neighbour | Commands/Commands.md |
| Suggesters | Edge Field Suggester, Metadata Field Suggester | Suggesters/Suggesters.md |
Verify: After writing, search your text for common misspellings: rg -in 'link type|edge creator|breadcrumb field|implied link' <edited-file> should return zero results.
Before adding new content, check what already exists:
# Search for a concept across all docs
rg -n 'Edge Fields|Field Groups|Typed Links' --type md
# Find all image references
rg -n '!\[\[.*\.png\]\]' --type md
# Check frontmatter patterns
rg -n '^---' --type md -A 5
Verify: Confirm your new content does not duplicate existing pages by checking filenames: find . -name '*.md' | sort.
grep -q "caliber" .git/hooks/pre-commit 2>/dev/null && echo "hook-active" || echo "no-hook"
CLAUDE.md, AGENTS.md, and other agent configs automatically.caliber refresh && git add CLAUDE.md .claude/ .cursor/ .cursorrules .github/copilot-instructions.md .github/instructions/ AGENTS.md CALIBER_LEARNINGS.md .agents/ .opencode/ 2>/dev/null
caliber is not found: tell the user to run /setup-caliber.Verify: After committing, run git diff --cached --name-only to confirm only intended files were included.
Explicit Edge Builders/, Views/, Commands/, Guides/, etc.).Commands/Commands.md), add a [[New Page]] wikilink to the index.BC-folder-note-field: downaliases: [...]next:: [[Announcement ...]] inline fieldImages/ and reference them with ![[screenshot.png]].Verify: Run rg -n '\[\[New Page\]\]' to confirm the new page is linked from at least one other page.
User says: "Add a guide for using Breadcrumbs with MOCs."
Actions taken:
ls Guides/ → Guides.md, Layered Daily Notes.md, Personal Relationship Management.mdGuides/Guides.md to see the index formatGuides/MOC Workflow.md with:
BC-folder-note-field)[[wikilink]] syntax for all internal references[[MOC Workflow]] to Guides/Guides.mdResult: New guide page linked from the Guides index, using vault conventions.
User says: "The screenshot in Debugging.md isn't showing."
Actions taken:
Debugging.md, find ![[Rebuild Graph Error Notice.png]]ls Images/ | grep 'Rebuild Graph Error Notice'Result: Image embed matches the actual filename in Images/.
/setup-caliber to configure it.which caliber or look in ~/.local/bin/.Some editors auto-convert [[wikilink]] to [wikilink](wikilink.md). After editing, always verify:
rg -n '\[.*\]\(.*\.md\)' <edited-file>
If matches found, convert them back to [[Page Name]] syntax.
The page must be linked from at least one other page using [[wikilink]] syntax. Check:
rg -rn '\[\[New Page Name\]\]' .
If zero results, add a link from the appropriate index page (e.g., Guides/Guides.md, Commands/Commands.md).
Image embeds must use ![[filename.png]] (not ). Verify the exact filename:
ls Images/ | grep -i '<partial-name>'
Filenames are case-sensitive. Match exactly.
Folder index pages (Commands/Commands.md, Views/Views.md, Suggesters/Suggesters.md) require:
---
BC-folder-note-field: down
---
Do not add this to non-index pages. If a page uses aliases, format as a YAML list:
---
aliases:
- alternate name
---
breadcrumbs — for broader Breadcrumbs task routingbreadcrumbs-testing-guide — for validation before commitobsidian-ops — for repo workflow and release hygiene patternsnpx claudepluginhub zpankz/obsidian-skillsCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.