Workers P1: Betriebsanleitung und Übersicht nach der Endprüfung (zwei Appwrite-Schlüssel, nginx-Zone, Erwartungstexte, countersJson 16000, Verträge für P2–P6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
11e4280a92
commit
7b1342fbb1
2 files changed
+22
-8
No files matched your search
@@ -121,7 +121,7 @@ Indizes: `status`, `entrance+status`, `room`, `foundAt`, `purgeAfter`.
|
||||
`ts dt*` · `workerId s(16)*` (oder `system`) · `kind s(32)*` (Liste §5) · `jobId s(36)` · `prospectId s(36)` · `text s(300)*` (deutscher Satz für Spur/Blase) · `link s(1024)` · `to s(16)` (Ziel-workerId bei Übergaben) · `tokensIn i` · `tokensOut i` · `costUsd f` · `metaJson s(4000)`. Index: `ts`, `workerId+ts`.
|
||||
|
||||
### 4.8 `workersDaily` – Tageszähler (`$id = "YYYY-MM-DD"` Berlin-Datum)
|
||||
`costUsd f*` · `mailsCold i*` · `mailsReply i*` · `searches i*` · `found i*` · `contacted i*` · `deals i*` · `countersJson s(4000)` (pro workerId: `{gelesen, gefunden, entwuerfe, gesendet, …}`) · `warned b*` · `stopped b*`.
|
||||
`costUsd f*` · `mailsCold i*` · `mailsReply i*` · `searches i*` · `found i*` · `contacted i*` · `deals i*` · `countersJson txt(16000)` (physisch TEXT 20000; läuft der Inhalt dennoch über, verdichtet `src/daily.js` und wirft nie – Endprüfung P1) (pro workerId: `{gelesen, gefunden, entwuerfe, gesendet, …}`) · `warned b*` · `stopped b*`.
|
||||
|
||||
### 4.9 `workersThreads` – Gesprächsfäden
|
||||
`prospectId s(36)*` · `channel e[mail,plattform]*` · `platform s(64)` · `platformUrl s(1024)` · `toEmail s(256)` · `subject s(300)` · `status e[offen,wartet_auf_kunde,wartet_auf_uns,ja,nein,abgeschlossen,gesperrt]*` · `lastInboundAt dt` · `lastOutboundAt dt` · `followupDueAt dt` · `followupSent b*` · `reminderDueAt dt` · `reminderSent b*` · `createdAt dt*`. Index: `status` (P1-E1).
|
||||
@@ -428,6 +428,17 @@ Stand: Abgleich der Teilpläne P1–P6 am 17.10.2026. Die Teilpläne haben ihre
|
||||
|
||||
---
|
||||
|
||||
|
||||
### 11.3 Verträge aus der P1-Endprüfung (verbindlich für P2–P6)
|
||||
- `jobs.finish/fail/touch` immer mit dem **`next`-Objekt** aufrufen (nicht mit der nackten Id); lange Läufe (Bau, P4) rufen `touch` höchstens alle 20 Minuten, sonst holt `reclaimStale` den Auftrag nach 30 Minuten zurück.
|
||||
- `suppress` liefert `{ created, ignored, unparsed }`; `ignored`/`unparsed` (Adresse nicht auswertbar) geht **immer** ins Pult (P3/P4), nie still verloren.
|
||||
- Ein Tick-Eintrag, der wegen Budget/Pause nichts tut, gibt `{ skipped: 'budget' | 'pause' }` zurück; der Tick setzt dann den Lauf-Marker zurück und meldet einmal `leerlauf` („Nacht ausgefallen: Budget“).
|
||||
- `claude.search`: `allowedDomains` nie leer (leer wirft) und nur **reine Hosts** (ohne Schema, Port, Pfad; Punycode) – P3/P6 übergeben Hosts.
|
||||
- Fehlertexte laufen zentral durch `schwaerzen` (`src/geheim.js`), bevor sie in Log, Ereignisse oder Bericht gehen.
|
||||
- Register-Listen (Freemail/Verzeichnisse/Baukästen) bleiben Aufzählungen; P6 ergänzt eine Laufzeit-Bremse: ein `dom`-Schlüssel, den mehr als 3 verschiedene Interessenten teilen würden, gilt als Plattform-Domain und wird nicht als harter Treffer gewertet (Hinweis ans Pult).
|
||||
- P2: Roster-Fixture ohne `**` in Maxʼ Rolle (byte-gleich mit `test/fixtures/workers-roster.json` aus dem Dienst); Polling-Takt bleibt unter dem nginx-Limit (20 r/s gemeinsam).
|
||||
- P4: `__bounce` und `__smtpStop` liegen in `countersJson` (16000 Zeichen; Verdichten behält `__smtpStop`).
|
||||
|
||||
## 12. Übernommene Ideen (Harvey)
|
||||
|
||||
Vom Inhaber freigegeben. Besitzer = Plan, der die Regel umsetzt; die anderen Pläne ziehen mit. Nicht verhandelbar bleiben die Spec-Entscheidungen (max. 3 Kaltmails/Tag, nur Max sendet, nur veröffentlichte Adressen, Sperrliste vor jeder Nachricht).
|
||||
|
||||
Reference in new issue
Block a user