diff --git a/seed/questions/QUESTION_REWRITE_PLAN.md b/seed/questions/QUESTION_REWRITE_PLAN.md index 02d01032..a4f41831 100644 --- a/seed/questions/QUESTION_REWRITE_PLAN.md +++ b/seed/questions/QUESTION_REWRITE_PLAN.md @@ -162,6 +162,52 @@ Do not write or rewrite 500 daily questions in one pass. Use a bounded loop. The goal is quality control, not infinite polishing until everyone forgets why the app exists. +### Patch Mode Required + +Daily updates must default to patch mode. + +Patch mode means: + +1. Review the full pack. +2. Mark only failing question IDs. +3. Fix only the marked IDs. +4. Preserve passing questions exactly. +5. Preserve metadata unless metadata is the failure. +6. Review the patched questions again. +7. Repeat only for IDs that still fail. + +Do not rewrite all 500 because some questions failed. + +Do not rewrite a whole weekday unless the mass rewrite exception applies. + +### Mass Rewrite Exception + +A mass rewrite is allowed only when more than 60 percent of a weekday or pack fails for the same root cause. + +The review report must include: + +* failure percentage +* shared root cause +* why patching individual IDs is worse +* fields that will be preserved +* sample-gate results after the rewrite + +Without this report, mass rewriting is not allowed. + +### Fix Scope + +Every marked question must include one fix scope: + +* `prompt_only` +* `options_only` +* `prompt_and_options` +* `metadata_only` +* `delete_or_replace` + +Normal tone fixes should usually be `prompt_only`, `options_only`, or `prompt_and_options`. + +Do not change access, depth, tags, or IDs unless the fix scope says metadata is involved. + ### Per Weekday Loop For each weekday theme: @@ -209,6 +255,9 @@ When marking a daily question, use one or more of these reasons: * weird_option * weak_weekday_fit * filler_question +* too_random +* mechanic_overuse +* patch_scope_violation ### Final Pack Gate @@ -222,7 +271,9 @@ After all weekdays are drafted: 6. Mark anything weak. 7. Fix marked questions. 8. Run a second random sample from each weekday. -9. Ship only if the second sample passes cleanly. +9. Fix only marked sample items. +10. Run another sample if anything changed. +11. Ship only if the second sample passes cleanly and remaining hard flags are 0. Do not skip the final sample gate. @@ -249,5 +300,7 @@ Each rewrite should provide: * updated JSON * validation report * marked fixes CSV or JSON +* patched fixes CSV or JSON +* remaining flags CSV or JSON * short review findings * apply instructions