83 lines
2.8 KiB
Markdown
83 lines
2.8 KiB
Markdown
---
|
|
title: Obsidian Sorter
|
|
type: area
|
|
status: active
|
|
created: "2026-09-24"
|
|
updated: "2026-09-26"
|
|
tags:
|
|
- ai
|
|
- tool
|
|
- project
|
|
- architecture
|
|
- obsidian-sorter
|
|
- showcase
|
|
- automation
|
|
skills:
|
|
- python
|
|
- llm-integration
|
|
- systemd
|
|
- api-design
|
|
- automation
|
|
tools:
|
|
- typesafe-jev
|
|
- systemd
|
|
- git
|
|
- rsync
|
|
---
|
|
|
|
# Obsidian Sorter — Overview
|
|
|
|
## 💡 What is this project?
|
|
|
|
My notes used to pile up in whatever folder I happened to be in. This tool fixes
|
|
that. I drop a note into an inbox folder, and the tool works out where it belongs
|
|
and offers to file it. I tick one checkbox to say yes. Nothing moves until I do.
|
|
|
|
## 🌟 Key Highlights (Portfolio & Employment)
|
|
|
|
- **Concept**: An automated filing system for a personal knowledge vault. A model
|
|
decides the destination; a human approves it. The approval gate is the point —
|
|
it keeps the owner in control of a destructive operation.
|
|
- **Tools & Skills Showcase**: Python with **no third-party libraries**, a systemd
|
|
user service, a decision model called over plain HTTP, and careful handling of
|
|
file moves.
|
|
- **Practical Value**: Removes the daily friction of note organisation. Every note
|
|
ends up in the right place and in the index, without manual sorting.
|
|
|
|
## 📐 Architecture & Flow
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
A["Sam writes a note"] --> B["010 inbox/"]
|
|
B --> C{"Watcher<br/>systemd user service<br/>polls every 10s"}
|
|
C --> D["Tier 1 - rules<br/>folder + keyword hints<br/>user tags win"]
|
|
D -->|"confident"| F["Proposal"]
|
|
D -->|"unsure"| E["Tier 2 - TypeSafe JEV<br/>bucket + folder + tags"]
|
|
E --> F
|
|
F --> G["Proposal written<br/>into the note frontmatter"]
|
|
G --> H["Sam reviews in Obsidian"]
|
|
H -->|"ticks approved"| I["Writer"]
|
|
H -->|"edits folder first"| G
|
|
I --> J["Destination folder"]
|
|
I --> K["Table of Contents"]
|
|
|
|
click C "https://maps.lab.audasmedia.com.au/obsidian-sorter/docs/obsidian-sorter-map.html" "View Archify Map"
|
|
click E "https://docs.typesafe.ai" "TypeSafe JEV documentation"
|
|
```
|
|
|
|

|
|
|
|
## 🔗 Related Notes & Links
|
|
|
|
- **Interactive Map**: [Archify map](https://maps.lab.audasmedia.com.au/obsidian-sorter/docs/obsidian-sorter-map.html)
|
|
- **All diagrams**: [maps.lab.audasmedia.com.au/obsidian-sorter/docs/](https://maps.lab.audasmedia.com.au/obsidian-sorter/docs/)
|
|
- **Gitea repo**: https://gitea.lab.audasmedia.com.au/sam/obsidian-sorter
|
|
- **TypeSafe JEV**: https://docs.typesafe.ai
|
|
- **Design doc**: `docs/HANDOFF.md` in the project
|
|
|
|
## Notes
|
|
|
|
- Runs on `.27` as a systemd user service, polling every 10 seconds.
|
|
- Costs roughly $0.0001 per note to classify.
|
|
- Type always mirrors the folder: `200 projects/`, `300 areas/`, `400 Personal Family/`.
|