Files

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"
```
![Obsidian Sorter flow](https://maps.lab.audasmedia.com.au/obsidian-sorter/docs/diagrams/obsidian-sorter-flow.png)
## 🔗 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/`.