Skip to content

chore(validate): drop the local prompt-duplication rule, the engine owns it - #36

Merged
astrapi69 merged 1 commit into
mainfrom
chore/drop-local-prompt-rule
Sep 24, 2026
Merged

astrapi69 merged 1 commit into
mainfrom
chore/drop-local-prompt-rule

Conversation

@astrapi69

@astrapi69 astrapi69 commented Sep 24, 2026 •

Copy link
Copy Markdown
Owner

Worum es geht

scripts/validate_content.py trug eine eigene Regel „Prompt gleich Satz oder gleich Schritt-Titel“ (#26). Das ist eine zweite Implementierung von W-PROMPT-DUP aus der Engine (astrapi69/learn-content-engine#169). Die Engine vergleicht dieselben zwei Paare, normalisiert aber mit Trim und Unicode-NFC; die lokale Regel entfernte nur Leerraum. Zwei Implementierungen einer Regel laufen auseinander, und Inhaltsregeln über Lektionen und Manifeste gehören der Engine.

Was sich ändert

  • scripts/validate_content.py, tests/test_hint_length_rule.py und docs/LESSON-FORMAT.md auf dem Stand des Templates (bringt nebenbei die englischen Zahlwörter und die Formen für Antwortlänge 1 in der Hinweislängen-Regel mit);
  • tests/test_prompt_duplication_rule.py entfällt.

Geht etwas verloren?

Nein. Die Engine meldet in diesem Repo heute null W-PROMPT-DUP (Engine-Lauf mit --warnings geprüft; er meldet andere Warnungen, der Lauf funktioniert also). Was die lokale Regel fing, meldet die Engine weiterhin, nur als Warnung. Soll eine Warnung blockieren, ist das eine Entscheidung im Warn-Schritt (accepted_warnings in .github/quality-state.json), keine zweite Regel.

Nachtrag: warum das Streichen hier nicht vorschnell ist

Gemessen am 2026-09-24 mit Engine 0.28.0 (dieses Repo pinnt noch 0.27.0, das W-CLOZE-NO-CARRIER nicht kennt):

Repo W-PROMPT-DUP W-CLOZE-NO-CARRIER beides an derselben Übung
alc-programming 0 57 0
adaptive-learner-content 45 105 40 (die übrigen 5 Dopplungen sind picture_choice)

Im Hub treten Prompt-Dopplung und fehlender Trägersatz fast immer zusammen auf, dort passt die Vermutung einer gemeinsamen Generator-Ursache. In diesem Repo treten die beiden Muster unabhängig voneinander auf: 57 Cloze ohne Trägersatz, aber keine einzige Prompt-Dopplung. Die lokale Regel hat hier also nichts gefunden, was die Engine nicht auch meldet, und das Streichen verschiebt keinen Befund. Die 57 Cloze werden im Inhaltsdurchgang dieses Repos korrigiert (Option A: ausmustern und neu minten).

Lokal: validate_content.py (4 Sets) und pytest (216 bestanden) grün; die Eigentümer-Prüfung meldet danach nichts mehr.

🤖 Generated with Claude Code

…wns it

validate_content.py carried its own "prompt equals sentence or title" rule
(#26), a second implementation of the engine's W-PROMPT-DUP (engine#169),
which compares the same two pairs after trimming and Unicode NFC
normalisation where the local one only stripped whitespace. Two
implementations of one rule drift apart; content rules about lessons and
manifests belong to the engine.

Takes the template's validate_content.py, test_hint_length_rule.py and
docs/LESSON-FORMAT.md (which also brings the English and single-character
hint-length forms) and removes tests/test_prompt_duplication_rule.py. The
engine reports no W-PROMPT-DUP in this repository today, so nothing that
was caught before goes unreported.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@astrapi69
astrapi69 merged commit a267e88 into main Sep 24, 2026
6 checks passed
@astrapi69
astrapi69 deleted the chore/drop-local-prompt-rule branch September 24, 2026 06:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants