feat: Implement foundation layer with domain entities and repository interfaces

- Add complete domain layer: Note, Vault, WikiLink, Tag, Frontmatter, Graph entities
- Implement repository interfaces for data access abstraction
- Create comprehensive configuration system with YAML and env support
- Add CLI entry point with signal handling and graceful shutdown
- Fix mermaid diagram syntax in design.md (array notation)
- Add CLAUDE.md for development guidance

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev
2025-10-08 10:22:28 +04:00
parent b655c58ba1
commit da289d4a7e
24 changed files with 1840 additions and 7 deletions

View File

@@ -294,20 +294,20 @@ classDiagram
-string path
-string content
-Frontmatter frontmatter
-[]WikiLink outlinks
-[]Tag tags
-WikiLink[] outlinks
-Tag[] tags
-time createdAt
-time modifiedAt
+NewNote(path, content) Note
+AddTag(tag) error
+RemoveTag(tag) error
+UpdateContent(content) error
+ExtractLinks() []WikiLink
+ExtractLinks() WikiLink[]
}
class Vault {
-string rootPath
-[]Note notes
-Note[] notes
-Graph graph
-map tags
+NewVault(path) Vault
@@ -317,7 +317,7 @@ classDiagram
class Frontmatter {
-map data
+Get(key) interface{}
+Get(key) any
+Set(key, value) error
+Merge(other) Frontmatter
}
@@ -340,8 +340,8 @@ classDiagram
class Graph {
-map adjacencyList
+AddEdge(from, to)
+GetBacklinks(path) []string
+GetOutlinks(path) []string
+GetBacklinks(path) string[]
+GetOutlinks(path) string[]
}
Vault "1" *-- "0..*" Note