press-releases: begrenzter Pruefkreislauf mit Admin-Queue (Roadmap 1d.4, E3)
Automatische Pruefung je Meldung hoechstens max_automatic_attempts (3); das letzte Rot blockt statt abzulehnen: Meldung bleibt in review, Admin sieht sie unter "Pruefung noetig" mit allen KI-Begruendungen und entscheidet (Freischalten / Mit Kommentar zurueck). Danach ist die Automatik fuer diese Meldung aus - jede Freigabe geht direkt zum Menschen. Gelb: yellow_to_manual_queue wird jetzt ausgewertet (Vorgabe false). Kundenseite: "Zur Pruefung freigeben" mit Erklaerung der drei Schritte, Versuchszaehler an der Ablehnung, Hinweis auf menschliche Pruefung. Blade: inline @php(...) vor einem @php...@endphp-Block wird als Rohblock gelesen - vier Stellen auf Blockform umgestellt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c08c9e5de0
commit
0692d892e0
17 changed files with 487 additions and 47 deletions
|
|
@ -144,12 +144,12 @@ Für selbst angelegte Firmendaten trägt der Nutzer die Verantwortung. Für die
|
|||
|
||||
| Nr. | Arbeitspaket | Aufwand | Abhängigkeit |
|
||||
|---|---|---|---|
|
||||
| 1d.1 | Hilfeseite ohne kommerziellen Anteil: was eine gute Pressemitteilung ausmacht, wie geprüft wird, was sich verbessern lässt, Abschnitt zu Pressebildern | S | keine |
|
||||
| 1d.2 | Textbaustein in die Ablehnungsmail, Verlinkung auf 1d.1 | S | 1d.1 |
|
||||
| ~~1d.1~~ | Hilfeseite ohne kommerziellen Anteil — **gebaut 16.09.2026**: `/{edition}/gute-pressemitteilung` (DE/EN), Anlass, Aufbau, Sprache, Prüfablauf, sieben Qualitätsdimensionen offen, Pressebilder; Sitemap + Hilfe-Center | S | keine |
|
||||
| ~~1d.2~~ | Textbaustein in die Ablehnungsmail — **16.09.2026**: Link auf dem Portal der Meldung, Herkunft `mail_reject`, nichts Kommerzielles (E6) | S | 1d.1 |
|
||||
| 1d.3 | Abmeldemöglichkeit für Benachrichtigungen, Status in der Suppression-Logik geführt | S | Bounce-Suppression live |
|
||||
| 1d.4 | Prüfwerkzeug: eingefügter Text wird bewertet, Ausgabe als benannte Stufe mit konkreten Hebeln | M | 1d.1 |
|
||||
| 1d.5 | Bewertung einer bestehenden Meldung über Magic Link | S | 1d.4, 1b.2 |
|
||||
| 1d.6 | Partnerbereich am Seitenende, vorerst als "BALD" ohne Namen und Logos | S | 1d.1 |
|
||||
| ~~1d.4~~ | Prüfwerkzeug — **E3 entschieden 16.09.2026: kein eigenständiges Werkzeug.** Prüfung nur beim Freigeben, Ergebnis am Entwurf; „Zur Prüfung freigeben" mit Erklärung, was danach passiert; automatische Prüfung je Meldung `max_automatic_attempts` (3), danach geblockt in die Admin-Queue („Prüfung nötig"), Freischalten oder Kommentar, Automatik für die Meldung ab dann aus | M | 1d.1 |
|
||||
| ~~1d.5~~ | Bewertung einer bestehenden Meldung über Magic Link — **mit 1c.2 erledigt**: der Beansprucher sieht Ablehnungsgrund, KI-Stufe und Content-Score auf der Meldungsseite | S | 1d.4, 1b.2 |
|
||||
| ~~1d.6~~ | Partnerbereich am Seitenende als BALD — **16.09.2026** am Ende von 1d.1 | S | 1d.1 |
|
||||
|
||||
**Offenlegungsgrenze**
|
||||
|
||||
|
|
@ -233,7 +233,7 @@ Braucht Betreuungszeit und ist teilweise von Dritten abhängig.
|
|||
|---|---|---|
|
||||
| ~~E1~~ | **Entschieden 11.09.2026: 3** (drei Live-Läufe, siehe `basiswerte-block0.md` und `umsetzung-protokoll.md` Teil 3). Konfiguriert in `config/newsroom.php`. | 1a.2 |
|
||||
| ~~E2~~ | **Empfehlung 01.09.2026: Rohzahlen** — kein Bodensatz, Verteilung symmetrisch, Einordnung gegen den Schnitt wäre wegen der Wachstumskurve falsch (siehe `basiswerte-block0.md`). | 1c.1 |
|
||||
| E3 | Anzahl kostenloser Prüfläufe und Preis der weiteren in Credits | 1d.4 |
|
||||
| ~~E3~~ | **Entschieden 16.09.2026: keine Credits.** Prüfung ist Teil der Freigabe, nicht ein Werkzeug; N automatische Läufe je Meldung (einstellbar, 3), danach Mensch, Automatik für die Meldung aus. Gelb geht weiter automatisch online, `yellow_to_manual_queue` bleibt als Schalter (Vorgabe aus). | 1d.4 |
|
||||
| ~~E4~~ | **Entschieden 15.09.2026: der Magic-Link-Hinweis, am Ende der Mail, als Hinweis, nicht als Angebot.** Umgesetzt in 1b.4. Der Link auf die Infoseite (1d.2) bekommt damit keinen Platz in der Veröffentlichungsmail — ein Element pro Mail. | 1b.4, 1d.2 |
|
||||
| E5 | Werden die bestehenden Ratgeberseiten konsolidiert oder ergänzt | 2.5 |
|
||||
| E6 | Bleibt die Ablehnungsstrecke dauerhaft frei von kommerziellen Angeboten | 1d.1, 1d.6 |
|
||||
|
|
|
|||
|
|
@ -1340,3 +1340,69 @@ und `ManualInvoicePdfRenderer` aus dem parallel entwickelten Projekt
|
|||
nullbare Werte, eine immer-falsche Negation. Nicht angefasst.
|
||||
|
||||
Deploy: kein `migrate`, nur Code; `view:cache` neu. Kein Backfill nötig.
|
||||
|
||||
---
|
||||
|
||||
# Teil 6 — Block 1d: Infoseite und Prüfkreislauf (16.09.2026)
|
||||
|
||||
## Entscheidungen mit dem Nutzer
|
||||
|
||||
- **E3:** keine Credits für Prüfläufe. Die Prüfung ist Teil des Freigebens;
|
||||
ein eigenständiges Werkzeug zum Textreinkopieren gibt es nicht (wäre der
|
||||
Weg, das Gate auszutesten). Automatische Prüfung je Meldung
|
||||
`scoring.classification.max_automatic_attempts` (Vorgabe 3); danach
|
||||
geblockt in die Admin-Queue; Freischalten oder Kommentar; ab dann ist die
|
||||
Automatik für diese Meldung aus.
|
||||
- **Gelb** geht weiter automatisch online. Der Schalter
|
||||
`yellow_to_manual_queue` war im Code nie ausgewertet (1 288 gelbe
|
||||
Meldungen in sechs Monaten ohne Blick); jetzt ausgewertet, Vorgabe
|
||||
`false`, im Admin sichtbar (Filter „KI: Gelb" bestand schon).
|
||||
|
||||
## Befund vorab
|
||||
|
||||
84 KI-Ablehnungen in sechs Monaten, jede Meldung genau einmal, eine
|
||||
davon später veröffentlicht — heute loopt niemand. Der Zähler schützt vor
|
||||
einem Verhalten, das erst mit 1d.1/1d.2 entsteht.
|
||||
|
||||
## 1d.1 / 1d.2 / 1d.6 (Commit c08c9e5)
|
||||
|
||||
Hilfeseite `/{edition}/gute-pressemitteilung` (DE/EN): Anlass, Aufbau,
|
||||
Sprache, Prüfablauf mit Versuchszahl aus der Konfiguration, die sieben
|
||||
Dimensionen des Content-Scores offen (Pressestil, Struktur, Lesbarkeit,
|
||||
Vollständigkeit, Quellen, Überschrift, Eigenständigkeit) — Gewichtung und
|
||||
Schwellen nicht (Offenlegungsgrenze), Pressebilder, Partner als BALD.
|
||||
Kein Preis-, Tarif- oder Credit-Link im Seiteninhalt (Test prüft den
|
||||
Prosa-Block). Sitemap, Hilfe-Center. Ablehnungsmail verlinkt die Seite auf
|
||||
dem Portal der Meldung mit `src=mail_reject&pr=<id>`.
|
||||
|
||||
## E3 — begrenzter Prüfkreislauf
|
||||
|
||||
- Spalten `auto_check_attempts`, `manual_review_required_at` an
|
||||
`press_releases` (INSTANT, keine Volltext-Indizes mehr).
|
||||
- `submitForReview()`: zählt den Lauf; ist die Automatik erschöpft, geht
|
||||
die Freigabe ohne `ClassifyPressRelease` direkt in `review` mit
|
||||
Status-Log „wartet auf manuelle Entscheidung". Content-Score läuft weiter.
|
||||
- `routeByClassification()`: Rot beim N-ten Lauf → `holdForManualReview()`
|
||||
statt Ablehnung (bleibt `review`, Log „Automatische Prüfung erschöpft
|
||||
(N von N): <Grund>", ActivityLog). Gelb → Schalter. Keine Mail an den
|
||||
Autor für den Block — er sieht den Stand im Konto (offen: ob eine kurze
|
||||
Mail „ein Mensch prüft" gewünscht ist).
|
||||
- Admin ▸ Pressemitteilungen: Ansicht „Prüfung nötig" (Zähler rot, wenn >
|
||||
0), Filteroption, Badges „Prüfung nötig" / „nur manuell" in der Liste;
|
||||
Detailseite zeigt alle KI-Begründungen chronologisch und beschriftet die
|
||||
Aktionen „Freischalten" / „Mit Kommentar zurück" (bestehende
|
||||
publish/reject-Aktionen, Kommentar geht per Ablehnungsmail an den Autor).
|
||||
- Kundenseite: Button „Zur Prüfung freigeben" (statt „einreichen", überall
|
||||
vereinheitlicht), Modal erklärt in drei Schritten, was nach der Freigabe
|
||||
passiert; abgelehnte Meldung zeigt „Automatische Prüfung X von N genutzt"
|
||||
mit Link auf 1d.1; geblockte Meldung: „wird von einem Menschen geprüft".
|
||||
- Nebenbefund Blade: ein inline `@php(...)` wird bis zum nächsten
|
||||
`@php … @endphp` als Rohblock gelesen — vier Stellen auf Blockform
|
||||
umgestellt, eine davon Bestand (Modal).
|
||||
|
||||
Tests: `ManualReviewGateTest` (5), `StaticPagesTest` (+2),
|
||||
`ConversionFunnelTest` (erweitert). 1d.5 ist mit 1c.2 erledigt (der
|
||||
Beansprucher sieht Ablehnungsgrund, KI-Stufe, Content-Score).
|
||||
|
||||
Deploy: `migrate --force` (Millisekunden), `view:cache`, `queue:restart`.
|
||||
Kein Backfill — bestehende Meldungen starten mit 0 Versuchen.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue