Pedagogical validation message rewrite across 17 English lesson modules and 5 localized variants (ar, de, es, pl, uk).
51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# fix: validation error messages reveal the solution instead of guiding learning
|
|
|
|
**Issue:** [#4](https://git.librete.ch/libretech/code-crispies/issues/4)
|
|
**Repository:** libretech/code-crispies
|
|
**Author:** libretech
|
|
**State:** open
|
|
**Labels:** none
|
|
|
|
## Issue Body
|
|
|
|
Pedagogy audit: 88% of exercises reveal the answer in error messages, creating a fail-then-copy loop. Change validation messages from 'Set padding: 1rem' to 'Which property adds space between content and the element edge?' This applies across all modules — start with flexbox, box-model, and colors (the 3 worst offenders).
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. Validation error messages in **flexbox**, **box-model**, and **colors** modules must no longer reveal the exact CSS property-value answer
|
|
2. Replacement messages should use pedagogical hints: concept questions, property-name hints, or directional guidance — never the literal solution
|
|
3. All remaining English lesson modules with answer-revealing messages must also be rewritten
|
|
4. Localized variants (ar/, de/, es/, pl/, uk/) of affected modules must be updated with equivalent pedagogical messages in each language
|
|
5. Existing validations (type, value, options) must remain unchanged — only the `"message"` field is modified
|
|
6. All existing tests must continue to pass
|
|
|
|
## Scope
|
|
|
|
### English priority modules (100% answer-revealing):
|
|
- `lessons/flexbox.json` — 6 messages
|
|
- `lessons/01-box-model.json` — 10 messages
|
|
- `lessons/03-colors.json` — 4 messages
|
|
- `lessons/12-positioning.json` — 5 messages
|
|
|
|
### English remaining modules (partial answer-revealing):
|
|
- `lessons/00-basics.json` — 4 of 26
|
|
- `lessons/00-basic-selectors.json` — 15 of 18
|
|
- `lessons/01-advanced-selectors.json` — 8 of 49
|
|
- `lessons/04-typography.json` — 1 of 9
|
|
- `lessons/05-units-variables.json` — 3 of 5
|
|
- `lessons/06-transitions-animations.json` — 8 of 13
|
|
- `lessons/07-layouts.json` — 8 of 11
|
|
- `lessons/08-responsive.json` — 8 of 10
|
|
- `lessons/09-gradients.json` — 3 of 7
|
|
- `lessons/10-tailwind-basics.json` — 16 of 17
|
|
- `lessons/11-filters.json` — 4 of 7
|
|
- `lessons/13-pseudo-elements.json` — 4 of 8
|
|
- `lessons/grid.json` — 5 of 9
|
|
|
|
### Localized variants (each language directory):
|
|
- `lessons/ar/` — Arabic
|
|
- `lessons/de/` — German
|
|
- `lessons/es/` — Spanish
|
|
- `lessons/pl/` — Polish
|
|
- `lessons/uk/` — Ukrainian
|