6 exercises on Temerarii Media. About 45 minutes.
Run the gates over both brand packages in the operator kit. Everything passes except the voice gate on the second brand, which ships with three planted violations — that is exercise 4. Then open the gate module and read the docstring on each gate: every one of them exists because the mistake it catches actually happened in production.
How you know you have it: You can name which gate exists because of which failure. The habit that matters: when something breaks in a way a person had to notice, you have learned that people do not reliably notice it — so the gate goes in the same change as the fix.
The scheduler implements a 4-4-5 retail calendar. A week is keyed by its fiscal year (2026W40, 2027W02); the count restarts at 01 each year (52 weeks, 53 when the Chairman's sheet says so). Weeks always start Sunday, and the anchor comes from each brand's goal file — which is why one brand's year opens in January and the other's does not, with no branch in the code. Answer for yourself, then check with the grader: what key does the week after 2026W52 carry, which quarter is it in, and what does placing six beats from week 50 return?
How you know you have it: You saw the trap before the grader told you. Placement used to stop at week 52, so a campaign starting at week 50 resolved to no weeks at all — no error, no warning, an empty list, and the copy sat authored on disk while the campaign silently never shipped.
Both brands run the same voice gate and neither shares a word list. Read both. One bans hype; the other bans something else entirely. Adding a channel or a banned term is an edit to a brand package, never a pipeline change — confirm that by finding where the pipeline reads it.
How you know you have it: You can add a term to one brand and prove the other is unaffected without touching any shared code. If you had to edit the pipeline, you found the bug.
Three deliberate voice violations. Find them, and record each as week, field and banned term. Then look harder than the tool did. One of the three is a negation — the copy is arguing against the very thing the rule exists to prevent, and the word list flagged it anyway.
How you know you have it: Three, plus a few lines on the negation: is it a violation? There is a defensible answer either way and we care about the reasoning. An operator who defers to the gate on everything is as much of a problem as one who overrides it.
Edit one field in one week. Which authored weeks now need re-rendering? Write the answer as the smallest correct set. The grader rejects an answer containing every authored week, even though “everything is stale” is technically safe.
How you know you have it: Being conservative is not free. It is a real cost, paid every time, and the entire value of a dirty set is in naming only what actually changed.
Build the publish payloads for a week against the local mock. The mock enforces what the real service enforces: required fields, per-channel length limits, a campaign tag on every link, and a source campaign on every payload. Notice what you did not have to configure — the per-brand channel list came from the brand package. And notice what did not get sent: a manual channel's payload is still built, still validated, and reported as needing a human.
How you know you have it: Every published item traces back to a registry entry — not because a policy says so, but because in six months someone will ask where a post came from and “I am not sure” is not an answer you want to give about your own work. The check lives in code so an unattributable payload is impossible to construct rather than merely discouraged.