117 lines
3.0 KiB
Markdown
117 lines
3.0 KiB
Markdown
|
|
# Daily Patch Review Loop Policy v1
|
||
|
|
|
||
|
|
This policy exists because a pack can pass schema checks and still be boring, weird, or too generated.
|
||
|
|
|
||
|
|
The daily pack must be fixed in patch mode unless a mass rewrite is explicitly justified.
|
||
|
|
|
||
|
|
## Core Rule
|
||
|
|
|
||
|
|
Review the full pack. Mark only questions that fail. Fix only the marked question IDs.
|
||
|
|
|
||
|
|
Do not rewrite passing questions just because a rewrite is happening.
|
||
|
|
|
||
|
|
Passing questions are frozen unless they later fail a specific rule.
|
||
|
|
|
||
|
|
## Required Inputs
|
||
|
|
|
||
|
|
Before editing daily questions, the writer must have:
|
||
|
|
|
||
|
|
* the current JSON file
|
||
|
|
* the current daily guide files
|
||
|
|
* the previous review findings, if any
|
||
|
|
* a marked fixes CSV or JSON from the review pass
|
||
|
|
|
||
|
|
## Required Review Pass
|
||
|
|
|
||
|
|
Each question must be checked for:
|
||
|
|
|
||
|
|
* schema validity
|
||
|
|
* weekday tag correctness
|
||
|
|
* prompt clarity
|
||
|
|
* option fit
|
||
|
|
* fun-first value
|
||
|
|
* therapy or wellness voice
|
||
|
|
* household admin drift
|
||
|
|
* awkward phrasing
|
||
|
|
* repeated opener or repeated mechanic
|
||
|
|
* too-random silliness
|
||
|
|
|
||
|
|
## Mark Before Fixing
|
||
|
|
|
||
|
|
Every failed question must be marked with:
|
||
|
|
|
||
|
|
* question ID
|
||
|
|
* weekday
|
||
|
|
* current prompt
|
||
|
|
* failure reason
|
||
|
|
* fix scope
|
||
|
|
* whether metadata may change
|
||
|
|
|
||
|
|
Use these fix scopes:
|
||
|
|
|
||
|
|
* `prompt_only`
|
||
|
|
* `options_only`
|
||
|
|
* `prompt_and_options`
|
||
|
|
* `metadata_only`
|
||
|
|
* `delete_or_replace`
|
||
|
|
|
||
|
|
## Fix Only What Failed
|
||
|
|
|
||
|
|
When patching:
|
||
|
|
|
||
|
|
* preserve the original ID unless the ID itself is wrong
|
||
|
|
* preserve `type` unless the type is wrong
|
||
|
|
* preserve `access` unless the count split is wrong
|
||
|
|
* preserve `depth` unless the import code or schema requires a change
|
||
|
|
* preserve weekday tags unless the tag is wrong
|
||
|
|
* preserve compatibility tags unless app code no longer needs them
|
||
|
|
* change only the prompt and options for normal content fixes
|
||
|
|
|
||
|
|
## Mass Rewrite Exception
|
||
|
|
|
||
|
|
A mass rewrite is allowed only when more than 60 percent of a weekday or pack fails for the same root reason.
|
||
|
|
|
||
|
|
The rewrite report must state:
|
||
|
|
|
||
|
|
* failure percentage
|
||
|
|
* shared root cause
|
||
|
|
* why patching individual IDs would be worse
|
||
|
|
* what will be preserved
|
||
|
|
* how the new pack will be reviewed
|
||
|
|
|
||
|
|
Without that report, mass rewriting is not allowed.
|
||
|
|
|
||
|
|
## Loop Stop Conditions
|
||
|
|
|
||
|
|
The loop stops only when:
|
||
|
|
|
||
|
|
* every marked question has been fixed
|
||
|
|
* every fixed question has been reviewed again
|
||
|
|
* remaining hard flags are 0
|
||
|
|
* duplicate checks pass
|
||
|
|
* option-answer checks pass
|
||
|
|
* two random samples per weekday pass cleanly
|
||
|
|
* the review findings file says `production_ready`
|
||
|
|
|
||
|
|
Do not call the pack production ready with known unresolved content flags.
|
||
|
|
|
||
|
|
## Fun But Grounded Rule
|
||
|
|
|
||
|
|
Fun does not mean random nonsense.
|
||
|
|
|
||
|
|
Reject prompts or options that feel like a carnival generator, such as too many fake awards, too many snack drafts, too many mascot jokes, or cute objects that do not actually fit the prompt.
|
||
|
|
|
||
|
|
A daily question should feel playful and usable by adults, not like a children's party game accidentally shipped inside a couples app.
|
||
|
|
|
||
|
|
## Required Outputs
|
||
|
|
|
||
|
|
Every daily patch must output:
|
||
|
|
|
||
|
|
* updated JSON
|
||
|
|
* validation report
|
||
|
|
* marked fixes file
|
||
|
|
* patched fixes file
|
||
|
|
* remaining flags file
|
||
|
|
* review findings file
|
||
|
|
* short apply instructions
|