Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Checkpoint: all three Windrow samples are fingerprinted. Write
derive_pack(prints) that turns the measurements into the rules
section of the voice pack:
house_avg: mean of the samples'avg_words, rounded to 1 decimal.max_sentence_words:round(house_avg * 1.5)— using the rounded house_avg.exclamations_allowed: True if ANY sample hasexclaims > 0.contractions_required: True if the pooled contraction rate — total contractions across the samples divided by total sentences — is at least 0.2. Same threshold as step 5, now computed from the raw counts.
Expected output:
house avg: 10.2 words/sentence
max_sentence_words: 15
exclamations_allowed: False
contractions_required: True