From rust-agents
Formats project documentation as an Obsidian vault using Zettelkasten method with interlinked atomic notes, YAML frontmatter, wikilinks, and Maps of Content.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rust-agents:obsidian-zettelkastenThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Format project documentation, notes, and knowledge as an Obsidian vault using the Zettelkasten method with dense cross-referencing.
Format project documentation, notes, and knowledge as an Obsidian vault using the Zettelkasten method with dense cross-referencing.
references/obsidian-syntax.md for Obsidian-specific Markdown syntaxreferences/zettelkasten-structure.md for note types, linking patterns, and vault organizationOrganize notes into a flat or shallow folder structure:
vault/
├── 00-MOC/ # Maps of Content (index notes)
│ ├── MOC-Architecture.md
│ └── MOC-API.md
├── concepts/ # Permanent notes (atomic ideas)
│ ├── dependency-injection.md
│ └── event-driven-architecture.md
├── references/ # Literature notes (source summaries)
│ ├── ref-clean-architecture-martin.md
│ └── ref-rust-book-ch10.md
├── guides/ # How-to and tutorial notes
│ ├── guide-setup-project.md
│ └── guide-deployment.md
├── decisions/ # ADRs and design decisions
│ ├── adr-001-database-choice.md
│ └── adr-002-auth-strategy.md
└── templates/ # Note templates
├── tpl-concept.md
├── tpl-reference.md
└── tpl-adr.md
Rules:
MOC-, ref-, guide-, adr-, tpl-) only when folders are not usedFor each note, follow this structure:
Every note MUST start with YAML properties:
---
aliases:
- DI
- Inversion of Control
tags:
- architecture
- design-pattern
created: 2026-04-10
related:
- "[[service-locator]]"
- "[[factory-pattern]]"
status: permanent
---
Required properties:
tags — at least one tag per note, use nested tags for hierarchy (#architecture/patterns)created — date in YYYY-MM-DD formatRecommended properties:
aliases — alternative names for autocomplete and linkingrelated — explicit links to related notes (quoted wikilinks)status — one of: fleeting, literature, permanent, moc# Dependency Injection
Dependency injection is a technique where an object receives its dependencies
from external sources rather than creating them internally.
## Core Principle
The consumer declares *what* it needs; the injector decides *how* to provide it.
This inverts the control flow — hence the alias ==Inversion of Control==.
## Relationship to Other Patterns
- Contrasts with [[service-locator]] — DI pushes dependencies, service locator pulls them
- Often implemented via [[factory-pattern]] or a DI container
- Enables [[testability]] by allowing mock injection
## In Rust
Rust achieves DI through trait objects and generics rather than runtime reflection:
> [!example] Trait-based DI in Rust
> ```rust
> trait Repository: Send + Sync {
> fn find(&self, id: u64) -> Option<Entity>;
> }
>
> struct Service<R: Repository> {
> repo: R,
> }
> ```
> [!tip] When to use
> Prefer generic parameters over `dyn Trait` when the concrete type is known at compile time.
## See Also
- [[MOC-Architecture]] — parent map
- [[clean-architecture]] — broader architectural context
Apply these rules to every note:
[[wikilink]]. Do not link every occurrence — only the first[[dependency-injection|DI]] when the full name is verbose[[note#Heading]] when referencing a specific section[[note#^block-id]] for precise paragraph references![[note]] or ![[note#Section]] to inline content from another noteMOC notes are index pages that organize related concepts. Every vault needs at least one top-level MOC.
---
aliases:
- Architecture Overview
tags:
- moc
- architecture
created: 2026-04-10
status: moc
---
# Architecture
> [!abstract] Overview
> This map organizes architectural concepts, patterns, and decisions
> used in the project.
## Patterns
- [[dependency-injection]] — decoupling components via external wiring
- [[event-driven-architecture]] — async communication between services
- [[cqrs]] — separating read and write models
## Decisions
- [[adr-001-database-choice]] — why we chose PostgreSQL
- [[adr-002-auth-strategy]] — JWT vs session-based auth
## Principles
- [[clean-architecture]] — layered boundaries
- [[solid-principles]] — SOLID in Rust context
## Related Maps
- [[MOC-API]] — API design and endpoints
- [[MOC-Testing]] — testing strategy and patterns
Rules:
— why/what)| Type | Purpose | Status | Template |
|---|---|---|---|
| Permanent | Atomic concept in your own words | permanent | tpl-concept.md |
| Literature | Summary of a source (book, article, doc) | literature | tpl-reference.md |
| MOC | Index linking related notes | moc | — |
| Fleeting | Quick capture, to be processed | fleeting | — |
| ADR | Architecture Decision Record | permanent | tpl-adr.md |
| Guide | Step-by-step how-to | permanent | tpl-guide.md |
Use Obsidian callouts for structured asides:
| Type | Use for |
|---|---|
> [!note] | General supplementary information |
> [!tip] | Best practices, recommendations |
> [!warning] | Pitfalls, common mistakes |
> [!example] | Code examples, usage demonstrations |
> [!abstract] | Summaries, TL;DR at top of MOCs |
> [!question] | Open questions, FAQ entries |
> [!danger] | Critical issues, breaking changes |
> [!quote] | Direct quotations from sources |
> [!info] | Contextual background |
> [!bug] | Known issues |
Foldable callouts: > [!tip]- (collapsed) or > [!tip]+ (expanded by default).
Nested callouts: use additional > levels.
tags and created# H1 title[[wikilink]][text](url) format#tag — properties enable structured searchcreated propertynpx claudepluginhub bug-ops/claude-plugins --plugin rust-agentsOrganizes Obsidian vaults with MOCs, wikilinks, frontmatter/properties, dashboards, orphan-note checks, and cleanup workflows. Only activate when user mentions Obsidian or its features.
Manages Obsidian vaults: search, create, edit, move Markdown notes; handle YAML frontmatter, wikilinks, backlinks, daily notes, Zettelkasten setup, and sync via obsidian-cli.
Covers all of Obsidian: vault design, plugins (core & community), Dataview, Templater, canvas files, bases, CSS, Publish, Web Clipper, URIs, and note architecture. For anyone building or organizing an Obsidian vault.