Initial commit: Hermes Agent Skills collection
This commit is contained in:
+70
@@ -0,0 +1,70 @@
|
||||
# learning.json Format
|
||||
|
||||
The learning file at `~/.hermes/email-organizer/learning.json` accumulates email classification rules across cron runs.
|
||||
|
||||
## Structure
|
||||
|
||||
```json
|
||||
{
|
||||
"corrections": [],
|
||||
"patterns": {
|
||||
"rechnung": {
|
||||
"<pattern_name>": {
|
||||
"sender": "exact@sender.com",
|
||||
"sender_pattern": "@appleid.com",
|
||||
"subject_keywords": ["keyword1", "keyword2"],
|
||||
"content_keywords": ["rechnung", "rechnungsnummer"],
|
||||
"folder": "Rechnungen_YYYY_MM",
|
||||
"source": "Vendor name",
|
||||
"notes": "Description and context"
|
||||
}
|
||||
},
|
||||
"bestellbestaetigung": {
|
||||
"<pattern_name>": { ... }
|
||||
},
|
||||
"ignorieren": {
|
||||
"<pattern_name>": { ... }
|
||||
}
|
||||
},
|
||||
"structured_ignore_patterns": [],
|
||||
"last_scan": "2026-06-10 09:13",
|
||||
"total_processed": 554,
|
||||
"total_moved": 20
|
||||
}
|
||||
```
|
||||
|
||||
## Pattern Fields
|
||||
|
||||
| Field | Required | Description |
|
||||
|-------|----------|-------------|
|
||||
| `sender` | Conditional | Exact email address (use with `sender_pattern` only) |
|
||||
| `sender_pattern` | Conditional | Email domain pattern with `@` prefix (e.g., `@appleid.com`) |
|
||||
| `subject_keywords` | Yes | Keywords matched case-insensitively in subject |
|
||||
| `content_keywords` | Conditional | Keywords matched in email body |
|
||||
| `folder` | Conditional | Override target folder (defaults based on category) |
|
||||
| `source` | Yes | Human-readable vendor/source name |
|
||||
| `notes` | Yes | Context: what type of email, whether it's an invoice or order, any caveats |
|
||||
|
||||
## Decision Criteria
|
||||
|
||||
### Invoice (Rechnung)
|
||||
Contains a **factored charge**: Rechnungsnummer, Gesamtbetrag, Steuern, Fälligkeitsdatum, Lastschrift.
|
||||
|
||||
### Order Confirmation (Bestellbestätigung)
|
||||
Contains an **order number and items** but NO invoice details. Invoice arrives separately.
|
||||
|
||||
### Ignore
|
||||
- Delivery notifications ("zugestellt", "versendet")
|
||||
- Newsletters, marketing emails
|
||||
- Social media notifications
|
||||
- Job alerts
|
||||
- Technical reports (solar, DMARC)
|
||||
|
||||
## Update Workflow
|
||||
|
||||
When a new pattern emerges during a scan:
|
||||
1. Add entry under the correct category in `patterns`
|
||||
2. Include `source` with vendor name
|
||||
3. Include `notes` with distinguishing characteristics
|
||||
4. Increment `total_processed` and `total_moved`
|
||||
5. Update `last_scan` timestamp
|
||||
Reference in New Issue
Block a user