Skip to content

fix(prose): work off the prose backlog and make the gate blocking - #47

Merged
astrapi69 merged 2 commits into
mainfrom
chore/prose-backlog
Oct 1, 2026
Merged

astrapi69 merged 2 commits into
mainfrom
chore/prose-backlog

Conversation

@astrapi69

Copy link
Copy Markdown
Owner

Summary

This works off the prose backlog that .github/quality-state.json recorded on 2026-09-23 and makes the prose gate blocking.

  1. Gate files from adaptive-learner-content-template#95 (97a2dcc), byte for byte. The gate stops reporting typing variants in accept, YAML tags, the surnames Weiss and Gross, French grosse, and code syntax in plain-text fields.
  2. Backlog. Umlaut findings: 19 with the old gate.
    • 4 were real misspellings, in docs/export-set-usage.de.md. Each is fixed at the reported line with the spelling the gate names.
    • tests/test_export_set.py asserted that a misspelling does not appear in the export, so it held the misspelling on purpose. The assert now derives it from the correct word ("Übungen".replace("Ü", "Ue")), and the ASCII slugs in its comments are in backticks (1 line(s)).
    • 09-dictionaries.json, a card hint: items() liefert (schluessel, wert)-Tupel. becomes items() liefert Tupel aus Schlüssel und Wert.
    • 02-jsx.json, a card note: setzt den Wert der Variablen gruss ein becomes setzt den Wert dieser Variablen ein
    • 04-state-usestate.json, a prompt (rendered as Markdown): the code const [zaehler, setZaehler] = useState(0); goes into backticks, as the lesson's theory already writes it
    • The rest were false alarms that the new gate no longer reports.
    • Em dashes: 204, replaced with the strategy of adaptive-learner-content#201 and alc-psychology#48, most specific rule first:
      • a spaced aside or pause in running text becomes a comma: 133
      • a title, title_native, name or card front field, a Markdown heading, a comment line or a media title becomes -: 54
      • after code (), ], ', a backtick) it becomes -, so the comma cannot read as code: 9
      • a list item - **Term** — text becomes - **Term**: text: 8
  3. The gate blocks. .github/quality-state.json is removed (it held only the prose-gate exception). An absent file means blocking.

Verification

  • All 204 changes were made by a script and checked by a second one:
    • every hunk sits on a former em dash;
    • no em dash is left;
    • every JSON file parses;
    • every Markdown heading and every title and front field that had an em dash now has -.
  • The before/after pairs were also read by hand, in random samples per rule.
  • None of the changes is in a code, accept, distractors or tiles field.
  • Gates, in this branch: see the test plan.

Test plan

Gate Result
make lint engine-validate: 36 lesson(s), 5 manifest(s) checked - 0 file(s) with errors
make validate All 4 set(s) passed validation.
make stable-ids checked: 628 base id(s) / 628 head id(s), 36 base lesson(s) / 36 head lesson(s), 0 base retired / 0 head retired stable-id coverage: 4 of 4 set(s) fully minted,
pytest 199 passed, 1 skipped, 10 warnings in 4.81s
make prose-check prose gate: 102 tracked file(s) clean

🤖 Generated with Claude Code

astrapisixtynine and others added 2 commits October 1, 2026 13:11
Copied byte for byte from adaptive-learner-content-template 97a2dcc:
typing variants in accept, YAML tags, the surnames Weiss and Gross,
French grosse and code syntax in plain-text fields are no longer
reported as misspellings.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Em dashes replaced by the strategy of adaptive-learner-content#201
(comma for an aside, a hyphen in titles, headings, card fronts and after
code, a colon after a bold list term); real umlaut substitutes fixed at
the reported line; the export test derives the misspelling it asserts
against from the correct word instead of holding it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@astrapi69
astrapi69 merged commit 9b5cc47 into main Oct 1, 2026
7 checks passed
@astrapi69
astrapi69 deleted the chore/prose-backlog branch October 1, 2026 11:13
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