docs: align README with project-docs Gitea template
Add Demonstrated Skills & Tech Stack and System Architecture (Mermaid + Archify map link) sections. Rename Install to Quick Start and group manual commands under Usage & Configuration.
This commit is contained in:
48
README.md
48
README.md
@@ -11,6 +11,40 @@ ships a small purpose-built parser so it deploys onto hosts without pip
|
||||
|
||||
---
|
||||
|
||||
## 🛠 Demonstrated Skills & Tech Stack
|
||||
|
||||
- **Core Technologies**: Python 3.10+ using the **standard library only** — no
|
||||
PyYAML, no pip dependencies; systemd user services; YAML frontmatter.
|
||||
- **Key Tools**: TypeSafe JEV (`POST api.typesafe.ai/v1/systemone`) for semantic
|
||||
classification, stdlib `urllib` for HTTP, `mmdc` + Archify for diagrams,
|
||||
`rsync` for deployment, Git + Gitea for version control.
|
||||
- **Engineering Capabilities**: a deterministic rule engine with a probabilistic
|
||||
second tier, atomic file writes (`tempfile` + `os.replace`), idempotent index
|
||||
updates, a human-in-the-loop approval gate, and a purpose-built YAML parser
|
||||
written to avoid runtime dependencies on NixOS hosts.
|
||||
|
||||
## 📐 System Architecture
|
||||
|
||||
```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"]
|
||||
```
|
||||
|
||||
*Interactive Architecture Map:* [maps.lab.audasmedia.com.au/obsidian-sorter/docs/obsidian-sorter-map.html](https://maps.lab.audasmedia.com.au/obsidian-sorter/docs/obsidian-sorter-map.html)
|
||||
|
||||
---
|
||||
|
||||
## The taxonomy (simplified 2026-09-24)
|
||||
|
||||
**The type of a note mirrors the folder it lives in.** Nothing is guessed from
|
||||
@@ -56,7 +90,7 @@ which area it belongs to while it is still a project.
|
||||
|
||||
---
|
||||
|
||||
## Install
|
||||
## 🚀 Quick Start
|
||||
|
||||
Nothing to install — pure standard library, Python 3.10+.
|
||||
|
||||
@@ -119,7 +153,9 @@ Logs: `~/.local/state/obsidian-sorter.log`
|
||||
|
||||
---
|
||||
|
||||
## Manual use
|
||||
## 📝 Usage & Configuration
|
||||
|
||||
### Manual use
|
||||
|
||||
`obsidian-sort` is installed on `.27` (in `~/bin`):
|
||||
|
||||
@@ -139,9 +175,9 @@ python3 -m sorter --vault ~/obsidian --inbox "010 inbox" sort-inbox --jev --appl
|
||||
|
||||
---
|
||||
|
||||
## Usage reference
|
||||
### Usage reference
|
||||
|
||||
### Read-only
|
||||
#### Read-only
|
||||
|
||||
```bash
|
||||
# Vault shape: counts, types, what needs classification
|
||||
@@ -155,7 +191,7 @@ python3 -m sorter --vault ~/obsidian --inbox "010 inbox" \
|
||||
propose "010 inbox/My Note.md" --jev
|
||||
```
|
||||
|
||||
### Filing (writes)
|
||||
#### Filing (writes)
|
||||
|
||||
Dry run by default — nothing is written without `--apply`.
|
||||
|
||||
@@ -189,7 +225,7 @@ Plan for: 010 inbox/50 Legendary Websites.md
|
||||
- remove 010 inbox/50 Legendary Websites.md (moved out of inbox)
|
||||
```
|
||||
|
||||
### Measuring the semantic tier
|
||||
#### Measuring the semantic tier
|
||||
|
||||
```bash
|
||||
python3 -m sorter --vault ~/obsidian --inbox "010 inbox" benchmark --all --quiet
|
||||
|
||||
Reference in New Issue
Block a user