mirror of
https://github.com/panatgithub/AnkiHeadingSync.git
synced 2026-07-22 06:51:43 +00:00
2.6 KiB
2.6 KiB
V1 Decisions
This file is the authoritative lock for V1 implementation behavior. If an implementation detail conflicts with this file, this file wins.
Product Boundary
- Obsidian is the only source of truth.
- Sync direction is only Obsidian -> Anki.
- Card authoring is heading-paragraph based only.
- V1 is intentionally narrow and does not become a generic syntax platform.
Heading Policy
- Default QA heading level is H4.
- Default Cloze heading level is H5.
- QA and Cloze heading levels are configurable.
- QA and Cloze heading levels must not be equal.
Card Identity
-
cardKeyis computed as:hash(filePath + headingLevel + headingText + blockStartLine + cardType) -
V1 accepts instability caused by:
- heading rename
- file move
- line-number shifts
-
V1 does not introduce:
- hidden source ids
- anchor-based identity
- persistent block ids
Field Mapping
Basic
- Front = heading
- Back = body
Cloze
- Text = body
- Extra = heading
Model Resolution
- QA note type is configurable and defaults to
Basic. - Cloze note type is configurable and defaults to
Cloze. - V1 uses queried Anki model field names plus small heuristics.
- V1 does not introduce a full user-facing field-mapping UI.
Deck Resolution
Deck resolution order is:
- file-level
TARGET DECK - plugin default deck
V1 does not implement:
- folder -> deck mapping
- path-derived deck rules
- per-heading deck overrides
Scan Scope
includeFoldersempty => scan all markdown files in the vaultincludeFoldersnon-empty => scan only files under included foldersexcludeFoldersalways applies- only markdown files are candidates
- no glob DSL is supported in V1
Sync Behavior
- V1 supports deck creation.
- V1 supports note add.
- V1 supports note update.
- V1 supports media upload.
- V1 supports incremental sync through local sync records.
- V1 supports orphan detection.
Orphan Handling
- detect and mark only
- never auto-delete in V1
- deletion remains out of scope unless a future explicit manual workflow is added
Rendering Target
- prioritize readability and reviewability in Anki
- preserve math where practical
- preserve code blocks and inline code where practical
- preserve links and media where practical
- preserve Obsidian backlinks where enabled
- do not chase pixel-perfect Obsidian rendering fidelity
Explicitly Out Of Scope For V1
- bidirectional sync
- Anki -> Obsidian writeback
- Python tooling or sidecar CLI
- folder -> deck mapping
- folder -> tag mapping
- generic regex syntax systems
- inline note systems
- begin/end note block systems
- automatic orphan deletion
- complex glob or scan DSLs